1// Copyright 2021 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package 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	// See, edit, configure, and delete your Google Cloud Platform data
95	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
96
97	// View your data across Google Cloud Platform services
98	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
99
100	// Manage your data and permissions in Google Cloud Storage
101	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
102
103	// View your data in Google Cloud Storage
104	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
105
106	// Manage your data in Google Cloud Storage
107	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
108)
109
110// NewService creates a new Service.
111func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
112	scopesOption := option.WithScopes(
113		"https://www.googleapis.com/auth/bigquery",
114		"https://www.googleapis.com/auth/bigquery.insertdata",
115		"https://www.googleapis.com/auth/cloud-platform",
116		"https://www.googleapis.com/auth/cloud-platform.read-only",
117		"https://www.googleapis.com/auth/devstorage.full_control",
118		"https://www.googleapis.com/auth/devstorage.read_only",
119		"https://www.googleapis.com/auth/devstorage.read_write",
120	)
121	// NOTE: prepend, so we don't override user-specified scopes.
122	opts = append([]option.ClientOption{scopesOption}, opts...)
123	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
124	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
125	client, endpoint, err := htransport.NewClient(ctx, opts...)
126	if err != nil {
127		return nil, err
128	}
129	s, err := New(client)
130	if err != nil {
131		return nil, err
132	}
133	if endpoint != "" {
134		s.BasePath = endpoint
135	}
136	return s, nil
137}
138
139// New creates a new Service. It uses the provided http.Client for requests.
140//
141// Deprecated: please use NewService instead.
142// To provide a custom HTTP client, use option.WithHTTPClient.
143// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
144func New(client *http.Client) (*Service, error) {
145	if client == nil {
146		return nil, errors.New("client is nil")
147	}
148	s := &Service{client: client, BasePath: basePath}
149	s.Datasets = NewDatasetsService(s)
150	s.Jobs = NewJobsService(s)
151	s.Models = NewModelsService(s)
152	s.Projects = NewProjectsService(s)
153	s.Routines = NewRoutinesService(s)
154	s.RowAccessPolicies = NewRowAccessPoliciesService(s)
155	s.Tabledata = NewTabledataService(s)
156	s.Tables = NewTablesService(s)
157	return s, nil
158}
159
160type Service struct {
161	client    *http.Client
162	BasePath  string // API endpoint base URL
163	UserAgent string // optional additional User-Agent fragment
164
165	Datasets *DatasetsService
166
167	Jobs *JobsService
168
169	Models *ModelsService
170
171	Projects *ProjectsService
172
173	Routines *RoutinesService
174
175	RowAccessPolicies *RowAccessPoliciesService
176
177	Tabledata *TabledataService
178
179	Tables *TablesService
180}
181
182func (s *Service) userAgent() string {
183	if s.UserAgent == "" {
184		return googleapi.UserAgent
185	}
186	return googleapi.UserAgent + " " + s.UserAgent
187}
188
189func NewDatasetsService(s *Service) *DatasetsService {
190	rs := &DatasetsService{s: s}
191	return rs
192}
193
194type DatasetsService struct {
195	s *Service
196}
197
198func NewJobsService(s *Service) *JobsService {
199	rs := &JobsService{s: s}
200	return rs
201}
202
203type JobsService struct {
204	s *Service
205}
206
207func NewModelsService(s *Service) *ModelsService {
208	rs := &ModelsService{s: s}
209	return rs
210}
211
212type ModelsService struct {
213	s *Service
214}
215
216func NewProjectsService(s *Service) *ProjectsService {
217	rs := &ProjectsService{s: s}
218	return rs
219}
220
221type ProjectsService struct {
222	s *Service
223}
224
225func NewRoutinesService(s *Service) *RoutinesService {
226	rs := &RoutinesService{s: s}
227	return rs
228}
229
230type RoutinesService struct {
231	s *Service
232}
233
234func NewRowAccessPoliciesService(s *Service) *RowAccessPoliciesService {
235	rs := &RowAccessPoliciesService{s: s}
236	return rs
237}
238
239type RowAccessPoliciesService struct {
240	s *Service
241}
242
243func NewTabledataService(s *Service) *TabledataService {
244	rs := &TabledataService{s: s}
245	return rs
246}
247
248type TabledataService struct {
249	s *Service
250}
251
252func NewTablesService(s *Service) *TablesService {
253	rs := &TablesService{s: s}
254	return rs
255}
256
257type TablesService struct {
258	s *Service
259}
260
261// AggregateClassificationMetrics: Aggregate metrics for
262// classification/classifier models. For multi-class models, the metrics
263// are either macro-averaged or micro-averaged. When macro-averaged, the
264// metrics are calculated for each label and then an unweighted average
265// is taken of those values. When micro-averaged, the metric is
266// calculated globally by counting the total number of correctly
267// predicted rows.
268type AggregateClassificationMetrics struct {
269	// Accuracy: Accuracy is the fraction of predictions given the correct
270	// label. For multiclass this is a micro-averaged metric.
271	Accuracy float64 `json:"accuracy,omitempty"`
272
273	// F1Score: The F1 score is an average of recall and precision. For
274	// multiclass this is a macro-averaged metric.
275	F1Score float64 `json:"f1Score,omitempty"`
276
277	// LogLoss: Logarithmic Loss. For multiclass this is a macro-averaged
278	// metric.
279	LogLoss float64 `json:"logLoss,omitempty"`
280
281	// Precision: Precision is the fraction of actual positive predictions
282	// that had positive actual labels. For multiclass this is a
283	// macro-averaged metric treating each class as a binary classifier.
284	Precision float64 `json:"precision,omitempty"`
285
286	// Recall: Recall is the fraction of actual positive labels that were
287	// given a positive prediction. For multiclass this is a macro-averaged
288	// metric.
289	Recall float64 `json:"recall,omitempty"`
290
291	// RocAuc: Area Under a ROC Curve. For multiclass this is a
292	// macro-averaged metric.
293	RocAuc float64 `json:"rocAuc,omitempty"`
294
295	// Threshold: Threshold at which the metrics are computed. For binary
296	// classification models this is the positive class threshold. For
297	// multi-class classfication models this is the confidence threshold.
298	Threshold float64 `json:"threshold,omitempty"`
299
300	// ForceSendFields is a list of field names (e.g. "Accuracy") to
301	// unconditionally include in API requests. By default, fields with
302	// empty values are omitted from API requests. However, any non-pointer,
303	// non-interface field appearing in ForceSendFields will be sent to the
304	// server regardless of whether the field is empty or not. This may be
305	// used to include empty fields in Patch requests.
306	ForceSendFields []string `json:"-"`
307
308	// NullFields is a list of field names (e.g. "Accuracy") to include in
309	// API requests with the JSON null value. By default, fields with empty
310	// values are omitted from API requests. However, any field with an
311	// empty value appearing in NullFields will be sent to the server as
312	// null. It is an error if a field in this list has a non-empty value.
313	// This may be used to include null fields in Patch requests.
314	NullFields []string `json:"-"`
315}
316
317func (s *AggregateClassificationMetrics) MarshalJSON() ([]byte, error) {
318	type NoMethod AggregateClassificationMetrics
319	raw := NoMethod(*s)
320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
321}
322
323func (s *AggregateClassificationMetrics) UnmarshalJSON(data []byte) error {
324	type NoMethod AggregateClassificationMetrics
325	var s1 struct {
326		Accuracy  gensupport.JSONFloat64 `json:"accuracy"`
327		F1Score   gensupport.JSONFloat64 `json:"f1Score"`
328		LogLoss   gensupport.JSONFloat64 `json:"logLoss"`
329		Precision gensupport.JSONFloat64 `json:"precision"`
330		Recall    gensupport.JSONFloat64 `json:"recall"`
331		RocAuc    gensupport.JSONFloat64 `json:"rocAuc"`
332		Threshold gensupport.JSONFloat64 `json:"threshold"`
333		*NoMethod
334	}
335	s1.NoMethod = (*NoMethod)(s)
336	if err := json.Unmarshal(data, &s1); err != nil {
337		return err
338	}
339	s.Accuracy = float64(s1.Accuracy)
340	s.F1Score = float64(s1.F1Score)
341	s.LogLoss = float64(s1.LogLoss)
342	s.Precision = float64(s1.Precision)
343	s.Recall = float64(s1.Recall)
344	s.RocAuc = float64(s1.RocAuc)
345	s.Threshold = float64(s1.Threshold)
346	return nil
347}
348
349// Argument: Input/output argument of a function or a stored procedure.
350type Argument struct {
351	// ArgumentKind: Optional. Defaults to FIXED_TYPE.
352	//
353	// Possible values:
354	//   "ARGUMENT_KIND_UNSPECIFIED"
355	//   "FIXED_TYPE" - The argument is a variable with fully specified
356	// type, which can be a struct or an array, but not a table.
357	//   "ANY_TYPE" - The argument is any type, including struct or array,
358	// but not a table. To be added: FIXED_TABLE, ANY_TABLE
359	ArgumentKind string `json:"argumentKind,omitempty"`
360
361	// DataType: Required unless argument_kind = ANY_TYPE.
362	DataType *StandardSqlDataType `json:"dataType,omitempty"`
363
364	// Mode: Optional. Specifies whether the argument is input or output.
365	// Can be set for procedures only.
366	//
367	// Possible values:
368	//   "MODE_UNSPECIFIED"
369	//   "IN" - The argument is input-only.
370	//   "OUT" - The argument is output-only.
371	//   "INOUT" - The argument is both an input and an output.
372	Mode string `json:"mode,omitempty"`
373
374	// Name: Optional. The name of this argument. Can be absent for function
375	// return argument.
376	Name string `json:"name,omitempty"`
377
378	// ForceSendFields is a list of field names (e.g. "ArgumentKind") to
379	// unconditionally include in API requests. By default, fields with
380	// empty values are omitted from API requests. However, any non-pointer,
381	// non-interface field appearing in ForceSendFields will be sent to the
382	// server regardless of whether the field is empty or not. This may be
383	// used to include empty fields in Patch requests.
384	ForceSendFields []string `json:"-"`
385
386	// NullFields is a list of field names (e.g. "ArgumentKind") to include
387	// in API requests with the JSON null value. By default, fields with
388	// empty values are omitted from API requests. However, any field with
389	// an empty value appearing in NullFields will be sent to the server as
390	// null. It is an error if a field in this list has a non-empty value.
391	// This may be used to include null fields in Patch requests.
392	NullFields []string `json:"-"`
393}
394
395func (s *Argument) MarshalJSON() ([]byte, error) {
396	type NoMethod Argument
397	raw := NoMethod(*s)
398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
399}
400
401// ArimaCoefficients: Arima coefficients.
402type ArimaCoefficients struct {
403	// AutoRegressiveCoefficients: Auto-regressive coefficients, an array of
404	// double.
405	AutoRegressiveCoefficients []float64 `json:"autoRegressiveCoefficients,omitempty"`
406
407	// InterceptCoefficient: Intercept coefficient, just a double not an
408	// array.
409	InterceptCoefficient float64 `json:"interceptCoefficient,omitempty"`
410
411	// MovingAverageCoefficients: Moving-average coefficients, an array of
412	// double.
413	MovingAverageCoefficients []float64 `json:"movingAverageCoefficients,omitempty"`
414
415	// ForceSendFields is a list of field names (e.g.
416	// "AutoRegressiveCoefficients") to unconditionally include in API
417	// requests. By default, fields with empty values are omitted from API
418	// requests. However, any non-pointer, non-interface field appearing in
419	// ForceSendFields will be sent to the server regardless of whether the
420	// field is empty or not. This may be used to include empty fields in
421	// Patch requests.
422	ForceSendFields []string `json:"-"`
423
424	// NullFields is a list of field names (e.g.
425	// "AutoRegressiveCoefficients") to include in API requests with the
426	// JSON null value. By default, fields with empty values are omitted
427	// from API requests. However, any field with an empty value appearing
428	// in NullFields will be sent to the server as null. It is an error if a
429	// field in this list has a non-empty value. This may be used to include
430	// null fields in Patch requests.
431	NullFields []string `json:"-"`
432}
433
434func (s *ArimaCoefficients) MarshalJSON() ([]byte, error) {
435	type NoMethod ArimaCoefficients
436	raw := NoMethod(*s)
437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
438}
439
440func (s *ArimaCoefficients) UnmarshalJSON(data []byte) error {
441	type NoMethod ArimaCoefficients
442	var s1 struct {
443		InterceptCoefficient gensupport.JSONFloat64 `json:"interceptCoefficient"`
444		*NoMethod
445	}
446	s1.NoMethod = (*NoMethod)(s)
447	if err := json.Unmarshal(data, &s1); err != nil {
448		return err
449	}
450	s.InterceptCoefficient = float64(s1.InterceptCoefficient)
451	return nil
452}
453
454// ArimaFittingMetrics: ARIMA model fitting metrics.
455type ArimaFittingMetrics struct {
456	// Aic: AIC.
457	Aic float64 `json:"aic,omitempty"`
458
459	// LogLikelihood: Log-likelihood.
460	LogLikelihood float64 `json:"logLikelihood,omitempty"`
461
462	// Variance: Variance.
463	Variance float64 `json:"variance,omitempty"`
464
465	// ForceSendFields is a list of field names (e.g. "Aic") to
466	// unconditionally include in API requests. By default, fields with
467	// empty values are omitted from API requests. However, any non-pointer,
468	// non-interface field appearing in ForceSendFields will be sent to the
469	// server regardless of whether the field is empty or not. This may be
470	// used to include empty fields in Patch requests.
471	ForceSendFields []string `json:"-"`
472
473	// NullFields is a list of field names (e.g. "Aic") to include in API
474	// requests with the JSON null value. By default, fields with empty
475	// values are omitted from API requests. However, any field with an
476	// empty value appearing in NullFields will be sent to the server as
477	// null. It is an error if a field in this list has a non-empty value.
478	// This may be used to include null fields in Patch requests.
479	NullFields []string `json:"-"`
480}
481
482func (s *ArimaFittingMetrics) MarshalJSON() ([]byte, error) {
483	type NoMethod ArimaFittingMetrics
484	raw := NoMethod(*s)
485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
486}
487
488func (s *ArimaFittingMetrics) UnmarshalJSON(data []byte) error {
489	type NoMethod ArimaFittingMetrics
490	var s1 struct {
491		Aic           gensupport.JSONFloat64 `json:"aic"`
492		LogLikelihood gensupport.JSONFloat64 `json:"logLikelihood"`
493		Variance      gensupport.JSONFloat64 `json:"variance"`
494		*NoMethod
495	}
496	s1.NoMethod = (*NoMethod)(s)
497	if err := json.Unmarshal(data, &s1); err != nil {
498		return err
499	}
500	s.Aic = float64(s1.Aic)
501	s.LogLikelihood = float64(s1.LogLikelihood)
502	s.Variance = float64(s1.Variance)
503	return nil
504}
505
506// ArimaForecastingMetrics: Model evaluation metrics for ARIMA
507// forecasting models.
508type ArimaForecastingMetrics struct {
509	// ArimaFittingMetrics: Arima model fitting metrics.
510	ArimaFittingMetrics []*ArimaFittingMetrics `json:"arimaFittingMetrics,omitempty"`
511
512	// ArimaSingleModelForecastingMetrics: Repeated as there can be many
513	// metric sets (one for each model) in auto-arima and the large-scale
514	// case.
515	ArimaSingleModelForecastingMetrics []*ArimaSingleModelForecastingMetrics `json:"arimaSingleModelForecastingMetrics,omitempty"`
516
517	// HasDrift: Whether Arima model fitted with drift or not. It is always
518	// false when d is not 1.
519	HasDrift []bool `json:"hasDrift,omitempty"`
520
521	// NonSeasonalOrder: Non-seasonal order.
522	NonSeasonalOrder []*ArimaOrder `json:"nonSeasonalOrder,omitempty"`
523
524	// SeasonalPeriods: Seasonal periods. Repeated because multiple periods
525	// are supported for one time series.
526	//
527	// Possible values:
528	//   "SEASONAL_PERIOD_TYPE_UNSPECIFIED"
529	//   "NO_SEASONALITY" - No seasonality
530	//   "DAILY" - Daily period, 24 hours.
531	//   "WEEKLY" - Weekly period, 7 days.
532	//   "MONTHLY" - Monthly period, 30 days or irregular.
533	//   "QUARTERLY" - Quarterly period, 90 days or irregular.
534	//   "YEARLY" - Yearly period, 365 days or irregular.
535	SeasonalPeriods []string `json:"seasonalPeriods,omitempty"`
536
537	// TimeSeriesId: Id to differentiate different time series for the
538	// large-scale case.
539	TimeSeriesId []string `json:"timeSeriesId,omitempty"`
540
541	// ForceSendFields is a list of field names (e.g. "ArimaFittingMetrics")
542	// to unconditionally include in API requests. By default, fields with
543	// empty values are omitted from API requests. However, any non-pointer,
544	// non-interface field appearing in ForceSendFields will be sent to the
545	// server regardless of whether the field is empty or not. This may be
546	// used to include empty fields in Patch requests.
547	ForceSendFields []string `json:"-"`
548
549	// NullFields is a list of field names (e.g. "ArimaFittingMetrics") to
550	// include in API requests with the JSON null value. By default, fields
551	// with empty values are omitted from API requests. However, any field
552	// with an empty value appearing in NullFields will be sent to the
553	// server as null. It is an error if a field in this list has a
554	// non-empty value. This may be used to include null fields in Patch
555	// requests.
556	NullFields []string `json:"-"`
557}
558
559func (s *ArimaForecastingMetrics) MarshalJSON() ([]byte, error) {
560	type NoMethod ArimaForecastingMetrics
561	raw := NoMethod(*s)
562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
563}
564
565// ArimaModelInfo: Arima model information.
566type ArimaModelInfo struct {
567	// ArimaCoefficients: Arima coefficients.
568	ArimaCoefficients *ArimaCoefficients `json:"arimaCoefficients,omitempty"`
569
570	// ArimaFittingMetrics: Arima fitting metrics.
571	ArimaFittingMetrics *ArimaFittingMetrics `json:"arimaFittingMetrics,omitempty"`
572
573	// HasDrift: Whether Arima model fitted with drift or not. It is always
574	// false when d is not 1.
575	HasDrift bool `json:"hasDrift,omitempty"`
576
577	// HasHolidayEffect: If true, holiday_effect is a part of time series
578	// decomposition result.
579	HasHolidayEffect bool `json:"hasHolidayEffect,omitempty"`
580
581	// HasSpikesAndDips: If true, spikes_and_dips is a part of time series
582	// decomposition result.
583	HasSpikesAndDips bool `json:"hasSpikesAndDips,omitempty"`
584
585	// HasStepChanges: If true, step_changes is a part of time series
586	// decomposition result.
587	HasStepChanges bool `json:"hasStepChanges,omitempty"`
588
589	// NonSeasonalOrder: Non-seasonal order.
590	NonSeasonalOrder *ArimaOrder `json:"nonSeasonalOrder,omitempty"`
591
592	// SeasonalPeriods: Seasonal periods. Repeated because multiple periods
593	// are supported for one time series.
594	//
595	// Possible values:
596	//   "SEASONAL_PERIOD_TYPE_UNSPECIFIED"
597	//   "NO_SEASONALITY" - No seasonality
598	//   "DAILY" - Daily period, 24 hours.
599	//   "WEEKLY" - Weekly period, 7 days.
600	//   "MONTHLY" - Monthly period, 30 days or irregular.
601	//   "QUARTERLY" - Quarterly period, 90 days or irregular.
602	//   "YEARLY" - Yearly period, 365 days or irregular.
603	SeasonalPeriods []string `json:"seasonalPeriods,omitempty"`
604
605	// TimeSeriesId: The time_series_id value for this time series. It will
606	// be one of the unique values from the time_series_id_column specified
607	// during ARIMA model training. Only present when time_series_id_column
608	// training option was used.
609	TimeSeriesId string `json:"timeSeriesId,omitempty"`
610
611	// TimeSeriesIds: The tuple of time_series_ids identifying this time
612	// series. It will be one of the unique tuples of values present in the
613	// time_series_id_columns specified during ARIMA model training. Only
614	// present when time_series_id_columns training option was used and the
615	// order of values here are same as the order of time_series_id_columns.
616	TimeSeriesIds []string `json:"timeSeriesIds,omitempty"`
617
618	// ForceSendFields is a list of field names (e.g. "ArimaCoefficients")
619	// to unconditionally include in API requests. By default, fields with
620	// empty values are omitted from API requests. However, any non-pointer,
621	// non-interface field appearing in ForceSendFields will be sent to the
622	// server regardless of whether the field is empty or not. This may be
623	// used to include empty fields in Patch requests.
624	ForceSendFields []string `json:"-"`
625
626	// NullFields is a list of field names (e.g. "ArimaCoefficients") to
627	// include in API requests with the JSON null value. By default, fields
628	// with empty values are omitted from API requests. However, any field
629	// with an empty value appearing in NullFields will be sent to the
630	// server as null. It is an error if a field in this list has a
631	// non-empty value. This may be used to include null fields in Patch
632	// requests.
633	NullFields []string `json:"-"`
634}
635
636func (s *ArimaModelInfo) MarshalJSON() ([]byte, error) {
637	type NoMethod ArimaModelInfo
638	raw := NoMethod(*s)
639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
640}
641
642// ArimaOrder: Arima order, can be used for both non-seasonal and
643// seasonal parts.
644type ArimaOrder struct {
645	// D: Order of the differencing part.
646	D int64 `json:"d,omitempty,string"`
647
648	// P: Order of the autoregressive part.
649	P int64 `json:"p,omitempty,string"`
650
651	// Q: Order of the moving-average part.
652	Q int64 `json:"q,omitempty,string"`
653
654	// ForceSendFields is a list of field names (e.g. "D") to
655	// unconditionally include in API requests. By default, fields with
656	// empty values are omitted from API requests. However, any non-pointer,
657	// non-interface field appearing in ForceSendFields will be sent to the
658	// server regardless of whether the field is empty or not. This may be
659	// used to include empty fields in Patch requests.
660	ForceSendFields []string `json:"-"`
661
662	// NullFields is a list of field names (e.g. "D") to include in API
663	// requests with the JSON null value. By default, fields with empty
664	// values are omitted from API requests. However, any field with an
665	// empty value appearing in NullFields will be sent to the server as
666	// null. It is an error if a field in this list has a non-empty value.
667	// This may be used to include null fields in Patch requests.
668	NullFields []string `json:"-"`
669}
670
671func (s *ArimaOrder) MarshalJSON() ([]byte, error) {
672	type NoMethod ArimaOrder
673	raw := NoMethod(*s)
674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
675}
676
677// ArimaResult: (Auto-)arima fitting result. Wrap everything in
678// ArimaResult for easier refactoring if we want to use model-specific
679// iteration results.
680type ArimaResult struct {
681	// ArimaModelInfo: This message is repeated because there are multiple
682	// arima models fitted in auto-arima. For non-auto-arima model, its size
683	// is one.
684	ArimaModelInfo []*ArimaModelInfo `json:"arimaModelInfo,omitempty"`
685
686	// SeasonalPeriods: Seasonal periods. Repeated because multiple periods
687	// are supported for one time series.
688	//
689	// Possible values:
690	//   "SEASONAL_PERIOD_TYPE_UNSPECIFIED"
691	//   "NO_SEASONALITY" - No seasonality
692	//   "DAILY" - Daily period, 24 hours.
693	//   "WEEKLY" - Weekly period, 7 days.
694	//   "MONTHLY" - Monthly period, 30 days or irregular.
695	//   "QUARTERLY" - Quarterly period, 90 days or irregular.
696	//   "YEARLY" - Yearly period, 365 days or irregular.
697	SeasonalPeriods []string `json:"seasonalPeriods,omitempty"`
698
699	// ForceSendFields is a list of field names (e.g. "ArimaModelInfo") to
700	// unconditionally include in API requests. By default, fields with
701	// empty values are omitted from API requests. However, any non-pointer,
702	// non-interface field appearing in ForceSendFields will be sent to the
703	// server regardless of whether the field is empty or not. This may be
704	// used to include empty fields in Patch requests.
705	ForceSendFields []string `json:"-"`
706
707	// NullFields is a list of field names (e.g. "ArimaModelInfo") to
708	// include in API requests with the JSON null value. By default, fields
709	// with empty values are omitted from API requests. However, any field
710	// with an empty value appearing in NullFields will be sent to the
711	// server as null. It is an error if a field in this list has a
712	// non-empty value. This may be used to include null fields in Patch
713	// requests.
714	NullFields []string `json:"-"`
715}
716
717func (s *ArimaResult) MarshalJSON() ([]byte, error) {
718	type NoMethod ArimaResult
719	raw := NoMethod(*s)
720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
721}
722
723// ArimaSingleModelForecastingMetrics: Model evaluation metrics for a
724// single ARIMA forecasting model.
725type ArimaSingleModelForecastingMetrics struct {
726	// ArimaFittingMetrics: Arima fitting metrics.
727	ArimaFittingMetrics *ArimaFittingMetrics `json:"arimaFittingMetrics,omitempty"`
728
729	// HasDrift: Is arima model fitted with drift or not. It is always false
730	// when d is not 1.
731	HasDrift bool `json:"hasDrift,omitempty"`
732
733	// HasHolidayEffect: If true, holiday_effect is a part of time series
734	// decomposition result.
735	HasHolidayEffect bool `json:"hasHolidayEffect,omitempty"`
736
737	// HasSpikesAndDips: If true, spikes_and_dips is a part of time series
738	// decomposition result.
739	HasSpikesAndDips bool `json:"hasSpikesAndDips,omitempty"`
740
741	// HasStepChanges: If true, step_changes is a part of time series
742	// decomposition result.
743	HasStepChanges bool `json:"hasStepChanges,omitempty"`
744
745	// NonSeasonalOrder: Non-seasonal order.
746	NonSeasonalOrder *ArimaOrder `json:"nonSeasonalOrder,omitempty"`
747
748	// SeasonalPeriods: Seasonal periods. Repeated because multiple periods
749	// are supported for one time series.
750	//
751	// Possible values:
752	//   "SEASONAL_PERIOD_TYPE_UNSPECIFIED"
753	//   "NO_SEASONALITY" - No seasonality
754	//   "DAILY" - Daily period, 24 hours.
755	//   "WEEKLY" - Weekly period, 7 days.
756	//   "MONTHLY" - Monthly period, 30 days or irregular.
757	//   "QUARTERLY" - Quarterly period, 90 days or irregular.
758	//   "YEARLY" - Yearly period, 365 days or irregular.
759	SeasonalPeriods []string `json:"seasonalPeriods,omitempty"`
760
761	// TimeSeriesId: The time_series_id value for this time series. It will
762	// be one of the unique values from the time_series_id_column specified
763	// during ARIMA model training. Only present when time_series_id_column
764	// training option was used.
765	TimeSeriesId string `json:"timeSeriesId,omitempty"`
766
767	// TimeSeriesIds: The tuple of time_series_ids identifying this time
768	// series. It will be one of the unique tuples of values present in the
769	// time_series_id_columns specified during ARIMA model training. Only
770	// present when time_series_id_columns training option was used and the
771	// order of values here are same as the order of time_series_id_columns.
772	TimeSeriesIds []string `json:"timeSeriesIds,omitempty"`
773
774	// ForceSendFields is a list of field names (e.g. "ArimaFittingMetrics")
775	// to unconditionally include in API requests. By default, fields with
776	// empty values are omitted from API requests. However, any non-pointer,
777	// non-interface field appearing in ForceSendFields will be sent to the
778	// server regardless of whether the field is empty or not. This may be
779	// used to include empty fields in Patch requests.
780	ForceSendFields []string `json:"-"`
781
782	// NullFields is a list of field names (e.g. "ArimaFittingMetrics") to
783	// include in API requests with the JSON null value. By default, fields
784	// with empty values are omitted from API requests. However, any field
785	// with an empty value appearing in NullFields will be sent to the
786	// server as null. It is an error if a field in this list has a
787	// non-empty value. This may be used to include null fields in Patch
788	// requests.
789	NullFields []string `json:"-"`
790}
791
792func (s *ArimaSingleModelForecastingMetrics) MarshalJSON() ([]byte, error) {
793	type NoMethod ArimaSingleModelForecastingMetrics
794	raw := NoMethod(*s)
795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
796}
797
798// AuditConfig: Specifies the audit configuration for a service. The
799// configuration determines which permission types are logged, and what
800// identities, if any, are exempted from logging. An AuditConfig must
801// have one or more AuditLogConfigs. If there are AuditConfigs for both
802// `allServices` and a specific service, the union of the two
803// AuditConfigs is used for that service: the log_types specified in
804// each AuditConfig are enabled, and the exempted_members in each
805// AuditLogConfig are exempted. Example Policy with multiple
806// AuditConfigs: { "audit_configs": [ { "service": "allServices",
807// "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members":
808// [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
809// "log_type": "ADMIN_READ" } ] }, { "service":
810// "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
811// "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
812// "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy
813// enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts
814// jose@example.com from DATA_READ logging, and aliya@example.com from
815// DATA_WRITE logging.
816type AuditConfig struct {
817	// AuditLogConfigs: The configuration for logging of each type of
818	// permission.
819	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
820
821	// Service: Specifies a service that will be enabled for audit logging.
822	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
823	// `allServices` is a special value that covers all services.
824	Service string `json:"service,omitempty"`
825
826	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
827	// unconditionally include in API requests. By default, fields with
828	// empty values are omitted from API requests. However, any non-pointer,
829	// non-interface field appearing in ForceSendFields will be sent to the
830	// server regardless of whether the field is empty or not. This may be
831	// used to include empty fields in Patch requests.
832	ForceSendFields []string `json:"-"`
833
834	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
835	// include in API requests with the JSON null value. By default, fields
836	// with empty values are omitted from API requests. However, any field
837	// with an empty value appearing in NullFields will be sent to the
838	// server as null. It is an error if a field in this list has a
839	// non-empty value. This may be used to include null fields in Patch
840	// requests.
841	NullFields []string `json:"-"`
842}
843
844func (s *AuditConfig) MarshalJSON() ([]byte, error) {
845	type NoMethod AuditConfig
846	raw := NoMethod(*s)
847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
848}
849
850// AuditLogConfig: Provides the configuration for logging a type of
851// permissions. Example: { "audit_log_configs": [ { "log_type":
852// "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, {
853// "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and
854// 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ
855// logging.
856type AuditLogConfig struct {
857	// ExemptedMembers: Specifies the identities that do not cause logging
858	// for this type of permission. Follows the same format of
859	// Binding.members.
860	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
861
862	// LogType: The log type that this config enables.
863	//
864	// Possible values:
865	//   "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this.
866	//   "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy
867	//   "DATA_WRITE" - Data writes. Example: CloudSQL Users create
868	//   "DATA_READ" - Data reads. Example: CloudSQL Users list
869	LogType string `json:"logType,omitempty"`
870
871	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
872	// unconditionally include in API requests. By default, fields with
873	// empty values are omitted from API requests. However, any non-pointer,
874	// non-interface field appearing in ForceSendFields will be sent to the
875	// server regardless of whether the field is empty or not. This may be
876	// used to include empty fields in Patch requests.
877	ForceSendFields []string `json:"-"`
878
879	// NullFields is a list of field names (e.g. "ExemptedMembers") to
880	// include in API requests with the JSON null value. By default, fields
881	// with empty values are omitted from API requests. However, any field
882	// with an empty value appearing in NullFields will be sent to the
883	// server as null. It is an error if a field in this list has a
884	// non-empty value. This may be used to include null fields in Patch
885	// requests.
886	NullFields []string `json:"-"`
887}
888
889func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
890	type NoMethod AuditLogConfig
891	raw := NoMethod(*s)
892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
893}
894
895type BigQueryModelTraining struct {
896	// CurrentIteration: [Output-only, Beta] Index of current ML training
897	// iteration. Updated during create model query job to show job
898	// progress.
899	CurrentIteration int64 `json:"currentIteration,omitempty"`
900
901	// ExpectedTotalIterations: [Output-only, Beta] Expected number of
902	// iterations for the create model query job specified as num_iterations
903	// in the input query. The actual total number of iterations may be less
904	// than this number due to early stop.
905	ExpectedTotalIterations int64 `json:"expectedTotalIterations,omitempty,string"`
906
907	// ForceSendFields is a list of field names (e.g. "CurrentIteration") to
908	// unconditionally include in API requests. By default, fields with
909	// empty values are omitted from API requests. However, any non-pointer,
910	// non-interface field appearing in ForceSendFields will be sent to the
911	// server regardless of whether the field is empty or not. This may be
912	// used to include empty fields in Patch requests.
913	ForceSendFields []string `json:"-"`
914
915	// NullFields is a list of field names (e.g. "CurrentIteration") to
916	// include in API requests with the JSON null value. By default, fields
917	// with empty values are omitted from API requests. However, any field
918	// with an empty value appearing in NullFields will be sent to the
919	// server as null. It is an error if a field in this list has a
920	// non-empty value. This may be used to include null fields in Patch
921	// requests.
922	NullFields []string `json:"-"`
923}
924
925func (s *BigQueryModelTraining) MarshalJSON() ([]byte, error) {
926	type NoMethod BigQueryModelTraining
927	raw := NoMethod(*s)
928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
929}
930
931type BigtableColumn struct {
932	// Encoding: [Optional] The encoding of the values when the type is not
933	// STRING. Acceptable encoding values are: TEXT - indicates values are
934	// alphanumeric text strings. BINARY - indicates values are encoded
935	// using HBase Bytes.toBytes family of functions. 'encoding' can also be
936	// set at the column family level. However, the setting at this level
937	// takes precedence if 'encoding' is set at both levels.
938	Encoding string `json:"encoding,omitempty"`
939
940	// FieldName: [Optional] If the qualifier is not a valid BigQuery field
941	// identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid
942	// identifier must be provided as the column field name and is used as
943	// field name in queries.
944	FieldName string `json:"fieldName,omitempty"`
945
946	// OnlyReadLatest: [Optional] If this is set, only the latest version of
947	// value in this column are exposed. 'onlyReadLatest' can also be set at
948	// the column family level. However, the setting at this level takes
949	// precedence if 'onlyReadLatest' is set at both levels.
950	OnlyReadLatest bool `json:"onlyReadLatest,omitempty"`
951
952	// QualifierEncoded: [Required] Qualifier of the column. Columns in the
953	// parent column family that has this exact qualifier are exposed as .
954	// field. If the qualifier is valid UTF-8 string, it can be specified in
955	// the qualifier_string field. Otherwise, a base-64 encoded value must
956	// be set to qualifier_encoded. The column field name is the same as the
957	// column qualifier. However, if the qualifier is not a valid BigQuery
958	// field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid
959	// identifier must be provided as field_name.
960	QualifierEncoded string `json:"qualifierEncoded,omitempty"`
961
962	QualifierString string `json:"qualifierString,omitempty"`
963
964	// Type: [Optional] The type to convert the value in cells of this
965	// column. The values are expected to be encoded using HBase
966	// Bytes.toBytes function when using the BINARY encoding value.
967	// Following BigQuery types are allowed (case-sensitive) - BYTES STRING
968	// INTEGER FLOAT BOOLEAN Default type is BYTES. 'type' can also be set
969	// at the column family level. However, the setting at this level takes
970	// precedence if 'type' is set at both levels.
971	Type string `json:"type,omitempty"`
972
973	// ForceSendFields is a list of field names (e.g. "Encoding") to
974	// unconditionally include in API requests. By default, fields with
975	// empty values are omitted from API requests. However, any non-pointer,
976	// non-interface field appearing in ForceSendFields will be sent to the
977	// server regardless of whether the field is empty or not. This may be
978	// used to include empty fields in Patch requests.
979	ForceSendFields []string `json:"-"`
980
981	// NullFields is a list of field names (e.g. "Encoding") to include in
982	// API requests with the JSON null value. By default, fields with empty
983	// values are omitted from API requests. However, any field with an
984	// empty value appearing in NullFields will be sent to the server as
985	// null. It is an error if a field in this list has a non-empty value.
986	// This may be used to include null fields in Patch requests.
987	NullFields []string `json:"-"`
988}
989
990func (s *BigtableColumn) MarshalJSON() ([]byte, error) {
991	type NoMethod BigtableColumn
992	raw := NoMethod(*s)
993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
994}
995
996type BigtableColumnFamily struct {
997	// Columns: [Optional] Lists of columns that should be exposed as
998	// individual fields as opposed to a list of (column name, value) pairs.
999	// All columns whose qualifier matches a qualifier in this list can be
1000	// accessed as .. Other columns can be accessed as a list through
1001	// .Column field.
1002	Columns []*BigtableColumn `json:"columns,omitempty"`
1003
1004	// Encoding: [Optional] The encoding of the values when the type is not
1005	// STRING. Acceptable encoding values are: TEXT - indicates values are
1006	// alphanumeric text strings. BINARY - indicates values are encoded
1007	// using HBase Bytes.toBytes family of functions. This can be overridden
1008	// for a specific column by listing that column in 'columns' and
1009	// specifying an encoding for it.
1010	Encoding string `json:"encoding,omitempty"`
1011
1012	// FamilyId: Identifier of the column family.
1013	FamilyId string `json:"familyId,omitempty"`
1014
1015	// OnlyReadLatest: [Optional] If this is set only the latest version of
1016	// value are exposed for all columns in this column family. This can be
1017	// overridden for a specific column by listing that column in 'columns'
1018	// and specifying a different setting for that column.
1019	OnlyReadLatest bool `json:"onlyReadLatest,omitempty"`
1020
1021	// Type: [Optional] The type to convert the value in cells of this
1022	// column family. The values are expected to be encoded using HBase
1023	// Bytes.toBytes function when using the BINARY encoding value.
1024	// Following BigQuery types are allowed (case-sensitive) - BYTES STRING
1025	// INTEGER FLOAT BOOLEAN Default type is BYTES. This can be overridden
1026	// for a specific column by listing that column in 'columns' and
1027	// specifying a type for it.
1028	Type string `json:"type,omitempty"`
1029
1030	// ForceSendFields is a list of field names (e.g. "Columns") to
1031	// unconditionally include in API requests. By default, fields with
1032	// empty values are omitted from API requests. However, any non-pointer,
1033	// non-interface field appearing in ForceSendFields will be sent to the
1034	// server regardless of whether the field is empty or not. This may be
1035	// used to include empty fields in Patch requests.
1036	ForceSendFields []string `json:"-"`
1037
1038	// NullFields is a list of field names (e.g. "Columns") to include in
1039	// API requests with the JSON null value. By default, fields with empty
1040	// values are omitted from API requests. However, any field with an
1041	// empty value appearing in NullFields will be sent to the server as
1042	// null. It is an error if a field in this list has a non-empty value.
1043	// This may be used to include null fields in Patch requests.
1044	NullFields []string `json:"-"`
1045}
1046
1047func (s *BigtableColumnFamily) MarshalJSON() ([]byte, error) {
1048	type NoMethod BigtableColumnFamily
1049	raw := NoMethod(*s)
1050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1051}
1052
1053type BigtableOptions struct {
1054	// ColumnFamilies: [Optional] List of column families to expose in the
1055	// table schema along with their types. This list restricts the column
1056	// families that can be referenced in queries and specifies their value
1057	// types. You can use this list to do type conversions - see the 'type'
1058	// field for more details. If you leave this list empty, all column
1059	// families are present in the table schema and their values are read as
1060	// BYTES. During a query only the column families referenced in that
1061	// query are read from Bigtable.
1062	ColumnFamilies []*BigtableColumnFamily `json:"columnFamilies,omitempty"`
1063
1064	// IgnoreUnspecifiedColumnFamilies: [Optional] If field is true, then
1065	// the column families that are not specified in columnFamilies list are
1066	// not exposed in the table schema. Otherwise, they are read with BYTES
1067	// type values. The default value is false.
1068	IgnoreUnspecifiedColumnFamilies bool `json:"ignoreUnspecifiedColumnFamilies,omitempty"`
1069
1070	// ReadRowkeyAsString: [Optional] If field is true, then the rowkey
1071	// column families will be read and converted to string. Otherwise they
1072	// are read with BYTES type values and users need to manually cast them
1073	// with CAST if necessary. The default value is false.
1074	ReadRowkeyAsString bool `json:"readRowkeyAsString,omitempty"`
1075
1076	// ForceSendFields is a list of field names (e.g. "ColumnFamilies") to
1077	// unconditionally include in API requests. By default, fields with
1078	// empty values are omitted from API requests. However, any non-pointer,
1079	// non-interface field appearing in ForceSendFields will be sent to the
1080	// server regardless of whether the field is empty or not. This may be
1081	// used to include empty fields in Patch requests.
1082	ForceSendFields []string `json:"-"`
1083
1084	// NullFields is a list of field names (e.g. "ColumnFamilies") to
1085	// include in API requests with the JSON null value. By default, fields
1086	// with empty values are omitted from API requests. However, any field
1087	// with an empty value appearing in NullFields will be sent to the
1088	// server as null. It is an error if a field in this list has a
1089	// non-empty value. This may be used to include null fields in Patch
1090	// requests.
1091	NullFields []string `json:"-"`
1092}
1093
1094func (s *BigtableOptions) MarshalJSON() ([]byte, error) {
1095	type NoMethod BigtableOptions
1096	raw := NoMethod(*s)
1097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1098}
1099
1100// BinaryClassificationMetrics: Evaluation metrics for binary
1101// classification/classifier models.
1102type BinaryClassificationMetrics struct {
1103	// AggregateClassificationMetrics: Aggregate classification metrics.
1104	AggregateClassificationMetrics *AggregateClassificationMetrics `json:"aggregateClassificationMetrics,omitempty"`
1105
1106	// BinaryConfusionMatrixList: Binary confusion matrix at multiple
1107	// thresholds.
1108	BinaryConfusionMatrixList []*BinaryConfusionMatrix `json:"binaryConfusionMatrixList,omitempty"`
1109
1110	// NegativeLabel: Label representing the negative class.
1111	NegativeLabel string `json:"negativeLabel,omitempty"`
1112
1113	// PositiveLabel: Label representing the positive class.
1114	PositiveLabel string `json:"positiveLabel,omitempty"`
1115
1116	// ForceSendFields is a list of field names (e.g.
1117	// "AggregateClassificationMetrics") to unconditionally include in API
1118	// requests. By default, fields with empty values are omitted from API
1119	// requests. However, any non-pointer, non-interface field appearing in
1120	// ForceSendFields will be sent to the server regardless of whether the
1121	// field is empty or not. This may be used to include empty fields in
1122	// Patch requests.
1123	ForceSendFields []string `json:"-"`
1124
1125	// NullFields is a list of field names (e.g.
1126	// "AggregateClassificationMetrics") to include in API requests with the
1127	// JSON null value. By default, fields with empty values are omitted
1128	// from API requests. However, any field with an empty value appearing
1129	// in NullFields will be sent to the server as null. It is an error if a
1130	// field in this list has a non-empty value. This may be used to include
1131	// null fields in Patch requests.
1132	NullFields []string `json:"-"`
1133}
1134
1135func (s *BinaryClassificationMetrics) MarshalJSON() ([]byte, error) {
1136	type NoMethod BinaryClassificationMetrics
1137	raw := NoMethod(*s)
1138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1139}
1140
1141// BinaryConfusionMatrix: Confusion matrix for binary classification
1142// models.
1143type BinaryConfusionMatrix struct {
1144	// Accuracy: The fraction of predictions given the correct label.
1145	Accuracy float64 `json:"accuracy,omitempty"`
1146
1147	// F1Score: The equally weighted average of recall and precision.
1148	F1Score float64 `json:"f1Score,omitempty"`
1149
1150	// FalseNegatives: Number of false samples predicted as false.
1151	FalseNegatives int64 `json:"falseNegatives,omitempty,string"`
1152
1153	// FalsePositives: Number of false samples predicted as true.
1154	FalsePositives int64 `json:"falsePositives,omitempty,string"`
1155
1156	// PositiveClassThreshold: Threshold value used when computing each of
1157	// the following metric.
1158	PositiveClassThreshold float64 `json:"positiveClassThreshold,omitempty"`
1159
1160	// Precision: The fraction of actual positive predictions that had
1161	// positive actual labels.
1162	Precision float64 `json:"precision,omitempty"`
1163
1164	// Recall: The fraction of actual positive labels that were given a
1165	// positive prediction.
1166	Recall float64 `json:"recall,omitempty"`
1167
1168	// TrueNegatives: Number of true samples predicted as false.
1169	TrueNegatives int64 `json:"trueNegatives,omitempty,string"`
1170
1171	// TruePositives: Number of true samples predicted as true.
1172	TruePositives int64 `json:"truePositives,omitempty,string"`
1173
1174	// ForceSendFields is a list of field names (e.g. "Accuracy") to
1175	// unconditionally include in API requests. By default, fields with
1176	// empty values are omitted from API requests. However, any non-pointer,
1177	// non-interface field appearing in ForceSendFields will be sent to the
1178	// server regardless of whether the field is empty or not. This may be
1179	// used to include empty fields in Patch requests.
1180	ForceSendFields []string `json:"-"`
1181
1182	// NullFields is a list of field names (e.g. "Accuracy") to include in
1183	// API requests with the JSON null value. By default, fields with empty
1184	// values are omitted from API requests. However, any field with an
1185	// empty value appearing in NullFields will be sent to the server as
1186	// null. It is an error if a field in this list has a non-empty value.
1187	// This may be used to include null fields in Patch requests.
1188	NullFields []string `json:"-"`
1189}
1190
1191func (s *BinaryConfusionMatrix) MarshalJSON() ([]byte, error) {
1192	type NoMethod BinaryConfusionMatrix
1193	raw := NoMethod(*s)
1194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1195}
1196
1197func (s *BinaryConfusionMatrix) UnmarshalJSON(data []byte) error {
1198	type NoMethod BinaryConfusionMatrix
1199	var s1 struct {
1200		Accuracy               gensupport.JSONFloat64 `json:"accuracy"`
1201		F1Score                gensupport.JSONFloat64 `json:"f1Score"`
1202		PositiveClassThreshold gensupport.JSONFloat64 `json:"positiveClassThreshold"`
1203		Precision              gensupport.JSONFloat64 `json:"precision"`
1204		Recall                 gensupport.JSONFloat64 `json:"recall"`
1205		*NoMethod
1206	}
1207	s1.NoMethod = (*NoMethod)(s)
1208	if err := json.Unmarshal(data, &s1); err != nil {
1209		return err
1210	}
1211	s.Accuracy = float64(s1.Accuracy)
1212	s.F1Score = float64(s1.F1Score)
1213	s.PositiveClassThreshold = float64(s1.PositiveClassThreshold)
1214	s.Precision = float64(s1.Precision)
1215	s.Recall = float64(s1.Recall)
1216	return nil
1217}
1218
1219// Binding: Associates `members` with a `role`.
1220type Binding struct {
1221	// Condition: The condition that is associated with this binding. If the
1222	// condition evaluates to `true`, then this binding applies to the
1223	// current request. If the condition evaluates to `false`, then this
1224	// binding does not apply to the current request. However, a different
1225	// role binding might grant the same role to one or more of the members
1226	// in this binding. To learn which resources support conditions in their
1227	// IAM policies, see the IAM documentation
1228	// (https://cloud.google.com/iam/help/conditions/resource-policies).
1229	Condition *Expr `json:"condition,omitempty"`
1230
1231	// Members: Specifies the identities requesting access for a Cloud
1232	// Platform resource. `members` can have the following values: *
1233	// `allUsers`: A special identifier that represents anyone who is on the
1234	// internet; with or without a Google account. *
1235	// `allAuthenticatedUsers`: A special identifier that represents anyone
1236	// who is authenticated with a Google account or a service account. *
1237	// `user:{emailid}`: An email address that represents a specific Google
1238	// account. For example, `alice@example.com` . *
1239	// `serviceAccount:{emailid}`: An email address that represents a
1240	// service account. For example,
1241	// `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An
1242	// email address that represents a Google group. For example,
1243	// `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An
1244	// email address (plus unique identifier) representing a user that has
1245	// been recently deleted. For example,
1246	// `alice@example.com?uid=123456789012345678901`. If the user is
1247	// recovered, this value reverts to `user:{emailid}` and the recovered
1248	// user retains the role in the binding. *
1249	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
1250	// (plus unique identifier) representing a service account that has been
1251	// recently deleted. For example,
1252	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
1253	// If the service account is undeleted, this value reverts to
1254	// `serviceAccount:{emailid}` and the undeleted service account retains
1255	// the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`:
1256	// An email address (plus unique identifier) representing a Google group
1257	// that has been recently deleted. For example,
1258	// `admins@example.com?uid=123456789012345678901`. If the group is
1259	// recovered, this value reverts to `group:{emailid}` and the recovered
1260	// group retains the role in the binding. * `domain:{domain}`: The G
1261	// Suite domain (primary) that represents all the users of that domain.
1262	// For example, `google.com` or `example.com`.
1263	Members []string `json:"members,omitempty"`
1264
1265	// Role: Role that is assigned to `members`. For example,
1266	// `roles/viewer`, `roles/editor`, or `roles/owner`.
1267	Role string `json:"role,omitempty"`
1268
1269	// ForceSendFields is a list of field names (e.g. "Condition") to
1270	// unconditionally include in API requests. By default, fields with
1271	// empty values are omitted from API requests. However, any non-pointer,
1272	// non-interface field appearing in ForceSendFields will be sent to the
1273	// server regardless of whether the field is empty or not. This may be
1274	// used to include empty fields in Patch requests.
1275	ForceSendFields []string `json:"-"`
1276
1277	// NullFields is a list of field names (e.g. "Condition") to include in
1278	// API requests with the JSON null value. By default, fields with empty
1279	// values are omitted from API requests. However, any field with an
1280	// empty value appearing in NullFields will be sent to the server as
1281	// null. It is an error if a field in this list has a non-empty value.
1282	// This may be used to include null fields in Patch requests.
1283	NullFields []string `json:"-"`
1284}
1285
1286func (s *Binding) MarshalJSON() ([]byte, error) {
1287	type NoMethod Binding
1288	raw := NoMethod(*s)
1289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1290}
1291
1292type BqmlIterationResult struct {
1293	// DurationMs: [Output-only, Beta] Time taken to run the training
1294	// iteration in milliseconds.
1295	DurationMs int64 `json:"durationMs,omitempty,string"`
1296
1297	// EvalLoss: [Output-only, Beta] Eval loss computed on the eval data at
1298	// the end of the iteration. The eval loss is used for early stopping to
1299	// avoid overfitting. No eval loss if eval_split_method option is
1300	// specified as no_split or auto_split with input data size less than
1301	// 500 rows.
1302	EvalLoss float64 `json:"evalLoss,omitempty"`
1303
1304	// Index: [Output-only, Beta] Index of the ML training iteration,
1305	// starting from zero for each training run.
1306	Index int64 `json:"index,omitempty"`
1307
1308	// LearnRate: [Output-only, Beta] Learning rate used for this iteration,
1309	// it varies for different training iterations if learn_rate_strategy
1310	// option is not constant.
1311	LearnRate float64 `json:"learnRate,omitempty"`
1312
1313	// TrainingLoss: [Output-only, Beta] Training loss computed on the
1314	// training data at the end of the iteration. The training loss function
1315	// is defined by model type.
1316	TrainingLoss float64 `json:"trainingLoss,omitempty"`
1317
1318	// ForceSendFields is a list of field names (e.g. "DurationMs") to
1319	// unconditionally include in API requests. By default, fields with
1320	// empty values are omitted from API requests. However, any non-pointer,
1321	// non-interface field appearing in ForceSendFields will be sent to the
1322	// server regardless of whether the field is empty or not. This may be
1323	// used to include empty fields in Patch requests.
1324	ForceSendFields []string `json:"-"`
1325
1326	// NullFields is a list of field names (e.g. "DurationMs") to include in
1327	// API requests with the JSON null value. By default, fields with empty
1328	// values are omitted from API requests. However, any field with an
1329	// empty value appearing in NullFields will be sent to the server as
1330	// null. It is an error if a field in this list has a non-empty value.
1331	// This may be used to include null fields in Patch requests.
1332	NullFields []string `json:"-"`
1333}
1334
1335func (s *BqmlIterationResult) MarshalJSON() ([]byte, error) {
1336	type NoMethod BqmlIterationResult
1337	raw := NoMethod(*s)
1338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1339}
1340
1341func (s *BqmlIterationResult) UnmarshalJSON(data []byte) error {
1342	type NoMethod BqmlIterationResult
1343	var s1 struct {
1344		EvalLoss     gensupport.JSONFloat64 `json:"evalLoss"`
1345		LearnRate    gensupport.JSONFloat64 `json:"learnRate"`
1346		TrainingLoss gensupport.JSONFloat64 `json:"trainingLoss"`
1347		*NoMethod
1348	}
1349	s1.NoMethod = (*NoMethod)(s)
1350	if err := json.Unmarshal(data, &s1); err != nil {
1351		return err
1352	}
1353	s.EvalLoss = float64(s1.EvalLoss)
1354	s.LearnRate = float64(s1.LearnRate)
1355	s.TrainingLoss = float64(s1.TrainingLoss)
1356	return nil
1357}
1358
1359type BqmlTrainingRun struct {
1360	// IterationResults: [Output-only, Beta] List of each iteration results.
1361	IterationResults []*BqmlIterationResult `json:"iterationResults,omitempty"`
1362
1363	// StartTime: [Output-only, Beta] Training run start time in
1364	// milliseconds since the epoch.
1365	StartTime string `json:"startTime,omitempty"`
1366
1367	// State: [Output-only, Beta] Different state applicable for a training
1368	// run. IN PROGRESS: Training run is in progress. FAILED: Training run
1369	// ended due to a non-retryable failure. SUCCEEDED: Training run
1370	// successfully completed. CANCELLED: Training run cancelled by the
1371	// user.
1372	State string `json:"state,omitempty"`
1373
1374	// TrainingOptions: [Output-only, Beta] Training options used by this
1375	// training run. These options are mutable for subsequent training runs.
1376	// Default values are explicitly stored for options not specified in the
1377	// input query of the first training run. For subsequent training runs,
1378	// any option not explicitly specified in the input query will be copied
1379	// from the previous training run.
1380	TrainingOptions *BqmlTrainingRunTrainingOptions `json:"trainingOptions,omitempty"`
1381
1382	// ForceSendFields is a list of field names (e.g. "IterationResults") to
1383	// unconditionally include in API requests. By default, fields with
1384	// empty values are omitted from API requests. However, any non-pointer,
1385	// non-interface field appearing in ForceSendFields will be sent to the
1386	// server regardless of whether the field is empty or not. This may be
1387	// used to include empty fields in Patch requests.
1388	ForceSendFields []string `json:"-"`
1389
1390	// NullFields is a list of field names (e.g. "IterationResults") to
1391	// include in API requests with the JSON null value. By default, fields
1392	// with empty values are omitted from API requests. However, any field
1393	// with an empty value appearing in NullFields will be sent to the
1394	// server as null. It is an error if a field in this list has a
1395	// non-empty value. This may be used to include null fields in Patch
1396	// requests.
1397	NullFields []string `json:"-"`
1398}
1399
1400func (s *BqmlTrainingRun) MarshalJSON() ([]byte, error) {
1401	type NoMethod BqmlTrainingRun
1402	raw := NoMethod(*s)
1403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1404}
1405
1406// BqmlTrainingRunTrainingOptions: [Output-only, Beta] Training options
1407// used by this training run. These options are mutable for subsequent
1408// training runs. Default values are explicitly stored for options not
1409// specified in the input query of the first training run. For
1410// subsequent training runs, any option not explicitly specified in the
1411// input query will be copied from the previous training run.
1412type BqmlTrainingRunTrainingOptions struct {
1413	EarlyStop bool `json:"earlyStop,omitempty"`
1414
1415	L1Reg float64 `json:"l1Reg,omitempty"`
1416
1417	L2Reg float64 `json:"l2Reg,omitempty"`
1418
1419	LearnRate float64 `json:"learnRate,omitempty"`
1420
1421	LearnRateStrategy string `json:"learnRateStrategy,omitempty"`
1422
1423	LineSearchInitLearnRate float64 `json:"lineSearchInitLearnRate,omitempty"`
1424
1425	MaxIteration int64 `json:"maxIteration,omitempty,string"`
1426
1427	MinRelProgress float64 `json:"minRelProgress,omitempty"`
1428
1429	WarmStart bool `json:"warmStart,omitempty"`
1430
1431	// ForceSendFields is a list of field names (e.g. "EarlyStop") to
1432	// unconditionally include in API requests. By default, fields with
1433	// empty values are omitted from API requests. However, any non-pointer,
1434	// non-interface field appearing in ForceSendFields will be sent to the
1435	// server regardless of whether the field is empty or not. This may be
1436	// used to include empty fields in Patch requests.
1437	ForceSendFields []string `json:"-"`
1438
1439	// NullFields is a list of field names (e.g. "EarlyStop") to include in
1440	// API requests with the JSON null value. By default, fields with empty
1441	// values are omitted from API requests. However, any field with an
1442	// empty value appearing in NullFields will be sent to the server as
1443	// null. It is an error if a field in this list has a non-empty value.
1444	// This may be used to include null fields in Patch requests.
1445	NullFields []string `json:"-"`
1446}
1447
1448func (s *BqmlTrainingRunTrainingOptions) MarshalJSON() ([]byte, error) {
1449	type NoMethod BqmlTrainingRunTrainingOptions
1450	raw := NoMethod(*s)
1451	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1452}
1453
1454func (s *BqmlTrainingRunTrainingOptions) UnmarshalJSON(data []byte) error {
1455	type NoMethod BqmlTrainingRunTrainingOptions
1456	var s1 struct {
1457		L1Reg                   gensupport.JSONFloat64 `json:"l1Reg"`
1458		L2Reg                   gensupport.JSONFloat64 `json:"l2Reg"`
1459		LearnRate               gensupport.JSONFloat64 `json:"learnRate"`
1460		LineSearchInitLearnRate gensupport.JSONFloat64 `json:"lineSearchInitLearnRate"`
1461		MinRelProgress          gensupport.JSONFloat64 `json:"minRelProgress"`
1462		*NoMethod
1463	}
1464	s1.NoMethod = (*NoMethod)(s)
1465	if err := json.Unmarshal(data, &s1); err != nil {
1466		return err
1467	}
1468	s.L1Reg = float64(s1.L1Reg)
1469	s.L2Reg = float64(s1.L2Reg)
1470	s.LearnRate = float64(s1.LearnRate)
1471	s.LineSearchInitLearnRate = float64(s1.LineSearchInitLearnRate)
1472	s.MinRelProgress = float64(s1.MinRelProgress)
1473	return nil
1474}
1475
1476// CategoricalValue: Representative value of a categorical feature.
1477type CategoricalValue struct {
1478	// CategoryCounts: Counts of all categories for the categorical feature.
1479	// If there are more than ten categories, we return top ten (by count)
1480	// and return one more CategoryCount with category "_OTHER_" and count
1481	// as aggregate counts of remaining categories.
1482	CategoryCounts []*CategoryCount `json:"categoryCounts,omitempty"`
1483
1484	// ForceSendFields is a list of field names (e.g. "CategoryCounts") to
1485	// unconditionally include in API requests. By default, fields with
1486	// empty values are omitted from API requests. However, any non-pointer,
1487	// non-interface field appearing in ForceSendFields will be sent to the
1488	// server regardless of whether the field is empty or not. This may be
1489	// used to include empty fields in Patch requests.
1490	ForceSendFields []string `json:"-"`
1491
1492	// NullFields is a list of field names (e.g. "CategoryCounts") to
1493	// include in API requests with the JSON null value. By default, fields
1494	// with empty values are omitted from API requests. However, any field
1495	// with an empty value appearing in NullFields will be sent to the
1496	// server as null. It is an error if a field in this list has a
1497	// non-empty value. This may be used to include null fields in Patch
1498	// requests.
1499	NullFields []string `json:"-"`
1500}
1501
1502func (s *CategoricalValue) MarshalJSON() ([]byte, error) {
1503	type NoMethod CategoricalValue
1504	raw := NoMethod(*s)
1505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1506}
1507
1508// CategoryCount: Represents the count of a single category within the
1509// cluster.
1510type CategoryCount struct {
1511	// Category: The name of category.
1512	Category string `json:"category,omitempty"`
1513
1514	// Count: The count of training samples matching the category within the
1515	// cluster.
1516	Count int64 `json:"count,omitempty,string"`
1517
1518	// ForceSendFields is a list of field names (e.g. "Category") to
1519	// unconditionally include in API requests. By default, fields with
1520	// empty values are omitted from API requests. However, any non-pointer,
1521	// non-interface field appearing in ForceSendFields will be sent to the
1522	// server regardless of whether the field is empty or not. This may be
1523	// used to include empty fields in Patch requests.
1524	ForceSendFields []string `json:"-"`
1525
1526	// NullFields is a list of field names (e.g. "Category") to include in
1527	// API requests with the JSON null value. By default, fields with empty
1528	// values are omitted from API requests. However, any field with an
1529	// empty value appearing in NullFields will be sent to the server as
1530	// null. It is an error if a field in this list has a non-empty value.
1531	// This may be used to include null fields in Patch requests.
1532	NullFields []string `json:"-"`
1533}
1534
1535func (s *CategoryCount) MarshalJSON() ([]byte, error) {
1536	type NoMethod CategoryCount
1537	raw := NoMethod(*s)
1538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1539}
1540
1541// Cluster: Message containing the information about one cluster.
1542type Cluster struct {
1543	// CentroidId: Centroid id.
1544	CentroidId int64 `json:"centroidId,omitempty,string"`
1545
1546	// Count: Count of training data rows that were assigned to this
1547	// cluster.
1548	Count int64 `json:"count,omitempty,string"`
1549
1550	// FeatureValues: Values of highly variant features for this cluster.
1551	FeatureValues []*FeatureValue `json:"featureValues,omitempty"`
1552
1553	// ForceSendFields is a list of field names (e.g. "CentroidId") to
1554	// unconditionally include in API requests. By default, fields with
1555	// empty values are omitted from API requests. However, any non-pointer,
1556	// non-interface field appearing in ForceSendFields will be sent to the
1557	// server regardless of whether the field is empty or not. This may be
1558	// used to include empty fields in Patch requests.
1559	ForceSendFields []string `json:"-"`
1560
1561	// NullFields is a list of field names (e.g. "CentroidId") to include in
1562	// API requests with the JSON null value. By default, fields with empty
1563	// values are omitted from API requests. However, any field with an
1564	// empty value appearing in NullFields will be sent to the server as
1565	// null. It is an error if a field in this list has a non-empty value.
1566	// This may be used to include null fields in Patch requests.
1567	NullFields []string `json:"-"`
1568}
1569
1570func (s *Cluster) MarshalJSON() ([]byte, error) {
1571	type NoMethod Cluster
1572	raw := NoMethod(*s)
1573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1574}
1575
1576// ClusterInfo: Information about a single cluster for clustering model.
1577type ClusterInfo struct {
1578	// CentroidId: Centroid id.
1579	CentroidId int64 `json:"centroidId,omitempty,string"`
1580
1581	// ClusterRadius: Cluster radius, the average distance from centroid to
1582	// each point assigned to the cluster.
1583	ClusterRadius float64 `json:"clusterRadius,omitempty"`
1584
1585	// ClusterSize: Cluster size, the total number of points assigned to the
1586	// cluster.
1587	ClusterSize int64 `json:"clusterSize,omitempty,string"`
1588
1589	// ForceSendFields is a list of field names (e.g. "CentroidId") to
1590	// unconditionally include in API requests. By default, fields with
1591	// empty values are omitted from API requests. However, any non-pointer,
1592	// non-interface field appearing in ForceSendFields will be sent to the
1593	// server regardless of whether the field is empty or not. This may be
1594	// used to include empty fields in Patch requests.
1595	ForceSendFields []string `json:"-"`
1596
1597	// NullFields is a list of field names (e.g. "CentroidId") to include in
1598	// API requests with the JSON null value. By default, fields with empty
1599	// values are omitted from API requests. However, any field with an
1600	// empty value appearing in NullFields will be sent to the server as
1601	// null. It is an error if a field in this list has a non-empty value.
1602	// This may be used to include null fields in Patch requests.
1603	NullFields []string `json:"-"`
1604}
1605
1606func (s *ClusterInfo) MarshalJSON() ([]byte, error) {
1607	type NoMethod ClusterInfo
1608	raw := NoMethod(*s)
1609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1610}
1611
1612func (s *ClusterInfo) UnmarshalJSON(data []byte) error {
1613	type NoMethod ClusterInfo
1614	var s1 struct {
1615		ClusterRadius gensupport.JSONFloat64 `json:"clusterRadius"`
1616		*NoMethod
1617	}
1618	s1.NoMethod = (*NoMethod)(s)
1619	if err := json.Unmarshal(data, &s1); err != nil {
1620		return err
1621	}
1622	s.ClusterRadius = float64(s1.ClusterRadius)
1623	return nil
1624}
1625
1626type Clustering struct {
1627	// Fields: [Repeated] One or more fields on which data should be
1628	// clustered. Only top-level, non-repeated, simple-type fields are
1629	// supported. When you cluster a table using multiple columns, the order
1630	// of columns you specify is important. The order of the specified
1631	// columns determines the sort order of the data.
1632	Fields []string `json:"fields,omitempty"`
1633
1634	// ForceSendFields is a list of field names (e.g. "Fields") to
1635	// unconditionally include in API requests. By default, fields with
1636	// empty values are omitted from API requests. However, any non-pointer,
1637	// non-interface field appearing in ForceSendFields will be sent to the
1638	// server regardless of whether the field is empty or not. This may be
1639	// used to include empty fields in Patch requests.
1640	ForceSendFields []string `json:"-"`
1641
1642	// NullFields is a list of field names (e.g. "Fields") to include in API
1643	// requests with the JSON null value. By default, fields with empty
1644	// values are omitted from API requests. However, any field with an
1645	// empty value appearing in NullFields will be sent to the server as
1646	// null. It is an error if a field in this list has a non-empty value.
1647	// This may be used to include null fields in Patch requests.
1648	NullFields []string `json:"-"`
1649}
1650
1651func (s *Clustering) MarshalJSON() ([]byte, error) {
1652	type NoMethod Clustering
1653	raw := NoMethod(*s)
1654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1655}
1656
1657// ClusteringMetrics: Evaluation metrics for clustering models.
1658type ClusteringMetrics struct {
1659	// Clusters: Information for all clusters.
1660	Clusters []*Cluster `json:"clusters,omitempty"`
1661
1662	// DaviesBouldinIndex: Davies-Bouldin index.
1663	DaviesBouldinIndex float64 `json:"daviesBouldinIndex,omitempty"`
1664
1665	// MeanSquaredDistance: Mean of squared distances between each sample to
1666	// its cluster centroid.
1667	MeanSquaredDistance float64 `json:"meanSquaredDistance,omitempty"`
1668
1669	// ForceSendFields is a list of field names (e.g. "Clusters") to
1670	// unconditionally include in API requests. By default, fields with
1671	// empty values are omitted from API requests. However, any non-pointer,
1672	// non-interface field appearing in ForceSendFields will be sent to the
1673	// server regardless of whether the field is empty or not. This may be
1674	// used to include empty fields in Patch requests.
1675	ForceSendFields []string `json:"-"`
1676
1677	// NullFields is a list of field names (e.g. "Clusters") to include in
1678	// API requests with the JSON null value. By default, fields with empty
1679	// values are omitted from API requests. However, any field with an
1680	// empty value appearing in NullFields will be sent to the server as
1681	// null. It is an error if a field in this list has a non-empty value.
1682	// This may be used to include null fields in Patch requests.
1683	NullFields []string `json:"-"`
1684}
1685
1686func (s *ClusteringMetrics) MarshalJSON() ([]byte, error) {
1687	type NoMethod ClusteringMetrics
1688	raw := NoMethod(*s)
1689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1690}
1691
1692func (s *ClusteringMetrics) UnmarshalJSON(data []byte) error {
1693	type NoMethod ClusteringMetrics
1694	var s1 struct {
1695		DaviesBouldinIndex  gensupport.JSONFloat64 `json:"daviesBouldinIndex"`
1696		MeanSquaredDistance gensupport.JSONFloat64 `json:"meanSquaredDistance"`
1697		*NoMethod
1698	}
1699	s1.NoMethod = (*NoMethod)(s)
1700	if err := json.Unmarshal(data, &s1); err != nil {
1701		return err
1702	}
1703	s.DaviesBouldinIndex = float64(s1.DaviesBouldinIndex)
1704	s.MeanSquaredDistance = float64(s1.MeanSquaredDistance)
1705	return nil
1706}
1707
1708// ConfusionMatrix: Confusion matrix for multi-class classification
1709// models.
1710type ConfusionMatrix struct {
1711	// ConfidenceThreshold: Confidence threshold used when computing the
1712	// entries of the confusion matrix.
1713	ConfidenceThreshold float64 `json:"confidenceThreshold,omitempty"`
1714
1715	// Rows: One row per actual label.
1716	Rows []*Row `json:"rows,omitempty"`
1717
1718	// ForceSendFields is a list of field names (e.g. "ConfidenceThreshold")
1719	// to unconditionally include in API requests. By default, fields with
1720	// empty values are omitted from API requests. However, any non-pointer,
1721	// non-interface field appearing in ForceSendFields will be sent to the
1722	// server regardless of whether the field is empty or not. This may be
1723	// used to include empty fields in Patch requests.
1724	ForceSendFields []string `json:"-"`
1725
1726	// NullFields is a list of field names (e.g. "ConfidenceThreshold") to
1727	// include in API requests with the JSON null value. By default, fields
1728	// with empty values are omitted from API requests. However, any field
1729	// with an empty value appearing in NullFields will be sent to the
1730	// server as null. It is an error if a field in this list has a
1731	// non-empty value. This may be used to include null fields in Patch
1732	// requests.
1733	NullFields []string `json:"-"`
1734}
1735
1736func (s *ConfusionMatrix) MarshalJSON() ([]byte, error) {
1737	type NoMethod ConfusionMatrix
1738	raw := NoMethod(*s)
1739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1740}
1741
1742func (s *ConfusionMatrix) UnmarshalJSON(data []byte) error {
1743	type NoMethod ConfusionMatrix
1744	var s1 struct {
1745		ConfidenceThreshold gensupport.JSONFloat64 `json:"confidenceThreshold"`
1746		*NoMethod
1747	}
1748	s1.NoMethod = (*NoMethod)(s)
1749	if err := json.Unmarshal(data, &s1); err != nil {
1750		return err
1751	}
1752	s.ConfidenceThreshold = float64(s1.ConfidenceThreshold)
1753	return nil
1754}
1755
1756type ConnectionProperty struct {
1757	// Key: [Required] Name of the connection property to set.
1758	Key string `json:"key,omitempty"`
1759
1760	// Value: [Required] Value of the connection property.
1761	Value string `json:"value,omitempty"`
1762
1763	// ForceSendFields is a list of field names (e.g. "Key") to
1764	// unconditionally include in API requests. By default, fields with
1765	// empty values are omitted from API requests. However, any non-pointer,
1766	// non-interface field appearing in ForceSendFields will be sent to the
1767	// server regardless of whether the field is empty or not. This may be
1768	// used to include empty fields in Patch requests.
1769	ForceSendFields []string `json:"-"`
1770
1771	// NullFields is a list of field names (e.g. "Key") to include in API
1772	// requests with the JSON null value. By default, fields with empty
1773	// values are omitted from API requests. However, any field with an
1774	// empty value appearing in NullFields will be sent to the server as
1775	// null. It is an error if a field in this list has a non-empty value.
1776	// This may be used to include null fields in Patch requests.
1777	NullFields []string `json:"-"`
1778}
1779
1780func (s *ConnectionProperty) MarshalJSON() ([]byte, error) {
1781	type NoMethod ConnectionProperty
1782	raw := NoMethod(*s)
1783	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1784}
1785
1786type CsvOptions struct {
1787	// AllowJaggedRows: [Optional] Indicates if BigQuery should accept rows
1788	// that are missing trailing optional columns. If true, BigQuery treats
1789	// missing trailing columns as null values. If false, records with
1790	// missing trailing columns are treated as bad records, and if there are
1791	// too many bad records, an invalid error is returned in the job result.
1792	// The default value is false.
1793	AllowJaggedRows bool `json:"allowJaggedRows,omitempty"`
1794
1795	// AllowQuotedNewlines: [Optional] Indicates if BigQuery should allow
1796	// quoted data sections that contain newline characters in a CSV file.
1797	// The default value is false.
1798	AllowQuotedNewlines bool `json:"allowQuotedNewlines,omitempty"`
1799
1800	// Encoding: [Optional] The character encoding of the data. The
1801	// supported values are UTF-8 or ISO-8859-1. The default value is UTF-8.
1802	// BigQuery decodes the data after the raw, binary data has been split
1803	// using the values of the quote and fieldDelimiter properties.
1804	Encoding string `json:"encoding,omitempty"`
1805
1806	// FieldDelimiter: [Optional] The separator for fields in a CSV file.
1807	// BigQuery converts the string to ISO-8859-1 encoding, and then uses
1808	// the first byte of the encoded string to split the data in its raw,
1809	// binary state. BigQuery also supports the escape sequence "\t" to
1810	// specify a tab separator. The default value is a comma (',').
1811	FieldDelimiter string `json:"fieldDelimiter,omitempty"`
1812
1813	// Quote: [Optional] The value that is used to quote data sections in a
1814	// CSV file. BigQuery converts the string to ISO-8859-1 encoding, and
1815	// then uses the first byte of the encoded string to split the data in
1816	// its raw, binary state. The default value is a double-quote ('"'). If
1817	// your data does not contain quoted sections, set the property value to
1818	// an empty string. If your data contains quoted newline characters, you
1819	// must also set the allowQuotedNewlines property to true.
1820	//
1821	// Default: "
1822	Quote *string `json:"quote,omitempty"`
1823
1824	// SkipLeadingRows: [Optional] The number of rows at the top of a CSV
1825	// file that BigQuery will skip when reading the data. The default value
1826	// is 0. This property is useful if you have header rows in the file
1827	// that should be skipped. When autodetect is on, the behavior is the
1828	// following: * skipLeadingRows unspecified - Autodetect tries to detect
1829	// headers in the first row. If they are not detected, the row is read
1830	// as data. Otherwise data is read starting from the second row. *
1831	// skipLeadingRows is 0 - Instructs autodetect that there are no headers
1832	// and data should be read starting from the first row. *
1833	// skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to
1834	// detect headers in row N. If headers are not detected, row N is just
1835	// skipped. Otherwise row N is used to extract column names for the
1836	// detected schema.
1837	SkipLeadingRows int64 `json:"skipLeadingRows,omitempty,string"`
1838
1839	// ForceSendFields is a list of field names (e.g. "AllowJaggedRows") to
1840	// unconditionally include in API requests. By default, fields with
1841	// empty values are omitted from API requests. However, any non-pointer,
1842	// non-interface field appearing in ForceSendFields will be sent to the
1843	// server regardless of whether the field is empty or not. This may be
1844	// used to include empty fields in Patch requests.
1845	ForceSendFields []string `json:"-"`
1846
1847	// NullFields is a list of field names (e.g. "AllowJaggedRows") to
1848	// include in API requests with the JSON null value. By default, fields
1849	// with empty values are omitted from API requests. However, any field
1850	// with an empty value appearing in NullFields will be sent to the
1851	// server as null. It is an error if a field in this list has a
1852	// non-empty value. This may be used to include null fields in Patch
1853	// requests.
1854	NullFields []string `json:"-"`
1855}
1856
1857func (s *CsvOptions) MarshalJSON() ([]byte, error) {
1858	type NoMethod CsvOptions
1859	raw := NoMethod(*s)
1860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1861}
1862
1863// DataSplitResult: Data split result. This contains references to the
1864// training and evaluation data tables that were used to train the
1865// model.
1866type DataSplitResult struct {
1867	// EvaluationTable: Table reference of the evaluation data after split.
1868	EvaluationTable *TableReference `json:"evaluationTable,omitempty"`
1869
1870	// TrainingTable: Table reference of the training data after split.
1871	TrainingTable *TableReference `json:"trainingTable,omitempty"`
1872
1873	// ForceSendFields is a list of field names (e.g. "EvaluationTable") to
1874	// unconditionally include in API requests. By default, fields with
1875	// empty values are omitted from API requests. However, any non-pointer,
1876	// non-interface field appearing in ForceSendFields will be sent to the
1877	// server regardless of whether the field is empty or not. This may be
1878	// used to include empty fields in Patch requests.
1879	ForceSendFields []string `json:"-"`
1880
1881	// NullFields is a list of field names (e.g. "EvaluationTable") to
1882	// include in API requests with the JSON null value. By default, fields
1883	// with empty values are omitted from API requests. However, any field
1884	// with an empty value appearing in NullFields will be sent to the
1885	// server as null. It is an error if a field in this list has a
1886	// non-empty value. This may be used to include null fields in Patch
1887	// requests.
1888	NullFields []string `json:"-"`
1889}
1890
1891func (s *DataSplitResult) MarshalJSON() ([]byte, error) {
1892	type NoMethod DataSplitResult
1893	raw := NoMethod(*s)
1894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1895}
1896
1897type Dataset struct {
1898	// Access: [Optional] An array of objects that define dataset access for
1899	// one or more entities. You can set this property when inserting or
1900	// updating a dataset in order to control who is allowed to access the
1901	// data. If unspecified at dataset creation time, BigQuery adds default
1902	// dataset access for the following entities: access.specialGroup:
1903	// projectReaders; access.role: READER; access.specialGroup:
1904	// projectWriters; access.role: WRITER; access.specialGroup:
1905	// projectOwners; access.role: OWNER; access.userByEmail: [dataset
1906	// creator email]; access.role: OWNER;
1907	Access []*DatasetAccess `json:"access,omitempty"`
1908
1909	// CreationTime: [Output-only] The time when this dataset was created,
1910	// in milliseconds since the epoch.
1911	CreationTime int64 `json:"creationTime,omitempty,string"`
1912
1913	// DatasetReference: [Required] A reference that identifies the dataset.
1914	DatasetReference *DatasetReference `json:"datasetReference,omitempty"`
1915
1916	DefaultEncryptionConfiguration *EncryptionConfiguration `json:"defaultEncryptionConfiguration,omitempty"`
1917
1918	// DefaultPartitionExpirationMs: [Optional] The default partition
1919	// expiration for all partitioned tables in the dataset, in
1920	// milliseconds. Once this property is set, all newly-created
1921	// partitioned tables in the dataset will have an expirationMs property
1922	// in the timePartitioning settings set to this value, and changing the
1923	// value will only affect new tables, not existing ones. The storage in
1924	// a partition will have an expiration time of its partition time plus
1925	// this value. Setting this property overrides the use of
1926	// defaultTableExpirationMs for partitioned tables: only one of
1927	// defaultTableExpirationMs and defaultPartitionExpirationMs will be
1928	// used for any new partitioned table. If you provide an explicit
1929	// timePartitioning.expirationMs when creating or updating a partitioned
1930	// table, that value takes precedence over the default partition
1931	// expiration time indicated by this property.
1932	DefaultPartitionExpirationMs int64 `json:"defaultPartitionExpirationMs,omitempty,string"`
1933
1934	// DefaultTableExpirationMs: [Optional] The default lifetime of all
1935	// tables in the dataset, in milliseconds. The minimum value is 3600000
1936	// milliseconds (one hour). Once this property is set, all newly-created
1937	// tables in the dataset will have an expirationTime property set to the
1938	// creation time plus the value in this property, and changing the value
1939	// will only affect new tables, not existing ones. When the
1940	// expirationTime for a given table is reached, that table will be
1941	// deleted automatically. If a table's expirationTime is modified or
1942	// removed before the table expires, or if you provide an explicit
1943	// expirationTime when creating a table, that value takes precedence
1944	// over the default expiration time indicated by this property.
1945	DefaultTableExpirationMs int64 `json:"defaultTableExpirationMs,omitempty,string"`
1946
1947	// Description: [Optional] A user-friendly description of the dataset.
1948	Description string `json:"description,omitempty"`
1949
1950	// Etag: [Output-only] A hash of the resource.
1951	Etag string `json:"etag,omitempty"`
1952
1953	// FriendlyName: [Optional] A descriptive name for the dataset.
1954	FriendlyName string `json:"friendlyName,omitempty"`
1955
1956	// Id: [Output-only] The fully-qualified unique name of the dataset in
1957	// the format projectId:datasetId. The dataset name without the project
1958	// name is given in the datasetId field. When creating a new dataset,
1959	// leave this field blank, and instead specify the datasetId field.
1960	Id string `json:"id,omitempty"`
1961
1962	// Kind: [Output-only] The resource type.
1963	Kind string `json:"kind,omitempty"`
1964
1965	// Labels: The labels associated with this dataset. You can use these to
1966	// organize and group your datasets. You can set this property when
1967	// inserting or updating a dataset. See Creating and Updating Dataset
1968	// Labels for more information.
1969	Labels map[string]string `json:"labels,omitempty"`
1970
1971	// LastModifiedTime: [Output-only] The date when this dataset or any of
1972	// its tables was last modified, in milliseconds since the epoch.
1973	LastModifiedTime int64 `json:"lastModifiedTime,omitempty,string"`
1974
1975	// Location: The geographic location where the dataset should reside.
1976	// The default value is US. See details at
1977	// https://cloud.google.com/bigquery/docs/locations.
1978	Location string `json:"location,omitempty"`
1979
1980	// SatisfiesPZS: [Output-only] Reserved for future use.
1981	SatisfiesPZS bool `json:"satisfiesPZS,omitempty"`
1982
1983	// SelfLink: [Output-only] A URL that can be used to access the resource
1984	// again. You can use this URL in Get or Update requests to the
1985	// resource.
1986	SelfLink string `json:"selfLink,omitempty"`
1987
1988	// ServerResponse contains the HTTP response code and headers from the
1989	// server.
1990	googleapi.ServerResponse `json:"-"`
1991
1992	// ForceSendFields is a list of field names (e.g. "Access") to
1993	// unconditionally include in API requests. By default, fields with
1994	// empty values are omitted from API requests. However, any non-pointer,
1995	// non-interface field appearing in ForceSendFields will be sent to the
1996	// server regardless of whether the field is empty or not. This may be
1997	// used to include empty fields in Patch requests.
1998	ForceSendFields []string `json:"-"`
1999
2000	// NullFields is a list of field names (e.g. "Access") to include in API
2001	// requests with the JSON null value. By default, fields with empty
2002	// values are omitted from API requests. However, any field with an
2003	// empty value appearing in NullFields will be sent to the server as
2004	// null. It is an error if a field in this list has a non-empty value.
2005	// This may be used to include null fields in Patch requests.
2006	NullFields []string `json:"-"`
2007}
2008
2009func (s *Dataset) MarshalJSON() ([]byte, error) {
2010	type NoMethod Dataset
2011	raw := NoMethod(*s)
2012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2013}
2014
2015type DatasetAccess struct {
2016	// Dataset: [Pick one] A grant authorizing all resources of a particular
2017	// type in a particular dataset access to this dataset. Only views are
2018	// supported for now. The role field is not required when this field is
2019	// set. If that dataset is deleted and re-created, its access needs to
2020	// be granted again via an update operation.
2021	Dataset *DatasetAccessEntry `json:"dataset,omitempty"`
2022
2023	// Domain: [Pick one] A domain to grant access to. Any users signed in
2024	// with the domain specified will be granted the specified access.
2025	// Example: "example.com". Maps to IAM policy member "domain:DOMAIN".
2026	Domain string `json:"domain,omitempty"`
2027
2028	// GroupByEmail: [Pick one] An email address of a Google Group to grant
2029	// access to. Maps to IAM policy member "group:GROUP".
2030	GroupByEmail string `json:"groupByEmail,omitempty"`
2031
2032	// IamMember: [Pick one] Some other type of member that appears in the
2033	// IAM Policy but isn't a user, group, domain, or special group.
2034	IamMember string `json:"iamMember,omitempty"`
2035
2036	// Role: [Required] An IAM role ID that should be granted to the user,
2037	// group, or domain specified in this access entry. The following legacy
2038	// mappings will be applied: OWNER  roles/bigquery.dataOwner WRITER
2039	// roles/bigquery.dataEditor READER  roles/bigquery.dataViewer This
2040	// field will accept any of the above formats, but will return only the
2041	// legacy format. For example, if you set this field to
2042	// "roles/bigquery.dataOwner", it will be returned back as "OWNER".
2043	Role string `json:"role,omitempty"`
2044
2045	// Routine: [Pick one] A routine from a different dataset to grant
2046	// access to. Queries executed against that routine will have read
2047	// access to views/tables/routines in this dataset. Only UDF is
2048	// supported for now. The role field is not required when this field is
2049	// set. If that routine is updated by any user, access to the routine
2050	// needs to be granted again via an update operation.
2051	Routine *RoutineReference `json:"routine,omitempty"`
2052
2053	// SpecialGroup: [Pick one] A special group to grant access to. Possible
2054	// values include: projectOwners: Owners of the enclosing project.
2055	// projectReaders: Readers of the enclosing project. projectWriters:
2056	// Writers of the enclosing project. allAuthenticatedUsers: All
2057	// authenticated BigQuery users. Maps to similarly-named IAM members.
2058	SpecialGroup string `json:"specialGroup,omitempty"`
2059
2060	// UserByEmail: [Pick one] An email address of a user to grant access
2061	// to. For example: fred@example.com. Maps to IAM policy member
2062	// "user:EMAIL" or "serviceAccount:EMAIL".
2063	UserByEmail string `json:"userByEmail,omitempty"`
2064
2065	// View: [Pick one] A view from a different dataset to grant access to.
2066	// Queries executed against that view will have read access to tables in
2067	// this dataset. The role field is not required when this field is set.
2068	// If that view is updated by any user, access to the view needs to be
2069	// granted again via an update operation.
2070	View *TableReference `json:"view,omitempty"`
2071
2072	// ForceSendFields is a list of field names (e.g. "Dataset") to
2073	// unconditionally include in API requests. By default, fields with
2074	// empty values are omitted from API requests. However, any non-pointer,
2075	// non-interface field appearing in ForceSendFields will be sent to the
2076	// server regardless of whether the field is empty or not. This may be
2077	// used to include empty fields in Patch requests.
2078	ForceSendFields []string `json:"-"`
2079
2080	// NullFields is a list of field names (e.g. "Dataset") to include in
2081	// API requests with the JSON null value. By default, fields with empty
2082	// values are omitted from API requests. However, any field with an
2083	// empty value appearing in NullFields will be sent to the server as
2084	// null. It is an error if a field in this list has a non-empty value.
2085	// This may be used to include null fields in Patch requests.
2086	NullFields []string `json:"-"`
2087}
2088
2089func (s *DatasetAccess) MarshalJSON() ([]byte, error) {
2090	type NoMethod DatasetAccess
2091	raw := NoMethod(*s)
2092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2093}
2094
2095type DatasetAccessEntry struct {
2096	// Dataset: [Required] The dataset this entry applies to.
2097	Dataset *DatasetReference `json:"dataset,omitempty"`
2098
2099	TargetTypes []*DatasetAccessEntryTargetTypes `json:"target_types,omitempty"`
2100
2101	// ForceSendFields is a list of field names (e.g. "Dataset") to
2102	// unconditionally include in API requests. By default, fields with
2103	// empty values are omitted from API requests. However, any non-pointer,
2104	// non-interface field appearing in ForceSendFields will be sent to the
2105	// server regardless of whether the field is empty or not. This may be
2106	// used to include empty fields in Patch requests.
2107	ForceSendFields []string `json:"-"`
2108
2109	// NullFields is a list of field names (e.g. "Dataset") to include in
2110	// API requests with the JSON null value. By default, fields with empty
2111	// values are omitted from API requests. However, any field with an
2112	// empty value appearing in NullFields will be sent to the server as
2113	// null. It is an error if a field in this list has a non-empty value.
2114	// This may be used to include null fields in Patch requests.
2115	NullFields []string `json:"-"`
2116}
2117
2118func (s *DatasetAccessEntry) MarshalJSON() ([]byte, error) {
2119	type NoMethod DatasetAccessEntry
2120	raw := NoMethod(*s)
2121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2122}
2123
2124type DatasetAccessEntryTargetTypes struct {
2125	// TargetType: [Required] Which resources in the dataset this entry
2126	// applies to. Currently, only views are supported, but additional
2127	// target types may be added in the future. Possible values: VIEWS: This
2128	// entry applies to all views in the dataset.
2129	TargetType string `json:"targetType,omitempty"`
2130
2131	// ForceSendFields is a list of field names (e.g. "TargetType") to
2132	// unconditionally include in API requests. By default, fields with
2133	// empty values are omitted from API requests. However, any non-pointer,
2134	// non-interface field appearing in ForceSendFields will be sent to the
2135	// server regardless of whether the field is empty or not. This may be
2136	// used to include empty fields in Patch requests.
2137	ForceSendFields []string `json:"-"`
2138
2139	// NullFields is a list of field names (e.g. "TargetType") to include in
2140	// API requests with the JSON null value. By default, fields with empty
2141	// values are omitted from API requests. However, any field with an
2142	// empty value appearing in NullFields will be sent to the server as
2143	// null. It is an error if a field in this list has a non-empty value.
2144	// This may be used to include null fields in Patch requests.
2145	NullFields []string `json:"-"`
2146}
2147
2148func (s *DatasetAccessEntryTargetTypes) MarshalJSON() ([]byte, error) {
2149	type NoMethod DatasetAccessEntryTargetTypes
2150	raw := NoMethod(*s)
2151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2152}
2153
2154type DatasetList struct {
2155	// Datasets: An array of the dataset resources in the project. Each
2156	// resource contains basic information. For full information about a
2157	// particular dataset resource, use the Datasets: get method. This
2158	// property is omitted when there are no datasets in the project.
2159	Datasets []*DatasetListDatasets `json:"datasets,omitempty"`
2160
2161	// Etag: A hash value of the results page. You can use this property to
2162	// determine if the page has changed since the last request.
2163	Etag string `json:"etag,omitempty"`
2164
2165	// Kind: The list type. This property always returns the value
2166	// "bigquery#datasetList".
2167	Kind string `json:"kind,omitempty"`
2168
2169	// NextPageToken: A token that can be used to request the next results
2170	// page. This property is omitted on the final results page.
2171	NextPageToken string `json:"nextPageToken,omitempty"`
2172
2173	// ServerResponse contains the HTTP response code and headers from the
2174	// server.
2175	googleapi.ServerResponse `json:"-"`
2176
2177	// ForceSendFields is a list of field names (e.g. "Datasets") to
2178	// unconditionally include in API requests. By default, fields with
2179	// empty values are omitted from API requests. However, any non-pointer,
2180	// non-interface field appearing in ForceSendFields will be sent to the
2181	// server regardless of whether the field is empty or not. This may be
2182	// used to include empty fields in Patch requests.
2183	ForceSendFields []string `json:"-"`
2184
2185	// NullFields is a list of field names (e.g. "Datasets") to include in
2186	// API requests with the JSON null value. By default, fields with empty
2187	// values are omitted from API requests. However, any field with an
2188	// empty value appearing in NullFields will be sent to the server as
2189	// null. It is an error if a field in this list has a non-empty value.
2190	// This may be used to include null fields in Patch requests.
2191	NullFields []string `json:"-"`
2192}
2193
2194func (s *DatasetList) MarshalJSON() ([]byte, error) {
2195	type NoMethod DatasetList
2196	raw := NoMethod(*s)
2197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2198}
2199
2200type DatasetListDatasets struct {
2201	// DatasetReference: The dataset reference. Use this property to access
2202	// specific parts of the dataset's ID, such as project ID or dataset ID.
2203	DatasetReference *DatasetReference `json:"datasetReference,omitempty"`
2204
2205	// FriendlyName: A descriptive name for the dataset, if one exists.
2206	FriendlyName string `json:"friendlyName,omitempty"`
2207
2208	// Id: The fully-qualified, unique, opaque ID of the dataset.
2209	Id string `json:"id,omitempty"`
2210
2211	// Kind: The resource type. This property always returns the value
2212	// "bigquery#dataset".
2213	Kind string `json:"kind,omitempty"`
2214
2215	// Labels: The labels associated with this dataset. You can use these to
2216	// organize and group your datasets.
2217	Labels map[string]string `json:"labels,omitempty"`
2218
2219	// Location: The geographic location where the data resides.
2220	Location string `json:"location,omitempty"`
2221
2222	// ForceSendFields is a list of field names (e.g. "DatasetReference") to
2223	// unconditionally include in API requests. By default, fields with
2224	// empty values are omitted from API requests. However, any non-pointer,
2225	// non-interface field appearing in ForceSendFields will be sent to the
2226	// server regardless of whether the field is empty or not. This may be
2227	// used to include empty fields in Patch requests.
2228	ForceSendFields []string `json:"-"`
2229
2230	// NullFields is a list of field names (e.g. "DatasetReference") to
2231	// include in API requests with the JSON null value. By default, fields
2232	// with empty values are omitted from API requests. However, any field
2233	// with an empty value appearing in NullFields will be sent to the
2234	// server as null. It is an error if a field in this list has a
2235	// non-empty value. This may be used to include null fields in Patch
2236	// requests.
2237	NullFields []string `json:"-"`
2238}
2239
2240func (s *DatasetListDatasets) MarshalJSON() ([]byte, error) {
2241	type NoMethod DatasetListDatasets
2242	raw := NoMethod(*s)
2243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2244}
2245
2246type DatasetReference struct {
2247	// DatasetId: [Required] A unique ID for this dataset, without the
2248	// project name. The ID must contain only letters (a-z, A-Z), numbers
2249	// (0-9), or underscores (_). The maximum length is 1,024 characters.
2250	DatasetId string `json:"datasetId,omitempty"`
2251
2252	// ProjectId: [Optional] The ID of the project containing this dataset.
2253	ProjectId string `json:"projectId,omitempty"`
2254
2255	// ForceSendFields is a list of field names (e.g. "DatasetId") to
2256	// unconditionally include in API requests. By default, fields with
2257	// empty values are omitted from API requests. However, any non-pointer,
2258	// non-interface field appearing in ForceSendFields will be sent to the
2259	// server regardless of whether the field is empty or not. This may be
2260	// used to include empty fields in Patch requests.
2261	ForceSendFields []string `json:"-"`
2262
2263	// NullFields is a list of field names (e.g. "DatasetId") to include in
2264	// API requests with the JSON null value. By default, fields with empty
2265	// values are omitted from API requests. However, any field with an
2266	// empty value appearing in NullFields will be sent to the server as
2267	// null. It is an error if a field in this list has a non-empty value.
2268	// This may be used to include null fields in Patch requests.
2269	NullFields []string `json:"-"`
2270}
2271
2272func (s *DatasetReference) MarshalJSON() ([]byte, error) {
2273	type NoMethod DatasetReference
2274	raw := NoMethod(*s)
2275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2276}
2277
2278type DestinationTableProperties struct {
2279	// Description: [Optional] The description for the destination table.
2280	// This will only be used if the destination table is newly created. If
2281	// the table already exists and a value different than the current
2282	// description is provided, the job will fail.
2283	Description string `json:"description,omitempty"`
2284
2285	// FriendlyName: [Optional] The friendly name for the destination table.
2286	// This will only be used if the destination table is newly created. If
2287	// the table already exists and a value different than the current
2288	// friendly name is provided, the job will fail.
2289	FriendlyName string `json:"friendlyName,omitempty"`
2290
2291	// Labels: [Optional] The labels associated with this table. You can use
2292	// these to organize and group your tables. This will only be used if
2293	// the destination table is newly created. If the table already exists
2294	// and labels are different than the current labels are provided, the
2295	// job will fail.
2296	Labels map[string]string `json:"labels,omitempty"`
2297
2298	// ForceSendFields is a list of field names (e.g. "Description") to
2299	// unconditionally include in API requests. By default, fields with
2300	// empty values are omitted from API requests. However, any non-pointer,
2301	// non-interface field appearing in ForceSendFields will be sent to the
2302	// server regardless of whether the field is empty or not. This may be
2303	// used to include empty fields in Patch requests.
2304	ForceSendFields []string `json:"-"`
2305
2306	// NullFields is a list of field names (e.g. "Description") to include
2307	// in API requests with the JSON null value. By default, fields with
2308	// empty values are omitted from API requests. However, any field with
2309	// an empty value appearing in NullFields will be sent to the server as
2310	// null. It is an error if a field in this list has a non-empty value.
2311	// This may be used to include null fields in Patch requests.
2312	NullFields []string `json:"-"`
2313}
2314
2315func (s *DestinationTableProperties) MarshalJSON() ([]byte, error) {
2316	type NoMethod DestinationTableProperties
2317	raw := NoMethod(*s)
2318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2319}
2320
2321type EncryptionConfiguration struct {
2322	// KmsKeyName: [Optional] Describes the Cloud KMS encryption key that
2323	// will be used to protect destination BigQuery table. The BigQuery
2324	// Service Account associated with your project requires access to this
2325	// encryption key.
2326	KmsKeyName string `json:"kmsKeyName,omitempty"`
2327
2328	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
2329	// unconditionally include in API requests. By default, fields with
2330	// empty values are omitted from API requests. However, any non-pointer,
2331	// non-interface field appearing in ForceSendFields will be sent to the
2332	// server regardless of whether the field is empty or not. This may be
2333	// used to include empty fields in Patch requests.
2334	ForceSendFields []string `json:"-"`
2335
2336	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
2337	// API requests with the JSON null value. By default, fields with empty
2338	// values are omitted from API requests. However, any field with an
2339	// empty value appearing in NullFields will be sent to the server as
2340	// null. It is an error if a field in this list has a non-empty value.
2341	// This may be used to include null fields in Patch requests.
2342	NullFields []string `json:"-"`
2343}
2344
2345func (s *EncryptionConfiguration) MarshalJSON() ([]byte, error) {
2346	type NoMethod EncryptionConfiguration
2347	raw := NoMethod(*s)
2348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2349}
2350
2351// Entry: A single entry in the confusion matrix.
2352type Entry struct {
2353	// ItemCount: Number of items being predicted as this label.
2354	ItemCount int64 `json:"itemCount,omitempty,string"`
2355
2356	// PredictedLabel: The predicted label. For confidence_threshold > 0, we
2357	// will also add an entry indicating the number of items under the
2358	// confidence threshold.
2359	PredictedLabel string `json:"predictedLabel,omitempty"`
2360
2361	// ForceSendFields is a list of field names (e.g. "ItemCount") to
2362	// unconditionally include in API requests. By default, fields with
2363	// empty values are omitted from API requests. However, any non-pointer,
2364	// non-interface field appearing in ForceSendFields will be sent to the
2365	// server regardless of whether the field is empty or not. This may be
2366	// used to include empty fields in Patch requests.
2367	ForceSendFields []string `json:"-"`
2368
2369	// NullFields is a list of field names (e.g. "ItemCount") to include in
2370	// API requests with the JSON null value. By default, fields with empty
2371	// values are omitted from API requests. However, any field with an
2372	// empty value appearing in NullFields will be sent to the server as
2373	// null. It is an error if a field in this list has a non-empty value.
2374	// This may be used to include null fields in Patch requests.
2375	NullFields []string `json:"-"`
2376}
2377
2378func (s *Entry) MarshalJSON() ([]byte, error) {
2379	type NoMethod Entry
2380	raw := NoMethod(*s)
2381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2382}
2383
2384type ErrorProto struct {
2385	// DebugInfo: Debugging information. This property is internal to Google
2386	// and should not be used.
2387	DebugInfo string `json:"debugInfo,omitempty"`
2388
2389	// Location: Specifies where the error occurred, if present.
2390	Location string `json:"location,omitempty"`
2391
2392	// Message: A human-readable description of the error.
2393	Message string `json:"message,omitempty"`
2394
2395	// Reason: A short error code that summarizes the error.
2396	Reason string `json:"reason,omitempty"`
2397
2398	// ForceSendFields is a list of field names (e.g. "DebugInfo") to
2399	// unconditionally include in API requests. By default, fields with
2400	// empty values are omitted from API requests. However, any non-pointer,
2401	// non-interface field appearing in ForceSendFields will be sent to the
2402	// server regardless of whether the field is empty or not. This may be
2403	// used to include empty fields in Patch requests.
2404	ForceSendFields []string `json:"-"`
2405
2406	// NullFields is a list of field names (e.g. "DebugInfo") to include in
2407	// API requests with the JSON null value. By default, fields with empty
2408	// values are omitted from API requests. However, any field with an
2409	// empty value appearing in NullFields will be sent to the server as
2410	// null. It is an error if a field in this list has a non-empty value.
2411	// This may be used to include null fields in Patch requests.
2412	NullFields []string `json:"-"`
2413}
2414
2415func (s *ErrorProto) MarshalJSON() ([]byte, error) {
2416	type NoMethod ErrorProto
2417	raw := NoMethod(*s)
2418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2419}
2420
2421// EvaluationMetrics: Evaluation metrics of a model. These are either
2422// computed on all training data or just the eval data based on whether
2423// eval data was used during training. These are not present for
2424// imported models.
2425type EvaluationMetrics struct {
2426	// ArimaForecastingMetrics: Populated for ARIMA models.
2427	ArimaForecastingMetrics *ArimaForecastingMetrics `json:"arimaForecastingMetrics,omitempty"`
2428
2429	// BinaryClassificationMetrics: Populated for binary
2430	// classification/classifier models.
2431	BinaryClassificationMetrics *BinaryClassificationMetrics `json:"binaryClassificationMetrics,omitempty"`
2432
2433	// ClusteringMetrics: Populated for clustering models.
2434	ClusteringMetrics *ClusteringMetrics `json:"clusteringMetrics,omitempty"`
2435
2436	// MultiClassClassificationMetrics: Populated for multi-class
2437	// classification/classifier models.
2438	MultiClassClassificationMetrics *MultiClassClassificationMetrics `json:"multiClassClassificationMetrics,omitempty"`
2439
2440	// RankingMetrics: Populated for implicit feedback type matrix
2441	// factorization models.
2442	RankingMetrics *RankingMetrics `json:"rankingMetrics,omitempty"`
2443
2444	// RegressionMetrics: Populated for regression models and explicit
2445	// feedback type matrix factorization models.
2446	RegressionMetrics *RegressionMetrics `json:"regressionMetrics,omitempty"`
2447
2448	// ForceSendFields is a list of field names (e.g.
2449	// "ArimaForecastingMetrics") to unconditionally include in API
2450	// requests. By default, fields with empty values are omitted from API
2451	// requests. However, any non-pointer, non-interface field appearing in
2452	// ForceSendFields will be sent to the server regardless of whether the
2453	// field is empty or not. This may be used to include empty fields in
2454	// Patch requests.
2455	ForceSendFields []string `json:"-"`
2456
2457	// NullFields is a list of field names (e.g. "ArimaForecastingMetrics")
2458	// to include in API requests with the JSON null value. By default,
2459	// fields with empty values are omitted from API requests. However, any
2460	// field with an empty value appearing in NullFields will be sent to the
2461	// server as null. It is an error if a field in this list has a
2462	// non-empty value. This may be used to include null fields in Patch
2463	// requests.
2464	NullFields []string `json:"-"`
2465}
2466
2467func (s *EvaluationMetrics) MarshalJSON() ([]byte, error) {
2468	type NoMethod EvaluationMetrics
2469	raw := NoMethod(*s)
2470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2471}
2472
2473type ExplainQueryStage struct {
2474	// CompletedParallelInputs: Number of parallel input segments completed.
2475	CompletedParallelInputs int64 `json:"completedParallelInputs,omitempty,string"`
2476
2477	// ComputeMsAvg: Milliseconds the average shard spent on CPU-bound
2478	// tasks.
2479	ComputeMsAvg int64 `json:"computeMsAvg,omitempty,string"`
2480
2481	// ComputeMsMax: Milliseconds the slowest shard spent on CPU-bound
2482	// tasks.
2483	ComputeMsMax int64 `json:"computeMsMax,omitempty,string"`
2484
2485	// ComputeRatioAvg: Relative amount of time the average shard spent on
2486	// CPU-bound tasks.
2487	ComputeRatioAvg float64 `json:"computeRatioAvg,omitempty"`
2488
2489	// ComputeRatioMax: Relative amount of time the slowest shard spent on
2490	// CPU-bound tasks.
2491	ComputeRatioMax float64 `json:"computeRatioMax,omitempty"`
2492
2493	// EndMs: Stage end time represented as milliseconds since epoch.
2494	EndMs int64 `json:"endMs,omitempty,string"`
2495
2496	// Id: Unique ID for stage within plan.
2497	Id int64 `json:"id,omitempty,string"`
2498
2499	// InputStages: IDs for stages that are inputs to this stage.
2500	InputStages googleapi.Int64s `json:"inputStages,omitempty"`
2501
2502	// Name: Human-readable name for stage.
2503	Name string `json:"name,omitempty"`
2504
2505	// ParallelInputs: Number of parallel input segments to be processed.
2506	ParallelInputs int64 `json:"parallelInputs,omitempty,string"`
2507
2508	// ReadMsAvg: Milliseconds the average shard spent reading input.
2509	ReadMsAvg int64 `json:"readMsAvg,omitempty,string"`
2510
2511	// ReadMsMax: Milliseconds the slowest shard spent reading input.
2512	ReadMsMax int64 `json:"readMsMax,omitempty,string"`
2513
2514	// ReadRatioAvg: Relative amount of time the average shard spent reading
2515	// input.
2516	ReadRatioAvg float64 `json:"readRatioAvg,omitempty"`
2517
2518	// ReadRatioMax: Relative amount of time the slowest shard spent reading
2519	// input.
2520	ReadRatioMax float64 `json:"readRatioMax,omitempty"`
2521
2522	// RecordsRead: Number of records read into the stage.
2523	RecordsRead int64 `json:"recordsRead,omitempty,string"`
2524
2525	// RecordsWritten: Number of records written by the stage.
2526	RecordsWritten int64 `json:"recordsWritten,omitempty,string"`
2527
2528	// ShuffleOutputBytes: Total number of bytes written to shuffle.
2529	ShuffleOutputBytes int64 `json:"shuffleOutputBytes,omitempty,string"`
2530
2531	// ShuffleOutputBytesSpilled: Total number of bytes written to shuffle
2532	// and spilled to disk.
2533	ShuffleOutputBytesSpilled int64 `json:"shuffleOutputBytesSpilled,omitempty,string"`
2534
2535	// SlotMs: Slot-milliseconds used by the stage.
2536	SlotMs int64 `json:"slotMs,omitempty,string"`
2537
2538	// StartMs: Stage start time represented as milliseconds since epoch.
2539	StartMs int64 `json:"startMs,omitempty,string"`
2540
2541	// Status: Current status for the stage.
2542	Status string `json:"status,omitempty"`
2543
2544	// Steps: List of operations within the stage in dependency order
2545	// (approximately chronological).
2546	Steps []*ExplainQueryStep `json:"steps,omitempty"`
2547
2548	// WaitMsAvg: Milliseconds the average shard spent waiting to be
2549	// scheduled.
2550	WaitMsAvg int64 `json:"waitMsAvg,omitempty,string"`
2551
2552	// WaitMsMax: Milliseconds the slowest shard spent waiting to be
2553	// scheduled.
2554	WaitMsMax int64 `json:"waitMsMax,omitempty,string"`
2555
2556	// WaitRatioAvg: Relative amount of time the average shard spent waiting
2557	// to be scheduled.
2558	WaitRatioAvg float64 `json:"waitRatioAvg,omitempty"`
2559
2560	// WaitRatioMax: Relative amount of time the slowest shard spent waiting
2561	// to be scheduled.
2562	WaitRatioMax float64 `json:"waitRatioMax,omitempty"`
2563
2564	// WriteMsAvg: Milliseconds the average shard spent on writing output.
2565	WriteMsAvg int64 `json:"writeMsAvg,omitempty,string"`
2566
2567	// WriteMsMax: Milliseconds the slowest shard spent on writing output.
2568	WriteMsMax int64 `json:"writeMsMax,omitempty,string"`
2569
2570	// WriteRatioAvg: Relative amount of time the average shard spent on
2571	// writing output.
2572	WriteRatioAvg float64 `json:"writeRatioAvg,omitempty"`
2573
2574	// WriteRatioMax: Relative amount of time the slowest shard spent on
2575	// writing output.
2576	WriteRatioMax float64 `json:"writeRatioMax,omitempty"`
2577
2578	// ForceSendFields is a list of field names (e.g.
2579	// "CompletedParallelInputs") to unconditionally include in API
2580	// requests. By default, fields with empty values are omitted from API
2581	// requests. However, any non-pointer, non-interface field appearing in
2582	// ForceSendFields will be sent to the server regardless of whether the
2583	// field is empty or not. This may be used to include empty fields in
2584	// Patch requests.
2585	ForceSendFields []string `json:"-"`
2586
2587	// NullFields is a list of field names (e.g. "CompletedParallelInputs")
2588	// to include in API requests with the JSON null value. By default,
2589	// fields with empty values are omitted from API requests. However, any
2590	// field with an empty value appearing in NullFields will be sent to the
2591	// server as null. It is an error if a field in this list has a
2592	// non-empty value. This may be used to include null fields in Patch
2593	// requests.
2594	NullFields []string `json:"-"`
2595}
2596
2597func (s *ExplainQueryStage) MarshalJSON() ([]byte, error) {
2598	type NoMethod ExplainQueryStage
2599	raw := NoMethod(*s)
2600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2601}
2602
2603func (s *ExplainQueryStage) UnmarshalJSON(data []byte) error {
2604	type NoMethod ExplainQueryStage
2605	var s1 struct {
2606		ComputeRatioAvg gensupport.JSONFloat64 `json:"computeRatioAvg"`
2607		ComputeRatioMax gensupport.JSONFloat64 `json:"computeRatioMax"`
2608		ReadRatioAvg    gensupport.JSONFloat64 `json:"readRatioAvg"`
2609		ReadRatioMax    gensupport.JSONFloat64 `json:"readRatioMax"`
2610		WaitRatioAvg    gensupport.JSONFloat64 `json:"waitRatioAvg"`
2611		WaitRatioMax    gensupport.JSONFloat64 `json:"waitRatioMax"`
2612		WriteRatioAvg   gensupport.JSONFloat64 `json:"writeRatioAvg"`
2613		WriteRatioMax   gensupport.JSONFloat64 `json:"writeRatioMax"`
2614		*NoMethod
2615	}
2616	s1.NoMethod = (*NoMethod)(s)
2617	if err := json.Unmarshal(data, &s1); err != nil {
2618		return err
2619	}
2620	s.ComputeRatioAvg = float64(s1.ComputeRatioAvg)
2621	s.ComputeRatioMax = float64(s1.ComputeRatioMax)
2622	s.ReadRatioAvg = float64(s1.ReadRatioAvg)
2623	s.ReadRatioMax = float64(s1.ReadRatioMax)
2624	s.WaitRatioAvg = float64(s1.WaitRatioAvg)
2625	s.WaitRatioMax = float64(s1.WaitRatioMax)
2626	s.WriteRatioAvg = float64(s1.WriteRatioAvg)
2627	s.WriteRatioMax = float64(s1.WriteRatioMax)
2628	return nil
2629}
2630
2631type ExplainQueryStep struct {
2632	// Kind: Machine-readable operation type.
2633	Kind string `json:"kind,omitempty"`
2634
2635	// Substeps: Human-readable stage descriptions.
2636	Substeps []string `json:"substeps,omitempty"`
2637
2638	// ForceSendFields is a list of field names (e.g. "Kind") to
2639	// unconditionally include in API requests. By default, fields with
2640	// empty values are omitted from API requests. However, any non-pointer,
2641	// non-interface field appearing in ForceSendFields will be sent to the
2642	// server regardless of whether the field is empty or not. This may be
2643	// used to include empty fields in Patch requests.
2644	ForceSendFields []string `json:"-"`
2645
2646	// NullFields is a list of field names (e.g. "Kind") to include in API
2647	// requests with the JSON null value. By default, fields with empty
2648	// values are omitted from API requests. However, any field with an
2649	// empty value appearing in NullFields will be sent to the server as
2650	// null. It is an error if a field in this list has a non-empty value.
2651	// This may be used to include null fields in Patch requests.
2652	NullFields []string `json:"-"`
2653}
2654
2655func (s *ExplainQueryStep) MarshalJSON() ([]byte, error) {
2656	type NoMethod ExplainQueryStep
2657	raw := NoMethod(*s)
2658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2659}
2660
2661// Explanation: Explanation for a single feature.
2662type Explanation struct {
2663	// Attribution: Attribution of feature.
2664	Attribution float64 `json:"attribution,omitempty"`
2665
2666	// FeatureName: Full name of the feature. For non-numerical features,
2667	// will be formatted like .. Overall size of feature name will always be
2668	// truncated to first 120 characters.
2669	FeatureName string `json:"featureName,omitempty"`
2670
2671	// ForceSendFields is a list of field names (e.g. "Attribution") to
2672	// unconditionally include in API requests. By default, fields with
2673	// empty values are omitted from API requests. However, any non-pointer,
2674	// non-interface field appearing in ForceSendFields will be sent to the
2675	// server regardless of whether the field is empty or not. This may be
2676	// used to include empty fields in Patch requests.
2677	ForceSendFields []string `json:"-"`
2678
2679	// NullFields is a list of field names (e.g. "Attribution") to include
2680	// in API requests with the JSON null value. By default, fields with
2681	// empty values are omitted from API requests. However, any field with
2682	// an empty value appearing in NullFields will be sent to the server as
2683	// null. It is an error if a field in this list has a non-empty value.
2684	// This may be used to include null fields in Patch requests.
2685	NullFields []string `json:"-"`
2686}
2687
2688func (s *Explanation) MarshalJSON() ([]byte, error) {
2689	type NoMethod Explanation
2690	raw := NoMethod(*s)
2691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2692}
2693
2694func (s *Explanation) UnmarshalJSON(data []byte) error {
2695	type NoMethod Explanation
2696	var s1 struct {
2697		Attribution gensupport.JSONFloat64 `json:"attribution"`
2698		*NoMethod
2699	}
2700	s1.NoMethod = (*NoMethod)(s)
2701	if err := json.Unmarshal(data, &s1); err != nil {
2702		return err
2703	}
2704	s.Attribution = float64(s1.Attribution)
2705	return nil
2706}
2707
2708// Expr: Represents a textual expression in the Common Expression
2709// Language (CEL) syntax. CEL is a C-like expression language. The
2710// syntax and semantics of CEL are documented at
2711// https://github.com/google/cel-spec. Example (Comparison): title:
2712// "Summary size limit" description: "Determines if a summary is less
2713// than 100 chars" expression: "document.summary.size() < 100" Example
2714// (Equality): title: "Requestor is owner" description: "Determines if
2715// requestor is the document owner" expression: "document.owner ==
2716// request.auth.claims.email" Example (Logic): title: "Public documents"
2717// description: "Determine whether the document should be publicly
2718// visible" expression: "document.type != 'private' && document.type !=
2719// 'internal'" Example (Data Manipulation): title: "Notification string"
2720// description: "Create a notification string with a timestamp."
2721// expression: "'New message received at ' +
2722// string(document.create_time)" The exact variables and functions that
2723// may be referenced within an expression are determined by the service
2724// that evaluates it. See the service documentation for additional
2725// information.
2726type Expr struct {
2727	// Description: Optional. Description of the expression. This is a
2728	// longer text which describes the expression, e.g. when hovered over it
2729	// in a UI.
2730	Description string `json:"description,omitempty"`
2731
2732	// Expression: Textual representation of an expression in Common
2733	// Expression Language syntax.
2734	Expression string `json:"expression,omitempty"`
2735
2736	// Location: Optional. String indicating the location of the expression
2737	// for error reporting, e.g. a file name and a position in the file.
2738	Location string `json:"location,omitempty"`
2739
2740	// Title: Optional. Title for the expression, i.e. a short string
2741	// describing its purpose. This can be used e.g. in UIs which allow to
2742	// enter the expression.
2743	Title string `json:"title,omitempty"`
2744
2745	// ForceSendFields is a list of field names (e.g. "Description") to
2746	// unconditionally include in API requests. By default, fields with
2747	// empty values are omitted from API requests. However, any non-pointer,
2748	// non-interface field appearing in ForceSendFields will be sent to the
2749	// server regardless of whether the field is empty or not. This may be
2750	// used to include empty fields in Patch requests.
2751	ForceSendFields []string `json:"-"`
2752
2753	// NullFields is a list of field names (e.g. "Description") to include
2754	// in API requests with the JSON null value. By default, fields with
2755	// empty values are omitted from API requests. However, any field with
2756	// an empty value appearing in NullFields will be sent to the server as
2757	// null. It is an error if a field in this list has a non-empty value.
2758	// This may be used to include null fields in Patch requests.
2759	NullFields []string `json:"-"`
2760}
2761
2762func (s *Expr) MarshalJSON() ([]byte, error) {
2763	type NoMethod Expr
2764	raw := NoMethod(*s)
2765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2766}
2767
2768type ExternalDataConfiguration struct {
2769	// Autodetect: Try to detect schema and format options automatically.
2770	// Any option specified explicitly will be honored.
2771	Autodetect bool `json:"autodetect,omitempty"`
2772
2773	// BigtableOptions: [Optional] Additional options if sourceFormat is set
2774	// to BIGTABLE.
2775	BigtableOptions *BigtableOptions `json:"bigtableOptions,omitempty"`
2776
2777	// Compression: [Optional] The compression type of the data source.
2778	// Possible values include GZIP and NONE. The default value is NONE.
2779	// This setting is ignored for Google Cloud Bigtable, Google Cloud
2780	// Datastore backups and Avro formats.
2781	Compression string `json:"compression,omitempty"`
2782
2783	// ConnectionId: [Optional, Trusted Tester] Connection for external data
2784	// source.
2785	ConnectionId string `json:"connectionId,omitempty"`
2786
2787	// CsvOptions: Additional properties to set if sourceFormat is set to
2788	// CSV.
2789	CsvOptions *CsvOptions `json:"csvOptions,omitempty"`
2790
2791	// GoogleSheetsOptions: [Optional] Additional options if sourceFormat is
2792	// set to GOOGLE_SHEETS.
2793	GoogleSheetsOptions *GoogleSheetsOptions `json:"googleSheetsOptions,omitempty"`
2794
2795	// HivePartitioningOptions: [Optional] Options to configure hive
2796	// partitioning support.
2797	HivePartitioningOptions *HivePartitioningOptions `json:"hivePartitioningOptions,omitempty"`
2798
2799	// IgnoreUnknownValues: [Optional] Indicates if BigQuery should allow
2800	// extra values that are not represented in the table schema. If true,
2801	// the extra values are ignored. If false, records with extra columns
2802	// are treated as bad records, and if there are too many bad records, an
2803	// invalid error is returned in the job result. The default value is
2804	// false. The sourceFormat property determines what BigQuery treats as
2805	// an extra value: CSV: Trailing columns JSON: Named values that don't
2806	// match any column names Google Cloud Bigtable: This setting is
2807	// ignored. Google Cloud Datastore backups: This setting is ignored.
2808	// Avro: This setting is ignored.
2809	IgnoreUnknownValues bool `json:"ignoreUnknownValues,omitempty"`
2810
2811	// MaxBadRecords: [Optional] The maximum number of bad records that
2812	// BigQuery can ignore when reading data. If the number of bad records
2813	// exceeds this value, an invalid error is returned in the job result.
2814	// This is only valid for CSV, JSON, and Google Sheets. The default
2815	// value is 0, which requires that all records are valid. This setting
2816	// is ignored for Google Cloud Bigtable, Google Cloud Datastore backups
2817	// and Avro formats.
2818	MaxBadRecords int64 `json:"maxBadRecords,omitempty"`
2819
2820	// ParquetOptions: Additional properties to set if sourceFormat is set
2821	// to Parquet.
2822	ParquetOptions *ParquetOptions `json:"parquetOptions,omitempty"`
2823
2824	// Schema: [Optional] The schema for the data. Schema is required for
2825	// CSV and JSON formats. Schema is disallowed for Google Cloud Bigtable,
2826	// Cloud Datastore backups, and Avro formats.
2827	Schema *TableSchema `json:"schema,omitempty"`
2828
2829	// SourceFormat: [Required] The data format. For CSV files, specify
2830	// "CSV". For Google sheets, specify "GOOGLE_SHEETS". For
2831	// newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro
2832	// files, specify "AVRO". For Google Cloud Datastore backups, specify
2833	// "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify
2834	// "BIGTABLE".
2835	SourceFormat string `json:"sourceFormat,omitempty"`
2836
2837	// SourceUris: [Required] The fully-qualified URIs that point to your
2838	// data in Google Cloud. For Google Cloud Storage URIs: Each URI can
2839	// contain one '*' wildcard character and it must come after the
2840	// 'bucket' name. Size limits related to load jobs apply to external
2841	// data sources. For Google Cloud Bigtable URIs: Exactly one URI can be
2842	// specified and it has be a fully specified and valid HTTPS URL for a
2843	// Google Cloud Bigtable table. For Google Cloud Datastore backups,
2844	// exactly one URI can be specified. Also, the '*' wildcard character is
2845	// not allowed.
2846	SourceUris []string `json:"sourceUris,omitempty"`
2847
2848	// ForceSendFields is a list of field names (e.g. "Autodetect") to
2849	// unconditionally include in API requests. By default, fields with
2850	// empty values are omitted from API requests. However, any non-pointer,
2851	// non-interface field appearing in ForceSendFields will be sent to the
2852	// server regardless of whether the field is empty or not. This may be
2853	// used to include empty fields in Patch requests.
2854	ForceSendFields []string `json:"-"`
2855
2856	// NullFields is a list of field names (e.g. "Autodetect") to include in
2857	// API requests with the JSON null value. By default, fields with empty
2858	// values are omitted from API requests. However, any field with an
2859	// empty value appearing in NullFields will be sent to the server as
2860	// null. It is an error if a field in this list has a non-empty value.
2861	// This may be used to include null fields in Patch requests.
2862	NullFields []string `json:"-"`
2863}
2864
2865func (s *ExternalDataConfiguration) MarshalJSON() ([]byte, error) {
2866	type NoMethod ExternalDataConfiguration
2867	raw := NoMethod(*s)
2868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2869}
2870
2871// FeatureValue: Representative value of a single feature within the
2872// cluster.
2873type FeatureValue struct {
2874	// CategoricalValue: The categorical feature value.
2875	CategoricalValue *CategoricalValue `json:"categoricalValue,omitempty"`
2876
2877	// FeatureColumn: The feature column name.
2878	FeatureColumn string `json:"featureColumn,omitempty"`
2879
2880	// NumericalValue: The numerical feature value. This is the centroid
2881	// value for this feature.
2882	NumericalValue float64 `json:"numericalValue,omitempty"`
2883
2884	// ForceSendFields is a list of field names (e.g. "CategoricalValue") to
2885	// unconditionally include in API requests. By default, fields with
2886	// empty values are omitted from API requests. However, any non-pointer,
2887	// non-interface field appearing in ForceSendFields will be sent to the
2888	// server regardless of whether the field is empty or not. This may be
2889	// used to include empty fields in Patch requests.
2890	ForceSendFields []string `json:"-"`
2891
2892	// NullFields is a list of field names (e.g. "CategoricalValue") to
2893	// include in API requests with the JSON null value. By default, fields
2894	// with empty values are omitted from API requests. However, any field
2895	// with an empty value appearing in NullFields will be sent to the
2896	// server as null. It is an error if a field in this list has a
2897	// non-empty value. This may be used to include null fields in Patch
2898	// requests.
2899	NullFields []string `json:"-"`
2900}
2901
2902func (s *FeatureValue) MarshalJSON() ([]byte, error) {
2903	type NoMethod FeatureValue
2904	raw := NoMethod(*s)
2905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2906}
2907
2908func (s *FeatureValue) UnmarshalJSON(data []byte) error {
2909	type NoMethod FeatureValue
2910	var s1 struct {
2911		NumericalValue gensupport.JSONFloat64 `json:"numericalValue"`
2912		*NoMethod
2913	}
2914	s1.NoMethod = (*NoMethod)(s)
2915	if err := json.Unmarshal(data, &s1); err != nil {
2916		return err
2917	}
2918	s.NumericalValue = float64(s1.NumericalValue)
2919	return nil
2920}
2921
2922// GetIamPolicyRequest: Request message for `GetIamPolicy` method.
2923type GetIamPolicyRequest struct {
2924	// Options: OPTIONAL: A `GetPolicyOptions` object for specifying options
2925	// to `GetIamPolicy`.
2926	Options *GetPolicyOptions `json:"options,omitempty"`
2927
2928	// ForceSendFields is a list of field names (e.g. "Options") to
2929	// unconditionally include in API requests. By default, fields with
2930	// empty values are omitted from API requests. However, any non-pointer,
2931	// non-interface field appearing in ForceSendFields will be sent to the
2932	// server regardless of whether the field is empty or not. This may be
2933	// used to include empty fields in Patch requests.
2934	ForceSendFields []string `json:"-"`
2935
2936	// NullFields is a list of field names (e.g. "Options") to include in
2937	// API requests with the JSON null value. By default, fields with empty
2938	// values are omitted from API requests. However, any field with an
2939	// empty value appearing in NullFields will be sent to the server as
2940	// null. It is an error if a field in this list has a non-empty value.
2941	// This may be used to include null fields in Patch requests.
2942	NullFields []string `json:"-"`
2943}
2944
2945func (s *GetIamPolicyRequest) MarshalJSON() ([]byte, error) {
2946	type NoMethod GetIamPolicyRequest
2947	raw := NoMethod(*s)
2948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2949}
2950
2951// GetPolicyOptions: Encapsulates settings provided to GetIamPolicy.
2952type GetPolicyOptions struct {
2953	// RequestedPolicyVersion: Optional. The policy format version to be
2954	// returned. Valid values are 0, 1, and 3. Requests specifying an
2955	// invalid value will be rejected. Requests for policies with any
2956	// conditional bindings must specify version 3. Policies without any
2957	// conditional bindings may specify any valid value or leave the field
2958	// unset. To learn which resources support conditions in their IAM
2959	// policies, see the IAM documentation
2960	// (https://cloud.google.com/iam/help/conditions/resource-policies).
2961	RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"`
2962
2963	// ForceSendFields is a list of field names (e.g.
2964	// "RequestedPolicyVersion") to unconditionally include in API requests.
2965	// By default, fields with empty values are omitted from API requests.
2966	// However, any non-pointer, non-interface field appearing in
2967	// ForceSendFields will be sent to the server regardless of whether the
2968	// field is empty or not. This may be used to include empty fields in
2969	// Patch requests.
2970	ForceSendFields []string `json:"-"`
2971
2972	// NullFields is a list of field names (e.g. "RequestedPolicyVersion")
2973	// to include in API requests with the JSON null value. By default,
2974	// fields with empty values are omitted from API requests. However, any
2975	// field with an empty value appearing in NullFields will be sent to the
2976	// server as null. It is an error if a field in this list has a
2977	// non-empty value. This may be used to include null fields in Patch
2978	// requests.
2979	NullFields []string `json:"-"`
2980}
2981
2982func (s *GetPolicyOptions) MarshalJSON() ([]byte, error) {
2983	type NoMethod GetPolicyOptions
2984	raw := NoMethod(*s)
2985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2986}
2987
2988type GetQueryResultsResponse struct {
2989	// CacheHit: Whether the query result was fetched from the query cache.
2990	CacheHit bool `json:"cacheHit,omitempty"`
2991
2992	// Errors: [Output-only] The first errors or warnings encountered during
2993	// the running of the job. The final message includes the number of
2994	// errors that caused the process to stop. Errors here do not
2995	// necessarily mean that the job has completed or was unsuccessful.
2996	Errors []*ErrorProto `json:"errors,omitempty"`
2997
2998	// Etag: A hash of this response.
2999	Etag string `json:"etag,omitempty"`
3000
3001	// JobComplete: Whether the query has completed or not. If rows or
3002	// totalRows are present, this will always be true. If this is false,
3003	// totalRows will not be available.
3004	JobComplete bool `json:"jobComplete,omitempty"`
3005
3006	// JobReference: Reference to the BigQuery Job that was created to run
3007	// the query. This field will be present even if the original request
3008	// timed out, in which case GetQueryResults can be used to read the
3009	// results once the query has completed. Since this API only returns the
3010	// first page of results, subsequent pages can be fetched via the same
3011	// mechanism (GetQueryResults).
3012	JobReference *JobReference `json:"jobReference,omitempty"`
3013
3014	// Kind: The resource type of the response.
3015	Kind string `json:"kind,omitempty"`
3016
3017	// NumDmlAffectedRows: [Output-only] The number of rows affected by a
3018	// DML statement. Present only for DML statements INSERT, UPDATE or
3019	// DELETE.
3020	NumDmlAffectedRows int64 `json:"numDmlAffectedRows,omitempty,string"`
3021
3022	// PageToken: A token used for paging results.
3023	PageToken string `json:"pageToken,omitempty"`
3024
3025	// Rows: An object with as many results as can be contained within the
3026	// maximum permitted reply size. To get any additional rows, you can
3027	// call GetQueryResults and specify the jobReference returned above.
3028	// Present only when the query completes successfully.
3029	Rows []*TableRow `json:"rows,omitempty"`
3030
3031	// Schema: The schema of the results. Present only when the query
3032	// completes successfully.
3033	Schema *TableSchema `json:"schema,omitempty"`
3034
3035	// TotalBytesProcessed: The total number of bytes processed for this
3036	// query.
3037	TotalBytesProcessed int64 `json:"totalBytesProcessed,omitempty,string"`
3038
3039	// TotalRows: The total number of rows in the complete query result set,
3040	// which can be more than the number of rows in this single page of
3041	// results. Present only when the query completes successfully.
3042	TotalRows uint64 `json:"totalRows,omitempty,string"`
3043
3044	// ServerResponse contains the HTTP response code and headers from the
3045	// server.
3046	googleapi.ServerResponse `json:"-"`
3047
3048	// ForceSendFields is a list of field names (e.g. "CacheHit") to
3049	// unconditionally include in API requests. By default, fields with
3050	// empty values are omitted from API requests. However, any non-pointer,
3051	// non-interface field appearing in ForceSendFields will be sent to the
3052	// server regardless of whether the field is empty or not. This may be
3053	// used to include empty fields in Patch requests.
3054	ForceSendFields []string `json:"-"`
3055
3056	// NullFields is a list of field names (e.g. "CacheHit") to include in
3057	// API requests with the JSON null value. By default, fields with empty
3058	// values are omitted from API requests. However, any field with an
3059	// empty value appearing in NullFields will be sent to the server as
3060	// null. It is an error if a field in this list has a non-empty value.
3061	// This may be used to include null fields in Patch requests.
3062	NullFields []string `json:"-"`
3063}
3064
3065func (s *GetQueryResultsResponse) MarshalJSON() ([]byte, error) {
3066	type NoMethod GetQueryResultsResponse
3067	raw := NoMethod(*s)
3068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3069}
3070
3071type GetServiceAccountResponse struct {
3072	// Email: The service account email address.
3073	Email string `json:"email,omitempty"`
3074
3075	// Kind: The resource type of the response.
3076	Kind string `json:"kind,omitempty"`
3077
3078	// ServerResponse contains the HTTP response code and headers from the
3079	// server.
3080	googleapi.ServerResponse `json:"-"`
3081
3082	// ForceSendFields is a list of field names (e.g. "Email") to
3083	// unconditionally include in API requests. By default, fields with
3084	// empty values are omitted from API requests. However, any non-pointer,
3085	// non-interface field appearing in ForceSendFields will be sent to the
3086	// server regardless of whether the field is empty or not. This may be
3087	// used to include empty fields in Patch requests.
3088	ForceSendFields []string `json:"-"`
3089
3090	// NullFields is a list of field names (e.g. "Email") to include in API
3091	// requests with the JSON null value. By default, fields with empty
3092	// values are omitted from API requests. However, any field with an
3093	// empty value appearing in NullFields will be sent to the server as
3094	// null. It is an error if a field in this list has a non-empty value.
3095	// This may be used to include null fields in Patch requests.
3096	NullFields []string `json:"-"`
3097}
3098
3099func (s *GetServiceAccountResponse) MarshalJSON() ([]byte, error) {
3100	type NoMethod GetServiceAccountResponse
3101	raw := NoMethod(*s)
3102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3103}
3104
3105// GlobalExplanation: Global explanations containing the top most
3106// important features after training.
3107type GlobalExplanation struct {
3108	// ClassLabel: Class label for this set of global explanations. Will be
3109	// empty/null for binary logistic and linear regression models. Sorted
3110	// alphabetically in descending order.
3111	ClassLabel string `json:"classLabel,omitempty"`
3112
3113	// Explanations: A list of the top global explanations. Sorted by
3114	// absolute value of attribution in descending order.
3115	Explanations []*Explanation `json:"explanations,omitempty"`
3116
3117	// ForceSendFields is a list of field names (e.g. "ClassLabel") to
3118	// unconditionally include in API requests. By default, fields with
3119	// empty values are omitted from API requests. However, any non-pointer,
3120	// non-interface field appearing in ForceSendFields will be sent to the
3121	// server regardless of whether the field is empty or not. This may be
3122	// used to include empty fields in Patch requests.
3123	ForceSendFields []string `json:"-"`
3124
3125	// NullFields is a list of field names (e.g. "ClassLabel") to include in
3126	// API requests with the JSON null value. By default, fields with empty
3127	// values are omitted from API requests. However, any field with an
3128	// empty value appearing in NullFields will be sent to the server as
3129	// null. It is an error if a field in this list has a non-empty value.
3130	// This may be used to include null fields in Patch requests.
3131	NullFields []string `json:"-"`
3132}
3133
3134func (s *GlobalExplanation) MarshalJSON() ([]byte, error) {
3135	type NoMethod GlobalExplanation
3136	raw := NoMethod(*s)
3137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3138}
3139
3140type GoogleSheetsOptions struct {
3141	// Range: [Optional] Range of a sheet to query from. Only used when
3142	// non-empty. Typical format:
3143	// sheet_name!top_left_cell_id:bottom_right_cell_id For example:
3144	// sheet1!A1:B20
3145	Range string `json:"range,omitempty"`
3146
3147	// SkipLeadingRows: [Optional] The number of rows at the top of a sheet
3148	// that BigQuery will skip when reading the data. The default value is
3149	// 0. This property is useful if you have header rows that should be
3150	// skipped. When autodetect is on, behavior is the following: *
3151	// skipLeadingRows unspecified - Autodetect tries to detect headers in
3152	// the first row. If they are not detected, the row is read as data.
3153	// Otherwise data is read starting from the second row. *
3154	// skipLeadingRows is 0 - Instructs autodetect that there are no headers
3155	// and data should be read starting from the first row. *
3156	// skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to
3157	// detect headers in row N. If headers are not detected, row N is just
3158	// skipped. Otherwise row N is used to extract column names for the
3159	// detected schema.
3160	SkipLeadingRows int64 `json:"skipLeadingRows,omitempty,string"`
3161
3162	// ForceSendFields is a list of field names (e.g. "Range") to
3163	// unconditionally include in API requests. By default, fields with
3164	// empty values are omitted from API requests. However, any non-pointer,
3165	// non-interface field appearing in ForceSendFields will be sent to the
3166	// server regardless of whether the field is empty or not. This may be
3167	// used to include empty fields in Patch requests.
3168	ForceSendFields []string `json:"-"`
3169
3170	// NullFields is a list of field names (e.g. "Range") to include in API
3171	// requests with the JSON null value. By default, fields with empty
3172	// values are omitted from API requests. However, any field with an
3173	// empty value appearing in NullFields will be sent to the server as
3174	// null. It is an error if a field in this list has a non-empty value.
3175	// This may be used to include null fields in Patch requests.
3176	NullFields []string `json:"-"`
3177}
3178
3179func (s *GoogleSheetsOptions) MarshalJSON() ([]byte, error) {
3180	type NoMethod GoogleSheetsOptions
3181	raw := NoMethod(*s)
3182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3183}
3184
3185type HivePartitioningOptions struct {
3186	// Mode: [Optional] When set, what mode of hive partitioning to use when
3187	// reading data. The following modes are supported. (1) AUTO:
3188	// automatically infer partition key name(s) and type(s). (2) STRINGS:
3189	// automatically infer partition key name(s). All types are interpreted
3190	// as strings. (3) CUSTOM: partition key schema is encoded in the source
3191	// URI prefix. Not all storage formats support hive partitioning.
3192	// Requesting hive partitioning on an unsupported format will lead to an
3193	// error. Currently supported types include: AVRO, CSV, JSON, ORC and
3194	// Parquet.
3195	Mode string `json:"mode,omitempty"`
3196
3197	// RequirePartitionFilter: [Optional] If set to true, queries over this
3198	// table require a partition filter that can be used for partition
3199	// elimination to be specified. Note that this field should only be true
3200	// when creating a permanent external table or querying a temporary
3201	// external table. Hive-partitioned loads with requirePartitionFilter
3202	// explicitly set to true will fail.
3203	RequirePartitionFilter bool `json:"requirePartitionFilter,omitempty"`
3204
3205	// SourceUriPrefix: [Optional] When hive partition detection is
3206	// requested, a common prefix for all source uris should be supplied.
3207	// The prefix must end immediately before the partition key encoding
3208	// begins. For example, consider files following this data layout.
3209	// gs://bucket/path_to_table/dt=2019-01-01/country=BR/id=7/file.avro
3210	// gs://bucket/path_to_table/dt=2018-12-31/country=CA/id=3/file.avro
3211	// When hive partitioning is requested with either AUTO or STRINGS
3212	// detection, the common prefix can be either of
3213	// gs://bucket/path_to_table or gs://bucket/path_to_table/ (trailing
3214	// slash does not matter).
3215	SourceUriPrefix string `json:"sourceUriPrefix,omitempty"`
3216
3217	// ForceSendFields is a list of field names (e.g. "Mode") to
3218	// unconditionally include in API requests. By default, fields with
3219	// empty values are omitted from API requests. However, any non-pointer,
3220	// non-interface field appearing in ForceSendFields will be sent to the
3221	// server regardless of whether the field is empty or not. This may be
3222	// used to include empty fields in Patch requests.
3223	ForceSendFields []string `json:"-"`
3224
3225	// NullFields is a list of field names (e.g. "Mode") to include in API
3226	// requests with the JSON null value. By default, fields with empty
3227	// values are omitted from API requests. However, any field with an
3228	// empty value appearing in NullFields will be sent to the server as
3229	// null. It is an error if a field in this list has a non-empty value.
3230	// This may be used to include null fields in Patch requests.
3231	NullFields []string `json:"-"`
3232}
3233
3234func (s *HivePartitioningOptions) MarshalJSON() ([]byte, error) {
3235	type NoMethod HivePartitioningOptions
3236	raw := NoMethod(*s)
3237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3238}
3239
3240// IterationResult: Information about a single iteration of the training
3241// run.
3242type IterationResult struct {
3243	ArimaResult *ArimaResult `json:"arimaResult,omitempty"`
3244
3245	// ClusterInfos: Information about top clusters for clustering models.
3246	ClusterInfos []*ClusterInfo `json:"clusterInfos,omitempty"`
3247
3248	// DurationMs: Time taken to run the iteration in milliseconds.
3249	DurationMs int64 `json:"durationMs,omitempty,string"`
3250
3251	// EvalLoss: Loss computed on the eval data at the end of iteration.
3252	EvalLoss float64 `json:"evalLoss,omitempty"`
3253
3254	// Index: Index of the iteration, 0 based.
3255	Index int64 `json:"index,omitempty"`
3256
3257	// LearnRate: Learn rate used for this iteration.
3258	LearnRate float64 `json:"learnRate,omitempty"`
3259
3260	// TrainingLoss: Loss computed on the training data at the end of
3261	// iteration.
3262	TrainingLoss float64 `json:"trainingLoss,omitempty"`
3263
3264	// ForceSendFields is a list of field names (e.g. "ArimaResult") to
3265	// unconditionally include in API requests. By default, fields with
3266	// empty values are omitted from API requests. However, any non-pointer,
3267	// non-interface field appearing in ForceSendFields will be sent to the
3268	// server regardless of whether the field is empty or not. This may be
3269	// used to include empty fields in Patch requests.
3270	ForceSendFields []string `json:"-"`
3271
3272	// NullFields is a list of field names (e.g. "ArimaResult") to include
3273	// in API requests with the JSON null value. By default, fields with
3274	// empty values are omitted from API requests. However, any field with
3275	// an empty value appearing in NullFields will be sent to the server as
3276	// null. It is an error if a field in this list has a non-empty value.
3277	// This may be used to include null fields in Patch requests.
3278	NullFields []string `json:"-"`
3279}
3280
3281func (s *IterationResult) MarshalJSON() ([]byte, error) {
3282	type NoMethod IterationResult
3283	raw := NoMethod(*s)
3284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3285}
3286
3287func (s *IterationResult) UnmarshalJSON(data []byte) error {
3288	type NoMethod IterationResult
3289	var s1 struct {
3290		EvalLoss     gensupport.JSONFloat64 `json:"evalLoss"`
3291		LearnRate    gensupport.JSONFloat64 `json:"learnRate"`
3292		TrainingLoss gensupport.JSONFloat64 `json:"trainingLoss"`
3293		*NoMethod
3294	}
3295	s1.NoMethod = (*NoMethod)(s)
3296	if err := json.Unmarshal(data, &s1); err != nil {
3297		return err
3298	}
3299	s.EvalLoss = float64(s1.EvalLoss)
3300	s.LearnRate = float64(s1.LearnRate)
3301	s.TrainingLoss = float64(s1.TrainingLoss)
3302	return nil
3303}
3304
3305type Job struct {
3306	// Configuration: [Required] Describes the job configuration.
3307	Configuration *JobConfiguration `json:"configuration,omitempty"`
3308
3309	// Etag: [Output-only] A hash of this resource.
3310	Etag string `json:"etag,omitempty"`
3311
3312	// Id: [Output-only] Opaque ID field of the job
3313	Id string `json:"id,omitempty"`
3314
3315	// JobReference: [Optional] Reference describing the unique-per-user
3316	// name of the job.
3317	JobReference *JobReference `json:"jobReference,omitempty"`
3318
3319	// Kind: [Output-only] The type of the resource.
3320	Kind string `json:"kind,omitempty"`
3321
3322	// SelfLink: [Output-only] A URL that can be used to access this
3323	// resource again.
3324	SelfLink string `json:"selfLink,omitempty"`
3325
3326	// Statistics: [Output-only] Information about the job, including
3327	// starting time and ending time of the job.
3328	Statistics *JobStatistics `json:"statistics,omitempty"`
3329
3330	// Status: [Output-only] The status of this job. Examine this value when
3331	// polling an asynchronous job to see if the job is complete.
3332	Status *JobStatus `json:"status,omitempty"`
3333
3334	// UserEmail: [Output-only] Email address of the user who ran the job.
3335	UserEmail string `json:"user_email,omitempty"`
3336
3337	// ServerResponse contains the HTTP response code and headers from the
3338	// server.
3339	googleapi.ServerResponse `json:"-"`
3340
3341	// ForceSendFields is a list of field names (e.g. "Configuration") to
3342	// unconditionally include in API requests. By default, fields with
3343	// empty values are omitted from API requests. However, any non-pointer,
3344	// non-interface field appearing in ForceSendFields will be sent to the
3345	// server regardless of whether the field is empty or not. This may be
3346	// used to include empty fields in Patch requests.
3347	ForceSendFields []string `json:"-"`
3348
3349	// NullFields is a list of field names (e.g. "Configuration") to include
3350	// in API requests with the JSON null value. By default, fields with
3351	// empty values are omitted from API requests. However, any field with
3352	// an empty value appearing in NullFields will be sent to the server as
3353	// null. It is an error if a field in this list has a non-empty value.
3354	// This may be used to include null fields in Patch requests.
3355	NullFields []string `json:"-"`
3356}
3357
3358func (s *Job) MarshalJSON() ([]byte, error) {
3359	type NoMethod Job
3360	raw := NoMethod(*s)
3361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3362}
3363
3364type JobCancelResponse struct {
3365	// Job: The final state of the job.
3366	Job *Job `json:"job,omitempty"`
3367
3368	// Kind: The resource type of the response.
3369	Kind string `json:"kind,omitempty"`
3370
3371	// ServerResponse contains the HTTP response code and headers from the
3372	// server.
3373	googleapi.ServerResponse `json:"-"`
3374
3375	// ForceSendFields is a list of field names (e.g. "Job") to
3376	// unconditionally include in API requests. By default, fields with
3377	// empty values are omitted from API requests. However, any non-pointer,
3378	// non-interface field appearing in ForceSendFields will be sent to the
3379	// server regardless of whether the field is empty or not. This may be
3380	// used to include empty fields in Patch requests.
3381	ForceSendFields []string `json:"-"`
3382
3383	// NullFields is a list of field names (e.g. "Job") to include in API
3384	// requests with the JSON null value. By default, fields with empty
3385	// values are omitted from API requests. However, any field with an
3386	// empty value appearing in NullFields will be sent to the server as
3387	// null. It is an error if a field in this list has a non-empty value.
3388	// This may be used to include null fields in Patch requests.
3389	NullFields []string `json:"-"`
3390}
3391
3392func (s *JobCancelResponse) MarshalJSON() ([]byte, error) {
3393	type NoMethod JobCancelResponse
3394	raw := NoMethod(*s)
3395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3396}
3397
3398type JobConfiguration struct {
3399	// Copy: [Pick one] Copies a table.
3400	Copy *JobConfigurationTableCopy `json:"copy,omitempty"`
3401
3402	// DryRun: [Optional] If set, don't actually run this job. A valid query
3403	// will return a mostly empty response with some processing statistics,
3404	// while an invalid query will return the same error it would if it
3405	// wasn't a dry run. Behavior of non-query jobs is undefined.
3406	DryRun bool `json:"dryRun,omitempty"`
3407
3408	// Extract: [Pick one] Configures an extract job.
3409	Extract *JobConfigurationExtract `json:"extract,omitempty"`
3410
3411	// JobTimeoutMs: [Optional] Job timeout in milliseconds. If this time
3412	// limit is exceeded, BigQuery may attempt to terminate the job.
3413	JobTimeoutMs int64 `json:"jobTimeoutMs,omitempty,string"`
3414
3415	// JobType: [Output-only] The type of the job. Can be QUERY, LOAD,
3416	// EXTRACT, COPY or UNKNOWN.
3417	JobType string `json:"jobType,omitempty"`
3418
3419	// Labels: The labels associated with this job. You can use these to
3420	// organize and group your jobs. Label keys and values can be no longer
3421	// than 63 characters, can only contain lowercase letters, numeric
3422	// characters, underscores and dashes. International characters are
3423	// allowed. Label values are optional. Label keys must start with a
3424	// letter and each label in the list must have a different key.
3425	Labels map[string]string `json:"labels,omitempty"`
3426
3427	// Load: [Pick one] Configures a load job.
3428	Load *JobConfigurationLoad `json:"load,omitempty"`
3429
3430	// Query: [Pick one] Configures a query job.
3431	Query *JobConfigurationQuery `json:"query,omitempty"`
3432
3433	// ForceSendFields is a list of field names (e.g. "Copy") to
3434	// unconditionally include in API requests. By default, fields with
3435	// empty values are omitted from API requests. However, any non-pointer,
3436	// non-interface field appearing in ForceSendFields will be sent to the
3437	// server regardless of whether the field is empty or not. This may be
3438	// used to include empty fields in Patch requests.
3439	ForceSendFields []string `json:"-"`
3440
3441	// NullFields is a list of field names (e.g. "Copy") to include in API
3442	// requests with the JSON null value. By default, fields with empty
3443	// values are omitted from API requests. However, any field with an
3444	// empty value appearing in NullFields will be sent to the server as
3445	// null. It is an error if a field in this list has a non-empty value.
3446	// This may be used to include null fields in Patch requests.
3447	NullFields []string `json:"-"`
3448}
3449
3450func (s *JobConfiguration) MarshalJSON() ([]byte, error) {
3451	type NoMethod JobConfiguration
3452	raw := NoMethod(*s)
3453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3454}
3455
3456type JobConfigurationExtract struct {
3457	// Compression: [Optional] The compression type to use for exported
3458	// files. Possible values include GZIP, DEFLATE, SNAPPY, and NONE. The
3459	// default value is NONE. DEFLATE and SNAPPY are only supported for
3460	// Avro. Not applicable when extracting models.
3461	Compression string `json:"compression,omitempty"`
3462
3463	// DestinationFormat: [Optional] The exported file format. Possible
3464	// values include CSV, NEWLINE_DELIMITED_JSON, PARQUET or AVRO for
3465	// tables and ML_TF_SAVED_MODEL or ML_XGBOOST_BOOSTER for models. The
3466	// default value for tables is CSV. Tables with nested or repeated
3467	// fields cannot be exported as CSV. The default value for models is
3468	// ML_TF_SAVED_MODEL.
3469	DestinationFormat string `json:"destinationFormat,omitempty"`
3470
3471	// DestinationUri: [Pick one] DEPRECATED: Use destinationUris instead,
3472	// passing only one URI as necessary. The fully-qualified Google Cloud
3473	// Storage URI where the extracted table should be written.
3474	DestinationUri string `json:"destinationUri,omitempty"`
3475
3476	// DestinationUris: [Pick one] A list of fully-qualified Google Cloud
3477	// Storage URIs where the extracted table should be written.
3478	DestinationUris []string `json:"destinationUris,omitempty"`
3479
3480	// FieldDelimiter: [Optional] Delimiter to use between fields in the
3481	// exported data. Default is ','. Not applicable when extracting models.
3482	FieldDelimiter string `json:"fieldDelimiter,omitempty"`
3483
3484	// PrintHeader: [Optional] Whether to print out a header row in the
3485	// results. Default is true. Not applicable when extracting models.
3486	//
3487	// Default: true
3488	PrintHeader *bool `json:"printHeader,omitempty"`
3489
3490	// SourceModel: A reference to the model being exported.
3491	SourceModel *ModelReference `json:"sourceModel,omitempty"`
3492
3493	// SourceTable: A reference to the table being exported.
3494	SourceTable *TableReference `json:"sourceTable,omitempty"`
3495
3496	// UseAvroLogicalTypes: [Optional] If destinationFormat is set to
3497	// "AVRO", this flag indicates whether to enable extracting applicable
3498	// column types (such as TIMESTAMP) to their corresponding AVRO logical
3499	// types (timestamp-micros), instead of only using their raw types
3500	// (avro-long). Not applicable when extracting models.
3501	UseAvroLogicalTypes bool `json:"useAvroLogicalTypes,omitempty"`
3502
3503	// ForceSendFields is a list of field names (e.g. "Compression") to
3504	// unconditionally include in API requests. By default, fields with
3505	// empty values are omitted from API requests. However, any non-pointer,
3506	// non-interface field appearing in ForceSendFields will be sent to the
3507	// server regardless of whether the field is empty or not. This may be
3508	// used to include empty fields in Patch requests.
3509	ForceSendFields []string `json:"-"`
3510
3511	// NullFields is a list of field names (e.g. "Compression") to include
3512	// in API requests with the JSON null value. By default, fields with
3513	// empty values are omitted from API requests. However, any field with
3514	// an empty value appearing in NullFields will be sent to the server as
3515	// null. It is an error if a field in this list has a non-empty value.
3516	// This may be used to include null fields in Patch requests.
3517	NullFields []string `json:"-"`
3518}
3519
3520func (s *JobConfigurationExtract) MarshalJSON() ([]byte, error) {
3521	type NoMethod JobConfigurationExtract
3522	raw := NoMethod(*s)
3523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3524}
3525
3526type JobConfigurationLoad struct {
3527	// AllowJaggedRows: [Optional] Accept rows that are missing trailing
3528	// optional columns. The missing values are treated as nulls. If false,
3529	// records with missing trailing columns are treated as bad records, and
3530	// if there are too many bad records, an invalid error is returned in
3531	// the job result. The default value is false. Only applicable to CSV,
3532	// ignored for other formats.
3533	AllowJaggedRows bool `json:"allowJaggedRows,omitempty"`
3534
3535	// AllowQuotedNewlines: Indicates if BigQuery should allow quoted data
3536	// sections that contain newline characters in a CSV file. The default
3537	// value is false.
3538	AllowQuotedNewlines bool `json:"allowQuotedNewlines,omitempty"`
3539
3540	// Autodetect: [Optional] Indicates if we should automatically infer the
3541	// options and schema for CSV and JSON sources.
3542	Autodetect bool `json:"autodetect,omitempty"`
3543
3544	// Clustering: [Beta] Clustering specification for the destination
3545	// table. Must be specified with time-based partitioning, data in the
3546	// table will be first partitioned and subsequently clustered.
3547	Clustering *Clustering `json:"clustering,omitempty"`
3548
3549	// CreateDisposition: [Optional] Specifies whether the job is allowed to
3550	// create new tables. The following values are supported:
3551	// CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the
3552	// table. CREATE_NEVER: The table must already exist. If it does not, a
3553	// 'notFound' error is returned in the job result. The default value is
3554	// CREATE_IF_NEEDED. Creation, truncation and append actions occur as
3555	// one atomic update upon job completion.
3556	CreateDisposition string `json:"createDisposition,omitempty"`
3557
3558	// DecimalTargetTypes: Defines the list of possible SQL data types to
3559	// which the source decimal values are converted. This list and the
3560	// precision and the scale parameters of the decimal field determine the
3561	// target type. In the order of NUMERIC, BIGNUMERIC (Preview
3562	// (/products/#product-launch-stages)), and STRING, a type is picked if
3563	// it is in the specified list and if it supports the precision and the
3564	// scale. STRING supports all precision and scale values. If none of the
3565	// listed types supports the precision and the scale, the type
3566	// supporting the widest range in the specified list is picked, and if a
3567	// value exceeds the supported range when reading the data, an error
3568	// will be thrown. Example: Suppose the value of this field is
3569	// ["NUMERIC", "BIGNUMERIC"]. If (precision,scale) is: * (38,9) ->
3570	// NUMERIC; * (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer
3571	// digits); * (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional
3572	// digits); * (76,38) -> BIGNUMERIC; * (77,38) -> BIGNUMERIC (error if
3573	// value exeeds supported range). This field cannot contain duplicate
3574	// types. The order of the types in this field is ignored. For example,
3575	// ["BIGNUMERIC", "NUMERIC"] is the same as ["NUMERIC", "BIGNUMERIC"]
3576	// and NUMERIC always takes precedence over BIGNUMERIC. Defaults to
3577	// ["NUMERIC", "STRING"] for ORC and ["NUMERIC"] for the other file
3578	// formats.
3579	DecimalTargetTypes []string `json:"decimalTargetTypes,omitempty"`
3580
3581	// DestinationEncryptionConfiguration: Custom encryption configuration
3582	// (e.g., Cloud KMS keys).
3583	DestinationEncryptionConfiguration *EncryptionConfiguration `json:"destinationEncryptionConfiguration,omitempty"`
3584
3585	// DestinationTable: [Required] The destination table to load the data
3586	// into.
3587	DestinationTable *TableReference `json:"destinationTable,omitempty"`
3588
3589	// DestinationTableProperties: [Beta] [Optional] Properties with which
3590	// to create the destination table if it is new.
3591	DestinationTableProperties *DestinationTableProperties `json:"destinationTableProperties,omitempty"`
3592
3593	// Encoding: [Optional] The character encoding of the data. The
3594	// supported values are UTF-8 or ISO-8859-1. The default value is UTF-8.
3595	// BigQuery decodes the data after the raw, binary data has been split
3596	// using the values of the quote and fieldDelimiter properties.
3597	Encoding string `json:"encoding,omitempty"`
3598
3599	// FieldDelimiter: [Optional] The separator for fields in a CSV file.
3600	// The separator can be any ISO-8859-1 single-byte character. To use a
3601	// character in the range 128-255, you must encode the character as
3602	// UTF8. BigQuery converts the string to ISO-8859-1 encoding, and then
3603	// uses the first byte of the encoded string to split the data in its
3604	// raw, binary state. BigQuery also supports the escape sequence "\t" to
3605	// specify a tab separator. The default value is a comma (',').
3606	FieldDelimiter string `json:"fieldDelimiter,omitempty"`
3607
3608	// HivePartitioningOptions: [Optional] Options to configure hive
3609	// partitioning support.
3610	HivePartitioningOptions *HivePartitioningOptions `json:"hivePartitioningOptions,omitempty"`
3611
3612	// IgnoreUnknownValues: [Optional] Indicates if BigQuery should allow
3613	// extra values that are not represented in the table schema. If true,
3614	// the extra values are ignored. If false, records with extra columns
3615	// are treated as bad records, and if there are too many bad records, an
3616	// invalid error is returned in the job result. The default value is
3617	// false. The sourceFormat property determines what BigQuery treats as
3618	// an extra value: CSV: Trailing columns JSON: Named values that don't
3619	// match any column names
3620	IgnoreUnknownValues bool `json:"ignoreUnknownValues,omitempty"`
3621
3622	// JsonExtension: [Optional] If sourceFormat is set to newline-delimited
3623	// JSON, indicates whether it should be processed as a JSON variant such
3624	// as GeoJSON. For a sourceFormat other than JSON, omit this field. If
3625	// the sourceFormat is newline-delimited JSON: - for newline-delimited
3626	// GeoJSON: set to GEOJSON.
3627	JsonExtension string `json:"jsonExtension,omitempty"`
3628
3629	// MaxBadRecords: [Optional] The maximum number of bad records that
3630	// BigQuery can ignore when running the job. If the number of bad
3631	// records exceeds this value, an invalid error is returned in the job
3632	// result. This is only valid for CSV and JSON. The default value is 0,
3633	// which requires that all records are valid.
3634	MaxBadRecords int64 `json:"maxBadRecords,omitempty"`
3635
3636	// NullMarker: [Optional] Specifies a string that represents a null
3637	// value in a CSV file. For example, if you specify "\N", BigQuery
3638	// interprets "\N" as a null value when loading a CSV file. The default
3639	// value is the empty string. If you set this property to a custom
3640	// value, BigQuery throws an error if an empty string is present for all
3641	// data types except for STRING and BYTE. For STRING and BYTE columns,
3642	// BigQuery interprets the empty string as an empty value.
3643	NullMarker string `json:"nullMarker,omitempty"`
3644
3645	// ParquetOptions: [Optional] Options to configure parquet support.
3646	ParquetOptions *ParquetOptions `json:"parquetOptions,omitempty"`
3647
3648	// ProjectionFields: If sourceFormat is set to "DATASTORE_BACKUP",
3649	// indicates which entity properties to load into BigQuery from a Cloud
3650	// Datastore backup. Property names are case sensitive and must be
3651	// top-level properties. If no properties are specified, BigQuery loads
3652	// all properties. If any named property isn't found in the Cloud
3653	// Datastore backup, an invalid error is returned in the job result.
3654	ProjectionFields []string `json:"projectionFields,omitempty"`
3655
3656	// Quote: [Optional] The value that is used to quote data sections in a
3657	// CSV file. BigQuery converts the string to ISO-8859-1 encoding, and
3658	// then uses the first byte of the encoded string to split the data in
3659	// its raw, binary state. The default value is a double-quote ('"'). If
3660	// your data does not contain quoted sections, set the property value to
3661	// an empty string. If your data contains quoted newline characters, you
3662	// must also set the allowQuotedNewlines property to true.
3663	//
3664	// Default: "
3665	Quote *string `json:"quote,omitempty"`
3666
3667	// RangePartitioning: [TrustedTester] Range partitioning specification
3668	// for this table. Only one of timePartitioning and rangePartitioning
3669	// should be specified.
3670	RangePartitioning *RangePartitioning `json:"rangePartitioning,omitempty"`
3671
3672	// Schema: [Optional] The schema for the destination table. The schema
3673	// can be omitted if the destination table already exists, or if you're
3674	// loading data from Google Cloud Datastore.
3675	Schema *TableSchema `json:"schema,omitempty"`
3676
3677	// SchemaInline: [Deprecated] The inline schema. For CSV schemas,
3678	// specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING,
3679	// bar:INTEGER, baz:FLOAT".
3680	SchemaInline string `json:"schemaInline,omitempty"`
3681
3682	// SchemaInlineFormat: [Deprecated] The format of the schemaInline
3683	// property.
3684	SchemaInlineFormat string `json:"schemaInlineFormat,omitempty"`
3685
3686	// SchemaUpdateOptions: Allows the schema of the destination table to be
3687	// updated as a side effect of the load job if a schema is autodetected
3688	// or supplied in the job configuration. Schema update options are
3689	// supported in two cases: when writeDisposition is WRITE_APPEND; when
3690	// writeDisposition is WRITE_TRUNCATE and the destination table is a
3691	// partition of a table, specified by partition decorators. For normal
3692	// tables, WRITE_TRUNCATE will always overwrite the schema. One or more
3693	// of the following values are specified: ALLOW_FIELD_ADDITION: allow
3694	// adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow
3695	// relaxing a required field in the original schema to nullable.
3696	SchemaUpdateOptions []string `json:"schemaUpdateOptions,omitempty"`
3697
3698	// SkipLeadingRows: [Optional] The number of rows at the top of a CSV
3699	// file that BigQuery will skip when loading the data. The default value
3700	// is 0. This property is useful if you have header rows in the file
3701	// that should be skipped.
3702	SkipLeadingRows int64 `json:"skipLeadingRows,omitempty"`
3703
3704	// SourceFormat: [Optional] The format of the data files. For CSV files,
3705	// specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For
3706	// newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro,
3707	// specify "AVRO". For parquet, specify "PARQUET". For orc, specify
3708	// "ORC". The default value is CSV.
3709	SourceFormat string `json:"sourceFormat,omitempty"`
3710
3711	// SourceUris: [Required] The fully-qualified URIs that point to your
3712	// data in Google Cloud. For Google Cloud Storage URIs: Each URI can
3713	// contain one '*' wildcard character and it must come after the
3714	// 'bucket' name. Size limits related to load jobs apply to external
3715	// data sources. For Google Cloud Bigtable URIs: Exactly one URI can be
3716	// specified and it has be a fully specified and valid HTTPS URL for a
3717	// Google Cloud Bigtable table. For Google Cloud Datastore backups:
3718	// Exactly one URI can be specified. Also, the '*' wildcard character is
3719	// not allowed.
3720	SourceUris []string `json:"sourceUris,omitempty"`
3721
3722	// TimePartitioning: Time-based partitioning specification for the
3723	// destination table. Only one of timePartitioning and rangePartitioning
3724	// should be specified.
3725	TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"`
3726
3727	// UseAvroLogicalTypes: [Optional] If sourceFormat is set to "AVRO",
3728	// indicates whether to enable interpreting logical types into their
3729	// corresponding types (ie. TIMESTAMP), instead of only using their raw
3730	// types (ie. INTEGER).
3731	UseAvroLogicalTypes bool `json:"useAvroLogicalTypes,omitempty"`
3732
3733	// WriteDisposition: [Optional] Specifies the action that occurs if the
3734	// destination table already exists. The following values are supported:
3735	// WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the
3736	// table data. WRITE_APPEND: If the table already exists, BigQuery
3737	// appends the data to the table. WRITE_EMPTY: If the table already
3738	// exists and contains data, a 'duplicate' error is returned in the job
3739	// result. The default value is WRITE_APPEND. Each action is atomic and
3740	// only occurs if BigQuery is able to complete the job successfully.
3741	// Creation, truncation and append actions occur as one atomic update
3742	// upon job completion.
3743	WriteDisposition string `json:"writeDisposition,omitempty"`
3744
3745	// ForceSendFields is a list of field names (e.g. "AllowJaggedRows") to
3746	// unconditionally include in API requests. By default, fields with
3747	// empty values are omitted from API requests. However, any non-pointer,
3748	// non-interface field appearing in ForceSendFields will be sent to the
3749	// server regardless of whether the field is empty or not. This may be
3750	// used to include empty fields in Patch requests.
3751	ForceSendFields []string `json:"-"`
3752
3753	// NullFields is a list of field names (e.g. "AllowJaggedRows") to
3754	// include in API requests with the JSON null value. By default, fields
3755	// with empty values are omitted from API requests. However, any field
3756	// with an empty value appearing in NullFields will be sent to the
3757	// server as null. It is an error if a field in this list has a
3758	// non-empty value. This may be used to include null fields in Patch
3759	// requests.
3760	NullFields []string `json:"-"`
3761}
3762
3763func (s *JobConfigurationLoad) MarshalJSON() ([]byte, error) {
3764	type NoMethod JobConfigurationLoad
3765	raw := NoMethod(*s)
3766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3767}
3768
3769type JobConfigurationQuery struct {
3770	// AllowLargeResults: [Optional] If true and query uses legacy SQL
3771	// dialect, allows the query to produce arbitrarily large result tables
3772	// at a slight cost in performance. Requires destinationTable to be set.
3773	// For standard SQL queries, this flag is ignored and large results are
3774	// always allowed. However, you must still set destinationTable when
3775	// result size exceeds the allowed maximum response size.
3776	AllowLargeResults bool `json:"allowLargeResults,omitempty"`
3777
3778	// Clustering: [Beta] Clustering specification for the destination
3779	// table. Must be specified with time-based partitioning, data in the
3780	// table will be first partitioned and subsequently clustered.
3781	Clustering *Clustering `json:"clustering,omitempty"`
3782
3783	// ConnectionProperties: Connection properties.
3784	ConnectionProperties []*ConnectionProperty `json:"connectionProperties,omitempty"`
3785
3786	// CreateDisposition: [Optional] Specifies whether the job is allowed to
3787	// create new tables. The following values are supported:
3788	// CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the
3789	// table. CREATE_NEVER: The table must already exist. If it does not, a
3790	// 'notFound' error is returned in the job result. The default value is
3791	// CREATE_IF_NEEDED. Creation, truncation and append actions occur as
3792	// one atomic update upon job completion.
3793	CreateDisposition string `json:"createDisposition,omitempty"`
3794
3795	// CreateSession: If true, creates a new session, where session id will
3796	// be a server generated random id. If false, runs query with an
3797	// existing session_id passed in ConnectionProperty, otherwise runs
3798	// query in non-session mode.
3799	CreateSession bool `json:"createSession,omitempty"`
3800
3801	// DefaultDataset: [Optional] Specifies the default dataset to use for
3802	// unqualified table names in the query. Note that this does not alter
3803	// behavior of unqualified dataset names.
3804	DefaultDataset *DatasetReference `json:"defaultDataset,omitempty"`
3805
3806	// DestinationEncryptionConfiguration: Custom encryption configuration
3807	// (e.g., Cloud KMS keys).
3808	DestinationEncryptionConfiguration *EncryptionConfiguration `json:"destinationEncryptionConfiguration,omitempty"`
3809
3810	// DestinationTable: [Optional] Describes the table where the query
3811	// results should be stored. If not present, a new table will be created
3812	// to store the results. This property must be set for large results
3813	// that exceed the maximum response size.
3814	DestinationTable *TableReference `json:"destinationTable,omitempty"`
3815
3816	// FlattenResults: [Optional] If true and query uses legacy SQL dialect,
3817	// flattens all nested and repeated fields in the query results.
3818	// allowLargeResults must be true if this is set to false. For standard
3819	// SQL queries, this flag is ignored and results are never flattened.
3820	//
3821	// Default: true
3822	FlattenResults *bool `json:"flattenResults,omitempty"`
3823
3824	// MaximumBillingTier: [Optional] Limits the billing tier for this job.
3825	// Queries that have resource usage beyond this tier will fail (without
3826	// incurring a charge). If unspecified, this will be set to your project
3827	// default.
3828	//
3829	// Default: 1
3830	MaximumBillingTier *int64 `json:"maximumBillingTier,omitempty"`
3831
3832	// MaximumBytesBilled: [Optional] Limits the bytes billed for this job.
3833	// Queries that will have bytes billed beyond this limit will fail
3834	// (without incurring a charge). If unspecified, this will be set to
3835	// your project default.
3836	MaximumBytesBilled int64 `json:"maximumBytesBilled,omitempty,string"`
3837
3838	// ParameterMode: Standard SQL only. Set to POSITIONAL to use positional
3839	// (?) query parameters or to NAMED to use named (@myparam) query
3840	// parameters in this query.
3841	ParameterMode string `json:"parameterMode,omitempty"`
3842
3843	// PreserveNulls: [Deprecated] This property is deprecated.
3844	PreserveNulls bool `json:"preserveNulls,omitempty"`
3845
3846	// Priority: [Optional] Specifies a priority for the query. Possible
3847	// values include INTERACTIVE and BATCH. The default value is
3848	// INTERACTIVE.
3849	Priority string `json:"priority,omitempty"`
3850
3851	// Query: [Required] SQL query text to execute. The useLegacySql field
3852	// can be used to indicate whether the query uses legacy SQL or standard
3853	// SQL.
3854	Query string `json:"query,omitempty"`
3855
3856	// QueryParameters: Query parameters for standard SQL queries.
3857	QueryParameters []*QueryParameter `json:"queryParameters,omitempty"`
3858
3859	// RangePartitioning: [TrustedTester] Range partitioning specification
3860	// for this table. Only one of timePartitioning and rangePartitioning
3861	// should be specified.
3862	RangePartitioning *RangePartitioning `json:"rangePartitioning,omitempty"`
3863
3864	// SchemaUpdateOptions: Allows the schema of the destination table to be
3865	// updated as a side effect of the query job. Schema update options are
3866	// supported in two cases: when writeDisposition is WRITE_APPEND; when
3867	// writeDisposition is WRITE_TRUNCATE and the destination table is a
3868	// partition of a table, specified by partition decorators. For normal
3869	// tables, WRITE_TRUNCATE will always overwrite the schema. One or more
3870	// of the following values are specified: ALLOW_FIELD_ADDITION: allow
3871	// adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow
3872	// relaxing a required field in the original schema to nullable.
3873	SchemaUpdateOptions []string `json:"schemaUpdateOptions,omitempty"`
3874
3875	// TableDefinitions: [Optional] If querying an external data source
3876	// outside of BigQuery, describes the data format, location and other
3877	// properties of the data source. By defining these properties, the data
3878	// source can then be queried as if it were a standard BigQuery table.
3879	TableDefinitions map[string]ExternalDataConfiguration `json:"tableDefinitions,omitempty"`
3880
3881	// TimePartitioning: Time-based partitioning specification for the
3882	// destination table. Only one of timePartitioning and rangePartitioning
3883	// should be specified.
3884	TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"`
3885
3886	// UseLegacySql: Specifies whether to use BigQuery's legacy SQL dialect
3887	// for this query. The default value is true. If set to false, the query
3888	// will use BigQuery's standard SQL:
3889	// https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is
3890	// set to false, the value of flattenResults is ignored; query will be
3891	// run as if flattenResults is false.
3892	//
3893	// Default: true
3894	UseLegacySql *bool `json:"useLegacySql,omitempty"`
3895
3896	// UseQueryCache: [Optional] Whether to look for the result in the query
3897	// cache. The query cache is a best-effort cache that will be flushed
3898	// whenever tables in the query are modified. Moreover, the query cache
3899	// is only available when a query does not have a destination table
3900	// specified. The default value is true.
3901	//
3902	// Default: true
3903	UseQueryCache *bool `json:"useQueryCache,omitempty"`
3904
3905	// UserDefinedFunctionResources: Describes user-defined function
3906	// resources used in the query.
3907	UserDefinedFunctionResources []*UserDefinedFunctionResource `json:"userDefinedFunctionResources,omitempty"`
3908
3909	// WriteDisposition: [Optional] Specifies the action that occurs if the
3910	// destination table already exists. The following values are supported:
3911	// WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the
3912	// table data and uses the schema from the query result. WRITE_APPEND:
3913	// If the table already exists, BigQuery appends the data to the table.
3914	// WRITE_EMPTY: If the table already exists and contains data, a
3915	// 'duplicate' error is returned in the job result. The default value is
3916	// WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is
3917	// able to complete the job successfully. Creation, truncation and
3918	// append actions occur as one atomic update upon job completion.
3919	WriteDisposition string `json:"writeDisposition,omitempty"`
3920
3921	// ForceSendFields is a list of field names (e.g. "AllowLargeResults")
3922	// to unconditionally include in API requests. By default, fields with
3923	// empty values are omitted from API requests. However, any non-pointer,
3924	// non-interface field appearing in ForceSendFields will be sent to the
3925	// server regardless of whether the field is empty or not. This may be
3926	// used to include empty fields in Patch requests.
3927	ForceSendFields []string `json:"-"`
3928
3929	// NullFields is a list of field names (e.g. "AllowLargeResults") to
3930	// include in API requests with the JSON null value. By default, fields
3931	// with empty values are omitted from API requests. However, any field
3932	// with an empty value appearing in NullFields will be sent to the
3933	// server as null. It is an error if a field in this list has a
3934	// non-empty value. This may be used to include null fields in Patch
3935	// requests.
3936	NullFields []string `json:"-"`
3937}
3938
3939func (s *JobConfigurationQuery) MarshalJSON() ([]byte, error) {
3940	type NoMethod JobConfigurationQuery
3941	raw := NoMethod(*s)
3942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3943}
3944
3945type JobConfigurationTableCopy struct {
3946	// CreateDisposition: [Optional] Specifies whether the job is allowed to
3947	// create new tables. The following values are supported:
3948	// CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the
3949	// table. CREATE_NEVER: The table must already exist. If it does not, a
3950	// 'notFound' error is returned in the job result. The default value is
3951	// CREATE_IF_NEEDED. Creation, truncation and append actions occur as
3952	// one atomic update upon job completion.
3953	CreateDisposition string `json:"createDisposition,omitempty"`
3954
3955	// DestinationEncryptionConfiguration: Custom encryption configuration
3956	// (e.g., Cloud KMS keys).
3957	DestinationEncryptionConfiguration *EncryptionConfiguration `json:"destinationEncryptionConfiguration,omitempty"`
3958
3959	// DestinationExpirationTime: [Optional] The time when the destination
3960	// table expires. Expired tables will be deleted and their storage
3961	// reclaimed.
3962	DestinationExpirationTime interface{} `json:"destinationExpirationTime,omitempty"`
3963
3964	// DestinationTable: [Required] The destination table
3965	DestinationTable *TableReference `json:"destinationTable,omitempty"`
3966
3967	// OperationType: [Optional] Supported operation types in table copy
3968	// job.
3969	OperationType string `json:"operationType,omitempty"`
3970
3971	// SourceTable: [Pick one] Source table to copy.
3972	SourceTable *TableReference `json:"sourceTable,omitempty"`
3973
3974	// SourceTables: [Pick one] Source tables to copy.
3975	SourceTables []*TableReference `json:"sourceTables,omitempty"`
3976
3977	// WriteDisposition: [Optional] Specifies the action that occurs if the
3978	// destination table already exists. The following values are supported:
3979	// WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the
3980	// table data. WRITE_APPEND: If the table already exists, BigQuery
3981	// appends the data to the table. WRITE_EMPTY: If the table already
3982	// exists and contains data, a 'duplicate' error is returned in the job
3983	// result. The default value is WRITE_EMPTY. Each action is atomic and
3984	// only occurs if BigQuery is able to complete the job successfully.
3985	// Creation, truncation and append actions occur as one atomic update
3986	// upon job completion.
3987	WriteDisposition string `json:"writeDisposition,omitempty"`
3988
3989	// ForceSendFields is a list of field names (e.g. "CreateDisposition")
3990	// to unconditionally include in API requests. By default, fields with
3991	// empty values are omitted from API requests. However, any non-pointer,
3992	// non-interface field appearing in ForceSendFields will be sent to the
3993	// server regardless of whether the field is empty or not. This may be
3994	// used to include empty fields in Patch requests.
3995	ForceSendFields []string `json:"-"`
3996
3997	// NullFields is a list of field names (e.g. "CreateDisposition") to
3998	// include in API requests with the JSON null value. By default, fields
3999	// with empty values are omitted from API requests. However, any field
4000	// with an empty value appearing in NullFields will be sent to the
4001	// server as null. It is an error if a field in this list has a
4002	// non-empty value. This may be used to include null fields in Patch
4003	// requests.
4004	NullFields []string `json:"-"`
4005}
4006
4007func (s *JobConfigurationTableCopy) MarshalJSON() ([]byte, error) {
4008	type NoMethod JobConfigurationTableCopy
4009	raw := NoMethod(*s)
4010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4011}
4012
4013type JobList struct {
4014	// Etag: A hash of this page of results.
4015	Etag string `json:"etag,omitempty"`
4016
4017	// Jobs: List of jobs that were requested.
4018	Jobs []*JobListJobs `json:"jobs,omitempty"`
4019
4020	// Kind: The resource type of the response.
4021	Kind string `json:"kind,omitempty"`
4022
4023	// NextPageToken: A token to request the next page of results.
4024	NextPageToken string `json:"nextPageToken,omitempty"`
4025
4026	// ServerResponse contains the HTTP response code and headers from the
4027	// server.
4028	googleapi.ServerResponse `json:"-"`
4029
4030	// ForceSendFields is a list of field names (e.g. "Etag") to
4031	// unconditionally include in API requests. By default, fields with
4032	// empty values are omitted from API requests. However, any non-pointer,
4033	// non-interface field appearing in ForceSendFields will be sent to the
4034	// server regardless of whether the field is empty or not. This may be
4035	// used to include empty fields in Patch requests.
4036	ForceSendFields []string `json:"-"`
4037
4038	// NullFields is a list of field names (e.g. "Etag") to include in API
4039	// requests with the JSON null value. By default, fields with empty
4040	// values are omitted from API requests. However, any field with an
4041	// empty value appearing in NullFields will be sent to the server as
4042	// null. It is an error if a field in this list has a non-empty value.
4043	// This may be used to include null fields in Patch requests.
4044	NullFields []string `json:"-"`
4045}
4046
4047func (s *JobList) MarshalJSON() ([]byte, error) {
4048	type NoMethod JobList
4049	raw := NoMethod(*s)
4050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4051}
4052
4053type JobListJobs struct {
4054	// Configuration: [Full-projection-only] Specifies the job
4055	// configuration.
4056	Configuration *JobConfiguration `json:"configuration,omitempty"`
4057
4058	// ErrorResult: A result object that will be present only if the job has
4059	// failed.
4060	ErrorResult *ErrorProto `json:"errorResult,omitempty"`
4061
4062	// Id: Unique opaque ID of the job.
4063	Id string `json:"id,omitempty"`
4064
4065	// JobReference: Job reference uniquely identifying the job.
4066	JobReference *JobReference `json:"jobReference,omitempty"`
4067
4068	// Kind: The resource type.
4069	Kind string `json:"kind,omitempty"`
4070
4071	// State: Running state of the job. When the state is DONE, errorResult
4072	// can be checked to determine whether the job succeeded or failed.
4073	State string `json:"state,omitempty"`
4074
4075	// Statistics: [Output-only] Information about the job, including
4076	// starting time and ending time of the job.
4077	Statistics *JobStatistics `json:"statistics,omitempty"`
4078
4079	// Status: [Full-projection-only] Describes the state of the job.
4080	Status *JobStatus `json:"status,omitempty"`
4081
4082	// UserEmail: [Full-projection-only] Email address of the user who ran
4083	// the job.
4084	UserEmail string `json:"user_email,omitempty"`
4085
4086	// ForceSendFields is a list of field names (e.g. "Configuration") to
4087	// unconditionally include in API requests. By default, fields with
4088	// empty values are omitted from API requests. However, any non-pointer,
4089	// non-interface field appearing in ForceSendFields will be sent to the
4090	// server regardless of whether the field is empty or not. This may be
4091	// used to include empty fields in Patch requests.
4092	ForceSendFields []string `json:"-"`
4093
4094	// NullFields is a list of field names (e.g. "Configuration") to include
4095	// in API requests with the JSON null value. By default, fields with
4096	// empty values are omitted from API requests. However, any field with
4097	// an empty value appearing in NullFields will be sent to the server as
4098	// null. It is an error if a field in this list has a non-empty value.
4099	// This may be used to include null fields in Patch requests.
4100	NullFields []string `json:"-"`
4101}
4102
4103func (s *JobListJobs) MarshalJSON() ([]byte, error) {
4104	type NoMethod JobListJobs
4105	raw := NoMethod(*s)
4106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4107}
4108
4109type JobReference struct {
4110	// JobId: [Required] The ID of the job. The ID must contain only letters
4111	// (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The
4112	// maximum length is 1,024 characters.
4113	JobId string `json:"jobId,omitempty"`
4114
4115	// Location: The geographic location of the job. See details at
4116	// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
4117	Location string `json:"location,omitempty"`
4118
4119	// ProjectId: [Required] The ID of the project containing this job.
4120	ProjectId string `json:"projectId,omitempty"`
4121
4122	// ForceSendFields is a list of field names (e.g. "JobId") to
4123	// unconditionally include in API requests. By default, fields with
4124	// empty values are omitted from API requests. However, any non-pointer,
4125	// non-interface field appearing in ForceSendFields will be sent to the
4126	// server regardless of whether the field is empty or not. This may be
4127	// used to include empty fields in Patch requests.
4128	ForceSendFields []string `json:"-"`
4129
4130	// NullFields is a list of field names (e.g. "JobId") to include in API
4131	// requests with the JSON null value. By default, fields with empty
4132	// values are omitted from API requests. However, any field with an
4133	// empty value appearing in NullFields will be sent to the server as
4134	// null. It is an error if a field in this list has a non-empty value.
4135	// This may be used to include null fields in Patch requests.
4136	NullFields []string `json:"-"`
4137}
4138
4139func (s *JobReference) MarshalJSON() ([]byte, error) {
4140	type NoMethod JobReference
4141	raw := NoMethod(*s)
4142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4143}
4144
4145type JobStatistics struct {
4146	// CompletionRatio: [TrustedTester] [Output-only] Job progress (0.0 ->
4147	// 1.0) for LOAD and EXTRACT jobs.
4148	CompletionRatio float64 `json:"completionRatio,omitempty"`
4149
4150	// CreationTime: [Output-only] Creation time of this job, in
4151	// milliseconds since the epoch. This field will be present on all jobs.
4152	CreationTime int64 `json:"creationTime,omitempty,string"`
4153
4154	// EndTime: [Output-only] End time of this job, in milliseconds since
4155	// the epoch. This field will be present whenever a job is in the DONE
4156	// state.
4157	EndTime int64 `json:"endTime,omitempty,string"`
4158
4159	// Extract: [Output-only] Statistics for an extract job.
4160	Extract *JobStatistics4 `json:"extract,omitempty"`
4161
4162	// Load: [Output-only] Statistics for a load job.
4163	Load *JobStatistics3 `json:"load,omitempty"`
4164
4165	// NumChildJobs: [Output-only] Number of child jobs executed.
4166	NumChildJobs int64 `json:"numChildJobs,omitempty,string"`
4167
4168	// ParentJobId: [Output-only] If this is a child job, the id of the
4169	// parent.
4170	ParentJobId string `json:"parentJobId,omitempty"`
4171
4172	// Query: [Output-only] Statistics for a query job.
4173	Query *JobStatistics2 `json:"query,omitempty"`
4174
4175	// QuotaDeferments: [Output-only] Quotas which delayed this job's start
4176	// time.
4177	QuotaDeferments []string `json:"quotaDeferments,omitempty"`
4178
4179	// ReservationUsage: [Output-only] Job resource usage breakdown by
4180	// reservation.
4181	ReservationUsage []*JobStatisticsReservationUsage `json:"reservationUsage,omitempty"`
4182
4183	// ReservationId: [Output-only] Name of the primary reservation assigned
4184	// to this job. Note that this could be different than reservations
4185	// reported in the reservation usage field if parent reservations were
4186	// used to execute this job.
4187	ReservationId string `json:"reservation_id,omitempty"`
4188
4189	// RowLevelSecurityStatistics: [Output-only] [Preview] Statistics for
4190	// row-level security. Present only for query and extract jobs.
4191	RowLevelSecurityStatistics *RowLevelSecurityStatistics `json:"rowLevelSecurityStatistics,omitempty"`
4192
4193	// ScriptStatistics: [Output-only] Statistics for a child job of a
4194	// script.
4195	ScriptStatistics *ScriptStatistics `json:"scriptStatistics,omitempty"`
4196
4197	// SessionInfoTemplate: [Output-only] [Preview] Information of the
4198	// session if this job is part of one.
4199	SessionInfoTemplate *SessionInfo `json:"sessionInfoTemplate,omitempty"`
4200
4201	// StartTime: [Output-only] Start time of this job, in milliseconds
4202	// since the epoch. This field will be present when the job transitions
4203	// from the PENDING state to either RUNNING or DONE.
4204	StartTime int64 `json:"startTime,omitempty,string"`
4205
4206	// TotalBytesProcessed: [Output-only] [Deprecated] Use the bytes
4207	// processed in the query statistics instead.
4208	TotalBytesProcessed int64 `json:"totalBytesProcessed,omitempty,string"`
4209
4210	// TotalSlotMs: [Output-only] Slot-milliseconds for the job.
4211	TotalSlotMs int64 `json:"totalSlotMs,omitempty,string"`
4212
4213	// TransactionInfoTemplate: [Output-only] [Alpha] Information of the
4214	// multi-statement transaction if this job is part of one.
4215	TransactionInfoTemplate *TransactionInfo `json:"transactionInfoTemplate,omitempty"`
4216
4217	// ForceSendFields is a list of field names (e.g. "CompletionRatio") to
4218	// unconditionally include in API requests. By default, fields with
4219	// empty values are omitted from API requests. However, any non-pointer,
4220	// non-interface field appearing in ForceSendFields will be sent to the
4221	// server regardless of whether the field is empty or not. This may be
4222	// used to include empty fields in Patch requests.
4223	ForceSendFields []string `json:"-"`
4224
4225	// NullFields is a list of field names (e.g. "CompletionRatio") to
4226	// include in API requests with the JSON null value. By default, fields
4227	// with empty values are omitted from API requests. However, any field
4228	// with an empty value appearing in NullFields will be sent to the
4229	// server as null. It is an error if a field in this list has a
4230	// non-empty value. This may be used to include null fields in Patch
4231	// requests.
4232	NullFields []string `json:"-"`
4233}
4234
4235func (s *JobStatistics) MarshalJSON() ([]byte, error) {
4236	type NoMethod JobStatistics
4237	raw := NoMethod(*s)
4238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4239}
4240
4241func (s *JobStatistics) UnmarshalJSON(data []byte) error {
4242	type NoMethod JobStatistics
4243	var s1 struct {
4244		CompletionRatio gensupport.JSONFloat64 `json:"completionRatio"`
4245		*NoMethod
4246	}
4247	s1.NoMethod = (*NoMethod)(s)
4248	if err := json.Unmarshal(data, &s1); err != nil {
4249		return err
4250	}
4251	s.CompletionRatio = float64(s1.CompletionRatio)
4252	return nil
4253}
4254
4255type JobStatisticsReservationUsage struct {
4256	// Name: [Output-only] Reservation name or "unreserved" for on-demand
4257	// resources usage.
4258	Name string `json:"name,omitempty"`
4259
4260	// SlotMs: [Output-only] Slot-milliseconds the job spent in the given
4261	// reservation.
4262	SlotMs int64 `json:"slotMs,omitempty,string"`
4263
4264	// ForceSendFields is a list of field names (e.g. "Name") to
4265	// unconditionally include in API requests. By default, fields with
4266	// empty values are omitted from API requests. However, any non-pointer,
4267	// non-interface field appearing in ForceSendFields will be sent to the
4268	// server regardless of whether the field is empty or not. This may be
4269	// used to include empty fields in Patch requests.
4270	ForceSendFields []string `json:"-"`
4271
4272	// NullFields is a list of field names (e.g. "Name") to include in API
4273	// requests with the JSON null value. By default, fields with empty
4274	// values are omitted from API requests. However, any field with an
4275	// empty value appearing in NullFields will be sent to the server as
4276	// null. It is an error if a field in this list has a non-empty value.
4277	// This may be used to include null fields in Patch requests.
4278	NullFields []string `json:"-"`
4279}
4280
4281func (s *JobStatisticsReservationUsage) MarshalJSON() ([]byte, error) {
4282	type NoMethod JobStatisticsReservationUsage
4283	raw := NoMethod(*s)
4284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4285}
4286
4287type JobStatistics2 struct {
4288	// BillingTier: [Output-only] Billing tier for the job.
4289	BillingTier int64 `json:"billingTier,omitempty"`
4290
4291	// CacheHit: [Output-only] Whether the query result was fetched from the
4292	// query cache.
4293	CacheHit bool `json:"cacheHit,omitempty"`
4294
4295	// DdlAffectedRowAccessPolicyCount: [Output-only] [Preview] The number
4296	// of row access policies affected by a DDL statement. Present only for
4297	// DROP ALL ROW ACCESS POLICIES queries.
4298	DdlAffectedRowAccessPolicyCount int64 `json:"ddlAffectedRowAccessPolicyCount,omitempty,string"`
4299
4300	// DdlOperationPerformed: The DDL operation performed, possibly
4301	// dependent on the pre-existence of the DDL target. Possible values
4302	// (new values might be added in the future): "CREATE": The query
4303	// created the DDL target. "SKIP": No-op. Example cases: the query is
4304	// CREATE TABLE IF NOT EXISTS while the table already exists, or the
4305	// query is DROP TABLE IF EXISTS while the table does not exist.
4306	// "REPLACE": The query replaced the DDL target. Example case: the query
4307	// is CREATE OR REPLACE TABLE, and the table already exists. "DROP": The
4308	// query deleted the DDL target.
4309	DdlOperationPerformed string `json:"ddlOperationPerformed,omitempty"`
4310
4311	// DdlTargetDataset: [Output-only] The DDL target dataset. Present only
4312	// for CREATE/ALTER/DROP SCHEMA queries.
4313	DdlTargetDataset *DatasetReference `json:"ddlTargetDataset,omitempty"`
4314
4315	// DdlTargetRoutine: The DDL target routine. Present only for
4316	// CREATE/DROP FUNCTION/PROCEDURE queries.
4317	DdlTargetRoutine *RoutineReference `json:"ddlTargetRoutine,omitempty"`
4318
4319	// DdlTargetRowAccessPolicy: [Output-only] [Preview] The DDL target row
4320	// access policy. Present only for CREATE/DROP ROW ACCESS POLICY
4321	// queries.
4322	DdlTargetRowAccessPolicy *RowAccessPolicyReference `json:"ddlTargetRowAccessPolicy,omitempty"`
4323
4324	// DdlTargetTable: [Output-only] The DDL target table. Present only for
4325	// CREATE/DROP TABLE/VIEW and DROP ALL ROW ACCESS POLICIES queries.
4326	DdlTargetTable *TableReference `json:"ddlTargetTable,omitempty"`
4327
4328	// EstimatedBytesProcessed: [Output-only] The original estimate of bytes
4329	// processed for the job.
4330	EstimatedBytesProcessed int64 `json:"estimatedBytesProcessed,omitempty,string"`
4331
4332	// ModelTraining: [Output-only, Beta] Information about create model
4333	// query job progress.
4334	ModelTraining *BigQueryModelTraining `json:"modelTraining,omitempty"`
4335
4336	// ModelTrainingCurrentIteration: [Output-only, Beta] Deprecated; do not
4337	// use.
4338	ModelTrainingCurrentIteration int64 `json:"modelTrainingCurrentIteration,omitempty"`
4339
4340	// ModelTrainingExpectedTotalIteration: [Output-only, Beta] Deprecated;
4341	// do not use.
4342	ModelTrainingExpectedTotalIteration int64 `json:"modelTrainingExpectedTotalIteration,omitempty,string"`
4343
4344	// NumDmlAffectedRows: [Output-only] The number of rows affected by a
4345	// DML statement. Present only for DML statements INSERT, UPDATE or
4346	// DELETE.
4347	NumDmlAffectedRows int64 `json:"numDmlAffectedRows,omitempty,string"`
4348
4349	// QueryPlan: [Output-only] Describes execution plan for the query.
4350	QueryPlan []*ExplainQueryStage `json:"queryPlan,omitempty"`
4351
4352	// ReferencedRoutines: [Output-only] Referenced routines (persistent
4353	// user-defined functions and stored procedures) for the job.
4354	ReferencedRoutines []*RoutineReference `json:"referencedRoutines,omitempty"`
4355
4356	// ReferencedTables: [Output-only] Referenced tables for the job.
4357	// Queries that reference more than 50 tables will not have a complete
4358	// list.
4359	ReferencedTables []*TableReference `json:"referencedTables,omitempty"`
4360
4361	// ReservationUsage: [Output-only] Job resource usage breakdown by
4362	// reservation.
4363	ReservationUsage []*JobStatistics2ReservationUsage `json:"reservationUsage,omitempty"`
4364
4365	// Schema: [Output-only] The schema of the results. Present only for
4366	// successful dry run of non-legacy SQL queries.
4367	Schema *TableSchema `json:"schema,omitempty"`
4368
4369	// StatementType: The type of query statement, if valid. Possible values
4370	// (new values might be added in the future): "SELECT": SELECT query.
4371	// "INSERT": INSERT query; see
4372	// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language.
4373	// "UPDATE": UPDATE query; see
4374	// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language.
4375	// "DELETE": DELETE query; see
4376	// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language.
4377	// "MERGE": MERGE query; see
4378	// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language.
4379	// "ALTER_TABLE": ALTER TABLE query. "ALTER_VIEW": ALTER VIEW query.
4380	// "ASSERT": ASSERT condition AS 'description'. "CREATE_FUNCTION":
4381	// CREATE FUNCTION query. "CREATE_MODEL": CREATE [OR REPLACE] MODEL ...
4382	// AS SELECT ... . "CREATE_PROCEDURE": CREATE PROCEDURE query.
4383	// "CREATE_TABLE": CREATE [OR REPLACE] TABLE without AS SELECT.
4384	// "CREATE_TABLE_AS_SELECT": CREATE [OR REPLACE] TABLE ... AS SELECT ...
4385	// . "CREATE_VIEW": CREATE [OR REPLACE] VIEW ... AS SELECT ... .
4386	// "DROP_FUNCTION" : DROP FUNCTION query. "DROP_PROCEDURE": DROP
4387	// PROCEDURE query. "DROP_TABLE": DROP TABLE query. "DROP_VIEW": DROP
4388	// VIEW query.
4389	StatementType string `json:"statementType,omitempty"`
4390
4391	// Timeline: [Output-only] [Beta] Describes a timeline of job execution.
4392	Timeline []*QueryTimelineSample `json:"timeline,omitempty"`
4393
4394	// TotalBytesBilled: [Output-only] Total bytes billed for the job.
4395	TotalBytesBilled int64 `json:"totalBytesBilled,omitempty,string"`
4396
4397	// TotalBytesProcessed: [Output-only] Total bytes processed for the job.
4398	TotalBytesProcessed int64 `json:"totalBytesProcessed,omitempty,string"`
4399
4400	// TotalBytesProcessedAccuracy: [Output-only] For dry-run jobs,
4401	// totalBytesProcessed is an estimate and this field specifies the
4402	// accuracy of the estimate. Possible values can be: UNKNOWN: accuracy
4403	// of the estimate is unknown. PRECISE: estimate is precise.
4404	// LOWER_BOUND: estimate is lower bound of what the query would cost.
4405	// UPPER_BOUND: estimate is upper bound of what the query would cost.
4406	TotalBytesProcessedAccuracy string `json:"totalBytesProcessedAccuracy,omitempty"`
4407
4408	// TotalPartitionsProcessed: [Output-only] Total number of partitions
4409	// processed from all partitioned tables referenced in the job.
4410	TotalPartitionsProcessed int64 `json:"totalPartitionsProcessed,omitempty,string"`
4411
4412	// TotalSlotMs: [Output-only] Slot-milliseconds for the job.
4413	TotalSlotMs int64 `json:"totalSlotMs,omitempty,string"`
4414
4415	// UndeclaredQueryParameters: Standard SQL only: list of undeclared
4416	// query parameters detected during a dry run validation.
4417	UndeclaredQueryParameters []*QueryParameter `json:"undeclaredQueryParameters,omitempty"`
4418
4419	// ForceSendFields is a list of field names (e.g. "BillingTier") to
4420	// unconditionally include in API requests. By default, fields with
4421	// empty values are omitted from API requests. However, any non-pointer,
4422	// non-interface field appearing in ForceSendFields will be sent to the
4423	// server regardless of whether the field is empty or not. This may be
4424	// used to include empty fields in Patch requests.
4425	ForceSendFields []string `json:"-"`
4426
4427	// NullFields is a list of field names (e.g. "BillingTier") to include
4428	// in API requests with the JSON null value. By default, fields with
4429	// empty values are omitted from API requests. However, any field with
4430	// an empty value appearing in NullFields will be sent to the server as
4431	// null. It is an error if a field in this list has a non-empty value.
4432	// This may be used to include null fields in Patch requests.
4433	NullFields []string `json:"-"`
4434}
4435
4436func (s *JobStatistics2) MarshalJSON() ([]byte, error) {
4437	type NoMethod JobStatistics2
4438	raw := NoMethod(*s)
4439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4440}
4441
4442type JobStatistics2ReservationUsage struct {
4443	// Name: [Output-only] Reservation name or "unreserved" for on-demand
4444	// resources usage.
4445	Name string `json:"name,omitempty"`
4446
4447	// SlotMs: [Output-only] Slot-milliseconds the job spent in the given
4448	// reservation.
4449	SlotMs int64 `json:"slotMs,omitempty,string"`
4450
4451	// ForceSendFields is a list of field names (e.g. "Name") to
4452	// unconditionally include in API requests. By default, fields with
4453	// empty values are omitted from API requests. However, any non-pointer,
4454	// non-interface field appearing in ForceSendFields will be sent to the
4455	// server regardless of whether the field is empty or not. This may be
4456	// used to include empty fields in Patch requests.
4457	ForceSendFields []string `json:"-"`
4458
4459	// NullFields is a list of field names (e.g. "Name") to include in API
4460	// requests with the JSON null value. By default, fields with empty
4461	// values are omitted from API requests. However, any field with an
4462	// empty value appearing in NullFields will be sent to the server as
4463	// null. It is an error if a field in this list has a non-empty value.
4464	// This may be used to include null fields in Patch requests.
4465	NullFields []string `json:"-"`
4466}
4467
4468func (s *JobStatistics2ReservationUsage) MarshalJSON() ([]byte, error) {
4469	type NoMethod JobStatistics2ReservationUsage
4470	raw := NoMethod(*s)
4471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4472}
4473
4474type JobStatistics3 struct {
4475	// BadRecords: [Output-only] The number of bad records encountered. Note
4476	// that if the job has failed because of more bad records encountered
4477	// than the maximum allowed in the load job configuration, then this
4478	// number can be less than the total number of bad records present in
4479	// the input data.
4480	BadRecords int64 `json:"badRecords,omitempty,string"`
4481
4482	// InputFileBytes: [Output-only] Number of bytes of source data in a
4483	// load job.
4484	InputFileBytes int64 `json:"inputFileBytes,omitempty,string"`
4485
4486	// InputFiles: [Output-only] Number of source files in a load job.
4487	InputFiles int64 `json:"inputFiles,omitempty,string"`
4488
4489	// OutputBytes: [Output-only] Size of the loaded data in bytes. Note
4490	// that while a load job is in the running state, this value may change.
4491	OutputBytes int64 `json:"outputBytes,omitempty,string"`
4492
4493	// OutputRows: [Output-only] Number of rows imported in a load job. Note
4494	// that while an import job is in the running state, this value may
4495	// change.
4496	OutputRows int64 `json:"outputRows,omitempty,string"`
4497
4498	// ForceSendFields is a list of field names (e.g. "BadRecords") to
4499	// unconditionally include in API requests. By default, fields with
4500	// empty values are omitted from API requests. However, any non-pointer,
4501	// non-interface field appearing in ForceSendFields will be sent to the
4502	// server regardless of whether the field is empty or not. This may be
4503	// used to include empty fields in Patch requests.
4504	ForceSendFields []string `json:"-"`
4505
4506	// NullFields is a list of field names (e.g. "BadRecords") to include in
4507	// API requests with the JSON null value. By default, fields with empty
4508	// values are omitted from API requests. However, any field with an
4509	// empty value appearing in NullFields will be sent to the server as
4510	// null. It is an error if a field in this list has a non-empty value.
4511	// This may be used to include null fields in Patch requests.
4512	NullFields []string `json:"-"`
4513}
4514
4515func (s *JobStatistics3) MarshalJSON() ([]byte, error) {
4516	type NoMethod JobStatistics3
4517	raw := NoMethod(*s)
4518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4519}
4520
4521type JobStatistics4 struct {
4522	// DestinationUriFileCounts: [Output-only] Number of files per
4523	// destination URI or URI pattern specified in the extract
4524	// configuration. These values will be in the same order as the URIs
4525	// specified in the 'destinationUris' field.
4526	DestinationUriFileCounts googleapi.Int64s `json:"destinationUriFileCounts,omitempty"`
4527
4528	// InputBytes: [Output-only] Number of user bytes extracted into the
4529	// result. This is the byte count as computed by BigQuery for billing
4530	// purposes.
4531	InputBytes int64 `json:"inputBytes,omitempty,string"`
4532
4533	// ForceSendFields is a list of field names (e.g.
4534	// "DestinationUriFileCounts") to unconditionally include in API
4535	// requests. By default, fields with empty values are omitted from API
4536	// requests. However, any non-pointer, non-interface field appearing in
4537	// ForceSendFields will be sent to the server regardless of whether the
4538	// field is empty or not. This may be used to include empty fields in
4539	// Patch requests.
4540	ForceSendFields []string `json:"-"`
4541
4542	// NullFields is a list of field names (e.g. "DestinationUriFileCounts")
4543	// to include in API requests with the JSON null value. By default,
4544	// fields with empty values are omitted from API requests. However, any
4545	// field with an empty value appearing in NullFields will be sent to the
4546	// server as null. It is an error if a field in this list has a
4547	// non-empty value. This may be used to include null fields in Patch
4548	// requests.
4549	NullFields []string `json:"-"`
4550}
4551
4552func (s *JobStatistics4) MarshalJSON() ([]byte, error) {
4553	type NoMethod JobStatistics4
4554	raw := NoMethod(*s)
4555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4556}
4557
4558type JobStatus struct {
4559	// ErrorResult: [Output-only] Final error result of the job. If present,
4560	// indicates that the job has completed and was unsuccessful.
4561	ErrorResult *ErrorProto `json:"errorResult,omitempty"`
4562
4563	// Errors: [Output-only] The first errors encountered during the running
4564	// of the job. The final message includes the number of errors that
4565	// caused the process to stop. Errors here do not necessarily mean that
4566	// the job has completed or was unsuccessful.
4567	Errors []*ErrorProto `json:"errors,omitempty"`
4568
4569	// State: [Output-only] Running state of the job.
4570	State string `json:"state,omitempty"`
4571
4572	// ForceSendFields is a list of field names (e.g. "ErrorResult") to
4573	// unconditionally include in API requests. By default, fields with
4574	// empty values are omitted from API requests. However, any non-pointer,
4575	// non-interface field appearing in ForceSendFields will be sent to the
4576	// server regardless of whether the field is empty or not. This may be
4577	// used to include empty fields in Patch requests.
4578	ForceSendFields []string `json:"-"`
4579
4580	// NullFields is a list of field names (e.g. "ErrorResult") to include
4581	// in API requests with the JSON null value. By default, fields with
4582	// empty values are omitted from API requests. However, any field with
4583	// an empty value appearing in NullFields will be sent to the server as
4584	// null. It is an error if a field in this list has a non-empty value.
4585	// This may be used to include null fields in Patch requests.
4586	NullFields []string `json:"-"`
4587}
4588
4589func (s *JobStatus) MarshalJSON() ([]byte, error) {
4590	type NoMethod JobStatus
4591	raw := NoMethod(*s)
4592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4593}
4594
4595type JsonValue interface{}
4596
4597type ListModelsResponse struct {
4598	// Models: Models in the requested dataset. Only the following fields
4599	// are populated: model_reference, model_type, creation_time,
4600	// last_modified_time and labels.
4601	Models []*Model `json:"models,omitempty"`
4602
4603	// NextPageToken: A token to request the next page of results.
4604	NextPageToken string `json:"nextPageToken,omitempty"`
4605
4606	// ServerResponse contains the HTTP response code and headers from the
4607	// server.
4608	googleapi.ServerResponse `json:"-"`
4609
4610	// ForceSendFields is a list of field names (e.g. "Models") to
4611	// unconditionally include in API requests. By default, fields with
4612	// empty values are omitted from API requests. However, any non-pointer,
4613	// non-interface field appearing in ForceSendFields will be sent to the
4614	// server regardless of whether the field is empty or not. This may be
4615	// used to include empty fields in Patch requests.
4616	ForceSendFields []string `json:"-"`
4617
4618	// NullFields is a list of field names (e.g. "Models") to include in API
4619	// requests with the JSON null value. By default, fields with empty
4620	// values are omitted from API requests. However, any field with an
4621	// empty value appearing in NullFields will be sent to the server as
4622	// null. It is an error if a field in this list has a non-empty value.
4623	// This may be used to include null fields in Patch requests.
4624	NullFields []string `json:"-"`
4625}
4626
4627func (s *ListModelsResponse) MarshalJSON() ([]byte, error) {
4628	type NoMethod ListModelsResponse
4629	raw := NoMethod(*s)
4630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4631}
4632
4633type ListRoutinesResponse struct {
4634	// NextPageToken: A token to request the next page of results.
4635	NextPageToken string `json:"nextPageToken,omitempty"`
4636
4637	// Routines: Routines in the requested dataset. Unless read_mask is set
4638	// in the request, only the following fields are populated: etag,
4639	// project_id, dataset_id, routine_id, routine_type, creation_time,
4640	// last_modified_time, and language.
4641	Routines []*Routine `json:"routines,omitempty"`
4642
4643	// ServerResponse contains the HTTP response code and headers from the
4644	// server.
4645	googleapi.ServerResponse `json:"-"`
4646
4647	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
4648	// unconditionally include in API requests. By default, fields with
4649	// empty values are omitted from API requests. However, any non-pointer,
4650	// non-interface field appearing in ForceSendFields will be sent to the
4651	// server regardless of whether the field is empty or not. This may be
4652	// used to include empty fields in Patch requests.
4653	ForceSendFields []string `json:"-"`
4654
4655	// NullFields is a list of field names (e.g. "NextPageToken") to include
4656	// in API requests with the JSON null value. By default, fields with
4657	// empty values are omitted from API requests. However, any field with
4658	// an empty value appearing in NullFields will be sent to the server as
4659	// null. It is an error if a field in this list has a non-empty value.
4660	// This may be used to include null fields in Patch requests.
4661	NullFields []string `json:"-"`
4662}
4663
4664func (s *ListRoutinesResponse) MarshalJSON() ([]byte, error) {
4665	type NoMethod ListRoutinesResponse
4666	raw := NoMethod(*s)
4667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4668}
4669
4670// ListRowAccessPoliciesResponse: Response message for the
4671// ListRowAccessPolicies method.
4672type ListRowAccessPoliciesResponse struct {
4673	// NextPageToken: A token to request the next page of results.
4674	NextPageToken string `json:"nextPageToken,omitempty"`
4675
4676	// RowAccessPolicies: Row access policies on the requested table.
4677	RowAccessPolicies []*RowAccessPolicy `json:"rowAccessPolicies,omitempty"`
4678
4679	// ServerResponse contains the HTTP response code and headers from the
4680	// server.
4681	googleapi.ServerResponse `json:"-"`
4682
4683	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
4684	// unconditionally include in API requests. By default, fields with
4685	// empty values are omitted from API requests. However, any non-pointer,
4686	// non-interface field appearing in ForceSendFields will be sent to the
4687	// server regardless of whether the field is empty or not. This may be
4688	// used to include empty fields in Patch requests.
4689	ForceSendFields []string `json:"-"`
4690
4691	// NullFields is a list of field names (e.g. "NextPageToken") to include
4692	// in API requests with the JSON null value. By default, fields with
4693	// empty values are omitted from API requests. However, any field with
4694	// an empty value appearing in NullFields will be sent to the server as
4695	// null. It is an error if a field in this list has a non-empty value.
4696	// This may be used to include null fields in Patch requests.
4697	NullFields []string `json:"-"`
4698}
4699
4700func (s *ListRowAccessPoliciesResponse) MarshalJSON() ([]byte, error) {
4701	type NoMethod ListRowAccessPoliciesResponse
4702	raw := NoMethod(*s)
4703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4704}
4705
4706// LocationMetadata: BigQuery-specific metadata about a location. This
4707// will be set on google.cloud.location.Location.metadata in Cloud
4708// Location API responses.
4709type LocationMetadata struct {
4710	// LegacyLocationId: The legacy BigQuery location ID, e.g. “EU” for
4711	// the “europe” location. This is for any API consumers that need
4712	// the legacy “US” and “EU” locations.
4713	LegacyLocationId string `json:"legacyLocationId,omitempty"`
4714
4715	// ForceSendFields is a list of field names (e.g. "LegacyLocationId") to
4716	// unconditionally include in API requests. By default, fields with
4717	// empty values are omitted from API requests. However, any non-pointer,
4718	// non-interface field appearing in ForceSendFields will be sent to the
4719	// server regardless of whether the field is empty or not. This may be
4720	// used to include empty fields in Patch requests.
4721	ForceSendFields []string `json:"-"`
4722
4723	// NullFields is a list of field names (e.g. "LegacyLocationId") to
4724	// include in API requests with the JSON null value. By default, fields
4725	// with empty values are omitted from API requests. However, any field
4726	// with an empty value appearing in NullFields will be sent to the
4727	// server as null. It is an error if a field in this list has a
4728	// non-empty value. This may be used to include null fields in Patch
4729	// requests.
4730	NullFields []string `json:"-"`
4731}
4732
4733func (s *LocationMetadata) MarshalJSON() ([]byte, error) {
4734	type NoMethod LocationMetadata
4735	raw := NoMethod(*s)
4736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4737}
4738
4739type MaterializedViewDefinition struct {
4740	// EnableRefresh: [Optional] [TrustedTester] Enable automatic refresh of
4741	// the materialized view when the base table is updated. The default
4742	// value is "true".
4743	EnableRefresh bool `json:"enableRefresh,omitempty"`
4744
4745	// LastRefreshTime: [Output-only] [TrustedTester] The time when this
4746	// materialized view was last modified, in milliseconds since the epoch.
4747	LastRefreshTime int64 `json:"lastRefreshTime,omitempty,string"`
4748
4749	// Query: [Required] A query whose result is persisted.
4750	Query string `json:"query,omitempty"`
4751
4752	// RefreshIntervalMs: [Optional] [TrustedTester] The maximum frequency
4753	// at which this materialized view will be refreshed. The default value
4754	// is "1800000" (30 minutes).
4755	RefreshIntervalMs int64 `json:"refreshIntervalMs,omitempty,string"`
4756
4757	// ForceSendFields is a list of field names (e.g. "EnableRefresh") to
4758	// unconditionally include in API requests. By default, fields with
4759	// empty values are omitted from API requests. However, any non-pointer,
4760	// non-interface field appearing in ForceSendFields will be sent to the
4761	// server regardless of whether the field is empty or not. This may be
4762	// used to include empty fields in Patch requests.
4763	ForceSendFields []string `json:"-"`
4764
4765	// NullFields is a list of field names (e.g. "EnableRefresh") to include
4766	// in API requests with the JSON null value. By default, fields with
4767	// empty values are omitted from API requests. However, any field with
4768	// an empty value appearing in NullFields will be sent to the server as
4769	// null. It is an error if a field in this list has a non-empty value.
4770	// This may be used to include null fields in Patch requests.
4771	NullFields []string `json:"-"`
4772}
4773
4774func (s *MaterializedViewDefinition) MarshalJSON() ([]byte, error) {
4775	type NoMethod MaterializedViewDefinition
4776	raw := NoMethod(*s)
4777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4778}
4779
4780type Model struct {
4781	// BestTrialId: The best trial_id across all training runs.
4782	BestTrialId int64 `json:"bestTrialId,omitempty,string"`
4783
4784	// CreationTime: Output only. The time when this model was created, in
4785	// millisecs since the epoch.
4786	CreationTime int64 `json:"creationTime,omitempty,string"`
4787
4788	// Description: Optional. A user-friendly description of this model.
4789	Description string `json:"description,omitempty"`
4790
4791	// EncryptionConfiguration: Custom encryption configuration (e.g., Cloud
4792	// KMS keys). This shows the encryption configuration of the model data
4793	// while stored in BigQuery storage. This field can be used with
4794	// PatchModel to update encryption key for an already encrypted model.
4795	EncryptionConfiguration *EncryptionConfiguration `json:"encryptionConfiguration,omitempty"`
4796
4797	// Etag: Output only. A hash of this resource.
4798	Etag string `json:"etag,omitempty"`
4799
4800	// ExpirationTime: Optional. The time when this model expires, in
4801	// milliseconds since the epoch. If not present, the model will persist
4802	// indefinitely. Expired models will be deleted and their storage
4803	// reclaimed. The defaultTableExpirationMs property of the encapsulating
4804	// dataset can be used to set a default expirationTime on newly created
4805	// models.
4806	ExpirationTime int64 `json:"expirationTime,omitempty,string"`
4807
4808	// FeatureColumns: Output only. Input feature columns that were used to
4809	// train this model.
4810	FeatureColumns []*StandardSqlField `json:"featureColumns,omitempty"`
4811
4812	// FriendlyName: Optional. A descriptive name for this model.
4813	FriendlyName string `json:"friendlyName,omitempty"`
4814
4815	// LabelColumns: Output only. Label columns that were used to train this
4816	// model. The output of the model will have a "predicted_" prefix to
4817	// these columns.
4818	LabelColumns []*StandardSqlField `json:"labelColumns,omitempty"`
4819
4820	// Labels: The labels associated with this model. You can use these to
4821	// organize and group your models. Label keys and values can be no
4822	// longer than 63 characters, can only contain lowercase letters,
4823	// numeric characters, underscores and dashes. International characters
4824	// are allowed. Label values are optional. Label keys must start with a
4825	// letter and each label in the list must have a different key.
4826	Labels map[string]string `json:"labels,omitempty"`
4827
4828	// LastModifiedTime: Output only. The time when this model was last
4829	// modified, in millisecs since the epoch.
4830	LastModifiedTime int64 `json:"lastModifiedTime,omitempty,string"`
4831
4832	// Location: Output only. The geographic location where the model
4833	// resides. This value is inherited from the dataset.
4834	Location string `json:"location,omitempty"`
4835
4836	// ModelReference: Required. Unique identifier for this model.
4837	ModelReference *ModelReference `json:"modelReference,omitempty"`
4838
4839	// ModelType: Output only. Type of the model resource.
4840	//
4841	// Possible values:
4842	//   "MODEL_TYPE_UNSPECIFIED"
4843	//   "LINEAR_REGRESSION" - Linear regression model.
4844	//   "LOGISTIC_REGRESSION" - Logistic regression based classification
4845	// model.
4846	//   "KMEANS" - K-means clustering model.
4847	//   "MATRIX_FACTORIZATION" - Matrix factorization model.
4848	//   "DNN_CLASSIFIER" - DNN classifier model.
4849	//   "TENSORFLOW" - An imported TensorFlow model.
4850	//   "DNN_REGRESSOR" - DNN regressor model.
4851	//   "BOOSTED_TREE_REGRESSOR" - Boosted tree regressor model.
4852	//   "BOOSTED_TREE_CLASSIFIER" - Boosted tree classifier model.
4853	//   "ARIMA" - ARIMA model.
4854	//   "AUTOML_REGRESSOR" - [Beta] AutoML Tables regression model.
4855	//   "AUTOML_CLASSIFIER" - [Beta] AutoML Tables classification model.
4856	//   "ARIMA_PLUS" - New name for the ARIMA model.
4857	ModelType string `json:"modelType,omitempty"`
4858
4859	// TrainingRuns: Output only. Information for all training runs in
4860	// increasing order of start_time.
4861	TrainingRuns []*TrainingRun `json:"trainingRuns,omitempty"`
4862
4863	// ServerResponse contains the HTTP response code and headers from the
4864	// server.
4865	googleapi.ServerResponse `json:"-"`
4866
4867	// ForceSendFields is a list of field names (e.g. "BestTrialId") to
4868	// unconditionally include in API requests. By default, fields with
4869	// empty values are omitted from API requests. However, any non-pointer,
4870	// non-interface field appearing in ForceSendFields will be sent to the
4871	// server regardless of whether the field is empty or not. This may be
4872	// used to include empty fields in Patch requests.
4873	ForceSendFields []string `json:"-"`
4874
4875	// NullFields is a list of field names (e.g. "BestTrialId") to include
4876	// in API requests with the JSON null value. By default, fields with
4877	// empty values are omitted from API requests. However, any field with
4878	// an empty value appearing in NullFields will be sent to the server as
4879	// null. It is an error if a field in this list has a non-empty value.
4880	// This may be used to include null fields in Patch requests.
4881	NullFields []string `json:"-"`
4882}
4883
4884func (s *Model) MarshalJSON() ([]byte, error) {
4885	type NoMethod Model
4886	raw := NoMethod(*s)
4887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4888}
4889
4890type ModelDefinition struct {
4891	// ModelOptions: [Output-only, Beta] Model options used for the first
4892	// training run. These options are immutable for subsequent training
4893	// runs. Default values are used for any options not specified in the
4894	// input query.
4895	ModelOptions *ModelDefinitionModelOptions `json:"modelOptions,omitempty"`
4896
4897	// TrainingRuns: [Output-only, Beta] Information about ml training runs,
4898	// each training run comprises of multiple iterations and there may be
4899	// multiple training runs for the model if warm start is used or if a
4900	// user decides to continue a previously cancelled query.
4901	TrainingRuns []*BqmlTrainingRun `json:"trainingRuns,omitempty"`
4902
4903	// ForceSendFields is a list of field names (e.g. "ModelOptions") to
4904	// unconditionally include in API requests. By default, fields with
4905	// empty values are omitted from API requests. However, any non-pointer,
4906	// non-interface field appearing in ForceSendFields will be sent to the
4907	// server regardless of whether the field is empty or not. This may be
4908	// used to include empty fields in Patch requests.
4909	ForceSendFields []string `json:"-"`
4910
4911	// NullFields is a list of field names (e.g. "ModelOptions") to include
4912	// in API requests with the JSON null value. By default, fields with
4913	// empty values are omitted from API requests. However, any field with
4914	// an empty value appearing in NullFields will be sent to the server as
4915	// null. It is an error if a field in this list has a non-empty value.
4916	// This may be used to include null fields in Patch requests.
4917	NullFields []string `json:"-"`
4918}
4919
4920func (s *ModelDefinition) MarshalJSON() ([]byte, error) {
4921	type NoMethod ModelDefinition
4922	raw := NoMethod(*s)
4923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4924}
4925
4926// ModelDefinitionModelOptions: [Output-only, Beta] Model options used
4927// for the first training run. These options are immutable for
4928// subsequent training runs. Default values are used for any options not
4929// specified in the input query.
4930type ModelDefinitionModelOptions struct {
4931	Labels []string `json:"labels,omitempty"`
4932
4933	LossType string `json:"lossType,omitempty"`
4934
4935	ModelType string `json:"modelType,omitempty"`
4936
4937	// ForceSendFields is a list of field names (e.g. "Labels") to
4938	// unconditionally include in API requests. By default, fields with
4939	// empty values are omitted from API requests. However, any non-pointer,
4940	// non-interface field appearing in ForceSendFields will be sent to the
4941	// server regardless of whether the field is empty or not. This may be
4942	// used to include empty fields in Patch requests.
4943	ForceSendFields []string `json:"-"`
4944
4945	// NullFields is a list of field names (e.g. "Labels") to include in API
4946	// requests with the JSON null value. By default, fields with empty
4947	// values are omitted from API requests. However, any field with an
4948	// empty value appearing in NullFields will be sent to the server as
4949	// null. It is an error if a field in this list has a non-empty value.
4950	// This may be used to include null fields in Patch requests.
4951	NullFields []string `json:"-"`
4952}
4953
4954func (s *ModelDefinitionModelOptions) MarshalJSON() ([]byte, error) {
4955	type NoMethod ModelDefinitionModelOptions
4956	raw := NoMethod(*s)
4957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4958}
4959
4960type ModelReference struct {
4961	// DatasetId: [Required] The ID of the dataset containing this model.
4962	DatasetId string `json:"datasetId,omitempty"`
4963
4964	// ModelId: [Required] The ID of the model. The ID must contain only
4965	// letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
4966	// length is 1,024 characters.
4967	ModelId string `json:"modelId,omitempty"`
4968
4969	// ProjectId: [Required] The ID of the project containing this model.
4970	ProjectId string `json:"projectId,omitempty"`
4971
4972	// ForceSendFields is a list of field names (e.g. "DatasetId") to
4973	// unconditionally include in API requests. By default, fields with
4974	// empty values are omitted from API requests. However, any non-pointer,
4975	// non-interface field appearing in ForceSendFields will be sent to the
4976	// server regardless of whether the field is empty or not. This may be
4977	// used to include empty fields in Patch requests.
4978	ForceSendFields []string `json:"-"`
4979
4980	// NullFields is a list of field names (e.g. "DatasetId") to include in
4981	// API requests with the JSON null value. By default, fields with empty
4982	// values are omitted from API requests. However, any field with an
4983	// empty value appearing in NullFields will be sent to the server as
4984	// null. It is an error if a field in this list has a non-empty value.
4985	// This may be used to include null fields in Patch requests.
4986	NullFields []string `json:"-"`
4987}
4988
4989func (s *ModelReference) MarshalJSON() ([]byte, error) {
4990	type NoMethod ModelReference
4991	raw := NoMethod(*s)
4992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4993}
4994
4995// MultiClassClassificationMetrics: Evaluation metrics for multi-class
4996// classification/classifier models.
4997type MultiClassClassificationMetrics struct {
4998	// AggregateClassificationMetrics: Aggregate classification metrics.
4999	AggregateClassificationMetrics *AggregateClassificationMetrics `json:"aggregateClassificationMetrics,omitempty"`
5000
5001	// ConfusionMatrixList: Confusion matrix at different thresholds.
5002	ConfusionMatrixList []*ConfusionMatrix `json:"confusionMatrixList,omitempty"`
5003
5004	// ForceSendFields is a list of field names (e.g.
5005	// "AggregateClassificationMetrics") to unconditionally include in API
5006	// requests. By default, fields with empty values are omitted from API
5007	// requests. However, any non-pointer, non-interface field appearing in
5008	// ForceSendFields will be sent to the server regardless of whether the
5009	// field is empty or not. This may be used to include empty fields in
5010	// Patch requests.
5011	ForceSendFields []string `json:"-"`
5012
5013	// NullFields is a list of field names (e.g.
5014	// "AggregateClassificationMetrics") to include in API requests with the
5015	// JSON null value. By default, fields with empty values are omitted
5016	// from API requests. However, any field with an empty value appearing
5017	// in NullFields will be sent to the server as null. It is an error if a
5018	// field in this list has a non-empty value. This may be used to include
5019	// null fields in Patch requests.
5020	NullFields []string `json:"-"`
5021}
5022
5023func (s *MultiClassClassificationMetrics) MarshalJSON() ([]byte, error) {
5024	type NoMethod MultiClassClassificationMetrics
5025	raw := NoMethod(*s)
5026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5027}
5028
5029type ParquetOptions struct {
5030	// EnableListInference: [Optional] Indicates whether to use schema
5031	// inference specifically for Parquet LIST logical type.
5032	EnableListInference bool `json:"enableListInference,omitempty"`
5033
5034	// EnumAsString: [Optional] Indicates whether to infer Parquet ENUM
5035	// logical type as STRING instead of BYTES by default.
5036	EnumAsString bool `json:"enumAsString,omitempty"`
5037
5038	// ForceSendFields is a list of field names (e.g. "EnableListInference")
5039	// to unconditionally include in API requests. By default, fields with
5040	// empty values are omitted from API requests. However, any non-pointer,
5041	// non-interface field appearing in ForceSendFields will be sent to the
5042	// server regardless of whether the field is empty or not. This may be
5043	// used to include empty fields in Patch requests.
5044	ForceSendFields []string `json:"-"`
5045
5046	// NullFields is a list of field names (e.g. "EnableListInference") to
5047	// include in API requests with the JSON null value. By default, fields
5048	// with empty values are omitted from API requests. However, any field
5049	// with an empty value appearing in NullFields will be sent to the
5050	// server as null. It is an error if a field in this list has a
5051	// non-empty value. This may be used to include null fields in Patch
5052	// requests.
5053	NullFields []string `json:"-"`
5054}
5055
5056func (s *ParquetOptions) MarshalJSON() ([]byte, error) {
5057	type NoMethod ParquetOptions
5058	raw := NoMethod(*s)
5059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5060}
5061
5062// Policy: An Identity and Access Management (IAM) policy, which
5063// specifies access controls for Google Cloud resources. A `Policy` is a
5064// collection of `bindings`. A `binding` binds one or more `members` to
5065// a single `role`. Members can be user accounts, service accounts,
5066// Google groups, and domains (such as G Suite). A `role` is a named
5067// list of permissions; each `role` can be an IAM predefined role or a
5068// user-created custom role. For some types of Google Cloud resources, a
5069// `binding` can also specify a `condition`, which is a logical
5070// expression that allows access to a resource only if the expression
5071// evaluates to `true`. A condition can add constraints based on
5072// attributes of the request, the resource, or both. To learn which
5073// resources support conditions in their IAM policies, see the IAM
5074// documentation
5075// (https://cloud.google.com/iam/help/conditions/resource-policies).
5076// **JSON example:** { "bindings": [ { "role":
5077// "roles/resourcemanager.organizationAdmin", "members": [
5078// "user:mike@example.com", "group:admins@example.com",
5079// "domain:google.com",
5080// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
5081// "role": "roles/resourcemanager.organizationViewer", "members": [
5082// "user:eve@example.com" ], "condition": { "title": "expirable access",
5083// "description": "Does not grant access after Sep 2020", "expression":
5084// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
5085// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: -
5086// members: - user:mike@example.com - group:admins@example.com -
5087// domain:google.com -
5088// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
5089// roles/resourcemanager.organizationAdmin - members: -
5090// user:eve@example.com role: roles/resourcemanager.organizationViewer
5091// condition: title: expirable access description: Does not grant access
5092// after Sep 2020 expression: request.time <
5093// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
5094// 3 For a description of IAM and its features, see the IAM
5095// documentation (https://cloud.google.com/iam/docs/).
5096type Policy struct {
5097	// AuditConfigs: Specifies cloud audit logging configuration for this
5098	// policy.
5099	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
5100
5101	// Bindings: Associates a list of `members` to a `role`. Optionally, may
5102	// specify a `condition` that determines how and when the `bindings` are
5103	// applied. Each of the `bindings` must contain at least one member.
5104	Bindings []*Binding `json:"bindings,omitempty"`
5105
5106	// Etag: `etag` is used for optimistic concurrency control as a way to
5107	// help prevent simultaneous updates of a policy from overwriting each
5108	// other. It is strongly suggested that systems make use of the `etag`
5109	// in the read-modify-write cycle to perform policy updates in order to
5110	// avoid race conditions: An `etag` is returned in the response to
5111	// `getIamPolicy`, and systems are expected to put that etag in the
5112	// request to `setIamPolicy` to ensure that their change will be applied
5113	// to the same version of the policy. **Important:** If you use IAM
5114	// Conditions, you must include the `etag` field whenever you call
5115	// `setIamPolicy`. If you omit this field, then IAM allows you to
5116	// overwrite a version `3` policy with a version `1` policy, and all of
5117	// the conditions in the version `3` policy are lost.
5118	Etag string `json:"etag,omitempty"`
5119
5120	// Version: Specifies the format of the policy. Valid values are `0`,
5121	// `1`, and `3`. Requests that specify an invalid value are rejected.
5122	// Any operation that affects conditional role bindings must specify
5123	// version `3`. This requirement applies to the following operations: *
5124	// Getting a policy that includes a conditional role binding * Adding a
5125	// conditional role binding to a policy * Changing a conditional role
5126	// binding in a policy * Removing any role binding, with or without a
5127	// condition, from a policy that includes conditions **Important:** If
5128	// you use IAM Conditions, you must include the `etag` field whenever
5129	// you call `setIamPolicy`. If you omit this field, then IAM allows you
5130	// to overwrite a version `3` policy with a version `1` policy, and all
5131	// of the conditions in the version `3` policy are lost. If a policy
5132	// does not include any conditions, operations on that policy may
5133	// specify any valid version or leave the field unset. To learn which
5134	// resources support conditions in their IAM policies, see the IAM
5135	// documentation
5136	// (https://cloud.google.com/iam/help/conditions/resource-policies).
5137	Version int64 `json:"version,omitempty"`
5138
5139	// ServerResponse contains the HTTP response code and headers from the
5140	// server.
5141	googleapi.ServerResponse `json:"-"`
5142
5143	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
5144	// unconditionally include in API requests. By default, fields with
5145	// empty values are omitted from API requests. However, any non-pointer,
5146	// non-interface field appearing in ForceSendFields will be sent to the
5147	// server regardless of whether the field is empty or not. This may be
5148	// used to include empty fields in Patch requests.
5149	ForceSendFields []string `json:"-"`
5150
5151	// NullFields is a list of field names (e.g. "AuditConfigs") to include
5152	// in API requests with the JSON null value. By default, fields with
5153	// empty values are omitted from API requests. However, any field with
5154	// an empty value appearing in NullFields will be sent to the server as
5155	// null. It is an error if a field in this list has a non-empty value.
5156	// This may be used to include null fields in Patch requests.
5157	NullFields []string `json:"-"`
5158}
5159
5160func (s *Policy) MarshalJSON() ([]byte, error) {
5161	type NoMethod Policy
5162	raw := NoMethod(*s)
5163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5164}
5165
5166type ProjectList struct {
5167	// Etag: A hash of the page of results
5168	Etag string `json:"etag,omitempty"`
5169
5170	// Kind: The type of list.
5171	Kind string `json:"kind,omitempty"`
5172
5173	// NextPageToken: A token to request the next page of results.
5174	NextPageToken string `json:"nextPageToken,omitempty"`
5175
5176	// Projects: Projects to which you have at least READ access.
5177	Projects []*ProjectListProjects `json:"projects,omitempty"`
5178
5179	// TotalItems: The total number of projects in the list.
5180	TotalItems int64 `json:"totalItems,omitempty"`
5181
5182	// ServerResponse contains the HTTP response code and headers from the
5183	// server.
5184	googleapi.ServerResponse `json:"-"`
5185
5186	// ForceSendFields is a list of field names (e.g. "Etag") to
5187	// unconditionally include in API requests. By default, fields with
5188	// empty values are omitted from API requests. However, any non-pointer,
5189	// non-interface field appearing in ForceSendFields will be sent to the
5190	// server regardless of whether the field is empty or not. This may be
5191	// used to include empty fields in Patch requests.
5192	ForceSendFields []string `json:"-"`
5193
5194	// NullFields is a list of field names (e.g. "Etag") to include in API
5195	// requests with the JSON null value. By default, fields with empty
5196	// values are omitted from API requests. However, any field with an
5197	// empty value appearing in NullFields will be sent to the server as
5198	// null. It is an error if a field in this list has a non-empty value.
5199	// This may be used to include null fields in Patch requests.
5200	NullFields []string `json:"-"`
5201}
5202
5203func (s *ProjectList) MarshalJSON() ([]byte, error) {
5204	type NoMethod ProjectList
5205	raw := NoMethod(*s)
5206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5207}
5208
5209type ProjectListProjects struct {
5210	// FriendlyName: A descriptive name for this project.
5211	FriendlyName string `json:"friendlyName,omitempty"`
5212
5213	// Id: An opaque ID of this project.
5214	Id string `json:"id,omitempty"`
5215
5216	// Kind: The resource type.
5217	Kind string `json:"kind,omitempty"`
5218
5219	// NumericId: The numeric ID of this project.
5220	NumericId uint64 `json:"numericId,omitempty,string"`
5221
5222	// ProjectReference: A unique reference to this project.
5223	ProjectReference *ProjectReference `json:"projectReference,omitempty"`
5224
5225	// ForceSendFields is a list of field names (e.g. "FriendlyName") to
5226	// unconditionally include in API requests. By default, fields with
5227	// empty values are omitted from API requests. However, any non-pointer,
5228	// non-interface field appearing in ForceSendFields will be sent to the
5229	// server regardless of whether the field is empty or not. This may be
5230	// used to include empty fields in Patch requests.
5231	ForceSendFields []string `json:"-"`
5232
5233	// NullFields is a list of field names (e.g. "FriendlyName") to include
5234	// in API requests with the JSON null value. By default, fields with
5235	// empty values are omitted from API requests. However, any field with
5236	// an empty value appearing in NullFields will be sent to the server as
5237	// null. It is an error if a field in this list has a non-empty value.
5238	// This may be used to include null fields in Patch requests.
5239	NullFields []string `json:"-"`
5240}
5241
5242func (s *ProjectListProjects) MarshalJSON() ([]byte, error) {
5243	type NoMethod ProjectListProjects
5244	raw := NoMethod(*s)
5245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5246}
5247
5248type ProjectReference struct {
5249	// ProjectId: [Required] ID of the project. Can be either the numeric ID
5250	// or the assigned ID of the project.
5251	ProjectId string `json:"projectId,omitempty"`
5252
5253	// ForceSendFields is a list of field names (e.g. "ProjectId") to
5254	// unconditionally include in API requests. By default, fields with
5255	// empty values are omitted from API requests. However, any non-pointer,
5256	// non-interface field appearing in ForceSendFields will be sent to the
5257	// server regardless of whether the field is empty or not. This may be
5258	// used to include empty fields in Patch requests.
5259	ForceSendFields []string `json:"-"`
5260
5261	// NullFields is a list of field names (e.g. "ProjectId") to include in
5262	// API requests with the JSON null value. By default, fields with empty
5263	// values are omitted from API requests. However, any field with an
5264	// empty value appearing in NullFields will be sent to the server as
5265	// null. It is an error if a field in this list has a non-empty value.
5266	// This may be used to include null fields in Patch requests.
5267	NullFields []string `json:"-"`
5268}
5269
5270func (s *ProjectReference) MarshalJSON() ([]byte, error) {
5271	type NoMethod ProjectReference
5272	raw := NoMethod(*s)
5273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5274}
5275
5276type QueryParameter struct {
5277	// Name: [Optional] If unset, this is a positional parameter. Otherwise,
5278	// should be unique within a query.
5279	Name string `json:"name,omitempty"`
5280
5281	// ParameterType: [Required] The type of this parameter.
5282	ParameterType *QueryParameterType `json:"parameterType,omitempty"`
5283
5284	// ParameterValue: [Required] The value of this parameter.
5285	ParameterValue *QueryParameterValue `json:"parameterValue,omitempty"`
5286
5287	// ForceSendFields is a list of field names (e.g. "Name") to
5288	// unconditionally include in API requests. By default, fields with
5289	// empty values are omitted from API requests. However, any non-pointer,
5290	// non-interface field appearing in ForceSendFields will be sent to the
5291	// server regardless of whether the field is empty or not. This may be
5292	// used to include empty fields in Patch requests.
5293	ForceSendFields []string `json:"-"`
5294
5295	// NullFields is a list of field names (e.g. "Name") to include in API
5296	// requests with the JSON null value. By default, fields with empty
5297	// values are omitted from API requests. However, any field with an
5298	// empty value appearing in NullFields will be sent to the server as
5299	// null. It is an error if a field in this list has a non-empty value.
5300	// This may be used to include null fields in Patch requests.
5301	NullFields []string `json:"-"`
5302}
5303
5304func (s *QueryParameter) MarshalJSON() ([]byte, error) {
5305	type NoMethod QueryParameter
5306	raw := NoMethod(*s)
5307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5308}
5309
5310type QueryParameterType struct {
5311	// ArrayType: [Optional] The type of the array's elements, if this is an
5312	// array.
5313	ArrayType *QueryParameterType `json:"arrayType,omitempty"`
5314
5315	// StructTypes: [Optional] The types of the fields of this struct, in
5316	// order, if this is a struct.
5317	StructTypes []*QueryParameterTypeStructTypes `json:"structTypes,omitempty"`
5318
5319	// Type: [Required] The top level type of this field.
5320	Type string `json:"type,omitempty"`
5321
5322	// ForceSendFields is a list of field names (e.g. "ArrayType") to
5323	// unconditionally include in API requests. By default, fields with
5324	// empty values are omitted from API requests. However, any non-pointer,
5325	// non-interface field appearing in ForceSendFields will be sent to the
5326	// server regardless of whether the field is empty or not. This may be
5327	// used to include empty fields in Patch requests.
5328	ForceSendFields []string `json:"-"`
5329
5330	// NullFields is a list of field names (e.g. "ArrayType") to include in
5331	// API requests with the JSON null value. By default, fields with empty
5332	// values are omitted from API requests. However, any field with an
5333	// empty value appearing in NullFields will be sent to the server as
5334	// null. It is an error if a field in this list has a non-empty value.
5335	// This may be used to include null fields in Patch requests.
5336	NullFields []string `json:"-"`
5337}
5338
5339func (s *QueryParameterType) MarshalJSON() ([]byte, error) {
5340	type NoMethod QueryParameterType
5341	raw := NoMethod(*s)
5342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5343}
5344
5345type QueryParameterTypeStructTypes struct {
5346	// Description: [Optional] Human-oriented description of the field.
5347	Description string `json:"description,omitempty"`
5348
5349	// Name: [Optional] The name of this field.
5350	Name string `json:"name,omitempty"`
5351
5352	// Type: [Required] The type of this field.
5353	Type *QueryParameterType `json:"type,omitempty"`
5354
5355	// ForceSendFields is a list of field names (e.g. "Description") to
5356	// unconditionally include in API requests. By default, fields with
5357	// empty values are omitted from API requests. However, any non-pointer,
5358	// non-interface field appearing in ForceSendFields will be sent to the
5359	// server regardless of whether the field is empty or not. This may be
5360	// used to include empty fields in Patch requests.
5361	ForceSendFields []string `json:"-"`
5362
5363	// NullFields is a list of field names (e.g. "Description") to include
5364	// in API requests with the JSON null value. By default, fields with
5365	// empty values are omitted from API requests. However, any field with
5366	// an empty value appearing in NullFields will be sent to the server as
5367	// null. It is an error if a field in this list has a non-empty value.
5368	// This may be used to include null fields in Patch requests.
5369	NullFields []string `json:"-"`
5370}
5371
5372func (s *QueryParameterTypeStructTypes) MarshalJSON() ([]byte, error) {
5373	type NoMethod QueryParameterTypeStructTypes
5374	raw := NoMethod(*s)
5375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5376}
5377
5378type QueryParameterValue struct {
5379	// ArrayValues: [Optional] The array values, if this is an array type.
5380	ArrayValues []*QueryParameterValue `json:"arrayValues,omitempty"`
5381
5382	// StructValues: [Optional] The struct field values, in order of the
5383	// struct type's declaration.
5384	StructValues map[string]QueryParameterValue `json:"structValues,omitempty"`
5385
5386	// Value: [Optional] The value of this value, if a simple scalar type.
5387	Value string `json:"value,omitempty"`
5388
5389	// ForceSendFields is a list of field names (e.g. "ArrayValues") to
5390	// unconditionally include in API requests. By default, fields with
5391	// empty values are omitted from API requests. However, any non-pointer,
5392	// non-interface field appearing in ForceSendFields will be sent to the
5393	// server regardless of whether the field is empty or not. This may be
5394	// used to include empty fields in Patch requests.
5395	ForceSendFields []string `json:"-"`
5396
5397	// NullFields is a list of field names (e.g. "ArrayValues") to include
5398	// in API requests with the JSON null value. By default, fields with
5399	// empty values are omitted from API requests. However, any field with
5400	// an empty value appearing in NullFields will be sent to the server as
5401	// null. It is an error if a field in this list has a non-empty value.
5402	// This may be used to include null fields in Patch requests.
5403	NullFields []string `json:"-"`
5404}
5405
5406func (s *QueryParameterValue) MarshalJSON() ([]byte, error) {
5407	type NoMethod QueryParameterValue
5408	raw := NoMethod(*s)
5409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5410}
5411
5412type QueryRequest struct {
5413	// ConnectionProperties: Connection properties.
5414	ConnectionProperties []*ConnectionProperty `json:"connectionProperties,omitempty"`
5415
5416	// CreateSession: If true, creates a new session, where session id will
5417	// be a server generated random id. If false, runs query with an
5418	// existing session_id passed in ConnectionProperty, otherwise runs
5419	// query in non-session mode.
5420	CreateSession bool `json:"createSession,omitempty"`
5421
5422	// DefaultDataset: [Optional] Specifies the default datasetId and
5423	// projectId to assume for any unqualified table names in the query. If
5424	// not set, all table names in the query string must be qualified in the
5425	// format 'datasetId.tableId'.
5426	DefaultDataset *DatasetReference `json:"defaultDataset,omitempty"`
5427
5428	// DryRun: [Optional] If set to true, BigQuery doesn't run the job.
5429	// Instead, if the query is valid, BigQuery returns statistics about the
5430	// job such as how many bytes would be processed. If the query is
5431	// invalid, an error returns. The default value is false.
5432	DryRun bool `json:"dryRun,omitempty"`
5433
5434	// Kind: The resource type of the request.
5435	Kind string `json:"kind,omitempty"`
5436
5437	// Labels: The labels associated with this job. You can use these to
5438	// organize and group your jobs. Label keys and values can be no longer
5439	// than 63 characters, can only contain lowercase letters, numeric
5440	// characters, underscores and dashes. International characters are
5441	// allowed. Label values are optional. Label keys must start with a
5442	// letter and each label in the list must have a different key.
5443	Labels map[string]string `json:"labels,omitempty"`
5444
5445	// Location: The geographic location where the job should run. See
5446	// details at
5447	// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
5448	Location string `json:"location,omitempty"`
5449
5450	// MaxResults: [Optional] The maximum number of rows of data to return
5451	// per page of results. Setting this flag to a small value such as 1000
5452	// and then paging through results might improve reliability when the
5453	// query result set is large. In addition to this limit, responses are
5454	// also limited to 10 MB. By default, there is no maximum row count, and
5455	// only the byte limit applies.
5456	MaxResults int64 `json:"maxResults,omitempty"`
5457
5458	// MaximumBytesBilled: [Optional] Limits the bytes billed for this job.
5459	// Queries that will have bytes billed beyond this limit will fail
5460	// (without incurring a charge). If unspecified, this will be set to
5461	// your project default.
5462	MaximumBytesBilled int64 `json:"maximumBytesBilled,omitempty,string"`
5463
5464	// ParameterMode: Standard SQL only. Set to POSITIONAL to use positional
5465	// (?) query parameters or to NAMED to use named (@myparam) query
5466	// parameters in this query.
5467	ParameterMode string `json:"parameterMode,omitempty"`
5468
5469	// PreserveNulls: [Deprecated] This property is deprecated.
5470	PreserveNulls bool `json:"preserveNulls,omitempty"`
5471
5472	// Query: [Required] A query string, following the BigQuery query
5473	// syntax, of the query to execute. Example: "SELECT count(f1) FROM
5474	// [myProjectId:myDatasetId.myTableId]".
5475	Query string `json:"query,omitempty"`
5476
5477	// QueryParameters: Query parameters for Standard SQL queries.
5478	QueryParameters []*QueryParameter `json:"queryParameters,omitempty"`
5479
5480	// RequestId: A unique user provided identifier to ensure idempotent
5481	// behavior for queries. Note that this is different from the job_id. It
5482	// has the following properties: 1. It is case-sensitive, limited to up
5483	// to 36 ASCII characters. A UUID is recommended. 2. Read only queries
5484	// can ignore this token since they are nullipotent by definition. 3.
5485	// For the purposes of idempotency ensured by the request_id, a request
5486	// is considered duplicate of another only if they have the same
5487	// request_id and are actually duplicates. When determining whether a
5488	// request is a duplicate of the previous request, all parameters in the
5489	// request that may affect the behavior are considered. For example,
5490	// query, connection_properties, query_parameters, use_legacy_sql are
5491	// parameters that affect the result and are considered when determining
5492	// whether a request is a duplicate, but properties like timeout_ms
5493	// don't affect the result and are thus not considered. Dry run query
5494	// requests are never considered duplicate of another request. 4. When a
5495	// duplicate mutating query request is detected, it returns: a. the
5496	// results of the mutation if it completes successfully within the
5497	// timeout. b. the running operation if it is still in progress at the
5498	// end of the timeout. 5. Its lifetime is limited to 15 minutes. In
5499	// other words, if two requests are sent with the same request_id, but
5500	// more than 15 minutes apart, idempotency is not guaranteed.
5501	RequestId string `json:"requestId,omitempty"`
5502
5503	// TimeoutMs: [Optional] How long to wait for the query to complete, in
5504	// milliseconds, before the request times out and returns. Note that
5505	// this is only a timeout for the request, not the query. If the query
5506	// takes longer to run than the timeout value, the call returns without
5507	// any results and with the 'jobComplete' flag set to false. You can
5508	// call GetQueryResults() to wait for the query to complete and read the
5509	// results. The default value is 10000 milliseconds (10 seconds).
5510	TimeoutMs int64 `json:"timeoutMs,omitempty"`
5511
5512	// UseLegacySql: Specifies whether to use BigQuery's legacy SQL dialect
5513	// for this query. The default value is true. If set to false, the query
5514	// will use BigQuery's standard SQL:
5515	// https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is
5516	// set to false, the value of flattenResults is ignored; query will be
5517	// run as if flattenResults is false.
5518	//
5519	// Default: true
5520	UseLegacySql *bool `json:"useLegacySql,omitempty"`
5521
5522	// UseQueryCache: [Optional] Whether to look for the result in the query
5523	// cache. The query cache is a best-effort cache that will be flushed
5524	// whenever tables in the query are modified. The default value is true.
5525	//
5526	// Default: true
5527	UseQueryCache *bool `json:"useQueryCache,omitempty"`
5528
5529	// ForceSendFields is a list of field names (e.g.
5530	// "ConnectionProperties") to unconditionally include in API requests.
5531	// By default, fields with empty values are omitted from API requests.
5532	// However, any non-pointer, non-interface field appearing in
5533	// ForceSendFields will be sent to the server regardless of whether the
5534	// field is empty or not. This may be used to include empty fields in
5535	// Patch requests.
5536	ForceSendFields []string `json:"-"`
5537
5538	// NullFields is a list of field names (e.g. "ConnectionProperties") to
5539	// include in API requests with the JSON null value. By default, fields
5540	// with empty values are omitted from API requests. However, any field
5541	// with an empty value appearing in NullFields will be sent to the
5542	// server as null. It is an error if a field in this list has a
5543	// non-empty value. This may be used to include null fields in Patch
5544	// requests.
5545	NullFields []string `json:"-"`
5546}
5547
5548func (s *QueryRequest) MarshalJSON() ([]byte, error) {
5549	type NoMethod QueryRequest
5550	raw := NoMethod(*s)
5551	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5552}
5553
5554type QueryResponse struct {
5555	// CacheHit: Whether the query result was fetched from the query cache.
5556	CacheHit bool `json:"cacheHit,omitempty"`
5557
5558	// Errors: [Output-only] The first errors or warnings encountered during
5559	// the running of the job. The final message includes the number of
5560	// errors that caused the process to stop. Errors here do not
5561	// necessarily mean that the job has completed or was unsuccessful.
5562	Errors []*ErrorProto `json:"errors,omitempty"`
5563
5564	// JobComplete: Whether the query has completed or not. If rows or
5565	// totalRows are present, this will always be true. If this is false,
5566	// totalRows will not be available.
5567	JobComplete bool `json:"jobComplete,omitempty"`
5568
5569	// JobReference: Reference to the Job that was created to run the query.
5570	// This field will be present even if the original request timed out, in
5571	// which case GetQueryResults can be used to read the results once the
5572	// query has completed. Since this API only returns the first page of
5573	// results, subsequent pages can be fetched via the same mechanism
5574	// (GetQueryResults).
5575	JobReference *JobReference `json:"jobReference,omitempty"`
5576
5577	// Kind: The resource type.
5578	Kind string `json:"kind,omitempty"`
5579
5580	// NumDmlAffectedRows: [Output-only] The number of rows affected by a
5581	// DML statement. Present only for DML statements INSERT, UPDATE or
5582	// DELETE.
5583	NumDmlAffectedRows int64 `json:"numDmlAffectedRows,omitempty,string"`
5584
5585	// PageToken: A token used for paging results.
5586	PageToken string `json:"pageToken,omitempty"`
5587
5588	// Rows: An object with as many results as can be contained within the
5589	// maximum permitted reply size. To get any additional rows, you can
5590	// call GetQueryResults and specify the jobReference returned above.
5591	Rows []*TableRow `json:"rows,omitempty"`
5592
5593	// Schema: The schema of the results. Present only when the query
5594	// completes successfully.
5595	Schema *TableSchema `json:"schema,omitempty"`
5596
5597	// SessionInfoTemplate: [Output-only] [Preview] Information of the
5598	// session if this job is part of one.
5599	SessionInfoTemplate *SessionInfo `json:"sessionInfoTemplate,omitempty"`
5600
5601	// TotalBytesProcessed: The total number of bytes processed for this
5602	// query. If this query was a dry run, this is the number of bytes that
5603	// would be processed if the query were run.
5604	TotalBytesProcessed int64 `json:"totalBytesProcessed,omitempty,string"`
5605
5606	// TotalRows: The total number of rows in the complete query result set,
5607	// which can be more than the number of rows in this single page of
5608	// results.
5609	TotalRows uint64 `json:"totalRows,omitempty,string"`
5610
5611	// ServerResponse contains the HTTP response code and headers from the
5612	// server.
5613	googleapi.ServerResponse `json:"-"`
5614
5615	// ForceSendFields is a list of field names (e.g. "CacheHit") to
5616	// unconditionally include in API requests. By default, fields with
5617	// empty values are omitted from API requests. However, any non-pointer,
5618	// non-interface field appearing in ForceSendFields will be sent to the
5619	// server regardless of whether the field is empty or not. This may be
5620	// used to include empty fields in Patch requests.
5621	ForceSendFields []string `json:"-"`
5622
5623	// NullFields is a list of field names (e.g. "CacheHit") to include in
5624	// API requests with the JSON null value. By default, fields with empty
5625	// values are omitted from API requests. However, any field with an
5626	// empty value appearing in NullFields will be sent to the server as
5627	// null. It is an error if a field in this list has a non-empty value.
5628	// This may be used to include null fields in Patch requests.
5629	NullFields []string `json:"-"`
5630}
5631
5632func (s *QueryResponse) MarshalJSON() ([]byte, error) {
5633	type NoMethod QueryResponse
5634	raw := NoMethod(*s)
5635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5636}
5637
5638type QueryTimelineSample struct {
5639	// ActiveUnits: Total number of units currently being processed by
5640	// workers. This does not correspond directly to slot usage. This is the
5641	// largest value observed since the last sample.
5642	ActiveUnits int64 `json:"activeUnits,omitempty,string"`
5643
5644	// CompletedUnits: Total parallel units of work completed by this query.
5645	CompletedUnits int64 `json:"completedUnits,omitempty,string"`
5646
5647	// ElapsedMs: Milliseconds elapsed since the start of query execution.
5648	ElapsedMs int64 `json:"elapsedMs,omitempty,string"`
5649
5650	// PendingUnits: Total parallel units of work remaining for the active
5651	// stages.
5652	PendingUnits int64 `json:"pendingUnits,omitempty,string"`
5653
5654	// TotalSlotMs: Cumulative slot-ms consumed by the query.
5655	TotalSlotMs int64 `json:"totalSlotMs,omitempty,string"`
5656
5657	// ForceSendFields is a list of field names (e.g. "ActiveUnits") to
5658	// unconditionally include in API requests. By default, fields with
5659	// empty values are omitted from API requests. However, any non-pointer,
5660	// non-interface field appearing in ForceSendFields will be sent to the
5661	// server regardless of whether the field is empty or not. This may be
5662	// used to include empty fields in Patch requests.
5663	ForceSendFields []string `json:"-"`
5664
5665	// NullFields is a list of field names (e.g. "ActiveUnits") to include
5666	// in API requests with the JSON null value. By default, fields with
5667	// empty values are omitted from API requests. However, any field with
5668	// an empty value appearing in NullFields will be sent to the server as
5669	// null. It is an error if a field in this list has a non-empty value.
5670	// This may be used to include null fields in Patch requests.
5671	NullFields []string `json:"-"`
5672}
5673
5674func (s *QueryTimelineSample) MarshalJSON() ([]byte, error) {
5675	type NoMethod QueryTimelineSample
5676	raw := NoMethod(*s)
5677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5678}
5679
5680type RangePartitioning struct {
5681	// Field: [TrustedTester] [Required] The table is partitioned by this
5682	// field. The field must be a top-level NULLABLE/REQUIRED field. The
5683	// only supported type is INTEGER/INT64.
5684	Field string `json:"field,omitempty"`
5685
5686	// Range: [TrustedTester] [Required] Defines the ranges for range
5687	// partitioning.
5688	Range *RangePartitioningRange `json:"range,omitempty"`
5689
5690	// ForceSendFields is a list of field names (e.g. "Field") to
5691	// unconditionally include in API requests. By default, fields with
5692	// empty values are omitted from API requests. However, any non-pointer,
5693	// non-interface field appearing in ForceSendFields will be sent to the
5694	// server regardless of whether the field is empty or not. This may be
5695	// used to include empty fields in Patch requests.
5696	ForceSendFields []string `json:"-"`
5697
5698	// NullFields is a list of field names (e.g. "Field") to include in API
5699	// requests with the JSON null value. By default, fields with empty
5700	// values are omitted from API requests. However, any field with an
5701	// empty value appearing in NullFields will be sent to the server as
5702	// null. It is an error if a field in this list has a non-empty value.
5703	// This may be used to include null fields in Patch requests.
5704	NullFields []string `json:"-"`
5705}
5706
5707func (s *RangePartitioning) MarshalJSON() ([]byte, error) {
5708	type NoMethod RangePartitioning
5709	raw := NoMethod(*s)
5710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5711}
5712
5713// RangePartitioningRange: [TrustedTester] [Required] Defines the ranges
5714// for range partitioning.
5715type RangePartitioningRange struct {
5716	// End: [TrustedTester] [Required] The end of range partitioning,
5717	// exclusive.
5718	End int64 `json:"end,omitempty,string"`
5719
5720	// Interval: [TrustedTester] [Required] The width of each interval.
5721	Interval int64 `json:"interval,omitempty,string"`
5722
5723	// Start: [TrustedTester] [Required] The start of range partitioning,
5724	// inclusive.
5725	Start int64 `json:"start,omitempty,string"`
5726
5727	// ForceSendFields is a list of field names (e.g. "End") to
5728	// unconditionally include in API requests. By default, fields with
5729	// empty values are omitted from API requests. However, any non-pointer,
5730	// non-interface field appearing in ForceSendFields will be sent to the
5731	// server regardless of whether the field is empty or not. This may be
5732	// used to include empty fields in Patch requests.
5733	ForceSendFields []string `json:"-"`
5734
5735	// NullFields is a list of field names (e.g. "End") to include in API
5736	// requests with the JSON null value. By default, fields with empty
5737	// values are omitted from API requests. However, any field with an
5738	// empty value appearing in NullFields will be sent to the server as
5739	// null. It is an error if a field in this list has a non-empty value.
5740	// This may be used to include null fields in Patch requests.
5741	NullFields []string `json:"-"`
5742}
5743
5744func (s *RangePartitioningRange) MarshalJSON() ([]byte, error) {
5745	type NoMethod RangePartitioningRange
5746	raw := NoMethod(*s)
5747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5748}
5749
5750// RankingMetrics: Evaluation metrics used by weighted-ALS models
5751// specified by feedback_type=implicit.
5752type RankingMetrics struct {
5753	// AverageRank: Determines the goodness of a ranking by computing the
5754	// percentile rank from the predicted confidence and dividing it by the
5755	// original rank.
5756	AverageRank float64 `json:"averageRank,omitempty"`
5757
5758	// MeanAveragePrecision: Calculates a precision per user for all the
5759	// items by ranking them and then averages all the precisions across all
5760	// the users.
5761	MeanAveragePrecision float64 `json:"meanAveragePrecision,omitempty"`
5762
5763	// MeanSquaredError: Similar to the mean squared error computed in
5764	// regression and explicit recommendation models except instead of
5765	// computing the rating directly, the output from evaluate is computed
5766	// against a preference which is 1 or 0 depending on if the rating
5767	// exists or not.
5768	MeanSquaredError float64 `json:"meanSquaredError,omitempty"`
5769
5770	// NormalizedDiscountedCumulativeGain: A metric to determine the
5771	// goodness of a ranking calculated from the predicted confidence by
5772	// comparing it to an ideal rank measured by the original ratings.
5773	NormalizedDiscountedCumulativeGain float64 `json:"normalizedDiscountedCumulativeGain,omitempty"`
5774
5775	// ForceSendFields is a list of field names (e.g. "AverageRank") to
5776	// unconditionally include in API requests. By default, fields with
5777	// empty values are omitted from API requests. However, any non-pointer,
5778	// non-interface field appearing in ForceSendFields will be sent to the
5779	// server regardless of whether the field is empty or not. This may be
5780	// used to include empty fields in Patch requests.
5781	ForceSendFields []string `json:"-"`
5782
5783	// NullFields is a list of field names (e.g. "AverageRank") to include
5784	// in API requests with the JSON null value. By default, fields with
5785	// empty values are omitted from API requests. However, any field with
5786	// an empty value appearing in NullFields will be sent to the server as
5787	// null. It is an error if a field in this list has a non-empty value.
5788	// This may be used to include null fields in Patch requests.
5789	NullFields []string `json:"-"`
5790}
5791
5792func (s *RankingMetrics) MarshalJSON() ([]byte, error) {
5793	type NoMethod RankingMetrics
5794	raw := NoMethod(*s)
5795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5796}
5797
5798func (s *RankingMetrics) UnmarshalJSON(data []byte) error {
5799	type NoMethod RankingMetrics
5800	var s1 struct {
5801		AverageRank                        gensupport.JSONFloat64 `json:"averageRank"`
5802		MeanAveragePrecision               gensupport.JSONFloat64 `json:"meanAveragePrecision"`
5803		MeanSquaredError                   gensupport.JSONFloat64 `json:"meanSquaredError"`
5804		NormalizedDiscountedCumulativeGain gensupport.JSONFloat64 `json:"normalizedDiscountedCumulativeGain"`
5805		*NoMethod
5806	}
5807	s1.NoMethod = (*NoMethod)(s)
5808	if err := json.Unmarshal(data, &s1); err != nil {
5809		return err
5810	}
5811	s.AverageRank = float64(s1.AverageRank)
5812	s.MeanAveragePrecision = float64(s1.MeanAveragePrecision)
5813	s.MeanSquaredError = float64(s1.MeanSquaredError)
5814	s.NormalizedDiscountedCumulativeGain = float64(s1.NormalizedDiscountedCumulativeGain)
5815	return nil
5816}
5817
5818// RegressionMetrics: Evaluation metrics for regression and explicit
5819// feedback type matrix factorization models.
5820type RegressionMetrics struct {
5821	// MeanAbsoluteError: Mean absolute error.
5822	MeanAbsoluteError float64 `json:"meanAbsoluteError,omitempty"`
5823
5824	// MeanSquaredError: Mean squared error.
5825	MeanSquaredError float64 `json:"meanSquaredError,omitempty"`
5826
5827	// MeanSquaredLogError: Mean squared log error.
5828	MeanSquaredLogError float64 `json:"meanSquaredLogError,omitempty"`
5829
5830	// MedianAbsoluteError: Median absolute error.
5831	MedianAbsoluteError float64 `json:"medianAbsoluteError,omitempty"`
5832
5833	// RSquared: R^2 score. This corresponds to r2_score in ML.EVALUATE.
5834	RSquared float64 `json:"rSquared,omitempty"`
5835
5836	// ForceSendFields is a list of field names (e.g. "MeanAbsoluteError")
5837	// to unconditionally include in API requests. By default, fields with
5838	// empty values are omitted from API requests. However, any non-pointer,
5839	// non-interface field appearing in ForceSendFields will be sent to the
5840	// server regardless of whether the field is empty or not. This may be
5841	// used to include empty fields in Patch requests.
5842	ForceSendFields []string `json:"-"`
5843
5844	// NullFields is a list of field names (e.g. "MeanAbsoluteError") to
5845	// include in API requests with the JSON null value. By default, fields
5846	// with empty values are omitted from API requests. However, any field
5847	// with an empty value appearing in NullFields will be sent to the
5848	// server as null. It is an error if a field in this list has a
5849	// non-empty value. This may be used to include null fields in Patch
5850	// requests.
5851	NullFields []string `json:"-"`
5852}
5853
5854func (s *RegressionMetrics) MarshalJSON() ([]byte, error) {
5855	type NoMethod RegressionMetrics
5856	raw := NoMethod(*s)
5857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5858}
5859
5860func (s *RegressionMetrics) UnmarshalJSON(data []byte) error {
5861	type NoMethod RegressionMetrics
5862	var s1 struct {
5863		MeanAbsoluteError   gensupport.JSONFloat64 `json:"meanAbsoluteError"`
5864		MeanSquaredError    gensupport.JSONFloat64 `json:"meanSquaredError"`
5865		MeanSquaredLogError gensupport.JSONFloat64 `json:"meanSquaredLogError"`
5866		MedianAbsoluteError gensupport.JSONFloat64 `json:"medianAbsoluteError"`
5867		RSquared            gensupport.JSONFloat64 `json:"rSquared"`
5868		*NoMethod
5869	}
5870	s1.NoMethod = (*NoMethod)(s)
5871	if err := json.Unmarshal(data, &s1); err != nil {
5872		return err
5873	}
5874	s.MeanAbsoluteError = float64(s1.MeanAbsoluteError)
5875	s.MeanSquaredError = float64(s1.MeanSquaredError)
5876	s.MeanSquaredLogError = float64(s1.MeanSquaredLogError)
5877	s.MedianAbsoluteError = float64(s1.MedianAbsoluteError)
5878	s.RSquared = float64(s1.RSquared)
5879	return nil
5880}
5881
5882// Routine: A user-defined function or a stored procedure.
5883type Routine struct {
5884	// Arguments: Optional.
5885	Arguments []*Argument `json:"arguments,omitempty"`
5886
5887	// CreationTime: Output only. The time when this routine was created, in
5888	// milliseconds since the epoch.
5889	CreationTime int64 `json:"creationTime,omitempty,string"`
5890
5891	// DefinitionBody: Required. The body of the routine. For functions,
5892	// this is the expression in the AS clause. If language=SQL, it is the
5893	// substring inside (but excluding) the parentheses. For example, for
5894	// the function created with the following statement: `CREATE FUNCTION
5895	// JoinLines(x string, y string) as (concat(x, "\n", y))` The
5896	// definition_body is `concat(x, "\n", y)` (\n is not replaced with
5897	// linebreak). If language=JAVASCRIPT, it is the evaluated string in the
5898	// AS clause. For example, for the function created with the following
5899	// statement: `CREATE FUNCTION f() RETURNS STRING LANGUAGE js AS 'return
5900	// "\n";\n'` The definition_body is `return "\n";\n` Note that both \n
5901	// are replaced with linebreaks.
5902	DefinitionBody string `json:"definitionBody,omitempty"`
5903
5904	// Description: Optional. [Experimental] The description of the routine
5905	// if defined.
5906	Description string `json:"description,omitempty"`
5907
5908	// DeterminismLevel: Optional. [Experimental] The determinism level of
5909	// the JavaScript UDF if defined.
5910	//
5911	// Possible values:
5912	//   "DETERMINISM_LEVEL_UNSPECIFIED" - The determinism of the UDF is
5913	// unspecified.
5914	//   "DETERMINISTIC" - The UDF is deterministic, meaning that 2 function
5915	// calls with the same inputs always produce the same result, even
5916	// across 2 query runs.
5917	//   "NOT_DETERMINISTIC" - The UDF is not deterministic.
5918	DeterminismLevel string `json:"determinismLevel,omitempty"`
5919
5920	// Etag: Output only. A hash of this resource.
5921	Etag string `json:"etag,omitempty"`
5922
5923	// ImportedLibraries: Optional. If language = "JAVASCRIPT", this field
5924	// stores the path of the imported JAVASCRIPT libraries.
5925	ImportedLibraries []string `json:"importedLibraries,omitempty"`
5926
5927	// Language: Optional. Defaults to "SQL".
5928	//
5929	// Possible values:
5930	//   "LANGUAGE_UNSPECIFIED"
5931	//   "SQL" - SQL language.
5932	//   "JAVASCRIPT" - JavaScript language.
5933	Language string `json:"language,omitempty"`
5934
5935	// LastModifiedTime: Output only. The time when this routine was last
5936	// modified, in milliseconds since the epoch.
5937	LastModifiedTime int64 `json:"lastModifiedTime,omitempty,string"`
5938
5939	// ReturnTableType: Optional. Set only if Routine is a
5940	// "TABLE_VALUED_FUNCTION".
5941	ReturnTableType *StandardSqlTableType `json:"returnTableType,omitempty"`
5942
5943	// ReturnType: Optional if language = "SQL"; required otherwise. If
5944	// absent, the return type is inferred from definition_body at query
5945	// time in each query that references this routine. If present, then the
5946	// evaluated result will be cast to the specified returned type at query
5947	// time. For example, for the functions created with the following
5948	// statements: * `CREATE FUNCTION Add(x FLOAT64, y FLOAT64) RETURNS
5949	// FLOAT64 AS (x + y);` * `CREATE FUNCTION Increment(x FLOAT64) AS
5950	// (Add(x, 1));` * `CREATE FUNCTION Decrement(x FLOAT64) RETURNS FLOAT64
5951	// AS (Add(x, -1));` The return_type is `{type_kind: "FLOAT64"}` for
5952	// `Add` and `Decrement`, and is absent for `Increment` (inferred as
5953	// FLOAT64 at query time). Suppose the function `Add` is replaced by
5954	// `CREATE OR REPLACE FUNCTION Add(x INT64, y INT64) AS (x + y);` Then
5955	// the inferred return type of `Increment` is automatically changed to
5956	// INT64 at query time, while the return type of `Decrement` remains
5957	// FLOAT64.
5958	ReturnType *StandardSqlDataType `json:"returnType,omitempty"`
5959
5960	// RoutineReference: Required. Reference describing the ID of this
5961	// routine.
5962	RoutineReference *RoutineReference `json:"routineReference,omitempty"`
5963
5964	// RoutineType: Required. The type of routine.
5965	//
5966	// Possible values:
5967	//   "ROUTINE_TYPE_UNSPECIFIED"
5968	//   "SCALAR_FUNCTION" - Non-builtin permanent scalar function.
5969	//   "PROCEDURE" - Stored procedure.
5970	//   "TABLE_VALUED_FUNCTION" - Non-builtin permanent TVF.
5971	RoutineType string `json:"routineType,omitempty"`
5972
5973	// ServerResponse contains the HTTP response code and headers from the
5974	// server.
5975	googleapi.ServerResponse `json:"-"`
5976
5977	// ForceSendFields is a list of field names (e.g. "Arguments") to
5978	// unconditionally include in API requests. By default, fields with
5979	// empty values are omitted from API requests. However, any non-pointer,
5980	// non-interface field appearing in ForceSendFields will be sent to the
5981	// server regardless of whether the field is empty or not. This may be
5982	// used to include empty fields in Patch requests.
5983	ForceSendFields []string `json:"-"`
5984
5985	// NullFields is a list of field names (e.g. "Arguments") to include in
5986	// API requests with the JSON null value. By default, fields with empty
5987	// values are omitted from API requests. However, any field with an
5988	// empty value appearing in NullFields will be sent to the server as
5989	// null. It is an error if a field in this list has a non-empty value.
5990	// This may be used to include null fields in Patch requests.
5991	NullFields []string `json:"-"`
5992}
5993
5994func (s *Routine) MarshalJSON() ([]byte, error) {
5995	type NoMethod Routine
5996	raw := NoMethod(*s)
5997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5998}
5999
6000type RoutineReference struct {
6001	// DatasetId: [Required] The ID of the dataset containing this routine.
6002	DatasetId string `json:"datasetId,omitempty"`
6003
6004	// ProjectId: [Required] The ID of the project containing this routine.
6005	ProjectId string `json:"projectId,omitempty"`
6006
6007	// RoutineId: [Required] The ID of the routine. The ID must contain only
6008	// letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
6009	// length is 256 characters.
6010	RoutineId string `json:"routineId,omitempty"`
6011
6012	// ForceSendFields is a list of field names (e.g. "DatasetId") to
6013	// unconditionally include in API requests. By default, fields with
6014	// empty values are omitted from API requests. However, any non-pointer,
6015	// non-interface field appearing in ForceSendFields will be sent to the
6016	// server regardless of whether the field is empty or not. This may be
6017	// used to include empty fields in Patch requests.
6018	ForceSendFields []string `json:"-"`
6019
6020	// NullFields is a list of field names (e.g. "DatasetId") to include in
6021	// API requests with the JSON null value. By default, fields with empty
6022	// values are omitted from API requests. However, any field with an
6023	// empty value appearing in NullFields will be sent to the server as
6024	// null. It is an error if a field in this list has a non-empty value.
6025	// This may be used to include null fields in Patch requests.
6026	NullFields []string `json:"-"`
6027}
6028
6029func (s *RoutineReference) MarshalJSON() ([]byte, error) {
6030	type NoMethod RoutineReference
6031	raw := NoMethod(*s)
6032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6033}
6034
6035// Row: A single row in the confusion matrix.
6036type Row struct {
6037	// ActualLabel: The original label of this row.
6038	ActualLabel string `json:"actualLabel,omitempty"`
6039
6040	// Entries: Info describing predicted label distribution.
6041	Entries []*Entry `json:"entries,omitempty"`
6042
6043	// ForceSendFields is a list of field names (e.g. "ActualLabel") to
6044	// unconditionally include in API requests. By default, fields with
6045	// empty values are omitted from API requests. However, any non-pointer,
6046	// non-interface field appearing in ForceSendFields will be sent to the
6047	// server regardless of whether the field is empty or not. This may be
6048	// used to include empty fields in Patch requests.
6049	ForceSendFields []string `json:"-"`
6050
6051	// NullFields is a list of field names (e.g. "ActualLabel") to include
6052	// in API requests with the JSON null value. By default, fields with
6053	// empty values are omitted from API requests. However, any field with
6054	// an empty value appearing in NullFields will be sent to the server as
6055	// null. It is an error if a field in this list has a non-empty value.
6056	// This may be used to include null fields in Patch requests.
6057	NullFields []string `json:"-"`
6058}
6059
6060func (s *Row) MarshalJSON() ([]byte, error) {
6061	type NoMethod Row
6062	raw := NoMethod(*s)
6063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6064}
6065
6066// RowAccessPolicy: Represents access on a subset of rows on the
6067// specified table, defined by its filter predicate. Access to the
6068// subset of rows is controlled by its IAM policy.
6069type RowAccessPolicy struct {
6070	// CreationTime: Output only. The time when this row access policy was
6071	// created, in milliseconds since the epoch.
6072	CreationTime string `json:"creationTime,omitempty"`
6073
6074	// Etag: Output only. A hash of this resource.
6075	Etag string `json:"etag,omitempty"`
6076
6077	// FilterPredicate: Required. A SQL boolean expression that represents
6078	// the rows defined by this row access policy, similar to the boolean
6079	// expression in a WHERE clause of a SELECT query on a table. References
6080	// to other tables, routines, and temporary functions are not supported.
6081	// Examples: region="EU" date_field = CAST('2019-9-27' as DATE)
6082	// nullable_field is not NULL numeric_field BETWEEN 1.0 AND 5.0
6083	FilterPredicate string `json:"filterPredicate,omitempty"`
6084
6085	// LastModifiedTime: Output only. The time when this row access policy
6086	// was last modified, in milliseconds since the epoch.
6087	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
6088
6089	// RowAccessPolicyReference: Required. Reference describing the ID of
6090	// this row access policy.
6091	RowAccessPolicyReference *RowAccessPolicyReference `json:"rowAccessPolicyReference,omitempty"`
6092
6093	// ForceSendFields is a list of field names (e.g. "CreationTime") to
6094	// unconditionally include in API requests. By default, fields with
6095	// empty values are omitted from API requests. However, any non-pointer,
6096	// non-interface field appearing in ForceSendFields will be sent to the
6097	// server regardless of whether the field is empty or not. This may be
6098	// used to include empty fields in Patch requests.
6099	ForceSendFields []string `json:"-"`
6100
6101	// NullFields is a list of field names (e.g. "CreationTime") to include
6102	// in API requests with the JSON null value. By default, fields with
6103	// empty values are omitted from API requests. However, any field with
6104	// an empty value appearing in NullFields will be sent to the server as
6105	// null. It is an error if a field in this list has a non-empty value.
6106	// This may be used to include null fields in Patch requests.
6107	NullFields []string `json:"-"`
6108}
6109
6110func (s *RowAccessPolicy) MarshalJSON() ([]byte, error) {
6111	type NoMethod RowAccessPolicy
6112	raw := NoMethod(*s)
6113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6114}
6115
6116type RowAccessPolicyReference struct {
6117	// DatasetId: [Required] The ID of the dataset containing this row
6118	// access policy.
6119	DatasetId string `json:"datasetId,omitempty"`
6120
6121	// PolicyId: [Required] The ID of the row access policy. The ID must
6122	// contain only letters (a-z, A-Z), numbers (0-9), or underscores (_).
6123	// The maximum length is 256 characters.
6124	PolicyId string `json:"policyId,omitempty"`
6125
6126	// ProjectId: [Required] The ID of the project containing this row
6127	// access policy.
6128	ProjectId string `json:"projectId,omitempty"`
6129
6130	// TableId: [Required] The ID of the table containing this row access
6131	// policy.
6132	TableId string `json:"tableId,omitempty"`
6133
6134	// ForceSendFields is a list of field names (e.g. "DatasetId") to
6135	// unconditionally include in API requests. By default, fields with
6136	// empty values are omitted from API requests. However, any non-pointer,
6137	// non-interface field appearing in ForceSendFields will be sent to the
6138	// server regardless of whether the field is empty or not. This may be
6139	// used to include empty fields in Patch requests.
6140	ForceSendFields []string `json:"-"`
6141
6142	// NullFields is a list of field names (e.g. "DatasetId") to include in
6143	// API requests with the JSON null value. By default, fields with empty
6144	// values are omitted from API requests. However, any field with an
6145	// empty value appearing in NullFields will be sent to the server as
6146	// null. It is an error if a field in this list has a non-empty value.
6147	// This may be used to include null fields in Patch requests.
6148	NullFields []string `json:"-"`
6149}
6150
6151func (s *RowAccessPolicyReference) MarshalJSON() ([]byte, error) {
6152	type NoMethod RowAccessPolicyReference
6153	raw := NoMethod(*s)
6154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6155}
6156
6157type RowLevelSecurityStatistics struct {
6158	// RowLevelSecurityApplied: [Output-only] [Preview] Whether any accessed
6159	// data was protected by row access policies.
6160	RowLevelSecurityApplied bool `json:"rowLevelSecurityApplied,omitempty"`
6161
6162	// ForceSendFields is a list of field names (e.g.
6163	// "RowLevelSecurityApplied") to unconditionally include in API
6164	// requests. By default, fields with empty values are omitted from API
6165	// requests. However, any non-pointer, non-interface field appearing in
6166	// ForceSendFields will be sent to the server regardless of whether the
6167	// field is empty or not. This may be used to include empty fields in
6168	// Patch requests.
6169	ForceSendFields []string `json:"-"`
6170
6171	// NullFields is a list of field names (e.g. "RowLevelSecurityApplied")
6172	// to include in API requests with the JSON null value. By default,
6173	// fields with empty values are omitted from API requests. However, any
6174	// field with an empty value appearing in NullFields will be sent to the
6175	// server as null. It is an error if a field in this list has a
6176	// non-empty value. This may be used to include null fields in Patch
6177	// requests.
6178	NullFields []string `json:"-"`
6179}
6180
6181func (s *RowLevelSecurityStatistics) MarshalJSON() ([]byte, error) {
6182	type NoMethod RowLevelSecurityStatistics
6183	raw := NoMethod(*s)
6184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6185}
6186
6187type ScriptStackFrame struct {
6188	// EndColumn: [Output-only] One-based end column.
6189	EndColumn int64 `json:"endColumn,omitempty"`
6190
6191	// EndLine: [Output-only] One-based end line.
6192	EndLine int64 `json:"endLine,omitempty"`
6193
6194	// ProcedureId: [Output-only] Name of the active procedure, empty if in
6195	// a top-level script.
6196	ProcedureId string `json:"procedureId,omitempty"`
6197
6198	// StartColumn: [Output-only] One-based start column.
6199	StartColumn int64 `json:"startColumn,omitempty"`
6200
6201	// StartLine: [Output-only] One-based start line.
6202	StartLine int64 `json:"startLine,omitempty"`
6203
6204	// Text: [Output-only] Text of the current statement/expression.
6205	Text string `json:"text,omitempty"`
6206
6207	// ForceSendFields is a list of field names (e.g. "EndColumn") to
6208	// unconditionally include in API requests. By default, fields with
6209	// empty values are omitted from API requests. However, any non-pointer,
6210	// non-interface field appearing in ForceSendFields will be sent to the
6211	// server regardless of whether the field is empty or not. This may be
6212	// used to include empty fields in Patch requests.
6213	ForceSendFields []string `json:"-"`
6214
6215	// NullFields is a list of field names (e.g. "EndColumn") to include in
6216	// API requests with the JSON null value. By default, fields with empty
6217	// values are omitted from API requests. However, any field with an
6218	// empty value appearing in NullFields will be sent to the server as
6219	// null. It is an error if a field in this list has a non-empty value.
6220	// This may be used to include null fields in Patch requests.
6221	NullFields []string `json:"-"`
6222}
6223
6224func (s *ScriptStackFrame) MarshalJSON() ([]byte, error) {
6225	type NoMethod ScriptStackFrame
6226	raw := NoMethod(*s)
6227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6228}
6229
6230type ScriptStatistics struct {
6231	// EvaluationKind: [Output-only] Whether this child job was a statement
6232	// or expression.
6233	EvaluationKind string `json:"evaluationKind,omitempty"`
6234
6235	// StackFrames: Stack trace showing the line/column/procedure name of
6236	// each frame on the stack at the point where the current evaluation
6237	// happened. The leaf frame is first, the primary script is last. Never
6238	// empty.
6239	StackFrames []*ScriptStackFrame `json:"stackFrames,omitempty"`
6240
6241	// ForceSendFields is a list of field names (e.g. "EvaluationKind") to
6242	// unconditionally include in API requests. By default, fields with
6243	// empty values are omitted from API requests. However, any non-pointer,
6244	// non-interface field appearing in ForceSendFields will be sent to the
6245	// server regardless of whether the field is empty or not. This may be
6246	// used to include empty fields in Patch requests.
6247	ForceSendFields []string `json:"-"`
6248
6249	// NullFields is a list of field names (e.g. "EvaluationKind") to
6250	// include in API requests with the JSON null value. By default, fields
6251	// with empty values are omitted from API requests. However, any field
6252	// with an empty value appearing in NullFields will be sent to the
6253	// server as null. It is an error if a field in this list has a
6254	// non-empty value. This may be used to include null fields in Patch
6255	// requests.
6256	NullFields []string `json:"-"`
6257}
6258
6259func (s *ScriptStatistics) MarshalJSON() ([]byte, error) {
6260	type NoMethod ScriptStatistics
6261	raw := NoMethod(*s)
6262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6263}
6264
6265type SessionInfo struct {
6266	// SessionId: [Output-only] // [Preview] Id of the session.
6267	SessionId string `json:"sessionId,omitempty"`
6268
6269	// ForceSendFields is a list of field names (e.g. "SessionId") to
6270	// unconditionally include in API requests. By default, fields with
6271	// empty values are omitted from API requests. However, any non-pointer,
6272	// non-interface field appearing in ForceSendFields will be sent to the
6273	// server regardless of whether the field is empty or not. This may be
6274	// used to include empty fields in Patch requests.
6275	ForceSendFields []string `json:"-"`
6276
6277	// NullFields is a list of field names (e.g. "SessionId") to include in
6278	// API requests with the JSON null value. By default, fields with empty
6279	// values are omitted from API requests. However, any field with an
6280	// empty value appearing in NullFields will be sent to the server as
6281	// null. It is an error if a field in this list has a non-empty value.
6282	// This may be used to include null fields in Patch requests.
6283	NullFields []string `json:"-"`
6284}
6285
6286func (s *SessionInfo) MarshalJSON() ([]byte, error) {
6287	type NoMethod SessionInfo
6288	raw := NoMethod(*s)
6289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6290}
6291
6292// SetIamPolicyRequest: Request message for `SetIamPolicy` method.
6293type SetIamPolicyRequest struct {
6294	// Policy: REQUIRED: The complete policy to be applied to the
6295	// `resource`. The size of the policy is limited to a few 10s of KB. An
6296	// empty policy is a valid policy but certain Cloud Platform services
6297	// (such as Projects) might reject them.
6298	Policy *Policy `json:"policy,omitempty"`
6299
6300	// UpdateMask: OPTIONAL: A FieldMask specifying which fields of the
6301	// policy to modify. Only the fields in the mask will be modified. If no
6302	// mask is provided, the following default mask is used: `paths:
6303	// "bindings, etag"
6304	UpdateMask string `json:"updateMask,omitempty"`
6305
6306	// ForceSendFields is a list of field names (e.g. "Policy") to
6307	// unconditionally include in API requests. By default, fields with
6308	// empty values are omitted from API requests. However, any non-pointer,
6309	// non-interface field appearing in ForceSendFields will be sent to the
6310	// server regardless of whether the field is empty or not. This may be
6311	// used to include empty fields in Patch requests.
6312	ForceSendFields []string `json:"-"`
6313
6314	// NullFields is a list of field names (e.g. "Policy") to include in API
6315	// requests with the JSON null value. By default, fields with empty
6316	// values are omitted from API requests. However, any field with an
6317	// empty value appearing in NullFields will be sent to the server as
6318	// null. It is an error if a field in this list has a non-empty value.
6319	// This may be used to include null fields in Patch requests.
6320	NullFields []string `json:"-"`
6321}
6322
6323func (s *SetIamPolicyRequest) MarshalJSON() ([]byte, error) {
6324	type NoMethod SetIamPolicyRequest
6325	raw := NoMethod(*s)
6326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6327}
6328
6329type SnapshotDefinition struct {
6330	// BaseTableReference: [Required] Reference describing the ID of the
6331	// table that is snapshotted.
6332	BaseTableReference *TableReference `json:"baseTableReference,omitempty"`
6333
6334	// SnapshotTime: [Required] The time at which the base table was
6335	// snapshot.
6336	SnapshotTime string `json:"snapshotTime,omitempty"`
6337
6338	// ForceSendFields is a list of field names (e.g. "BaseTableReference")
6339	// to unconditionally include in API requests. By default, fields with
6340	// empty values are omitted from API requests. However, any non-pointer,
6341	// non-interface field appearing in ForceSendFields will be sent to the
6342	// server regardless of whether the field is empty or not. This may be
6343	// used to include empty fields in Patch requests.
6344	ForceSendFields []string `json:"-"`
6345
6346	// NullFields is a list of field names (e.g. "BaseTableReference") to
6347	// include in API requests with the JSON null value. By default, fields
6348	// with empty values are omitted from API requests. However, any field
6349	// with an empty value appearing in NullFields will be sent to the
6350	// server as null. It is an error if a field in this list has a
6351	// non-empty value. This may be used to include null fields in Patch
6352	// requests.
6353	NullFields []string `json:"-"`
6354}
6355
6356func (s *SnapshotDefinition) MarshalJSON() ([]byte, error) {
6357	type NoMethod SnapshotDefinition
6358	raw := NoMethod(*s)
6359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6360}
6361
6362// StandardSqlDataType: The type of a variable, e.g., a function
6363// argument. Examples: INT64: {type_kind="INT64"} ARRAY:
6364// {type_kind="ARRAY", array_element_type="STRING"} STRUCT>:
6365// {type_kind="STRUCT", struct_type={fields=[ {name="x",
6366// type={type_kind="STRING"}}, {name="y", type={type_kind="ARRAY",
6367// array_element_type="DATE"}} ]}}
6368type StandardSqlDataType struct {
6369	// ArrayElementType: The type of the array's elements, if type_kind =
6370	// "ARRAY".
6371	ArrayElementType *StandardSqlDataType `json:"arrayElementType,omitempty"`
6372
6373	// StructType: The fields of this struct, in order, if type_kind =
6374	// "STRUCT".
6375	StructType *StandardSqlStructType `json:"structType,omitempty"`
6376
6377	// TypeKind: Required. The top level type of this field. Can be any
6378	// standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
6379	//
6380	// Possible values:
6381	//   "TYPE_KIND_UNSPECIFIED" - Invalid type.
6382	//   "INT64" - Encoded as a string in decimal format.
6383	//   "BOOL" - Encoded as a boolean "false" or "true".
6384	//   "FLOAT64" - Encoded as a number, or string "NaN", "Infinity" or
6385	// "-Infinity".
6386	//   "STRING" - Encoded as a string value.
6387	//   "BYTES" - Encoded as a base64 string per RFC 4648, section 4.
6388	//   "TIMESTAMP" - Encoded as an RFC 3339 timestamp with mandatory "Z"
6389	// time zone string: 1985-04-12T23:20:50.52Z
6390	//   "DATE" - Encoded as RFC 3339 full-date format string: 1985-04-12
6391	//   "TIME" - Encoded as RFC 3339 partial-time format string:
6392	// 23:20:50.52
6393	//   "DATETIME" - Encoded as RFC 3339 full-date "T" partial-time:
6394	// 1985-04-12T23:20:50.52
6395	//   "INTERVAL" - Encoded as fully qualified 3 part: 0-5 15 2:30:45.6
6396	//   "GEOGRAPHY" - Encoded as WKT
6397	//   "NUMERIC" - Encoded as a decimal string.
6398	//   "BIGNUMERIC" - Encoded as a decimal string.
6399	//   "ARRAY" - Encoded as a list with types matching Type.array_type.
6400	//   "STRUCT" - Encoded as a list with fields of type
6401	// Type.struct_type[i]. List is used because a JSON object cannot have
6402	// duplicate field names.
6403	TypeKind string `json:"typeKind,omitempty"`
6404
6405	// ForceSendFields is a list of field names (e.g. "ArrayElementType") to
6406	// unconditionally include in API requests. By default, fields with
6407	// empty values are omitted from API requests. However, any non-pointer,
6408	// non-interface field appearing in ForceSendFields will be sent to the
6409	// server regardless of whether the field is empty or not. This may be
6410	// used to include empty fields in Patch requests.
6411	ForceSendFields []string `json:"-"`
6412
6413	// NullFields is a list of field names (e.g. "ArrayElementType") to
6414	// include in API requests with the JSON null value. By default, fields
6415	// with empty values are omitted from API requests. However, any field
6416	// with an empty value appearing in NullFields will be sent to the
6417	// server as null. It is an error if a field in this list has a
6418	// non-empty value. This may be used to include null fields in Patch
6419	// requests.
6420	NullFields []string `json:"-"`
6421}
6422
6423func (s *StandardSqlDataType) MarshalJSON() ([]byte, error) {
6424	type NoMethod StandardSqlDataType
6425	raw := NoMethod(*s)
6426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6427}
6428
6429// StandardSqlField: A field or a column.
6430type StandardSqlField struct {
6431	// Name: Optional. The name of this field. Can be absent for struct
6432	// fields.
6433	Name string `json:"name,omitempty"`
6434
6435	// Type: Optional. The type of this parameter. Absent if not explicitly
6436	// specified (e.g., CREATE FUNCTION statement can omit the return type;
6437	// in this case the output parameter does not have this "type" field).
6438	Type *StandardSqlDataType `json:"type,omitempty"`
6439
6440	// ForceSendFields is a list of field names (e.g. "Name") to
6441	// unconditionally include in API requests. By default, fields with
6442	// empty values are omitted from API requests. However, any non-pointer,
6443	// non-interface field appearing in ForceSendFields will be sent to the
6444	// server regardless of whether the field is empty or not. This may be
6445	// used to include empty fields in Patch requests.
6446	ForceSendFields []string `json:"-"`
6447
6448	// NullFields is a list of field names (e.g. "Name") to include in API
6449	// requests with the JSON null value. By default, fields with empty
6450	// values are omitted from API requests. However, any field with an
6451	// empty value appearing in NullFields will be sent to the server as
6452	// null. It is an error if a field in this list has a non-empty value.
6453	// This may be used to include null fields in Patch requests.
6454	NullFields []string `json:"-"`
6455}
6456
6457func (s *StandardSqlField) MarshalJSON() ([]byte, error) {
6458	type NoMethod StandardSqlField
6459	raw := NoMethod(*s)
6460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6461}
6462
6463type StandardSqlStructType struct {
6464	Fields []*StandardSqlField `json:"fields,omitempty"`
6465
6466	// ForceSendFields is a list of field names (e.g. "Fields") to
6467	// unconditionally include in API requests. By default, fields with
6468	// empty values are omitted from API requests. However, any non-pointer,
6469	// non-interface field appearing in ForceSendFields will be sent to the
6470	// server regardless of whether the field is empty or not. This may be
6471	// used to include empty fields in Patch requests.
6472	ForceSendFields []string `json:"-"`
6473
6474	// NullFields is a list of field names (e.g. "Fields") to include in API
6475	// requests with the JSON null value. By default, fields with empty
6476	// values are omitted from API requests. However, any field with an
6477	// empty value appearing in NullFields will be sent to the server as
6478	// null. It is an error if a field in this list has a non-empty value.
6479	// This may be used to include null fields in Patch requests.
6480	NullFields []string `json:"-"`
6481}
6482
6483func (s *StandardSqlStructType) MarshalJSON() ([]byte, error) {
6484	type NoMethod StandardSqlStructType
6485	raw := NoMethod(*s)
6486	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6487}
6488
6489// StandardSqlTableType: A table type
6490type StandardSqlTableType struct {
6491	// Columns: The columns in this table type
6492	Columns []*StandardSqlField `json:"columns,omitempty"`
6493
6494	// ForceSendFields is a list of field names (e.g. "Columns") to
6495	// unconditionally include in API requests. By default, fields with
6496	// empty values are omitted from API requests. However, any non-pointer,
6497	// non-interface field appearing in ForceSendFields will be sent to the
6498	// server regardless of whether the field is empty or not. This may be
6499	// used to include empty fields in Patch requests.
6500	ForceSendFields []string `json:"-"`
6501
6502	// NullFields is a list of field names (e.g. "Columns") to include in
6503	// API requests with the JSON null value. By default, fields with empty
6504	// values are omitted from API requests. However, any field with an
6505	// empty value appearing in NullFields will be sent to the server as
6506	// null. It is an error if a field in this list has a non-empty value.
6507	// This may be used to include null fields in Patch requests.
6508	NullFields []string `json:"-"`
6509}
6510
6511func (s *StandardSqlTableType) MarshalJSON() ([]byte, error) {
6512	type NoMethod StandardSqlTableType
6513	raw := NoMethod(*s)
6514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6515}
6516
6517type Streamingbuffer struct {
6518	// EstimatedBytes: [Output-only] A lower-bound estimate of the number of
6519	// bytes currently in the streaming buffer.
6520	EstimatedBytes uint64 `json:"estimatedBytes,omitempty,string"`
6521
6522	// EstimatedRows: [Output-only] A lower-bound estimate of the number of
6523	// rows currently in the streaming buffer.
6524	EstimatedRows uint64 `json:"estimatedRows,omitempty,string"`
6525
6526	// OldestEntryTime: [Output-only] Contains the timestamp of the oldest
6527	// entry in the streaming buffer, in milliseconds since the epoch, if
6528	// the streaming buffer is available.
6529	OldestEntryTime uint64 `json:"oldestEntryTime,omitempty,string"`
6530
6531	// ForceSendFields is a list of field names (e.g. "EstimatedBytes") to
6532	// unconditionally include in API requests. By default, fields with
6533	// empty values are omitted from API requests. However, any non-pointer,
6534	// non-interface field appearing in ForceSendFields will be sent to the
6535	// server regardless of whether the field is empty or not. This may be
6536	// used to include empty fields in Patch requests.
6537	ForceSendFields []string `json:"-"`
6538
6539	// NullFields is a list of field names (e.g. "EstimatedBytes") to
6540	// include in API requests with the JSON null value. By default, fields
6541	// with empty values are omitted from API requests. However, any field
6542	// with an empty value appearing in NullFields will be sent to the
6543	// server as null. It is an error if a field in this list has a
6544	// non-empty value. This may be used to include null fields in Patch
6545	// requests.
6546	NullFields []string `json:"-"`
6547}
6548
6549func (s *Streamingbuffer) MarshalJSON() ([]byte, error) {
6550	type NoMethod Streamingbuffer
6551	raw := NoMethod(*s)
6552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6553}
6554
6555type Table struct {
6556	// Clustering: [Beta] Clustering specification for the table. Must be
6557	// specified with partitioning, data in the table will be first
6558	// partitioned and subsequently clustered.
6559	Clustering *Clustering `json:"clustering,omitempty"`
6560
6561	// CreationTime: [Output-only] The time when this table was created, in
6562	// milliseconds since the epoch.
6563	CreationTime int64 `json:"creationTime,omitempty,string"`
6564
6565	// Description: [Optional] A user-friendly description of this table.
6566	Description string `json:"description,omitempty"`
6567
6568	// EncryptionConfiguration: Custom encryption configuration (e.g., Cloud
6569	// KMS keys).
6570	EncryptionConfiguration *EncryptionConfiguration `json:"encryptionConfiguration,omitempty"`
6571
6572	// Etag: [Output-only] A hash of the table metadata. Used to ensure
6573	// there were no concurrent modifications to the resource when
6574	// attempting an update. Not guaranteed to change when the table
6575	// contents or the fields numRows, numBytes, numLongTermBytes or
6576	// lastModifiedTime change.
6577	Etag string `json:"etag,omitempty"`
6578
6579	// ExpirationTime: [Optional] The time when this table expires, in
6580	// milliseconds since the epoch. If not present, the table will persist
6581	// indefinitely. Expired tables will be deleted and their storage
6582	// reclaimed. The defaultTableExpirationMs property of the encapsulating
6583	// dataset can be used to set a default expirationTime on newly created
6584	// tables.
6585	ExpirationTime int64 `json:"expirationTime,omitempty,string"`
6586
6587	// ExternalDataConfiguration: [Optional] Describes the data format,
6588	// location, and other properties of a table stored outside of BigQuery.
6589	// By defining these properties, the data source can then be queried as
6590	// if it were a standard BigQuery table.
6591	ExternalDataConfiguration *ExternalDataConfiguration `json:"externalDataConfiguration,omitempty"`
6592
6593	// FriendlyName: [Optional] A descriptive name for this table.
6594	FriendlyName string `json:"friendlyName,omitempty"`
6595
6596	// Id: [Output-only] An opaque ID uniquely identifying the table.
6597	Id string `json:"id,omitempty"`
6598
6599	// Kind: [Output-only] The type of the resource.
6600	Kind string `json:"kind,omitempty"`
6601
6602	// Labels: The labels associated with this table. You can use these to
6603	// organize and group your tables. Label keys and values can be no
6604	// longer than 63 characters, can only contain lowercase letters,
6605	// numeric characters, underscores and dashes. International characters
6606	// are allowed. Label values are optional. Label keys must start with a
6607	// letter and each label in the list must have a different key.
6608	Labels map[string]string `json:"labels,omitempty"`
6609
6610	// LastModifiedTime: [Output-only] The time when this table was last
6611	// modified, in milliseconds since the epoch.
6612	LastModifiedTime uint64 `json:"lastModifiedTime,omitempty,string"`
6613
6614	// Location: [Output-only] The geographic location where the table
6615	// resides. This value is inherited from the dataset.
6616	Location string `json:"location,omitempty"`
6617
6618	// MaterializedView: [Optional] Materialized view definition.
6619	MaterializedView *MaterializedViewDefinition `json:"materializedView,omitempty"`
6620
6621	// Model: [Output-only, Beta] Present iff this table represents a ML
6622	// model. Describes the training information for the model, and it is
6623	// required to run 'PREDICT' queries.
6624	Model *ModelDefinition `json:"model,omitempty"`
6625
6626	// NumBytes: [Output-only] The size of this table in bytes, excluding
6627	// any data in the streaming buffer.
6628	NumBytes int64 `json:"numBytes,omitempty,string"`
6629
6630	// NumLongTermBytes: [Output-only] The number of bytes in the table that
6631	// are considered "long-term storage".
6632	NumLongTermBytes int64 `json:"numLongTermBytes,omitempty,string"`
6633
6634	// NumPhysicalBytes: [Output-only] [TrustedTester] The physical size of
6635	// this table in bytes, excluding any data in the streaming buffer. This
6636	// includes compression and storage used for time travel.
6637	NumPhysicalBytes int64 `json:"numPhysicalBytes,omitempty,string"`
6638
6639	// NumRows: [Output-only] The number of rows of data in this table,
6640	// excluding any data in the streaming buffer.
6641	NumRows uint64 `json:"numRows,omitempty,string"`
6642
6643	// RangePartitioning: [TrustedTester] Range partitioning specification
6644	// for this table. Only one of timePartitioning and rangePartitioning
6645	// should be specified.
6646	RangePartitioning *RangePartitioning `json:"rangePartitioning,omitempty"`
6647
6648	// RequirePartitionFilter: [Optional] If set to true, queries over this
6649	// table require a partition filter that can be used for partition
6650	// elimination to be specified.
6651	RequirePartitionFilter bool `json:"requirePartitionFilter,omitempty"`
6652
6653	// Schema: [Optional] Describes the schema of this table.
6654	Schema *TableSchema `json:"schema,omitempty"`
6655
6656	// SelfLink: [Output-only] A URL that can be used to access this
6657	// resource again.
6658	SelfLink string `json:"selfLink,omitempty"`
6659
6660	// SnapshotDefinition: [Output-only] Snapshot definition.
6661	SnapshotDefinition *SnapshotDefinition `json:"snapshotDefinition,omitempty"`
6662
6663	// StreamingBuffer: [Output-only] Contains information regarding this
6664	// table's streaming buffer, if one is present. This field will be
6665	// absent if the table is not being streamed to or if there is no data
6666	// in the streaming buffer.
6667	StreamingBuffer *Streamingbuffer `json:"streamingBuffer,omitempty"`
6668
6669	// TableReference: [Required] Reference describing the ID of this table.
6670	TableReference *TableReference `json:"tableReference,omitempty"`
6671
6672	// TimePartitioning: Time-based partitioning specification for this
6673	// table. Only one of timePartitioning and rangePartitioning should be
6674	// specified.
6675	TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"`
6676
6677	// Type: [Output-only] Describes the table type. The following values
6678	// are supported: TABLE: A normal BigQuery table. VIEW: A virtual table
6679	// defined by a SQL query. SNAPSHOT: An immutable, read-only table that
6680	// is a copy of another table. [TrustedTester] MATERIALIZED_VIEW: SQL
6681	// query whose result is persisted. EXTERNAL: A table that references
6682	// data stored in an external storage system, such as Google Cloud
6683	// Storage. The default value is TABLE.
6684	Type string `json:"type,omitempty"`
6685
6686	// View: [Optional] The view definition.
6687	View *ViewDefinition `json:"view,omitempty"`
6688
6689	// ServerResponse contains the HTTP response code and headers from the
6690	// server.
6691	googleapi.ServerResponse `json:"-"`
6692
6693	// ForceSendFields is a list of field names (e.g. "Clustering") to
6694	// unconditionally include in API requests. By default, fields with
6695	// empty values are omitted from API requests. However, any non-pointer,
6696	// non-interface field appearing in ForceSendFields will be sent to the
6697	// server regardless of whether the field is empty or not. This may be
6698	// used to include empty fields in Patch requests.
6699	ForceSendFields []string `json:"-"`
6700
6701	// NullFields is a list of field names (e.g. "Clustering") to include in
6702	// API requests with the JSON null value. By default, fields with empty
6703	// values are omitted from API requests. However, any field with an
6704	// empty value appearing in NullFields will be sent to the server as
6705	// null. It is an error if a field in this list has a non-empty value.
6706	// This may be used to include null fields in Patch requests.
6707	NullFields []string `json:"-"`
6708}
6709
6710func (s *Table) MarshalJSON() ([]byte, error) {
6711	type NoMethod Table
6712	raw := NoMethod(*s)
6713	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6714}
6715
6716type TableCell struct {
6717	V interface{} `json:"v,omitempty"`
6718
6719	// ForceSendFields is a list of field names (e.g. "V") to
6720	// unconditionally include in API requests. By default, fields with
6721	// empty values are omitted from API requests. However, any non-pointer,
6722	// non-interface field appearing in ForceSendFields will be sent to the
6723	// server regardless of whether the field is empty or not. This may be
6724	// used to include empty fields in Patch requests.
6725	ForceSendFields []string `json:"-"`
6726
6727	// NullFields is a list of field names (e.g. "V") to include in API
6728	// requests with the JSON null value. By default, fields with empty
6729	// values are omitted from API requests. However, any field with an
6730	// empty value appearing in NullFields will be sent to the server as
6731	// null. It is an error if a field in this list has a non-empty value.
6732	// This may be used to include null fields in Patch requests.
6733	NullFields []string `json:"-"`
6734}
6735
6736func (s *TableCell) MarshalJSON() ([]byte, error) {
6737	type NoMethod TableCell
6738	raw := NoMethod(*s)
6739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6740}
6741
6742type TableDataInsertAllRequest struct {
6743	// IgnoreUnknownValues: [Optional] Accept rows that contain values that
6744	// do not match the schema. The unknown values are ignored. Default is
6745	// false, which treats unknown values as errors.
6746	IgnoreUnknownValues bool `json:"ignoreUnknownValues,omitempty"`
6747
6748	// Kind: The resource type of the response.
6749	Kind string `json:"kind,omitempty"`
6750
6751	// Rows: The rows to insert.
6752	Rows []*TableDataInsertAllRequestRows `json:"rows,omitempty"`
6753
6754	// SkipInvalidRows: [Optional] Insert all valid rows of a request, even
6755	// if invalid rows exist. The default value is false, which causes the
6756	// entire request to fail if any invalid rows exist.
6757	SkipInvalidRows bool `json:"skipInvalidRows,omitempty"`
6758
6759	// TemplateSuffix: If specified, treats the destination table as a base
6760	// template, and inserts the rows into an instance table named
6761	// "{destination}{templateSuffix}". BigQuery will manage creation of the
6762	// instance table, using the schema of the base template table. See
6763	// https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables
6764	// for considerations when working with templates tables.
6765	TemplateSuffix string `json:"templateSuffix,omitempty"`
6766
6767	// ForceSendFields is a list of field names (e.g. "IgnoreUnknownValues")
6768	// to unconditionally include in API requests. By default, fields with
6769	// empty values are omitted from API requests. However, any non-pointer,
6770	// non-interface field appearing in ForceSendFields will be sent to the
6771	// server regardless of whether the field is empty or not. This may be
6772	// used to include empty fields in Patch requests.
6773	ForceSendFields []string `json:"-"`
6774
6775	// NullFields is a list of field names (e.g. "IgnoreUnknownValues") to
6776	// include in API requests with the JSON null value. By default, fields
6777	// with empty values are omitted from API requests. However, any field
6778	// with an empty value appearing in NullFields will be sent to the
6779	// server as null. It is an error if a field in this list has a
6780	// non-empty value. This may be used to include null fields in Patch
6781	// requests.
6782	NullFields []string `json:"-"`
6783}
6784
6785func (s *TableDataInsertAllRequest) MarshalJSON() ([]byte, error) {
6786	type NoMethod TableDataInsertAllRequest
6787	raw := NoMethod(*s)
6788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6789}
6790
6791type TableDataInsertAllRequestRows struct {
6792	// InsertId: [Optional] A unique ID for each row. BigQuery uses this
6793	// property to detect duplicate insertion requests on a best-effort
6794	// basis.
6795	InsertId string `json:"insertId,omitempty"`
6796
6797	// Json: [Required] A JSON object that contains a row of data. The
6798	// object's properties and values must match the destination table's
6799	// schema.
6800	Json map[string]JsonValue `json:"json,omitempty"`
6801
6802	// ForceSendFields is a list of field names (e.g. "InsertId") to
6803	// unconditionally include in API requests. By default, fields with
6804	// empty values are omitted from API requests. However, any non-pointer,
6805	// non-interface field appearing in ForceSendFields will be sent to the
6806	// server regardless of whether the field is empty or not. This may be
6807	// used to include empty fields in Patch requests.
6808	ForceSendFields []string `json:"-"`
6809
6810	// NullFields is a list of field names (e.g. "InsertId") to include in
6811	// API requests with the JSON null value. By default, fields with empty
6812	// values are omitted from API requests. However, any field with an
6813	// empty value appearing in NullFields will be sent to the server as
6814	// null. It is an error if a field in this list has a non-empty value.
6815	// This may be used to include null fields in Patch requests.
6816	NullFields []string `json:"-"`
6817}
6818
6819func (s *TableDataInsertAllRequestRows) MarshalJSON() ([]byte, error) {
6820	type NoMethod TableDataInsertAllRequestRows
6821	raw := NoMethod(*s)
6822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6823}
6824
6825type TableDataInsertAllResponse struct {
6826	// InsertErrors: An array of errors for rows that were not inserted.
6827	InsertErrors []*TableDataInsertAllResponseInsertErrors `json:"insertErrors,omitempty"`
6828
6829	// Kind: The resource type of the response.
6830	Kind string `json:"kind,omitempty"`
6831
6832	// ServerResponse contains the HTTP response code and headers from the
6833	// server.
6834	googleapi.ServerResponse `json:"-"`
6835
6836	// ForceSendFields is a list of field names (e.g. "InsertErrors") to
6837	// unconditionally include in API requests. By default, fields with
6838	// empty values are omitted from API requests. However, any non-pointer,
6839	// non-interface field appearing in ForceSendFields will be sent to the
6840	// server regardless of whether the field is empty or not. This may be
6841	// used to include empty fields in Patch requests.
6842	ForceSendFields []string `json:"-"`
6843
6844	// NullFields is a list of field names (e.g. "InsertErrors") to include
6845	// in API requests with the JSON null value. By default, fields with
6846	// empty values are omitted from API requests. However, any field with
6847	// an empty value appearing in NullFields will be sent to the server as
6848	// null. It is an error if a field in this list has a non-empty value.
6849	// This may be used to include null fields in Patch requests.
6850	NullFields []string `json:"-"`
6851}
6852
6853func (s *TableDataInsertAllResponse) MarshalJSON() ([]byte, error) {
6854	type NoMethod TableDataInsertAllResponse
6855	raw := NoMethod(*s)
6856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6857}
6858
6859type TableDataInsertAllResponseInsertErrors struct {
6860	// Errors: Error information for the row indicated by the index
6861	// property.
6862	Errors []*ErrorProto `json:"errors,omitempty"`
6863
6864	// Index: The index of the row that error applies to.
6865	Index int64 `json:"index,omitempty"`
6866
6867	// ForceSendFields is a list of field names (e.g. "Errors") to
6868	// unconditionally include in API requests. By default, fields with
6869	// empty values are omitted from API requests. However, any non-pointer,
6870	// non-interface field appearing in ForceSendFields will be sent to the
6871	// server regardless of whether the field is empty or not. This may be
6872	// used to include empty fields in Patch requests.
6873	ForceSendFields []string `json:"-"`
6874
6875	// NullFields is a list of field names (e.g. "Errors") to include in API
6876	// requests with the JSON null value. By default, fields with empty
6877	// values are omitted from API requests. However, any field with an
6878	// empty value appearing in NullFields will be sent to the server as
6879	// null. It is an error if a field in this list has a non-empty value.
6880	// This may be used to include null fields in Patch requests.
6881	NullFields []string `json:"-"`
6882}
6883
6884func (s *TableDataInsertAllResponseInsertErrors) MarshalJSON() ([]byte, error) {
6885	type NoMethod TableDataInsertAllResponseInsertErrors
6886	raw := NoMethod(*s)
6887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6888}
6889
6890type TableDataList struct {
6891	// Etag: A hash of this page of results.
6892	Etag string `json:"etag,omitempty"`
6893
6894	// Kind: The resource type of the response.
6895	Kind string `json:"kind,omitempty"`
6896
6897	// PageToken: A token used for paging results. Providing this token
6898	// instead of the startIndex parameter can help you retrieve stable
6899	// results when an underlying table is changing.
6900	PageToken string `json:"pageToken,omitempty"`
6901
6902	// Rows: Rows of results.
6903	Rows []*TableRow `json:"rows,omitempty"`
6904
6905	// TotalRows: The total number of rows in the complete table.
6906	TotalRows int64 `json:"totalRows,omitempty,string"`
6907
6908	// ServerResponse contains the HTTP response code and headers from the
6909	// server.
6910	googleapi.ServerResponse `json:"-"`
6911
6912	// ForceSendFields is a list of field names (e.g. "Etag") to
6913	// unconditionally include in API requests. By default, fields with
6914	// empty values are omitted from API requests. However, any non-pointer,
6915	// non-interface field appearing in ForceSendFields will be sent to the
6916	// server regardless of whether the field is empty or not. This may be
6917	// used to include empty fields in Patch requests.
6918	ForceSendFields []string `json:"-"`
6919
6920	// NullFields is a list of field names (e.g. "Etag") to include in API
6921	// requests with the JSON null value. By default, fields with empty
6922	// values are omitted from API requests. However, any field with an
6923	// empty value appearing in NullFields will be sent to the server as
6924	// null. It is an error if a field in this list has a non-empty value.
6925	// This may be used to include null fields in Patch requests.
6926	NullFields []string `json:"-"`
6927}
6928
6929func (s *TableDataList) MarshalJSON() ([]byte, error) {
6930	type NoMethod TableDataList
6931	raw := NoMethod(*s)
6932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6933}
6934
6935type TableFieldSchema struct {
6936	// Categories: [Optional] The categories attached to this field, used
6937	// for field-level access control.
6938	Categories *TableFieldSchemaCategories `json:"categories,omitempty"`
6939
6940	// Description: [Optional] The field description. The maximum length is
6941	// 1,024 characters.
6942	Description string `json:"description,omitempty"`
6943
6944	// Fields: [Optional] Describes the nested schema fields if the type
6945	// property is set to RECORD.
6946	Fields []*TableFieldSchema `json:"fields,omitempty"`
6947
6948	// MaxLength: [Optional] Maximum length of values of this field for
6949	// STRINGS or BYTES. If max_length is not specified, no maximum length
6950	// constraint is imposed on this field. If type = "STRING", then
6951	// max_length represents the maximum UTF-8 length of strings in this
6952	// field. If type = "BYTES", then max_length represents the maximum
6953	// number of bytes in this field. It is invalid to set this field if
6954	// type ≠ "STRING" and ≠ "BYTES".
6955	MaxLength int64 `json:"maxLength,omitempty,string"`
6956
6957	// Mode: [Optional] The field mode. Possible values include NULLABLE,
6958	// REQUIRED and REPEATED. The default value is NULLABLE.
6959	Mode string `json:"mode,omitempty"`
6960
6961	// Name: [Required] The field name. The name must contain only letters
6962	// (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a
6963	// letter or underscore. The maximum length is 128 characters.
6964	Name string `json:"name,omitempty"`
6965
6966	PolicyTags *TableFieldSchemaPolicyTags `json:"policyTags,omitempty"`
6967
6968	// Precision: [Optional] Precision (maximum number of total digits in
6969	// base 10) and scale (maximum number of digits in the fractional part
6970	// in base 10) constraints for values of this field for NUMERIC or
6971	// BIGNUMERIC. It is invalid to set precision or scale if type ≠
6972	// "NUMERIC" and ≠ "BIGNUMERIC". If precision and scale are not
6973	// specified, no value range constraint is imposed on this field insofar
6974	// as values are permitted by the type. Values of this NUMERIC or
6975	// BIGNUMERIC field must be in this range when: - Precision (P) and
6976	// scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision
6977	// (P) is specified but not scale (and thus scale is interpreted to be
6978	// equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision
6979	// and scale if both are specified: - If type = "NUMERIC": 1 ≤
6980	// precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type =
6981	// "BIGNUMERIC": 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38.
6982	// Acceptable values for precision if only precision is specified but
6983	// not scale (and thus scale is interpreted to be equal to zero): - If
6984	// type = "NUMERIC": 1 ≤ precision ≤ 29. - If type = "BIGNUMERIC": 1
6985	// ≤ precision ≤ 38. If scale is specified but not precision, then
6986	// it is invalid.
6987	Precision int64 `json:"precision,omitempty,string"`
6988
6989	// Scale: [Optional] See documentation for precision.
6990	Scale int64 `json:"scale,omitempty,string"`
6991
6992	// Type: [Required] The field data type. Possible values include STRING,
6993	// BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as
6994	// FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN),
6995	// TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD
6996	// indicates that the field contains a nested schema) or STRUCT (same as
6997	// RECORD).
6998	Type string `json:"type,omitempty"`
6999
7000	// ForceSendFields is a list of field names (e.g. "Categories") to
7001	// unconditionally include in API requests. By default, fields with
7002	// empty values are omitted from API requests. However, any non-pointer,
7003	// non-interface field appearing in ForceSendFields will be sent to the
7004	// server regardless of whether the field is empty or not. This may be
7005	// used to include empty fields in Patch requests.
7006	ForceSendFields []string `json:"-"`
7007
7008	// NullFields is a list of field names (e.g. "Categories") to include in
7009	// API requests with the JSON null value. By default, fields with empty
7010	// values are omitted from API requests. However, any field with an
7011	// empty value appearing in NullFields will be sent to the server as
7012	// null. It is an error if a field in this list has a non-empty value.
7013	// This may be used to include null fields in Patch requests.
7014	NullFields []string `json:"-"`
7015}
7016
7017func (s *TableFieldSchema) MarshalJSON() ([]byte, error) {
7018	type NoMethod TableFieldSchema
7019	raw := NoMethod(*s)
7020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7021}
7022
7023// TableFieldSchemaCategories: [Optional] The categories attached to
7024// this field, used for field-level access control.
7025type TableFieldSchemaCategories struct {
7026	// Names: A list of category resource names. For example,
7027	// "projects/1/taxonomies/2/categories/3". At most 5 categories are
7028	// allowed.
7029	Names []string `json:"names,omitempty"`
7030
7031	// ForceSendFields is a list of field names (e.g. "Names") to
7032	// unconditionally include in API requests. By default, fields with
7033	// empty values are omitted from API requests. However, any non-pointer,
7034	// non-interface field appearing in ForceSendFields will be sent to the
7035	// server regardless of whether the field is empty or not. This may be
7036	// used to include empty fields in Patch requests.
7037	ForceSendFields []string `json:"-"`
7038
7039	// NullFields is a list of field names (e.g. "Names") to include in API
7040	// requests with the JSON null value. By default, fields with empty
7041	// values are omitted from API requests. However, any field with an
7042	// empty value appearing in NullFields will be sent to the server as
7043	// null. It is an error if a field in this list has a non-empty value.
7044	// This may be used to include null fields in Patch requests.
7045	NullFields []string `json:"-"`
7046}
7047
7048func (s *TableFieldSchemaCategories) MarshalJSON() ([]byte, error) {
7049	type NoMethod TableFieldSchemaCategories
7050	raw := NoMethod(*s)
7051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7052}
7053
7054type TableFieldSchemaPolicyTags struct {
7055	// Names: A list of category resource names. For example,
7056	// "projects/1/location/eu/taxonomies/2/policyTags/3". At most 1 policy
7057	// tag is allowed.
7058	Names []string `json:"names,omitempty"`
7059
7060	// ForceSendFields is a list of field names (e.g. "Names") to
7061	// unconditionally include in API requests. By default, fields with
7062	// empty values are omitted from API requests. However, any non-pointer,
7063	// non-interface field appearing in ForceSendFields will be sent to the
7064	// server regardless of whether the field is empty or not. This may be
7065	// used to include empty fields in Patch requests.
7066	ForceSendFields []string `json:"-"`
7067
7068	// NullFields is a list of field names (e.g. "Names") to include in API
7069	// requests with the JSON null value. By default, fields with empty
7070	// values are omitted from API requests. However, any field with an
7071	// empty value appearing in NullFields will be sent to the server as
7072	// null. It is an error if a field in this list has a non-empty value.
7073	// This may be used to include null fields in Patch requests.
7074	NullFields []string `json:"-"`
7075}
7076
7077func (s *TableFieldSchemaPolicyTags) MarshalJSON() ([]byte, error) {
7078	type NoMethod TableFieldSchemaPolicyTags
7079	raw := NoMethod(*s)
7080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7081}
7082
7083type TableList struct {
7084	// Etag: A hash of this page of results.
7085	Etag string `json:"etag,omitempty"`
7086
7087	// Kind: The type of list.
7088	Kind string `json:"kind,omitempty"`
7089
7090	// NextPageToken: A token to request the next page of results.
7091	NextPageToken string `json:"nextPageToken,omitempty"`
7092
7093	// Tables: Tables in the requested dataset.
7094	Tables []*TableListTables `json:"tables,omitempty"`
7095
7096	// TotalItems: The total number of tables in the dataset.
7097	TotalItems int64 `json:"totalItems,omitempty"`
7098
7099	// ServerResponse contains the HTTP response code and headers from the
7100	// server.
7101	googleapi.ServerResponse `json:"-"`
7102
7103	// ForceSendFields is a list of field names (e.g. "Etag") to
7104	// unconditionally include in API requests. By default, fields with
7105	// empty values are omitted from API requests. However, any non-pointer,
7106	// non-interface field appearing in ForceSendFields will be sent to the
7107	// server regardless of whether the field is empty or not. This may be
7108	// used to include empty fields in Patch requests.
7109	ForceSendFields []string `json:"-"`
7110
7111	// NullFields is a list of field names (e.g. "Etag") to include in API
7112	// requests with the JSON null value. By default, fields with empty
7113	// values are omitted from API requests. However, any field with an
7114	// empty value appearing in NullFields will be sent to the server as
7115	// null. It is an error if a field in this list has a non-empty value.
7116	// This may be used to include null fields in Patch requests.
7117	NullFields []string `json:"-"`
7118}
7119
7120func (s *TableList) MarshalJSON() ([]byte, error) {
7121	type NoMethod TableList
7122	raw := NoMethod(*s)
7123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7124}
7125
7126type TableListTables struct {
7127	// Clustering: [Beta] Clustering specification for this table, if
7128	// configured.
7129	Clustering *Clustering `json:"clustering,omitempty"`
7130
7131	// CreationTime: The time when this table was created, in milliseconds
7132	// since the epoch.
7133	CreationTime int64 `json:"creationTime,omitempty,string"`
7134
7135	// ExpirationTime: [Optional] The time when this table expires, in
7136	// milliseconds since the epoch. If not present, the table will persist
7137	// indefinitely. Expired tables will be deleted and their storage
7138	// reclaimed.
7139	ExpirationTime int64 `json:"expirationTime,omitempty,string"`
7140
7141	// FriendlyName: The user-friendly name for this table.
7142	FriendlyName string `json:"friendlyName,omitempty"`
7143
7144	// Id: An opaque ID of the table
7145	Id string `json:"id,omitempty"`
7146
7147	// Kind: The resource type.
7148	Kind string `json:"kind,omitempty"`
7149
7150	// Labels: The labels associated with this table. You can use these to
7151	// organize and group your tables.
7152	Labels map[string]string `json:"labels,omitempty"`
7153
7154	// RangePartitioning: The range partitioning specification for this
7155	// table, if configured.
7156	RangePartitioning *RangePartitioning `json:"rangePartitioning,omitempty"`
7157
7158	// TableReference: A reference uniquely identifying the table.
7159	TableReference *TableReference `json:"tableReference,omitempty"`
7160
7161	// TimePartitioning: The time-based partitioning specification for this
7162	// table, if configured.
7163	TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"`
7164
7165	// Type: The type of table. Possible values are: TABLE, VIEW.
7166	Type string `json:"type,omitempty"`
7167
7168	// View: Additional details for a view.
7169	View *TableListTablesView `json:"view,omitempty"`
7170
7171	// ForceSendFields is a list of field names (e.g. "Clustering") to
7172	// unconditionally include in API requests. By default, fields with
7173	// empty values are omitted from API requests. However, any non-pointer,
7174	// non-interface field appearing in ForceSendFields will be sent to the
7175	// server regardless of whether the field is empty or not. This may be
7176	// used to include empty fields in Patch requests.
7177	ForceSendFields []string `json:"-"`
7178
7179	// NullFields is a list of field names (e.g. "Clustering") to include in
7180	// API requests with the JSON null value. By default, fields with empty
7181	// values are omitted from API requests. However, any field with an
7182	// empty value appearing in NullFields will be sent to the server as
7183	// null. It is an error if a field in this list has a non-empty value.
7184	// This may be used to include null fields in Patch requests.
7185	NullFields []string `json:"-"`
7186}
7187
7188func (s *TableListTables) MarshalJSON() ([]byte, error) {
7189	type NoMethod TableListTables
7190	raw := NoMethod(*s)
7191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7192}
7193
7194// TableListTablesView: Additional details for a view.
7195type TableListTablesView struct {
7196	// UseLegacySql: True if view is defined in legacy SQL dialect, false if
7197	// in standard SQL.
7198	UseLegacySql bool `json:"useLegacySql,omitempty"`
7199
7200	// ForceSendFields is a list of field names (e.g. "UseLegacySql") to
7201	// unconditionally include in API requests. By default, fields with
7202	// empty values are omitted from API requests. However, any non-pointer,
7203	// non-interface field appearing in ForceSendFields will be sent to the
7204	// server regardless of whether the field is empty or not. This may be
7205	// used to include empty fields in Patch requests.
7206	ForceSendFields []string `json:"-"`
7207
7208	// NullFields is a list of field names (e.g. "UseLegacySql") to include
7209	// in API requests with the JSON null value. By default, fields with
7210	// empty values are omitted from API requests. However, any field with
7211	// an empty value appearing in NullFields will be sent to the server as
7212	// null. It is an error if a field in this list has a non-empty value.
7213	// This may be used to include null fields in Patch requests.
7214	NullFields []string `json:"-"`
7215}
7216
7217func (s *TableListTablesView) MarshalJSON() ([]byte, error) {
7218	type NoMethod TableListTablesView
7219	raw := NoMethod(*s)
7220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7221}
7222
7223type TableReference struct {
7224	// DatasetId: [Required] The ID of the dataset containing this table.
7225	DatasetId string `json:"datasetId,omitempty"`
7226
7227	// ProjectId: [Required] The ID of the project containing this table.
7228	ProjectId string `json:"projectId,omitempty"`
7229
7230	// TableId: [Required] The ID of the table. The ID must contain only
7231	// letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
7232	// length is 1,024 characters.
7233	TableId string `json:"tableId,omitempty"`
7234
7235	// ForceSendFields is a list of field names (e.g. "DatasetId") to
7236	// unconditionally include in API requests. By default, fields with
7237	// empty values are omitted from API requests. However, any non-pointer,
7238	// non-interface field appearing in ForceSendFields will be sent to the
7239	// server regardless of whether the field is empty or not. This may be
7240	// used to include empty fields in Patch requests.
7241	ForceSendFields []string `json:"-"`
7242
7243	// NullFields is a list of field names (e.g. "DatasetId") to include in
7244	// API requests with the JSON null value. By default, fields with empty
7245	// values are omitted from API requests. However, any field with an
7246	// empty value appearing in NullFields will be sent to the server as
7247	// null. It is an error if a field in this list has a non-empty value.
7248	// This may be used to include null fields in Patch requests.
7249	NullFields []string `json:"-"`
7250}
7251
7252func (s *TableReference) MarshalJSON() ([]byte, error) {
7253	type NoMethod TableReference
7254	raw := NoMethod(*s)
7255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7256}
7257
7258type TableRow struct {
7259	// F: Represents a single row in the result set, consisting of one or
7260	// more fields.
7261	F []*TableCell `json:"f,omitempty"`
7262
7263	// ForceSendFields is a list of field names (e.g. "F") to
7264	// unconditionally include in API requests. By default, fields with
7265	// empty values are omitted from API requests. However, any non-pointer,
7266	// non-interface field appearing in ForceSendFields will be sent to the
7267	// server regardless of whether the field is empty or not. This may be
7268	// used to include empty fields in Patch requests.
7269	ForceSendFields []string `json:"-"`
7270
7271	// NullFields is a list of field names (e.g. "F") to include in API
7272	// requests with the JSON null value. By default, fields with empty
7273	// values are omitted from API requests. However, any field with an
7274	// empty value appearing in NullFields will be sent to the server as
7275	// null. It is an error if a field in this list has a non-empty value.
7276	// This may be used to include null fields in Patch requests.
7277	NullFields []string `json:"-"`
7278}
7279
7280func (s *TableRow) MarshalJSON() ([]byte, error) {
7281	type NoMethod TableRow
7282	raw := NoMethod(*s)
7283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7284}
7285
7286type TableSchema struct {
7287	// Fields: Describes the fields in a table.
7288	Fields []*TableFieldSchema `json:"fields,omitempty"`
7289
7290	// ForceSendFields is a list of field names (e.g. "Fields") to
7291	// unconditionally include in API requests. By default, fields with
7292	// empty values are omitted from API requests. However, any non-pointer,
7293	// non-interface field appearing in ForceSendFields will be sent to the
7294	// server regardless of whether the field is empty or not. This may be
7295	// used to include empty fields in Patch requests.
7296	ForceSendFields []string `json:"-"`
7297
7298	// NullFields is a list of field names (e.g. "Fields") to include in API
7299	// requests with the JSON null value. By default, fields with empty
7300	// values are omitted from API requests. However, any field with an
7301	// empty value appearing in NullFields will be sent to the server as
7302	// null. It is an error if a field in this list has a non-empty value.
7303	// This may be used to include null fields in Patch requests.
7304	NullFields []string `json:"-"`
7305}
7306
7307func (s *TableSchema) MarshalJSON() ([]byte, error) {
7308	type NoMethod TableSchema
7309	raw := NoMethod(*s)
7310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7311}
7312
7313// TestIamPermissionsRequest: Request message for `TestIamPermissions`
7314// method.
7315type TestIamPermissionsRequest struct {
7316	// Permissions: The set of permissions to check for the `resource`.
7317	// Permissions with wildcards (such as '*' or 'storage.*') are not
7318	// allowed. For more information see IAM Overview
7319	// (https://cloud.google.com/iam/docs/overview#permissions).
7320	Permissions []string `json:"permissions,omitempty"`
7321
7322	// ForceSendFields is a list of field names (e.g. "Permissions") to
7323	// unconditionally include in API requests. By default, fields with
7324	// empty values are omitted from API requests. However, any non-pointer,
7325	// non-interface field appearing in ForceSendFields will be sent to the
7326	// server regardless of whether the field is empty or not. This may be
7327	// used to include empty fields in Patch requests.
7328	ForceSendFields []string `json:"-"`
7329
7330	// NullFields is a list of field names (e.g. "Permissions") to include
7331	// in API requests with the JSON null value. By default, fields with
7332	// empty values are omitted from API requests. However, any field with
7333	// an empty value appearing in NullFields will be sent to the server as
7334	// null. It is an error if a field in this list has a non-empty value.
7335	// This may be used to include null fields in Patch requests.
7336	NullFields []string `json:"-"`
7337}
7338
7339func (s *TestIamPermissionsRequest) MarshalJSON() ([]byte, error) {
7340	type NoMethod TestIamPermissionsRequest
7341	raw := NoMethod(*s)
7342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7343}
7344
7345// TestIamPermissionsResponse: Response message for `TestIamPermissions`
7346// method.
7347type TestIamPermissionsResponse struct {
7348	// Permissions: A subset of `TestPermissionsRequest.permissions` that
7349	// the caller is allowed.
7350	Permissions []string `json:"permissions,omitempty"`
7351
7352	// ServerResponse contains the HTTP response code and headers from the
7353	// server.
7354	googleapi.ServerResponse `json:"-"`
7355
7356	// ForceSendFields is a list of field names (e.g. "Permissions") to
7357	// unconditionally include in API requests. By default, fields with
7358	// empty values are omitted from API requests. However, any non-pointer,
7359	// non-interface field appearing in ForceSendFields will be sent to the
7360	// server regardless of whether the field is empty or not. This may be
7361	// used to include empty fields in Patch requests.
7362	ForceSendFields []string `json:"-"`
7363
7364	// NullFields is a list of field names (e.g. "Permissions") to include
7365	// in API requests with the JSON null value. By default, fields with
7366	// empty values are omitted from API requests. However, any field with
7367	// an empty value appearing in NullFields will be sent to the server as
7368	// null. It is an error if a field in this list has a non-empty value.
7369	// This may be used to include null fields in Patch requests.
7370	NullFields []string `json:"-"`
7371}
7372
7373func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) {
7374	type NoMethod TestIamPermissionsResponse
7375	raw := NoMethod(*s)
7376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7377}
7378
7379type TimePartitioning struct {
7380	// ExpirationMs: [Optional] Number of milliseconds for which to keep the
7381	// storage for partitions in the table. The storage in a partition will
7382	// have an expiration time of its partition time plus this value.
7383	ExpirationMs int64 `json:"expirationMs,omitempty,string"`
7384
7385	// Field: [Beta] [Optional] If not set, the table is partitioned by
7386	// pseudo column, referenced via either '_PARTITIONTIME' as TIMESTAMP
7387	// type, or '_PARTITIONDATE' as DATE type. If field is specified, the
7388	// table is instead partitioned by this field. The field must be a
7389	// top-level TIMESTAMP or DATE field. Its mode must be NULLABLE or
7390	// REQUIRED.
7391	Field string `json:"field,omitempty"`
7392
7393	RequirePartitionFilter bool `json:"requirePartitionFilter,omitempty"`
7394
7395	// Type: [Required] The supported types are DAY, HOUR, MONTH, and YEAR,
7396	// which will generate one partition per day, hour, month, and year,
7397	// respectively. When the type is not specified, the default behavior is
7398	// DAY.
7399	Type string `json:"type,omitempty"`
7400
7401	// ForceSendFields is a list of field names (e.g. "ExpirationMs") to
7402	// unconditionally include in API requests. By default, fields with
7403	// empty values are omitted from API requests. However, any non-pointer,
7404	// non-interface field appearing in ForceSendFields will be sent to the
7405	// server regardless of whether the field is empty or not. This may be
7406	// used to include empty fields in Patch requests.
7407	ForceSendFields []string `json:"-"`
7408
7409	// NullFields is a list of field names (e.g. "ExpirationMs") to include
7410	// in API requests with the JSON null value. By default, fields with
7411	// empty values are omitted from API requests. However, any field with
7412	// an empty value appearing in NullFields will be sent to the server as
7413	// null. It is an error if a field in this list has a non-empty value.
7414	// This may be used to include null fields in Patch requests.
7415	NullFields []string `json:"-"`
7416}
7417
7418func (s *TimePartitioning) MarshalJSON() ([]byte, error) {
7419	type NoMethod TimePartitioning
7420	raw := NoMethod(*s)
7421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7422}
7423
7424// TrainingOptions: Options used in model training.
7425type TrainingOptions struct {
7426	// AdjustStepChanges: If true, detect step changes and make data
7427	// adjustment in the input time series.
7428	AdjustStepChanges bool `json:"adjustStepChanges,omitempty"`
7429
7430	// AutoArima: Whether to enable auto ARIMA or not.
7431	AutoArima bool `json:"autoArima,omitempty"`
7432
7433	// AutoArimaMaxOrder: The max value of non-seasonal p and q.
7434	AutoArimaMaxOrder int64 `json:"autoArimaMaxOrder,omitempty,string"`
7435
7436	// BatchSize: Batch size for dnn models.
7437	BatchSize int64 `json:"batchSize,omitempty,string"`
7438
7439	// CleanSpikesAndDips: If true, clean spikes and dips in the input time
7440	// series.
7441	CleanSpikesAndDips bool `json:"cleanSpikesAndDips,omitempty"`
7442
7443	// DataFrequency: The data frequency of a time series.
7444	//
7445	// Possible values:
7446	//   "DATA_FREQUENCY_UNSPECIFIED"
7447	//   "AUTO_FREQUENCY" - Automatically inferred from timestamps.
7448	//   "YEARLY" - Yearly data.
7449	//   "QUARTERLY" - Quarterly data.
7450	//   "MONTHLY" - Monthly data.
7451	//   "WEEKLY" - Weekly data.
7452	//   "DAILY" - Daily data.
7453	//   "HOURLY" - Hourly data.
7454	//   "PER_MINUTE" - Per-minute data.
7455	DataFrequency string `json:"dataFrequency,omitempty"`
7456
7457	// DataSplitColumn: The column to split data with. This column won't be
7458	// used as a feature. 1. When data_split_method is CUSTOM, the
7459	// corresponding column should be boolean. The rows with true value tag
7460	// are eval data, and the false are training data. 2. When
7461	// data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows
7462	// (from smallest to largest) in the corresponding column are used as
7463	// training data, and the rest are eval data. It respects the order in
7464	// Orderable data types:
7465	// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
7466	DataSplitColumn string `json:"dataSplitColumn,omitempty"`
7467
7468	// DataSplitEvalFraction: The fraction of evaluation data over the whole
7469	// input data. The rest of data will be used as training data. The
7470	// format should be double. Accurate to two decimal places. Default
7471	// value is 0.2.
7472	DataSplitEvalFraction float64 `json:"dataSplitEvalFraction,omitempty"`
7473
7474	// DataSplitMethod: The data split type for training and evaluation,
7475	// e.g. RANDOM.
7476	//
7477	// Possible values:
7478	//   "DATA_SPLIT_METHOD_UNSPECIFIED"
7479	//   "RANDOM" - Splits data randomly.
7480	//   "CUSTOM" - Splits data with the user provided tags.
7481	//   "SEQUENTIAL" - Splits data sequentially.
7482	//   "NO_SPLIT" - Data split will be skipped.
7483	//   "AUTO_SPLIT" - Splits data automatically: Uses NO_SPLIT if the data
7484	// size is small. Otherwise uses RANDOM.
7485	DataSplitMethod string `json:"dataSplitMethod,omitempty"`
7486
7487	// DecomposeTimeSeries: If true, perform decompose time series and save
7488	// the results.
7489	DecomposeTimeSeries bool `json:"decomposeTimeSeries,omitempty"`
7490
7491	// DistanceType: Distance type for clustering models.
7492	//
7493	// Possible values:
7494	//   "DISTANCE_TYPE_UNSPECIFIED"
7495	//   "EUCLIDEAN" - Eculidean distance.
7496	//   "COSINE" - Cosine distance.
7497	DistanceType string `json:"distanceType,omitempty"`
7498
7499	// Dropout: Dropout probability for dnn models.
7500	Dropout float64 `json:"dropout,omitempty"`
7501
7502	// EarlyStop: Whether to stop early when the loss doesn't improve
7503	// significantly any more (compared to min_relative_progress). Used only
7504	// for iterative training algorithms.
7505	EarlyStop bool `json:"earlyStop,omitempty"`
7506
7507	// FeedbackType: Feedback type that specifies which algorithm to run for
7508	// matrix factorization.
7509	//
7510	// Possible values:
7511	//   "FEEDBACK_TYPE_UNSPECIFIED"
7512	//   "IMPLICIT" - Use weighted-als for implicit feedback problems.
7513	//   "EXPLICIT" - Use nonweighted-als for explicit feedback problems.
7514	FeedbackType string `json:"feedbackType,omitempty"`
7515
7516	// HiddenUnits: Hidden units for dnn models.
7517	HiddenUnits googleapi.Int64s `json:"hiddenUnits,omitempty"`
7518
7519	// HolidayRegion: The geographical region based on which the holidays
7520	// are considered in time series modeling. If a valid value is
7521	// specified, then holiday effects modeling is enabled.
7522	//
7523	// Possible values:
7524	//   "HOLIDAY_REGION_UNSPECIFIED" - Holiday region unspecified.
7525	//   "GLOBAL" - Global.
7526	//   "NA" - North America.
7527	//   "JAPAC" - Japan and Asia Pacific: Korea, Greater China, India,
7528	// Australia, and New Zealand.
7529	//   "EMEA" - Europe, the Middle East and Africa.
7530	//   "LAC" - Latin America and the Caribbean.
7531	//   "AE" - United Arab Emirates
7532	//   "AR" - Argentina
7533	//   "AT" - Austria
7534	//   "AU" - Australia
7535	//   "BE" - Belgium
7536	//   "BR" - Brazil
7537	//   "CA" - Canada
7538	//   "CH" - Switzerland
7539	//   "CL" - Chile
7540	//   "CN" - China
7541	//   "CO" - Colombia
7542	//   "CS" - Czechoslovakia
7543	//   "CZ" - Czech Republic
7544	//   "DE" - Germany
7545	//   "DK" - Denmark
7546	//   "DZ" - Algeria
7547	//   "EC" - Ecuador
7548	//   "EE" - Estonia
7549	//   "EG" - Egypt
7550	//   "ES" - Spain
7551	//   "FI" - Finland
7552	//   "FR" - France
7553	//   "GB" - Great Britain (United Kingdom)
7554	//   "GR" - Greece
7555	//   "HK" - Hong Kong
7556	//   "HU" - Hungary
7557	//   "ID" - Indonesia
7558	//   "IE" - Ireland
7559	//   "IL" - Israel
7560	//   "IN" - India
7561	//   "IR" - Iran
7562	//   "IT" - Italy
7563	//   "JP" - Japan
7564	//   "KR" - Korea (South)
7565	//   "LV" - Latvia
7566	//   "MA" - Morocco
7567	//   "MX" - Mexico
7568	//   "MY" - Malaysia
7569	//   "NG" - Nigeria
7570	//   "NL" - Netherlands
7571	//   "NO" - Norway
7572	//   "NZ" - New Zealand
7573	//   "PE" - Peru
7574	//   "PH" - Philippines
7575	//   "PK" - Pakistan
7576	//   "PL" - Poland
7577	//   "PT" - Portugal
7578	//   "RO" - Romania
7579	//   "RS" - Serbia
7580	//   "RU" - Russian Federation
7581	//   "SA" - Saudi Arabia
7582	//   "SE" - Sweden
7583	//   "SG" - Singapore
7584	//   "SI" - Slovenia
7585	//   "SK" - Slovakia
7586	//   "TH" - Thailand
7587	//   "TR" - Turkey
7588	//   "TW" - Taiwan
7589	//   "UA" - Ukraine
7590	//   "US" - United States
7591	//   "VE" - Venezuela
7592	//   "VN" - Viet Nam
7593	//   "ZA" - South Africa
7594	HolidayRegion string `json:"holidayRegion,omitempty"`
7595
7596	// Horizon: The number of periods ahead that need to be forecasted.
7597	Horizon int64 `json:"horizon,omitempty,string"`
7598
7599	// IncludeDrift: Include drift when fitting an ARIMA model.
7600	IncludeDrift bool `json:"includeDrift,omitempty"`
7601
7602	// InitialLearnRate: Specifies the initial learning rate for the line
7603	// search learn rate strategy.
7604	InitialLearnRate float64 `json:"initialLearnRate,omitempty"`
7605
7606	// InputLabelColumns: Name of input label columns in training data.
7607	InputLabelColumns []string `json:"inputLabelColumns,omitempty"`
7608
7609	// ItemColumn: Item column specified for matrix factorization models.
7610	ItemColumn string `json:"itemColumn,omitempty"`
7611
7612	// KmeansInitializationColumn: The column used to provide the initial
7613	// centroids for kmeans algorithm when kmeans_initialization_method is
7614	// CUSTOM.
7615	KmeansInitializationColumn string `json:"kmeansInitializationColumn,omitempty"`
7616
7617	// KmeansInitializationMethod: The method used to initialize the
7618	// centroids for kmeans algorithm.
7619	//
7620	// Possible values:
7621	//   "KMEANS_INITIALIZATION_METHOD_UNSPECIFIED" - Unspecified
7622	// initialization method.
7623	//   "RANDOM" - Initializes the centroids randomly.
7624	//   "CUSTOM" - Initializes the centroids using data specified in
7625	// kmeans_initialization_column.
7626	//   "KMEANS_PLUS_PLUS" - Initializes with kmeans++.
7627	KmeansInitializationMethod string `json:"kmeansInitializationMethod,omitempty"`
7628
7629	// L1Regularization: L1 regularization coefficient.
7630	L1Regularization float64 `json:"l1Regularization,omitempty"`
7631
7632	// L2Regularization: L2 regularization coefficient.
7633	L2Regularization float64 `json:"l2Regularization,omitempty"`
7634
7635	// LabelClassWeights: Weights associated with each label class, for
7636	// rebalancing the training data. Only applicable for classification
7637	// models.
7638	LabelClassWeights map[string]float64 `json:"labelClassWeights,omitempty"`
7639
7640	// LearnRate: Learning rate in training. Used only for iterative
7641	// training algorithms.
7642	LearnRate float64 `json:"learnRate,omitempty"`
7643
7644	// LearnRateStrategy: The strategy to determine learn rate for the
7645	// current iteration.
7646	//
7647	// Possible values:
7648	//   "LEARN_RATE_STRATEGY_UNSPECIFIED"
7649	//   "LINE_SEARCH" - Use line search to determine learning rate.
7650	//   "CONSTANT" - Use a constant learning rate.
7651	LearnRateStrategy string `json:"learnRateStrategy,omitempty"`
7652
7653	// LossType: Type of loss function used during training run.
7654	//
7655	// Possible values:
7656	//   "LOSS_TYPE_UNSPECIFIED"
7657	//   "MEAN_SQUARED_LOSS" - Mean squared loss, used for linear
7658	// regression.
7659	//   "MEAN_LOG_LOSS" - Mean log loss, used for logistic regression.
7660	LossType string `json:"lossType,omitempty"`
7661
7662	// MaxIterations: The maximum number of iterations in training. Used
7663	// only for iterative training algorithms.
7664	MaxIterations int64 `json:"maxIterations,omitempty,string"`
7665
7666	// MaxTreeDepth: Maximum depth of a tree for boosted tree models.
7667	MaxTreeDepth int64 `json:"maxTreeDepth,omitempty,string"`
7668
7669	// MinRelativeProgress: When early_stop is true, stops training when
7670	// accuracy improvement is less than 'min_relative_progress'. Used only
7671	// for iterative training algorithms.
7672	MinRelativeProgress float64 `json:"minRelativeProgress,omitempty"`
7673
7674	// MinSplitLoss: Minimum split loss for boosted tree models.
7675	MinSplitLoss float64 `json:"minSplitLoss,omitempty"`
7676
7677	// ModelUri: Google Cloud Storage URI from which the model was imported.
7678	// Only applicable for imported models.
7679	ModelUri string `json:"modelUri,omitempty"`
7680
7681	// NonSeasonalOrder: A specification of the non-seasonal part of the
7682	// ARIMA model: the three components (p, d, q) are the AR order, the
7683	// degree of differencing, and the MA order.
7684	NonSeasonalOrder *ArimaOrder `json:"nonSeasonalOrder,omitempty"`
7685
7686	// NumClusters: Number of clusters for clustering models.
7687	NumClusters int64 `json:"numClusters,omitempty,string"`
7688
7689	// NumFactors: Num factors specified for matrix factorization models.
7690	NumFactors int64 `json:"numFactors,omitempty,string"`
7691
7692	// OptimizationStrategy: Optimization strategy for training linear
7693	// regression models.
7694	//
7695	// Possible values:
7696	//   "OPTIMIZATION_STRATEGY_UNSPECIFIED"
7697	//   "BATCH_GRADIENT_DESCENT" - Uses an iterative batch gradient descent
7698	// algorithm.
7699	//   "NORMAL_EQUATION" - Uses a normal equation to solve linear
7700	// regression problem.
7701	OptimizationStrategy string `json:"optimizationStrategy,omitempty"`
7702
7703	// PreserveInputStructs: Whether to preserve the input structs in output
7704	// feature names. Suppose there is a struct A with field b. When false
7705	// (default), the output feature name is A_b. When true, the output
7706	// feature name is A.b.
7707	PreserveInputStructs bool `json:"preserveInputStructs,omitempty"`
7708
7709	// Subsample: Subsample fraction of the training data to grow tree to
7710	// prevent overfitting for boosted tree models.
7711	Subsample float64 `json:"subsample,omitempty"`
7712
7713	// TimeSeriesDataColumn: Column to be designated as time series data for
7714	// ARIMA model.
7715	TimeSeriesDataColumn string `json:"timeSeriesDataColumn,omitempty"`
7716
7717	// TimeSeriesIdColumn: The time series id column that was used during
7718	// ARIMA model training.
7719	TimeSeriesIdColumn string `json:"timeSeriesIdColumn,omitempty"`
7720
7721	// TimeSeriesIdColumns: The time series id columns that were used during
7722	// ARIMA model training.
7723	TimeSeriesIdColumns []string `json:"timeSeriesIdColumns,omitempty"`
7724
7725	// TimeSeriesTimestampColumn: Column to be designated as time series
7726	// timestamp for ARIMA model.
7727	TimeSeriesTimestampColumn string `json:"timeSeriesTimestampColumn,omitempty"`
7728
7729	// UserColumn: User column specified for matrix factorization models.
7730	UserColumn string `json:"userColumn,omitempty"`
7731
7732	// WalsAlpha: Hyperparameter for matrix factoration when implicit
7733	// feedback type is specified.
7734	WalsAlpha float64 `json:"walsAlpha,omitempty"`
7735
7736	// WarmStart: Whether to train a model from the last checkpoint.
7737	WarmStart bool `json:"warmStart,omitempty"`
7738
7739	// ForceSendFields is a list of field names (e.g. "AdjustStepChanges")
7740	// to unconditionally include in API requests. By default, fields with
7741	// empty values are omitted from API requests. However, any non-pointer,
7742	// non-interface field appearing in ForceSendFields will be sent to the
7743	// server regardless of whether the field is empty or not. This may be
7744	// used to include empty fields in Patch requests.
7745	ForceSendFields []string `json:"-"`
7746
7747	// NullFields is a list of field names (e.g. "AdjustStepChanges") to
7748	// include in API requests with the JSON null value. By default, fields
7749	// with empty values are omitted from API requests. However, any field
7750	// with an empty value appearing in NullFields will be sent to the
7751	// server as null. It is an error if a field in this list has a
7752	// non-empty value. This may be used to include null fields in Patch
7753	// requests.
7754	NullFields []string `json:"-"`
7755}
7756
7757func (s *TrainingOptions) MarshalJSON() ([]byte, error) {
7758	type NoMethod TrainingOptions
7759	raw := NoMethod(*s)
7760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7761}
7762
7763func (s *TrainingOptions) UnmarshalJSON(data []byte) error {
7764	type NoMethod TrainingOptions
7765	var s1 struct {
7766		DataSplitEvalFraction gensupport.JSONFloat64 `json:"dataSplitEvalFraction"`
7767		Dropout               gensupport.JSONFloat64 `json:"dropout"`
7768		InitialLearnRate      gensupport.JSONFloat64 `json:"initialLearnRate"`
7769		L1Regularization      gensupport.JSONFloat64 `json:"l1Regularization"`
7770		L2Regularization      gensupport.JSONFloat64 `json:"l2Regularization"`
7771		LearnRate             gensupport.JSONFloat64 `json:"learnRate"`
7772		MinRelativeProgress   gensupport.JSONFloat64 `json:"minRelativeProgress"`
7773		MinSplitLoss          gensupport.JSONFloat64 `json:"minSplitLoss"`
7774		Subsample             gensupport.JSONFloat64 `json:"subsample"`
7775		WalsAlpha             gensupport.JSONFloat64 `json:"walsAlpha"`
7776		*NoMethod
7777	}
7778	s1.NoMethod = (*NoMethod)(s)
7779	if err := json.Unmarshal(data, &s1); err != nil {
7780		return err
7781	}
7782	s.DataSplitEvalFraction = float64(s1.DataSplitEvalFraction)
7783	s.Dropout = float64(s1.Dropout)
7784	s.InitialLearnRate = float64(s1.InitialLearnRate)
7785	s.L1Regularization = float64(s1.L1Regularization)
7786	s.L2Regularization = float64(s1.L2Regularization)
7787	s.LearnRate = float64(s1.LearnRate)
7788	s.MinRelativeProgress = float64(s1.MinRelativeProgress)
7789	s.MinSplitLoss = float64(s1.MinSplitLoss)
7790	s.Subsample = float64(s1.Subsample)
7791	s.WalsAlpha = float64(s1.WalsAlpha)
7792	return nil
7793}
7794
7795// TrainingRun: Information about a single training query run for the
7796// model.
7797type TrainingRun struct {
7798	// DataSplitResult: Data split result of the training run. Only set when
7799	// the input data is actually split.
7800	DataSplitResult *DataSplitResult `json:"dataSplitResult,omitempty"`
7801
7802	// EvaluationMetrics: The evaluation metrics over training/eval data
7803	// that were computed at the end of training.
7804	EvaluationMetrics *EvaluationMetrics `json:"evaluationMetrics,omitempty"`
7805
7806	// GlobalExplanations: Global explanations for important features of the
7807	// model. For multi-class models, there is one entry for each label
7808	// class. For other models, there is only one entry in the list.
7809	GlobalExplanations []*GlobalExplanation `json:"globalExplanations,omitempty"`
7810
7811	// Results: Output of each iteration run, results.size() <=
7812	// max_iterations.
7813	Results []*IterationResult `json:"results,omitempty"`
7814
7815	// StartTime: The start time of this training run.
7816	StartTime string `json:"startTime,omitempty"`
7817
7818	// TrainingOptions: Options that were used for this training run,
7819	// includes user specified and default options that were used.
7820	TrainingOptions *TrainingOptions `json:"trainingOptions,omitempty"`
7821
7822	// ForceSendFields is a list of field names (e.g. "DataSplitResult") to
7823	// unconditionally include in API requests. By default, fields with
7824	// empty values are omitted from API requests. However, any non-pointer,
7825	// non-interface field appearing in ForceSendFields will be sent to the
7826	// server regardless of whether the field is empty or not. This may be
7827	// used to include empty fields in Patch requests.
7828	ForceSendFields []string `json:"-"`
7829
7830	// NullFields is a list of field names (e.g. "DataSplitResult") to
7831	// include in API requests with the JSON null value. By default, fields
7832	// with empty values are omitted from API requests. However, any field
7833	// with an empty value appearing in NullFields will be sent to the
7834	// server as null. It is an error if a field in this list has a
7835	// non-empty value. This may be used to include null fields in Patch
7836	// requests.
7837	NullFields []string `json:"-"`
7838}
7839
7840func (s *TrainingRun) MarshalJSON() ([]byte, error) {
7841	type NoMethod TrainingRun
7842	raw := NoMethod(*s)
7843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7844}
7845
7846type TransactionInfo struct {
7847	// TransactionId: [Output-only] // [Alpha] Id of the transaction.
7848	TransactionId string `json:"transactionId,omitempty"`
7849
7850	// ForceSendFields is a list of field names (e.g. "TransactionId") to
7851	// unconditionally include in API requests. By default, fields with
7852	// empty values are omitted from API requests. However, any non-pointer,
7853	// non-interface field appearing in ForceSendFields will be sent to the
7854	// server regardless of whether the field is empty or not. This may be
7855	// used to include empty fields in Patch requests.
7856	ForceSendFields []string `json:"-"`
7857
7858	// NullFields is a list of field names (e.g. "TransactionId") to include
7859	// in API requests with the JSON null value. By default, fields with
7860	// empty values are omitted from API requests. However, any field with
7861	// an empty value appearing in NullFields will be sent to the server as
7862	// null. It is an error if a field in this list has a non-empty value.
7863	// This may be used to include null fields in Patch requests.
7864	NullFields []string `json:"-"`
7865}
7866
7867func (s *TransactionInfo) MarshalJSON() ([]byte, error) {
7868	type NoMethod TransactionInfo
7869	raw := NoMethod(*s)
7870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7871}
7872
7873// UserDefinedFunctionResource: This is used for defining User Defined
7874// Function (UDF) resources only when using legacy SQL. Users of
7875// Standard SQL should leverage either DDL (e.g. CREATE [TEMPORARY]
7876// FUNCTION ... ) or the Routines API to define UDF resources. For
7877// additional information on migrating, see:
7878// https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions
7879type UserDefinedFunctionResource struct {
7880	// InlineCode: [Pick one] An inline resource that contains code for a
7881	// user-defined function (UDF). Providing a inline code resource is
7882	// equivalent to providing a URI for a file containing the same code.
7883	InlineCode string `json:"inlineCode,omitempty"`
7884
7885	// ResourceUri: [Pick one] A code resource to load from a Google Cloud
7886	// Storage URI (gs://bucket/path).
7887	ResourceUri string `json:"resourceUri,omitempty"`
7888
7889	// ForceSendFields is a list of field names (e.g. "InlineCode") to
7890	// unconditionally include in API requests. By default, fields with
7891	// empty values are omitted from API requests. However, any non-pointer,
7892	// non-interface field appearing in ForceSendFields will be sent to the
7893	// server regardless of whether the field is empty or not. This may be
7894	// used to include empty fields in Patch requests.
7895	ForceSendFields []string `json:"-"`
7896
7897	// NullFields is a list of field names (e.g. "InlineCode") to include in
7898	// API requests with the JSON null value. By default, fields with empty
7899	// values are omitted from API requests. However, any field with an
7900	// empty value appearing in NullFields will be sent to the server as
7901	// null. It is an error if a field in this list has a non-empty value.
7902	// This may be used to include null fields in Patch requests.
7903	NullFields []string `json:"-"`
7904}
7905
7906func (s *UserDefinedFunctionResource) MarshalJSON() ([]byte, error) {
7907	type NoMethod UserDefinedFunctionResource
7908	raw := NoMethod(*s)
7909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7910}
7911
7912type ViewDefinition struct {
7913	// Query: [Required] A query that BigQuery executes when the view is
7914	// referenced.
7915	Query string `json:"query,omitempty"`
7916
7917	// UseLegacySql: Specifies whether to use BigQuery's legacy SQL for this
7918	// view. The default value is true. If set to false, the view will use
7919	// BigQuery's standard SQL:
7920	// https://cloud.google.com/bigquery/sql-reference/ Queries and views
7921	// that reference this view must use the same flag value.
7922	UseLegacySql bool `json:"useLegacySql,omitempty"`
7923
7924	// UserDefinedFunctionResources: Describes user-defined function
7925	// resources used in the query.
7926	UserDefinedFunctionResources []*UserDefinedFunctionResource `json:"userDefinedFunctionResources,omitempty"`
7927
7928	// ForceSendFields is a list of field names (e.g. "Query") to
7929	// unconditionally include in API requests. By default, fields with
7930	// empty values are omitted from API requests. However, any non-pointer,
7931	// non-interface field appearing in ForceSendFields will be sent to the
7932	// server regardless of whether the field is empty or not. This may be
7933	// used to include empty fields in Patch requests.
7934	ForceSendFields []string `json:"-"`
7935
7936	// NullFields is a list of field names (e.g. "Query") to include in API
7937	// requests with the JSON null value. By default, fields with empty
7938	// values are omitted from API requests. However, any field with an
7939	// empty value appearing in NullFields will be sent to the server as
7940	// null. It is an error if a field in this list has a non-empty value.
7941	// This may be used to include null fields in Patch requests.
7942	NullFields []string `json:"-"`
7943}
7944
7945func (s *ViewDefinition) MarshalJSON() ([]byte, error) {
7946	type NoMethod ViewDefinition
7947	raw := NoMethod(*s)
7948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7949}
7950
7951// method id "bigquery.datasets.delete":
7952
7953type DatasetsDeleteCall struct {
7954	s          *Service
7955	projectId  string
7956	datasetId  string
7957	urlParams_ gensupport.URLParams
7958	ctx_       context.Context
7959	header_    http.Header
7960}
7961
7962// Delete: Deletes the dataset specified by the datasetId value. Before
7963// you can delete a dataset, you must delete all its tables, either
7964// manually or by specifying deleteContents. Immediately after deletion,
7965// you can create another dataset with the same name.
7966//
7967// - datasetId: Dataset ID of dataset being deleted.
7968// - projectId: Project ID of the dataset being deleted.
7969func (r *DatasetsService) Delete(projectId string, datasetId string) *DatasetsDeleteCall {
7970	c := &DatasetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7971	c.projectId = projectId
7972	c.datasetId = datasetId
7973	return c
7974}
7975
7976// DeleteContents sets the optional parameter "deleteContents": If True,
7977// delete all the tables in the dataset. If False and the dataset
7978// contains tables, the request will fail. Default is False
7979func (c *DatasetsDeleteCall) DeleteContents(deleteContents bool) *DatasetsDeleteCall {
7980	c.urlParams_.Set("deleteContents", fmt.Sprint(deleteContents))
7981	return c
7982}
7983
7984// Fields allows partial responses to be retrieved. See
7985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7986// for more information.
7987func (c *DatasetsDeleteCall) Fields(s ...googleapi.Field) *DatasetsDeleteCall {
7988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7989	return c
7990}
7991
7992// Context sets the context to be used in this call's Do method. Any
7993// pending HTTP request will be aborted if the provided context is
7994// canceled.
7995func (c *DatasetsDeleteCall) Context(ctx context.Context) *DatasetsDeleteCall {
7996	c.ctx_ = ctx
7997	return c
7998}
7999
8000// Header returns an http.Header that can be modified by the caller to
8001// add HTTP headers to the request.
8002func (c *DatasetsDeleteCall) Header() http.Header {
8003	if c.header_ == nil {
8004		c.header_ = make(http.Header)
8005	}
8006	return c.header_
8007}
8008
8009func (c *DatasetsDeleteCall) doRequest(alt string) (*http.Response, error) {
8010	reqHeaders := make(http.Header)
8011	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8012	for k, v := range c.header_ {
8013		reqHeaders[k] = v
8014	}
8015	reqHeaders.Set("User-Agent", c.s.userAgent())
8016	var body io.Reader = nil
8017	c.urlParams_.Set("alt", alt)
8018	c.urlParams_.Set("prettyPrint", "false")
8019	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}")
8020	urls += "?" + c.urlParams_.Encode()
8021	req, err := http.NewRequest("DELETE", urls, body)
8022	if err != nil {
8023		return nil, err
8024	}
8025	req.Header = reqHeaders
8026	googleapi.Expand(req.URL, map[string]string{
8027		"projectId": c.projectId,
8028		"datasetId": c.datasetId,
8029	})
8030	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8031}
8032
8033// Do executes the "bigquery.datasets.delete" call.
8034func (c *DatasetsDeleteCall) Do(opts ...googleapi.CallOption) error {
8035	gensupport.SetOptions(c.urlParams_, opts...)
8036	res, err := c.doRequest("json")
8037	if err != nil {
8038		return err
8039	}
8040	defer googleapi.CloseBody(res)
8041	if err := googleapi.CheckResponse(res); err != nil {
8042		return err
8043	}
8044	return nil
8045	// {
8046	//   "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.",
8047	//   "httpMethod": "DELETE",
8048	//   "id": "bigquery.datasets.delete",
8049	//   "parameterOrder": [
8050	//     "projectId",
8051	//     "datasetId"
8052	//   ],
8053	//   "parameters": {
8054	//     "datasetId": {
8055	//       "description": "Dataset ID of dataset being deleted",
8056	//       "location": "path",
8057	//       "required": true,
8058	//       "type": "string"
8059	//     },
8060	//     "deleteContents": {
8061	//       "description": "If True, delete all the tables in the dataset. If False and the dataset contains tables, the request will fail. Default is False",
8062	//       "location": "query",
8063	//       "type": "boolean"
8064	//     },
8065	//     "projectId": {
8066	//       "description": "Project ID of the dataset being deleted",
8067	//       "location": "path",
8068	//       "required": true,
8069	//       "type": "string"
8070	//     }
8071	//   },
8072	//   "path": "projects/{projectId}/datasets/{datasetId}",
8073	//   "scopes": [
8074	//     "https://www.googleapis.com/auth/bigquery",
8075	//     "https://www.googleapis.com/auth/cloud-platform"
8076	//   ]
8077	// }
8078
8079}
8080
8081// method id "bigquery.datasets.get":
8082
8083type DatasetsGetCall struct {
8084	s            *Service
8085	projectId    string
8086	datasetId    string
8087	urlParams_   gensupport.URLParams
8088	ifNoneMatch_ string
8089	ctx_         context.Context
8090	header_      http.Header
8091}
8092
8093// Get: Returns the dataset specified by datasetID.
8094//
8095// - datasetId: Dataset ID of the requested dataset.
8096// - projectId: Project ID of the requested dataset.
8097func (r *DatasetsService) Get(projectId string, datasetId string) *DatasetsGetCall {
8098	c := &DatasetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8099	c.projectId = projectId
8100	c.datasetId = datasetId
8101	return c
8102}
8103
8104// Fields allows partial responses to be retrieved. See
8105// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8106// for more information.
8107func (c *DatasetsGetCall) Fields(s ...googleapi.Field) *DatasetsGetCall {
8108	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8109	return c
8110}
8111
8112// IfNoneMatch sets the optional parameter which makes the operation
8113// fail if the object's ETag matches the given value. This is useful for
8114// getting updates only after the object has changed since the last
8115// request. Use googleapi.IsNotModified to check whether the response
8116// error from Do is the result of In-None-Match.
8117func (c *DatasetsGetCall) IfNoneMatch(entityTag string) *DatasetsGetCall {
8118	c.ifNoneMatch_ = entityTag
8119	return c
8120}
8121
8122// Context sets the context to be used in this call's Do method. Any
8123// pending HTTP request will be aborted if the provided context is
8124// canceled.
8125func (c *DatasetsGetCall) Context(ctx context.Context) *DatasetsGetCall {
8126	c.ctx_ = ctx
8127	return c
8128}
8129
8130// Header returns an http.Header that can be modified by the caller to
8131// add HTTP headers to the request.
8132func (c *DatasetsGetCall) Header() http.Header {
8133	if c.header_ == nil {
8134		c.header_ = make(http.Header)
8135	}
8136	return c.header_
8137}
8138
8139func (c *DatasetsGetCall) doRequest(alt string) (*http.Response, error) {
8140	reqHeaders := make(http.Header)
8141	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8142	for k, v := range c.header_ {
8143		reqHeaders[k] = v
8144	}
8145	reqHeaders.Set("User-Agent", c.s.userAgent())
8146	if c.ifNoneMatch_ != "" {
8147		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8148	}
8149	var body io.Reader = nil
8150	c.urlParams_.Set("alt", alt)
8151	c.urlParams_.Set("prettyPrint", "false")
8152	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}")
8153	urls += "?" + c.urlParams_.Encode()
8154	req, err := http.NewRequest("GET", urls, body)
8155	if err != nil {
8156		return nil, err
8157	}
8158	req.Header = reqHeaders
8159	googleapi.Expand(req.URL, map[string]string{
8160		"projectId": c.projectId,
8161		"datasetId": c.datasetId,
8162	})
8163	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8164}
8165
8166// Do executes the "bigquery.datasets.get" call.
8167// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
8168// code is an error. Response headers are in either
8169// *Dataset.ServerResponse.Header or (if a response was returned at all)
8170// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8171// check whether the returned error was because http.StatusNotModified
8172// was returned.
8173func (c *DatasetsGetCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
8174	gensupport.SetOptions(c.urlParams_, opts...)
8175	res, err := c.doRequest("json")
8176	if res != nil && res.StatusCode == http.StatusNotModified {
8177		if res.Body != nil {
8178			res.Body.Close()
8179		}
8180		return nil, &googleapi.Error{
8181			Code:   res.StatusCode,
8182			Header: res.Header,
8183		}
8184	}
8185	if err != nil {
8186		return nil, err
8187	}
8188	defer googleapi.CloseBody(res)
8189	if err := googleapi.CheckResponse(res); err != nil {
8190		return nil, err
8191	}
8192	ret := &Dataset{
8193		ServerResponse: googleapi.ServerResponse{
8194			Header:         res.Header,
8195			HTTPStatusCode: res.StatusCode,
8196		},
8197	}
8198	target := &ret
8199	if err := gensupport.DecodeResponse(target, res); err != nil {
8200		return nil, err
8201	}
8202	return ret, nil
8203	// {
8204	//   "description": "Returns the dataset specified by datasetID.",
8205	//   "httpMethod": "GET",
8206	//   "id": "bigquery.datasets.get",
8207	//   "parameterOrder": [
8208	//     "projectId",
8209	//     "datasetId"
8210	//   ],
8211	//   "parameters": {
8212	//     "datasetId": {
8213	//       "description": "Dataset ID of the requested dataset",
8214	//       "location": "path",
8215	//       "required": true,
8216	//       "type": "string"
8217	//     },
8218	//     "projectId": {
8219	//       "description": "Project ID of the requested dataset",
8220	//       "location": "path",
8221	//       "required": true,
8222	//       "type": "string"
8223	//     }
8224	//   },
8225	//   "path": "projects/{projectId}/datasets/{datasetId}",
8226	//   "response": {
8227	//     "$ref": "Dataset"
8228	//   },
8229	//   "scopes": [
8230	//     "https://www.googleapis.com/auth/bigquery",
8231	//     "https://www.googleapis.com/auth/cloud-platform",
8232	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
8233	//   ]
8234	// }
8235
8236}
8237
8238// method id "bigquery.datasets.insert":
8239
8240type DatasetsInsertCall struct {
8241	s          *Service
8242	projectId  string
8243	dataset    *Dataset
8244	urlParams_ gensupport.URLParams
8245	ctx_       context.Context
8246	header_    http.Header
8247}
8248
8249// Insert: Creates a new empty dataset.
8250//
8251// - projectId: Project ID of the new dataset.
8252func (r *DatasetsService) Insert(projectId string, dataset *Dataset) *DatasetsInsertCall {
8253	c := &DatasetsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8254	c.projectId = projectId
8255	c.dataset = dataset
8256	return c
8257}
8258
8259// Fields allows partial responses to be retrieved. See
8260// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8261// for more information.
8262func (c *DatasetsInsertCall) Fields(s ...googleapi.Field) *DatasetsInsertCall {
8263	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8264	return c
8265}
8266
8267// Context sets the context to be used in this call's Do method. Any
8268// pending HTTP request will be aborted if the provided context is
8269// canceled.
8270func (c *DatasetsInsertCall) Context(ctx context.Context) *DatasetsInsertCall {
8271	c.ctx_ = ctx
8272	return c
8273}
8274
8275// Header returns an http.Header that can be modified by the caller to
8276// add HTTP headers to the request.
8277func (c *DatasetsInsertCall) Header() http.Header {
8278	if c.header_ == nil {
8279		c.header_ = make(http.Header)
8280	}
8281	return c.header_
8282}
8283
8284func (c *DatasetsInsertCall) doRequest(alt string) (*http.Response, error) {
8285	reqHeaders := make(http.Header)
8286	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8287	for k, v := range c.header_ {
8288		reqHeaders[k] = v
8289	}
8290	reqHeaders.Set("User-Agent", c.s.userAgent())
8291	var body io.Reader = nil
8292	body, err := googleapi.WithoutDataWrapper.JSONReader(c.dataset)
8293	if err != nil {
8294		return nil, err
8295	}
8296	reqHeaders.Set("Content-Type", "application/json")
8297	c.urlParams_.Set("alt", alt)
8298	c.urlParams_.Set("prettyPrint", "false")
8299	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets")
8300	urls += "?" + c.urlParams_.Encode()
8301	req, err := http.NewRequest("POST", urls, body)
8302	if err != nil {
8303		return nil, err
8304	}
8305	req.Header = reqHeaders
8306	googleapi.Expand(req.URL, map[string]string{
8307		"projectId": c.projectId,
8308	})
8309	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8310}
8311
8312// Do executes the "bigquery.datasets.insert" call.
8313// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
8314// code is an error. Response headers are in either
8315// *Dataset.ServerResponse.Header or (if a response was returned at all)
8316// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8317// check whether the returned error was because http.StatusNotModified
8318// was returned.
8319func (c *DatasetsInsertCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
8320	gensupport.SetOptions(c.urlParams_, opts...)
8321	res, err := c.doRequest("json")
8322	if res != nil && res.StatusCode == http.StatusNotModified {
8323		if res.Body != nil {
8324			res.Body.Close()
8325		}
8326		return nil, &googleapi.Error{
8327			Code:   res.StatusCode,
8328			Header: res.Header,
8329		}
8330	}
8331	if err != nil {
8332		return nil, err
8333	}
8334	defer googleapi.CloseBody(res)
8335	if err := googleapi.CheckResponse(res); err != nil {
8336		return nil, err
8337	}
8338	ret := &Dataset{
8339		ServerResponse: googleapi.ServerResponse{
8340			Header:         res.Header,
8341			HTTPStatusCode: res.StatusCode,
8342		},
8343	}
8344	target := &ret
8345	if err := gensupport.DecodeResponse(target, res); err != nil {
8346		return nil, err
8347	}
8348	return ret, nil
8349	// {
8350	//   "description": "Creates a new empty dataset.",
8351	//   "httpMethod": "POST",
8352	//   "id": "bigquery.datasets.insert",
8353	//   "parameterOrder": [
8354	//     "projectId"
8355	//   ],
8356	//   "parameters": {
8357	//     "projectId": {
8358	//       "description": "Project ID of the new dataset",
8359	//       "location": "path",
8360	//       "required": true,
8361	//       "type": "string"
8362	//     }
8363	//   },
8364	//   "path": "projects/{projectId}/datasets",
8365	//   "request": {
8366	//     "$ref": "Dataset"
8367	//   },
8368	//   "response": {
8369	//     "$ref": "Dataset"
8370	//   },
8371	//   "scopes": [
8372	//     "https://www.googleapis.com/auth/bigquery",
8373	//     "https://www.googleapis.com/auth/cloud-platform"
8374	//   ]
8375	// }
8376
8377}
8378
8379// method id "bigquery.datasets.list":
8380
8381type DatasetsListCall struct {
8382	s            *Service
8383	projectId    string
8384	urlParams_   gensupport.URLParams
8385	ifNoneMatch_ string
8386	ctx_         context.Context
8387	header_      http.Header
8388}
8389
8390// List: Lists all datasets in the specified project to which you have
8391// been granted the READER dataset role.
8392//
8393// - projectId: Project ID of the datasets to be listed.
8394func (r *DatasetsService) List(projectId string) *DatasetsListCall {
8395	c := &DatasetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8396	c.projectId = projectId
8397	return c
8398}
8399
8400// All sets the optional parameter "all": Whether to list all datasets,
8401// including hidden ones
8402func (c *DatasetsListCall) All(all bool) *DatasetsListCall {
8403	c.urlParams_.Set("all", fmt.Sprint(all))
8404	return c
8405}
8406
8407// Filter sets the optional parameter "filter": An expression for
8408// filtering the results of the request by label. The syntax is
8409// "labels.<name>[:<value>]". Multiple filters can be ANDed together by
8410// connecting with a space. Example: "labels.department:receiving
8411// labels.active". See Filtering datasets using labels for details.
8412func (c *DatasetsListCall) Filter(filter string) *DatasetsListCall {
8413	c.urlParams_.Set("filter", filter)
8414	return c
8415}
8416
8417// MaxResults sets the optional parameter "maxResults": The maximum
8418// number of results to return
8419func (c *DatasetsListCall) MaxResults(maxResults int64) *DatasetsListCall {
8420	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
8421	return c
8422}
8423
8424// PageToken sets the optional parameter "pageToken": Page token,
8425// returned by a previous call, to request the next page of results
8426func (c *DatasetsListCall) PageToken(pageToken string) *DatasetsListCall {
8427	c.urlParams_.Set("pageToken", pageToken)
8428	return c
8429}
8430
8431// Fields allows partial responses to be retrieved. See
8432// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8433// for more information.
8434func (c *DatasetsListCall) Fields(s ...googleapi.Field) *DatasetsListCall {
8435	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8436	return c
8437}
8438
8439// IfNoneMatch sets the optional parameter which makes the operation
8440// fail if the object's ETag matches the given value. This is useful for
8441// getting updates only after the object has changed since the last
8442// request. Use googleapi.IsNotModified to check whether the response
8443// error from Do is the result of In-None-Match.
8444func (c *DatasetsListCall) IfNoneMatch(entityTag string) *DatasetsListCall {
8445	c.ifNoneMatch_ = entityTag
8446	return c
8447}
8448
8449// Context sets the context to be used in this call's Do method. Any
8450// pending HTTP request will be aborted if the provided context is
8451// canceled.
8452func (c *DatasetsListCall) Context(ctx context.Context) *DatasetsListCall {
8453	c.ctx_ = ctx
8454	return c
8455}
8456
8457// Header returns an http.Header that can be modified by the caller to
8458// add HTTP headers to the request.
8459func (c *DatasetsListCall) Header() http.Header {
8460	if c.header_ == nil {
8461		c.header_ = make(http.Header)
8462	}
8463	return c.header_
8464}
8465
8466func (c *DatasetsListCall) doRequest(alt string) (*http.Response, error) {
8467	reqHeaders := make(http.Header)
8468	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8469	for k, v := range c.header_ {
8470		reqHeaders[k] = v
8471	}
8472	reqHeaders.Set("User-Agent", c.s.userAgent())
8473	if c.ifNoneMatch_ != "" {
8474		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8475	}
8476	var body io.Reader = nil
8477	c.urlParams_.Set("alt", alt)
8478	c.urlParams_.Set("prettyPrint", "false")
8479	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets")
8480	urls += "?" + c.urlParams_.Encode()
8481	req, err := http.NewRequest("GET", urls, body)
8482	if err != nil {
8483		return nil, err
8484	}
8485	req.Header = reqHeaders
8486	googleapi.Expand(req.URL, map[string]string{
8487		"projectId": c.projectId,
8488	})
8489	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8490}
8491
8492// Do executes the "bigquery.datasets.list" call.
8493// Exactly one of *DatasetList or error will be non-nil. Any non-2xx
8494// status code is an error. Response headers are in either
8495// *DatasetList.ServerResponse.Header or (if a response was returned at
8496// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8497// to check whether the returned error was because
8498// http.StatusNotModified was returned.
8499func (c *DatasetsListCall) Do(opts ...googleapi.CallOption) (*DatasetList, error) {
8500	gensupport.SetOptions(c.urlParams_, opts...)
8501	res, err := c.doRequest("json")
8502	if res != nil && res.StatusCode == http.StatusNotModified {
8503		if res.Body != nil {
8504			res.Body.Close()
8505		}
8506		return nil, &googleapi.Error{
8507			Code:   res.StatusCode,
8508			Header: res.Header,
8509		}
8510	}
8511	if err != nil {
8512		return nil, err
8513	}
8514	defer googleapi.CloseBody(res)
8515	if err := googleapi.CheckResponse(res); err != nil {
8516		return nil, err
8517	}
8518	ret := &DatasetList{
8519		ServerResponse: googleapi.ServerResponse{
8520			Header:         res.Header,
8521			HTTPStatusCode: res.StatusCode,
8522		},
8523	}
8524	target := &ret
8525	if err := gensupport.DecodeResponse(target, res); err != nil {
8526		return nil, err
8527	}
8528	return ret, nil
8529	// {
8530	//   "description": "Lists all datasets in the specified project to which you have been granted the READER dataset role.",
8531	//   "httpMethod": "GET",
8532	//   "id": "bigquery.datasets.list",
8533	//   "parameterOrder": [
8534	//     "projectId"
8535	//   ],
8536	//   "parameters": {
8537	//     "all": {
8538	//       "description": "Whether to list all datasets, including hidden ones",
8539	//       "location": "query",
8540	//       "type": "boolean"
8541	//     },
8542	//     "filter": {
8543	//       "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.",
8544	//       "location": "query",
8545	//       "type": "string"
8546	//     },
8547	//     "maxResults": {
8548	//       "description": "The maximum number of results to return",
8549	//       "format": "uint32",
8550	//       "location": "query",
8551	//       "type": "integer"
8552	//     },
8553	//     "pageToken": {
8554	//       "description": "Page token, returned by a previous call, to request the next page of results",
8555	//       "location": "query",
8556	//       "type": "string"
8557	//     },
8558	//     "projectId": {
8559	//       "description": "Project ID of the datasets to be listed",
8560	//       "location": "path",
8561	//       "required": true,
8562	//       "type": "string"
8563	//     }
8564	//   },
8565	//   "path": "projects/{projectId}/datasets",
8566	//   "response": {
8567	//     "$ref": "DatasetList"
8568	//   },
8569	//   "scopes": [
8570	//     "https://www.googleapis.com/auth/bigquery",
8571	//     "https://www.googleapis.com/auth/cloud-platform",
8572	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
8573	//   ]
8574	// }
8575
8576}
8577
8578// Pages invokes f for each page of results.
8579// A non-nil error returned from f will halt the iteration.
8580// The provided context supersedes any context provided to the Context method.
8581func (c *DatasetsListCall) Pages(ctx context.Context, f func(*DatasetList) error) error {
8582	c.ctx_ = ctx
8583	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8584	for {
8585		x, err := c.Do()
8586		if err != nil {
8587			return err
8588		}
8589		if err := f(x); err != nil {
8590			return err
8591		}
8592		if x.NextPageToken == "" {
8593			return nil
8594		}
8595		c.PageToken(x.NextPageToken)
8596	}
8597}
8598
8599// method id "bigquery.datasets.patch":
8600
8601type DatasetsPatchCall struct {
8602	s          *Service
8603	projectId  string
8604	datasetId  string
8605	dataset    *Dataset
8606	urlParams_ gensupport.URLParams
8607	ctx_       context.Context
8608	header_    http.Header
8609}
8610
8611// Patch: Updates information in an existing dataset. The update method
8612// replaces the entire dataset resource, whereas the patch method only
8613// replaces fields that are provided in the submitted dataset resource.
8614// This method supports patch semantics.
8615//
8616// - datasetId: Dataset ID of the dataset being updated.
8617// - projectId: Project ID of the dataset being updated.
8618func (r *DatasetsService) Patch(projectId string, datasetId string, dataset *Dataset) *DatasetsPatchCall {
8619	c := &DatasetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8620	c.projectId = projectId
8621	c.datasetId = datasetId
8622	c.dataset = dataset
8623	return c
8624}
8625
8626// Fields allows partial responses to be retrieved. See
8627// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8628// for more information.
8629func (c *DatasetsPatchCall) Fields(s ...googleapi.Field) *DatasetsPatchCall {
8630	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8631	return c
8632}
8633
8634// Context sets the context to be used in this call's Do method. Any
8635// pending HTTP request will be aborted if the provided context is
8636// canceled.
8637func (c *DatasetsPatchCall) Context(ctx context.Context) *DatasetsPatchCall {
8638	c.ctx_ = ctx
8639	return c
8640}
8641
8642// Header returns an http.Header that can be modified by the caller to
8643// add HTTP headers to the request.
8644func (c *DatasetsPatchCall) Header() http.Header {
8645	if c.header_ == nil {
8646		c.header_ = make(http.Header)
8647	}
8648	return c.header_
8649}
8650
8651func (c *DatasetsPatchCall) doRequest(alt string) (*http.Response, error) {
8652	reqHeaders := make(http.Header)
8653	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8654	for k, v := range c.header_ {
8655		reqHeaders[k] = v
8656	}
8657	reqHeaders.Set("User-Agent", c.s.userAgent())
8658	var body io.Reader = nil
8659	body, err := googleapi.WithoutDataWrapper.JSONReader(c.dataset)
8660	if err != nil {
8661		return nil, err
8662	}
8663	reqHeaders.Set("Content-Type", "application/json")
8664	c.urlParams_.Set("alt", alt)
8665	c.urlParams_.Set("prettyPrint", "false")
8666	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}")
8667	urls += "?" + c.urlParams_.Encode()
8668	req, err := http.NewRequest("PATCH", urls, body)
8669	if err != nil {
8670		return nil, err
8671	}
8672	req.Header = reqHeaders
8673	googleapi.Expand(req.URL, map[string]string{
8674		"projectId": c.projectId,
8675		"datasetId": c.datasetId,
8676	})
8677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8678}
8679
8680// Do executes the "bigquery.datasets.patch" call.
8681// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
8682// code is an error. Response headers are in either
8683// *Dataset.ServerResponse.Header or (if a response was returned at all)
8684// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8685// check whether the returned error was because http.StatusNotModified
8686// was returned.
8687func (c *DatasetsPatchCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
8688	gensupport.SetOptions(c.urlParams_, opts...)
8689	res, err := c.doRequest("json")
8690	if res != nil && res.StatusCode == http.StatusNotModified {
8691		if res.Body != nil {
8692			res.Body.Close()
8693		}
8694		return nil, &googleapi.Error{
8695			Code:   res.StatusCode,
8696			Header: res.Header,
8697		}
8698	}
8699	if err != nil {
8700		return nil, err
8701	}
8702	defer googleapi.CloseBody(res)
8703	if err := googleapi.CheckResponse(res); err != nil {
8704		return nil, err
8705	}
8706	ret := &Dataset{
8707		ServerResponse: googleapi.ServerResponse{
8708			Header:         res.Header,
8709			HTTPStatusCode: res.StatusCode,
8710		},
8711	}
8712	target := &ret
8713	if err := gensupport.DecodeResponse(target, res); err != nil {
8714		return nil, err
8715	}
8716	return ret, nil
8717	// {
8718	//   "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.",
8719	//   "httpMethod": "PATCH",
8720	//   "id": "bigquery.datasets.patch",
8721	//   "parameterOrder": [
8722	//     "projectId",
8723	//     "datasetId"
8724	//   ],
8725	//   "parameters": {
8726	//     "datasetId": {
8727	//       "description": "Dataset ID of the dataset being updated",
8728	//       "location": "path",
8729	//       "required": true,
8730	//       "type": "string"
8731	//     },
8732	//     "projectId": {
8733	//       "description": "Project ID of the dataset being updated",
8734	//       "location": "path",
8735	//       "required": true,
8736	//       "type": "string"
8737	//     }
8738	//   },
8739	//   "path": "projects/{projectId}/datasets/{datasetId}",
8740	//   "request": {
8741	//     "$ref": "Dataset"
8742	//   },
8743	//   "response": {
8744	//     "$ref": "Dataset"
8745	//   },
8746	//   "scopes": [
8747	//     "https://www.googleapis.com/auth/bigquery",
8748	//     "https://www.googleapis.com/auth/cloud-platform"
8749	//   ]
8750	// }
8751
8752}
8753
8754// method id "bigquery.datasets.update":
8755
8756type DatasetsUpdateCall struct {
8757	s          *Service
8758	projectId  string
8759	datasetId  string
8760	dataset    *Dataset
8761	urlParams_ gensupport.URLParams
8762	ctx_       context.Context
8763	header_    http.Header
8764}
8765
8766// Update: Updates information in an existing dataset. The update method
8767// replaces the entire dataset resource, whereas the patch method only
8768// replaces fields that are provided in the submitted dataset resource.
8769//
8770// - datasetId: Dataset ID of the dataset being updated.
8771// - projectId: Project ID of the dataset being updated.
8772func (r *DatasetsService) Update(projectId string, datasetId string, dataset *Dataset) *DatasetsUpdateCall {
8773	c := &DatasetsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8774	c.projectId = projectId
8775	c.datasetId = datasetId
8776	c.dataset = dataset
8777	return c
8778}
8779
8780// Fields allows partial responses to be retrieved. See
8781// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8782// for more information.
8783func (c *DatasetsUpdateCall) Fields(s ...googleapi.Field) *DatasetsUpdateCall {
8784	c.urlParams_.Set("fields", googleapi.CombineFields(s))
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 *DatasetsUpdateCall) Context(ctx context.Context) *DatasetsUpdateCall {
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 *DatasetsUpdateCall) Header() http.Header {
8799	if c.header_ == nil {
8800		c.header_ = make(http.Header)
8801	}
8802	return c.header_
8803}
8804
8805func (c *DatasetsUpdateCall) doRequest(alt string) (*http.Response, error) {
8806	reqHeaders := make(http.Header)
8807	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8808	for k, v := range c.header_ {
8809		reqHeaders[k] = v
8810	}
8811	reqHeaders.Set("User-Agent", c.s.userAgent())
8812	var body io.Reader = nil
8813	body, err := googleapi.WithoutDataWrapper.JSONReader(c.dataset)
8814	if err != nil {
8815		return nil, err
8816	}
8817	reqHeaders.Set("Content-Type", "application/json")
8818	c.urlParams_.Set("alt", alt)
8819	c.urlParams_.Set("prettyPrint", "false")
8820	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}")
8821	urls += "?" + c.urlParams_.Encode()
8822	req, err := http.NewRequest("PUT", urls, body)
8823	if err != nil {
8824		return nil, err
8825	}
8826	req.Header = reqHeaders
8827	googleapi.Expand(req.URL, map[string]string{
8828		"projectId": c.projectId,
8829		"datasetId": c.datasetId,
8830	})
8831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8832}
8833
8834// Do executes the "bigquery.datasets.update" call.
8835// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
8836// code is an error. Response headers are in either
8837// *Dataset.ServerResponse.Header or (if a response was returned at all)
8838// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8839// check whether the returned error was because http.StatusNotModified
8840// was returned.
8841func (c *DatasetsUpdateCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
8842	gensupport.SetOptions(c.urlParams_, opts...)
8843	res, err := c.doRequest("json")
8844	if res != nil && res.StatusCode == http.StatusNotModified {
8845		if res.Body != nil {
8846			res.Body.Close()
8847		}
8848		return nil, &googleapi.Error{
8849			Code:   res.StatusCode,
8850			Header: res.Header,
8851		}
8852	}
8853	if err != nil {
8854		return nil, err
8855	}
8856	defer googleapi.CloseBody(res)
8857	if err := googleapi.CheckResponse(res); err != nil {
8858		return nil, err
8859	}
8860	ret := &Dataset{
8861		ServerResponse: googleapi.ServerResponse{
8862			Header:         res.Header,
8863			HTTPStatusCode: res.StatusCode,
8864		},
8865	}
8866	target := &ret
8867	if err := gensupport.DecodeResponse(target, res); err != nil {
8868		return nil, err
8869	}
8870	return ret, nil
8871	// {
8872	//   "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.",
8873	//   "httpMethod": "PUT",
8874	//   "id": "bigquery.datasets.update",
8875	//   "parameterOrder": [
8876	//     "projectId",
8877	//     "datasetId"
8878	//   ],
8879	//   "parameters": {
8880	//     "datasetId": {
8881	//       "description": "Dataset ID of the dataset being updated",
8882	//       "location": "path",
8883	//       "required": true,
8884	//       "type": "string"
8885	//     },
8886	//     "projectId": {
8887	//       "description": "Project ID of the dataset being updated",
8888	//       "location": "path",
8889	//       "required": true,
8890	//       "type": "string"
8891	//     }
8892	//   },
8893	//   "path": "projects/{projectId}/datasets/{datasetId}",
8894	//   "request": {
8895	//     "$ref": "Dataset"
8896	//   },
8897	//   "response": {
8898	//     "$ref": "Dataset"
8899	//   },
8900	//   "scopes": [
8901	//     "https://www.googleapis.com/auth/bigquery",
8902	//     "https://www.googleapis.com/auth/cloud-platform"
8903	//   ]
8904	// }
8905
8906}
8907
8908// method id "bigquery.jobs.cancel":
8909
8910type JobsCancelCall struct {
8911	s          *Service
8912	projectId  string
8913	jobId      string
8914	urlParams_ gensupport.URLParams
8915	ctx_       context.Context
8916	header_    http.Header
8917}
8918
8919// Cancel: Requests that a job be cancelled. This call will return
8920// immediately, and the client will need to poll for the job status to
8921// see if the cancel completed successfully. Cancelled jobs may still
8922// incur costs.
8923//
8924// - jobId: [Required] Job ID of the job to cancel.
8925// - projectId: [Required] Project ID of the job to cancel.
8926func (r *JobsService) Cancel(projectId string, jobId string) *JobsCancelCall {
8927	c := &JobsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8928	c.projectId = projectId
8929	c.jobId = jobId
8930	return c
8931}
8932
8933// Location sets the optional parameter "location": The geographic
8934// location of the job. Required except for US and EU. See details at
8935// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
8936func (c *JobsCancelCall) Location(location string) *JobsCancelCall {
8937	c.urlParams_.Set("location", location)
8938	return c
8939}
8940
8941// Fields allows partial responses to be retrieved. See
8942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8943// for more information.
8944func (c *JobsCancelCall) Fields(s ...googleapi.Field) *JobsCancelCall {
8945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8946	return c
8947}
8948
8949// Context sets the context to be used in this call's Do method. Any
8950// pending HTTP request will be aborted if the provided context is
8951// canceled.
8952func (c *JobsCancelCall) Context(ctx context.Context) *JobsCancelCall {
8953	c.ctx_ = ctx
8954	return c
8955}
8956
8957// Header returns an http.Header that can be modified by the caller to
8958// add HTTP headers to the request.
8959func (c *JobsCancelCall) Header() http.Header {
8960	if c.header_ == nil {
8961		c.header_ = make(http.Header)
8962	}
8963	return c.header_
8964}
8965
8966func (c *JobsCancelCall) doRequest(alt string) (*http.Response, error) {
8967	reqHeaders := make(http.Header)
8968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8969	for k, v := range c.header_ {
8970		reqHeaders[k] = v
8971	}
8972	reqHeaders.Set("User-Agent", c.s.userAgent())
8973	var body io.Reader = nil
8974	c.urlParams_.Set("alt", alt)
8975	c.urlParams_.Set("prettyPrint", "false")
8976	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/jobs/{jobId}/cancel")
8977	urls += "?" + c.urlParams_.Encode()
8978	req, err := http.NewRequest("POST", urls, body)
8979	if err != nil {
8980		return nil, err
8981	}
8982	req.Header = reqHeaders
8983	googleapi.Expand(req.URL, map[string]string{
8984		"projectId": c.projectId,
8985		"jobId":     c.jobId,
8986	})
8987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8988}
8989
8990// Do executes the "bigquery.jobs.cancel" call.
8991// Exactly one of *JobCancelResponse or error will be non-nil. Any
8992// non-2xx status code is an error. Response headers are in either
8993// *JobCancelResponse.ServerResponse.Header or (if a response was
8994// returned at all) in error.(*googleapi.Error).Header. Use
8995// googleapi.IsNotModified to check whether the returned error was
8996// because http.StatusNotModified was returned.
8997func (c *JobsCancelCall) Do(opts ...googleapi.CallOption) (*JobCancelResponse, error) {
8998	gensupport.SetOptions(c.urlParams_, opts...)
8999	res, err := c.doRequest("json")
9000	if res != nil && res.StatusCode == http.StatusNotModified {
9001		if res.Body != nil {
9002			res.Body.Close()
9003		}
9004		return nil, &googleapi.Error{
9005			Code:   res.StatusCode,
9006			Header: res.Header,
9007		}
9008	}
9009	if err != nil {
9010		return nil, err
9011	}
9012	defer googleapi.CloseBody(res)
9013	if err := googleapi.CheckResponse(res); err != nil {
9014		return nil, err
9015	}
9016	ret := &JobCancelResponse{
9017		ServerResponse: googleapi.ServerResponse{
9018			Header:         res.Header,
9019			HTTPStatusCode: res.StatusCode,
9020		},
9021	}
9022	target := &ret
9023	if err := gensupport.DecodeResponse(target, res); err != nil {
9024		return nil, err
9025	}
9026	return ret, nil
9027	// {
9028	//   "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.",
9029	//   "httpMethod": "POST",
9030	//   "id": "bigquery.jobs.cancel",
9031	//   "parameterOrder": [
9032	//     "projectId",
9033	//     "jobId"
9034	//   ],
9035	//   "parameters": {
9036	//     "jobId": {
9037	//       "description": "[Required] Job ID of the job to cancel",
9038	//       "location": "path",
9039	//       "required": true,
9040	//       "type": "string"
9041	//     },
9042	//     "location": {
9043	//       "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.",
9044	//       "location": "query",
9045	//       "type": "string"
9046	//     },
9047	//     "projectId": {
9048	//       "description": "[Required] Project ID of the job to cancel",
9049	//       "location": "path",
9050	//       "required": true,
9051	//       "type": "string"
9052	//     }
9053	//   },
9054	//   "path": "projects/{projectId}/jobs/{jobId}/cancel",
9055	//   "response": {
9056	//     "$ref": "JobCancelResponse"
9057	//   },
9058	//   "scopes": [
9059	//     "https://www.googleapis.com/auth/bigquery",
9060	//     "https://www.googleapis.com/auth/cloud-platform"
9061	//   ]
9062	// }
9063
9064}
9065
9066// method id "bigquery.jobs.delete":
9067
9068type JobsDeleteCall struct {
9069	s          *Service
9070	projectId  string
9071	jobId      string
9072	urlParams_ gensupport.URLParams
9073	ctx_       context.Context
9074	header_    http.Header
9075}
9076
9077// Delete: Requests that a job is deleted. This call will return when
9078// the job is deleted. This method is available in limited preview.
9079//
9080// - jobId: Job ID of the job to be deleted. If this is a parent job
9081//   which has child jobs, all child jobs will be deleted as well.
9082//   Deletion of child jobs directly is not allowed.
9083// - projectId: Project ID of the job to be deleted.
9084func (r *JobsService) Delete(projectId string, jobId string) *JobsDeleteCall {
9085	c := &JobsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9086	c.projectId = projectId
9087	c.jobId = jobId
9088	return c
9089}
9090
9091// Location sets the optional parameter "location": The geographic
9092// location of the job. Required. See details at:
9093// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
9094func (c *JobsDeleteCall) Location(location string) *JobsDeleteCall {
9095	c.urlParams_.Set("location", location)
9096	return c
9097}
9098
9099// Fields allows partial responses to be retrieved. See
9100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9101// for more information.
9102func (c *JobsDeleteCall) Fields(s ...googleapi.Field) *JobsDeleteCall {
9103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9104	return c
9105}
9106
9107// Context sets the context to be used in this call's Do method. Any
9108// pending HTTP request will be aborted if the provided context is
9109// canceled.
9110func (c *JobsDeleteCall) Context(ctx context.Context) *JobsDeleteCall {
9111	c.ctx_ = ctx
9112	return c
9113}
9114
9115// Header returns an http.Header that can be modified by the caller to
9116// add HTTP headers to the request.
9117func (c *JobsDeleteCall) Header() http.Header {
9118	if c.header_ == nil {
9119		c.header_ = make(http.Header)
9120	}
9121	return c.header_
9122}
9123
9124func (c *JobsDeleteCall) doRequest(alt string) (*http.Response, error) {
9125	reqHeaders := make(http.Header)
9126	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9127	for k, v := range c.header_ {
9128		reqHeaders[k] = v
9129	}
9130	reqHeaders.Set("User-Agent", c.s.userAgent())
9131	var body io.Reader = nil
9132	c.urlParams_.Set("alt", alt)
9133	c.urlParams_.Set("prettyPrint", "false")
9134	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/jobs/{+jobId}/delete")
9135	urls += "?" + c.urlParams_.Encode()
9136	req, err := http.NewRequest("DELETE", urls, body)
9137	if err != nil {
9138		return nil, err
9139	}
9140	req.Header = reqHeaders
9141	googleapi.Expand(req.URL, map[string]string{
9142		"projectId": c.projectId,
9143		"jobId":     c.jobId,
9144	})
9145	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9146}
9147
9148// Do executes the "bigquery.jobs.delete" call.
9149func (c *JobsDeleteCall) Do(opts ...googleapi.CallOption) error {
9150	gensupport.SetOptions(c.urlParams_, opts...)
9151	res, err := c.doRequest("json")
9152	if err != nil {
9153		return err
9154	}
9155	defer googleapi.CloseBody(res)
9156	if err := googleapi.CheckResponse(res); err != nil {
9157		return err
9158	}
9159	return nil
9160	// {
9161	//   "description": "Requests that a job is deleted. This call will return when the job is deleted. This method is available in limited preview.",
9162	//   "flatPath": "projects/{projectsId}/jobs/{jobsId}/delete",
9163	//   "httpMethod": "DELETE",
9164	//   "id": "bigquery.jobs.delete",
9165	//   "parameterOrder": [
9166	//     "projectId",
9167	//     "jobId"
9168	//   ],
9169	//   "parameters": {
9170	//     "jobId": {
9171	//       "description": "Required. Job ID of the job to be deleted. If this is a parent job which has child jobs, all child jobs will be deleted as well. Deletion of child jobs directly is not allowed.",
9172	//       "location": "path",
9173	//       "pattern": "^[^/]+$",
9174	//       "required": true,
9175	//       "type": "string"
9176	//     },
9177	//     "location": {
9178	//       "description": "The geographic location of the job. Required. See details at: https://cloud.google.com/bigquery/docs/locations#specifying_your_location.",
9179	//       "location": "query",
9180	//       "type": "string"
9181	//     },
9182	//     "projectId": {
9183	//       "description": "Required. Project ID of the job to be deleted.",
9184	//       "location": "path",
9185	//       "pattern": "^[^/]+$",
9186	//       "required": true,
9187	//       "type": "string"
9188	//     }
9189	//   },
9190	//   "path": "projects/{+projectId}/jobs/{+jobId}/delete",
9191	//   "scopes": [
9192	//     "https://www.googleapis.com/auth/bigquery",
9193	//     "https://www.googleapis.com/auth/cloud-platform"
9194	//   ]
9195	// }
9196
9197}
9198
9199// method id "bigquery.jobs.get":
9200
9201type JobsGetCall struct {
9202	s            *Service
9203	projectId    string
9204	jobId        string
9205	urlParams_   gensupport.URLParams
9206	ifNoneMatch_ string
9207	ctx_         context.Context
9208	header_      http.Header
9209}
9210
9211// Get: Returns information about a specific job. Job information is
9212// available for a six month period after creation. Requires that you're
9213// the person who ran the job, or have the Is Owner project role.
9214//
9215// - jobId: [Required] Job ID of the requested job.
9216// - projectId: [Required] Project ID of the requested job.
9217func (r *JobsService) Get(projectId string, jobId string) *JobsGetCall {
9218	c := &JobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9219	c.projectId = projectId
9220	c.jobId = jobId
9221	return c
9222}
9223
9224// Location sets the optional parameter "location": The geographic
9225// location of the job. Required except for US and EU. See details at
9226// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
9227func (c *JobsGetCall) Location(location string) *JobsGetCall {
9228	c.urlParams_.Set("location", location)
9229	return c
9230}
9231
9232// Fields allows partial responses to be retrieved. See
9233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9234// for more information.
9235func (c *JobsGetCall) Fields(s ...googleapi.Field) *JobsGetCall {
9236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9237	return c
9238}
9239
9240// IfNoneMatch sets the optional parameter which makes the operation
9241// fail if the object's ETag matches the given value. This is useful for
9242// getting updates only after the object has changed since the last
9243// request. Use googleapi.IsNotModified to check whether the response
9244// error from Do is the result of In-None-Match.
9245func (c *JobsGetCall) IfNoneMatch(entityTag string) *JobsGetCall {
9246	c.ifNoneMatch_ = entityTag
9247	return c
9248}
9249
9250// Context sets the context to be used in this call's Do method. Any
9251// pending HTTP request will be aborted if the provided context is
9252// canceled.
9253func (c *JobsGetCall) Context(ctx context.Context) *JobsGetCall {
9254	c.ctx_ = ctx
9255	return c
9256}
9257
9258// Header returns an http.Header that can be modified by the caller to
9259// add HTTP headers to the request.
9260func (c *JobsGetCall) Header() http.Header {
9261	if c.header_ == nil {
9262		c.header_ = make(http.Header)
9263	}
9264	return c.header_
9265}
9266
9267func (c *JobsGetCall) doRequest(alt string) (*http.Response, error) {
9268	reqHeaders := make(http.Header)
9269	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9270	for k, v := range c.header_ {
9271		reqHeaders[k] = v
9272	}
9273	reqHeaders.Set("User-Agent", c.s.userAgent())
9274	if c.ifNoneMatch_ != "" {
9275		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9276	}
9277	var body io.Reader = nil
9278	c.urlParams_.Set("alt", alt)
9279	c.urlParams_.Set("prettyPrint", "false")
9280	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/jobs/{jobId}")
9281	urls += "?" + c.urlParams_.Encode()
9282	req, err := http.NewRequest("GET", urls, body)
9283	if err != nil {
9284		return nil, err
9285	}
9286	req.Header = reqHeaders
9287	googleapi.Expand(req.URL, map[string]string{
9288		"projectId": c.projectId,
9289		"jobId":     c.jobId,
9290	})
9291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9292}
9293
9294// Do executes the "bigquery.jobs.get" call.
9295// Exactly one of *Job or error will be non-nil. Any non-2xx status code
9296// is an error. Response headers are in either
9297// *Job.ServerResponse.Header or (if a response was returned at all) in
9298// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
9299// whether the returned error was because http.StatusNotModified was
9300// returned.
9301func (c *JobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
9302	gensupport.SetOptions(c.urlParams_, opts...)
9303	res, err := c.doRequest("json")
9304	if res != nil && res.StatusCode == http.StatusNotModified {
9305		if res.Body != nil {
9306			res.Body.Close()
9307		}
9308		return nil, &googleapi.Error{
9309			Code:   res.StatusCode,
9310			Header: res.Header,
9311		}
9312	}
9313	if err != nil {
9314		return nil, err
9315	}
9316	defer googleapi.CloseBody(res)
9317	if err := googleapi.CheckResponse(res); err != nil {
9318		return nil, err
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": "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.",
9333	//   "httpMethod": "GET",
9334	//   "id": "bigquery.jobs.get",
9335	//   "parameterOrder": [
9336	//     "projectId",
9337	//     "jobId"
9338	//   ],
9339	//   "parameters": {
9340	//     "jobId": {
9341	//       "description": "[Required] Job ID of the requested job",
9342	//       "location": "path",
9343	//       "required": true,
9344	//       "type": "string"
9345	//     },
9346	//     "location": {
9347	//       "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.",
9348	//       "location": "query",
9349	//       "type": "string"
9350	//     },
9351	//     "projectId": {
9352	//       "description": "[Required] Project ID of the requested job",
9353	//       "location": "path",
9354	//       "required": true,
9355	//       "type": "string"
9356	//     }
9357	//   },
9358	//   "path": "projects/{projectId}/jobs/{jobId}",
9359	//   "response": {
9360	//     "$ref": "Job"
9361	//   },
9362	//   "scopes": [
9363	//     "https://www.googleapis.com/auth/bigquery",
9364	//     "https://www.googleapis.com/auth/cloud-platform",
9365	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
9366	//   ]
9367	// }
9368
9369}
9370
9371// method id "bigquery.jobs.getQueryResults":
9372
9373type JobsGetQueryResultsCall struct {
9374	s            *Service
9375	projectId    string
9376	jobId        string
9377	urlParams_   gensupport.URLParams
9378	ifNoneMatch_ string
9379	ctx_         context.Context
9380	header_      http.Header
9381}
9382
9383// GetQueryResults: Retrieves the results of a query job.
9384//
9385// - jobId: [Required] Job ID of the query job.
9386// - projectId: [Required] Project ID of the query job.
9387func (r *JobsService) GetQueryResults(projectId string, jobId string) *JobsGetQueryResultsCall {
9388	c := &JobsGetQueryResultsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9389	c.projectId = projectId
9390	c.jobId = jobId
9391	return c
9392}
9393
9394// Location sets the optional parameter "location": The geographic
9395// location where the job should run. Required except for US and EU. See
9396// details at
9397// https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
9398func (c *JobsGetQueryResultsCall) Location(location string) *JobsGetQueryResultsCall {
9399	c.urlParams_.Set("location", location)
9400	return c
9401}
9402
9403// MaxResults sets the optional parameter "maxResults": Maximum number
9404// of results to read
9405func (c *JobsGetQueryResultsCall) MaxResults(maxResults int64) *JobsGetQueryResultsCall {
9406	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
9407	return c
9408}
9409
9410// PageToken sets the optional parameter "pageToken": Page token,
9411// returned by a previous call, to request the next page of results
9412func (c *JobsGetQueryResultsCall) PageToken(pageToken string) *JobsGetQueryResultsCall {
9413	c.urlParams_.Set("pageToken", pageToken)
9414	return c
9415}
9416
9417// StartIndex sets the optional parameter "startIndex": Zero-based index
9418// of the starting row
9419func (c *JobsGetQueryResultsCall) StartIndex(startIndex uint64) *JobsGetQueryResultsCall {
9420	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
9421	return c
9422}
9423
9424// TimeoutMs sets the optional parameter "timeoutMs": How long to wait
9425// for the query to complete, in milliseconds, before returning. Default
9426// is 10 seconds. If the timeout passes before the job completes, the
9427// 'jobComplete' field in the response will be false
9428func (c *JobsGetQueryResultsCall) TimeoutMs(timeoutMs int64) *JobsGetQueryResultsCall {
9429	c.urlParams_.Set("timeoutMs", fmt.Sprint(timeoutMs))
9430	return c
9431}
9432
9433// Fields allows partial responses to be retrieved. See
9434// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9435// for more information.
9436func (c *JobsGetQueryResultsCall) Fields(s ...googleapi.Field) *JobsGetQueryResultsCall {
9437	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9438	return c
9439}
9440
9441// IfNoneMatch sets the optional parameter which makes the operation
9442// fail if the object's ETag matches the given value. This is useful for
9443// getting updates only after the object has changed since the last
9444// request. Use googleapi.IsNotModified to check whether the response
9445// error from Do is the result of In-None-Match.
9446func (c *JobsGetQueryResultsCall) IfNoneMatch(entityTag string) *JobsGetQueryResultsCall {
9447	c.ifNoneMatch_ = entityTag
9448	return c
9449}
9450
9451// Context sets the context to be used in this call's Do method. Any
9452// pending HTTP request will be aborted if the provided context is
9453// canceled.
9454func (c *JobsGetQueryResultsCall) Context(ctx context.Context) *JobsGetQueryResultsCall {
9455	c.ctx_ = ctx
9456	return c
9457}
9458
9459// Header returns an http.Header that can be modified by the caller to
9460// add HTTP headers to the request.
9461func (c *JobsGetQueryResultsCall) Header() http.Header {
9462	if c.header_ == nil {
9463		c.header_ = make(http.Header)
9464	}
9465	return c.header_
9466}
9467
9468func (c *JobsGetQueryResultsCall) doRequest(alt string) (*http.Response, error) {
9469	reqHeaders := make(http.Header)
9470	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9471	for k, v := range c.header_ {
9472		reqHeaders[k] = v
9473	}
9474	reqHeaders.Set("User-Agent", c.s.userAgent())
9475	if c.ifNoneMatch_ != "" {
9476		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9477	}
9478	var body io.Reader = nil
9479	c.urlParams_.Set("alt", alt)
9480	c.urlParams_.Set("prettyPrint", "false")
9481	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/queries/{jobId}")
9482	urls += "?" + c.urlParams_.Encode()
9483	req, err := http.NewRequest("GET", urls, body)
9484	if err != nil {
9485		return nil, err
9486	}
9487	req.Header = reqHeaders
9488	googleapi.Expand(req.URL, map[string]string{
9489		"projectId": c.projectId,
9490		"jobId":     c.jobId,
9491	})
9492	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9493}
9494
9495// Do executes the "bigquery.jobs.getQueryResults" call.
9496// Exactly one of *GetQueryResultsResponse or error will be non-nil. Any
9497// non-2xx status code is an error. Response headers are in either
9498// *GetQueryResultsResponse.ServerResponse.Header or (if a response was
9499// returned at all) in error.(*googleapi.Error).Header. Use
9500// googleapi.IsNotModified to check whether the returned error was
9501// because http.StatusNotModified was returned.
9502func (c *JobsGetQueryResultsCall) Do(opts ...googleapi.CallOption) (*GetQueryResultsResponse, error) {
9503	gensupport.SetOptions(c.urlParams_, opts...)
9504	res, err := c.doRequest("json")
9505	if res != nil && res.StatusCode == http.StatusNotModified {
9506		if res.Body != nil {
9507			res.Body.Close()
9508		}
9509		return nil, &googleapi.Error{
9510			Code:   res.StatusCode,
9511			Header: res.Header,
9512		}
9513	}
9514	if err != nil {
9515		return nil, err
9516	}
9517	defer googleapi.CloseBody(res)
9518	if err := googleapi.CheckResponse(res); err != nil {
9519		return nil, err
9520	}
9521	ret := &GetQueryResultsResponse{
9522		ServerResponse: googleapi.ServerResponse{
9523			Header:         res.Header,
9524			HTTPStatusCode: res.StatusCode,
9525		},
9526	}
9527	target := &ret
9528	if err := gensupport.DecodeResponse(target, res); err != nil {
9529		return nil, err
9530	}
9531	return ret, nil
9532	// {
9533	//   "description": "Retrieves the results of a query job.",
9534	//   "httpMethod": "GET",
9535	//   "id": "bigquery.jobs.getQueryResults",
9536	//   "parameterOrder": [
9537	//     "projectId",
9538	//     "jobId"
9539	//   ],
9540	//   "parameters": {
9541	//     "jobId": {
9542	//       "description": "[Required] Job ID of the query job",
9543	//       "location": "path",
9544	//       "required": true,
9545	//       "type": "string"
9546	//     },
9547	//     "location": {
9548	//       "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.",
9549	//       "location": "query",
9550	//       "type": "string"
9551	//     },
9552	//     "maxResults": {
9553	//       "description": "Maximum number of results to read",
9554	//       "format": "uint32",
9555	//       "location": "query",
9556	//       "type": "integer"
9557	//     },
9558	//     "pageToken": {
9559	//       "description": "Page token, returned by a previous call, to request the next page of results",
9560	//       "location": "query",
9561	//       "type": "string"
9562	//     },
9563	//     "projectId": {
9564	//       "description": "[Required] Project ID of the query job",
9565	//       "location": "path",
9566	//       "required": true,
9567	//       "type": "string"
9568	//     },
9569	//     "startIndex": {
9570	//       "description": "Zero-based index of the starting row",
9571	//       "format": "uint64",
9572	//       "location": "query",
9573	//       "type": "string"
9574	//     },
9575	//     "timeoutMs": {
9576	//       "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",
9577	//       "format": "uint32",
9578	//       "location": "query",
9579	//       "type": "integer"
9580	//     }
9581	//   },
9582	//   "path": "projects/{projectId}/queries/{jobId}",
9583	//   "response": {
9584	//     "$ref": "GetQueryResultsResponse"
9585	//   },
9586	//   "scopes": [
9587	//     "https://www.googleapis.com/auth/bigquery",
9588	//     "https://www.googleapis.com/auth/cloud-platform",
9589	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
9590	//   ]
9591	// }
9592
9593}
9594
9595// Pages invokes f for each page of results.
9596// A non-nil error returned from f will halt the iteration.
9597// The provided context supersedes any context provided to the Context method.
9598func (c *JobsGetQueryResultsCall) Pages(ctx context.Context, f func(*GetQueryResultsResponse) error) error {
9599	c.ctx_ = ctx
9600	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9601	for {
9602		x, err := c.Do()
9603		if err != nil {
9604			return err
9605		}
9606		if err := f(x); err != nil {
9607			return err
9608		}
9609		if x.PageToken == "" {
9610			return nil
9611		}
9612		c.PageToken(x.PageToken)
9613	}
9614}
9615
9616// method id "bigquery.jobs.insert":
9617
9618type JobsInsertCall struct {
9619	s          *Service
9620	projectId  string
9621	job        *Job
9622	urlParams_ gensupport.URLParams
9623	mediaInfo_ *gensupport.MediaInfo
9624	ctx_       context.Context
9625	header_    http.Header
9626}
9627
9628// Insert: Starts a new asynchronous job. Requires the Can View project
9629// role.
9630//
9631// - projectId: Project ID of the project that will be billed for the
9632//   job.
9633func (r *JobsService) Insert(projectId string, job *Job) *JobsInsertCall {
9634	c := &JobsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9635	c.projectId = projectId
9636	c.job = job
9637	return c
9638}
9639
9640// Media specifies the media to upload in one or more chunks. The chunk
9641// size may be controlled by supplying a MediaOption generated by
9642// googleapi.ChunkSize. The chunk size defaults to
9643// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
9644// upload request will be determined by sniffing the contents of r,
9645// unless a MediaOption generated by googleapi.ContentType is
9646// supplied.
9647// At most one of Media and ResumableMedia may be set.
9648func (c *JobsInsertCall) Media(r io.Reader, options ...googleapi.MediaOption) *JobsInsertCall {
9649	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
9650	return c
9651}
9652
9653// ResumableMedia specifies the media to upload in chunks and can be
9654// canceled with ctx.
9655//
9656// Deprecated: use Media instead.
9657//
9658// At most one of Media and ResumableMedia may be set. mediaType
9659// identifies the MIME media type of the upload, such as "image/png". If
9660// mediaType is "", it will be auto-detected. The provided ctx will
9661// supersede any context previously provided to the Context method.
9662func (c *JobsInsertCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *JobsInsertCall {
9663	c.ctx_ = ctx
9664	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
9665	return c
9666}
9667
9668// ProgressUpdater provides a callback function that will be called
9669// after every chunk. It should be a low-latency function in order to
9670// not slow down the upload operation. This should only be called when
9671// using ResumableMedia (as opposed to Media).
9672func (c *JobsInsertCall) ProgressUpdater(pu googleapi.ProgressUpdater) *JobsInsertCall {
9673	c.mediaInfo_.SetProgressUpdater(pu)
9674	return c
9675}
9676
9677// Fields allows partial responses to be retrieved. See
9678// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9679// for more information.
9680func (c *JobsInsertCall) Fields(s ...googleapi.Field) *JobsInsertCall {
9681	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9682	return c
9683}
9684
9685// Context sets the context to be used in this call's Do method. Any
9686// pending HTTP request will be aborted if the provided context is
9687// canceled.
9688// This context will supersede any context previously provided to the
9689// ResumableMedia method.
9690func (c *JobsInsertCall) Context(ctx context.Context) *JobsInsertCall {
9691	c.ctx_ = ctx
9692	return c
9693}
9694
9695// Header returns an http.Header that can be modified by the caller to
9696// add HTTP headers to the request.
9697func (c *JobsInsertCall) Header() http.Header {
9698	if c.header_ == nil {
9699		c.header_ = make(http.Header)
9700	}
9701	return c.header_
9702}
9703
9704func (c *JobsInsertCall) doRequest(alt string) (*http.Response, error) {
9705	reqHeaders := make(http.Header)
9706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9707	for k, v := range c.header_ {
9708		reqHeaders[k] = v
9709	}
9710	reqHeaders.Set("User-Agent", c.s.userAgent())
9711	var body io.Reader = nil
9712	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
9713	if err != nil {
9714		return nil, err
9715	}
9716	reqHeaders.Set("Content-Type", "application/json")
9717	c.urlParams_.Set("alt", alt)
9718	c.urlParams_.Set("prettyPrint", "false")
9719	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/jobs")
9720	if c.mediaInfo_ != nil {
9721		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/bigquery/v2/projects/{projectId}/jobs")
9722		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
9723	}
9724	if body == nil {
9725		body = new(bytes.Buffer)
9726		reqHeaders.Set("Content-Type", "application/json")
9727	}
9728	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
9729	defer cleanup()
9730	urls += "?" + c.urlParams_.Encode()
9731	req, err := http.NewRequest("POST", urls, body)
9732	if err != nil {
9733		return nil, err
9734	}
9735	req.Header = reqHeaders
9736	req.GetBody = getBody
9737	googleapi.Expand(req.URL, map[string]string{
9738		"projectId": c.projectId,
9739	})
9740	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9741}
9742
9743// Do executes the "bigquery.jobs.insert" call.
9744// Exactly one of *Job or error will be non-nil. Any non-2xx status code
9745// is an error. Response headers are in either
9746// *Job.ServerResponse.Header or (if a response was returned at all) in
9747// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
9748// whether the returned error was because http.StatusNotModified was
9749// returned.
9750func (c *JobsInsertCall) Do(opts ...googleapi.CallOption) (*Job, error) {
9751	gensupport.SetOptions(c.urlParams_, opts...)
9752	res, err := c.doRequest("json")
9753	if res != nil && res.StatusCode == http.StatusNotModified {
9754		if res.Body != nil {
9755			res.Body.Close()
9756		}
9757		return nil, &googleapi.Error{
9758			Code:   res.StatusCode,
9759			Header: res.Header,
9760		}
9761	}
9762	if err != nil {
9763		return nil, err
9764	}
9765	defer googleapi.CloseBody(res)
9766	if err := googleapi.CheckResponse(res); err != nil {
9767		return nil, err
9768	}
9769	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
9770	if rx != nil {
9771		rx.Client = c.s.client
9772		rx.UserAgent = c.s.userAgent()
9773		ctx := c.ctx_
9774		if ctx == nil {
9775			ctx = context.TODO()
9776		}
9777		res, err = rx.Upload(ctx)
9778		if err != nil {
9779			return nil, err
9780		}
9781		defer res.Body.Close()
9782		if err := googleapi.CheckResponse(res); err != nil {
9783			return nil, err
9784		}
9785	}
9786	ret := &Job{
9787		ServerResponse: googleapi.ServerResponse{
9788			Header:         res.Header,
9789			HTTPStatusCode: res.StatusCode,
9790		},
9791	}
9792	target := &ret
9793	if err := gensupport.DecodeResponse(target, res); err != nil {
9794		return nil, err
9795	}
9796	return ret, nil
9797	// {
9798	//   "description": "Starts a new asynchronous job. Requires the Can View project role.",
9799	//   "httpMethod": "POST",
9800	//   "id": "bigquery.jobs.insert",
9801	//   "mediaUpload": {
9802	//     "accept": [
9803	//       "*/*"
9804	//     ],
9805	//     "protocols": {
9806	//       "resumable": {
9807	//         "multipart": true,
9808	//         "path": "/resumable/upload/bigquery/v2/projects/{projectId}/jobs"
9809	//       },
9810	//       "simple": {
9811	//         "multipart": true,
9812	//         "path": "/upload/bigquery/v2/projects/{projectId}/jobs"
9813	//       }
9814	//     }
9815	//   },
9816	//   "parameterOrder": [
9817	//     "projectId"
9818	//   ],
9819	//   "parameters": {
9820	//     "projectId": {
9821	//       "description": "Project ID of the project that will be billed for the job",
9822	//       "location": "path",
9823	//       "required": true,
9824	//       "type": "string"
9825	//     }
9826	//   },
9827	//   "path": "projects/{projectId}/jobs",
9828	//   "request": {
9829	//     "$ref": "Job"
9830	//   },
9831	//   "response": {
9832	//     "$ref": "Job"
9833	//   },
9834	//   "scopes": [
9835	//     "https://www.googleapis.com/auth/bigquery",
9836	//     "https://www.googleapis.com/auth/cloud-platform",
9837	//     "https://www.googleapis.com/auth/devstorage.full_control",
9838	//     "https://www.googleapis.com/auth/devstorage.read_only",
9839	//     "https://www.googleapis.com/auth/devstorage.read_write"
9840	//   ],
9841	//   "supportsMediaUpload": true
9842	// }
9843
9844}
9845
9846// method id "bigquery.jobs.list":
9847
9848type JobsListCall struct {
9849	s            *Service
9850	projectId    string
9851	urlParams_   gensupport.URLParams
9852	ifNoneMatch_ string
9853	ctx_         context.Context
9854	header_      http.Header
9855}
9856
9857// List: Lists all jobs that you started in the specified project. Job
9858// information is available for a six month period after creation. The
9859// job list is sorted in reverse chronological order, by job creation
9860// time. Requires the Can View project role, or the Is Owner project
9861// role if you set the allUsers property.
9862//
9863// - projectId: Project ID of the jobs to list.
9864func (r *JobsService) List(projectId string) *JobsListCall {
9865	c := &JobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9866	c.projectId = projectId
9867	return c
9868}
9869
9870// AllUsers sets the optional parameter "allUsers": Whether to display
9871// jobs owned by all users in the project. Default false
9872func (c *JobsListCall) AllUsers(allUsers bool) *JobsListCall {
9873	c.urlParams_.Set("allUsers", fmt.Sprint(allUsers))
9874	return c
9875}
9876
9877// MaxCreationTime sets the optional parameter "maxCreationTime": Max
9878// value for job creation time, in milliseconds since the POSIX epoch.
9879// If set, only jobs created before or at this timestamp are returned
9880func (c *JobsListCall) MaxCreationTime(maxCreationTime uint64) *JobsListCall {
9881	c.urlParams_.Set("maxCreationTime", fmt.Sprint(maxCreationTime))
9882	return c
9883}
9884
9885// MaxResults sets the optional parameter "maxResults": Maximum number
9886// of results to return
9887func (c *JobsListCall) MaxResults(maxResults int64) *JobsListCall {
9888	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
9889	return c
9890}
9891
9892// MinCreationTime sets the optional parameter "minCreationTime": Min
9893// value for job creation time, in milliseconds since the POSIX epoch.
9894// If set, only jobs created after or at this timestamp are returned
9895func (c *JobsListCall) MinCreationTime(minCreationTime uint64) *JobsListCall {
9896	c.urlParams_.Set("minCreationTime", fmt.Sprint(minCreationTime))
9897	return c
9898}
9899
9900// PageToken sets the optional parameter "pageToken": Page token,
9901// returned by a previous call, to request the next page of results
9902func (c *JobsListCall) PageToken(pageToken string) *JobsListCall {
9903	c.urlParams_.Set("pageToken", pageToken)
9904	return c
9905}
9906
9907// ParentJobId sets the optional parameter "parentJobId": If set,
9908// retrieves only jobs whose parent is this job. Otherwise, retrieves
9909// only jobs which have no parent
9910func (c *JobsListCall) ParentJobId(parentJobId string) *JobsListCall {
9911	c.urlParams_.Set("parentJobId", parentJobId)
9912	return c
9913}
9914
9915// Projection sets the optional parameter "projection": Restrict
9916// information returned to a set of selected fields
9917//
9918// Possible values:
9919//   "full" - Includes all job data
9920//   "minimal" - Does not include the job configuration
9921func (c *JobsListCall) Projection(projection string) *JobsListCall {
9922	c.urlParams_.Set("projection", projection)
9923	return c
9924}
9925
9926// StateFilter sets the optional parameter "stateFilter": Filter for job
9927// state
9928//
9929// Possible values:
9930//   "done" - Finished jobs
9931//   "pending" - Pending jobs
9932//   "running" - Running jobs
9933func (c *JobsListCall) StateFilter(stateFilter ...string) *JobsListCall {
9934	c.urlParams_.SetMulti("stateFilter", append([]string{}, stateFilter...))
9935	return c
9936}
9937
9938// Fields allows partial responses to be retrieved. See
9939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9940// for more information.
9941func (c *JobsListCall) Fields(s ...googleapi.Field) *JobsListCall {
9942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9943	return c
9944}
9945
9946// IfNoneMatch sets the optional parameter which makes the operation
9947// fail if the object's ETag matches the given value. This is useful for
9948// getting updates only after the object has changed since the last
9949// request. Use googleapi.IsNotModified to check whether the response
9950// error from Do is the result of In-None-Match.
9951func (c *JobsListCall) IfNoneMatch(entityTag string) *JobsListCall {
9952	c.ifNoneMatch_ = entityTag
9953	return c
9954}
9955
9956// Context sets the context to be used in this call's Do method. Any
9957// pending HTTP request will be aborted if the provided context is
9958// canceled.
9959func (c *JobsListCall) Context(ctx context.Context) *JobsListCall {
9960	c.ctx_ = ctx
9961	return c
9962}
9963
9964// Header returns an http.Header that can be modified by the caller to
9965// add HTTP headers to the request.
9966func (c *JobsListCall) Header() http.Header {
9967	if c.header_ == nil {
9968		c.header_ = make(http.Header)
9969	}
9970	return c.header_
9971}
9972
9973func (c *JobsListCall) doRequest(alt string) (*http.Response, error) {
9974	reqHeaders := make(http.Header)
9975	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9976	for k, v := range c.header_ {
9977		reqHeaders[k] = v
9978	}
9979	reqHeaders.Set("User-Agent", c.s.userAgent())
9980	if c.ifNoneMatch_ != "" {
9981		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9982	}
9983	var body io.Reader = nil
9984	c.urlParams_.Set("alt", alt)
9985	c.urlParams_.Set("prettyPrint", "false")
9986	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/jobs")
9987	urls += "?" + c.urlParams_.Encode()
9988	req, err := http.NewRequest("GET", urls, body)
9989	if err != nil {
9990		return nil, err
9991	}
9992	req.Header = reqHeaders
9993	googleapi.Expand(req.URL, map[string]string{
9994		"projectId": c.projectId,
9995	})
9996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9997}
9998
9999// Do executes the "bigquery.jobs.list" call.
10000// Exactly one of *JobList or error will be non-nil. Any non-2xx status
10001// code is an error. Response headers are in either
10002// *JobList.ServerResponse.Header or (if a response was returned at all)
10003// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
10004// check whether the returned error was because http.StatusNotModified
10005// was returned.
10006func (c *JobsListCall) Do(opts ...googleapi.CallOption) (*JobList, error) {
10007	gensupport.SetOptions(c.urlParams_, opts...)
10008	res, err := c.doRequest("json")
10009	if res != nil && res.StatusCode == http.StatusNotModified {
10010		if res.Body != nil {
10011			res.Body.Close()
10012		}
10013		return nil, &googleapi.Error{
10014			Code:   res.StatusCode,
10015			Header: res.Header,
10016		}
10017	}
10018	if err != nil {
10019		return nil, err
10020	}
10021	defer googleapi.CloseBody(res)
10022	if err := googleapi.CheckResponse(res); err != nil {
10023		return nil, err
10024	}
10025	ret := &JobList{
10026		ServerResponse: googleapi.ServerResponse{
10027			Header:         res.Header,
10028			HTTPStatusCode: res.StatusCode,
10029		},
10030	}
10031	target := &ret
10032	if err := gensupport.DecodeResponse(target, res); err != nil {
10033		return nil, err
10034	}
10035	return ret, nil
10036	// {
10037	//   "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.",
10038	//   "httpMethod": "GET",
10039	//   "id": "bigquery.jobs.list",
10040	//   "parameterOrder": [
10041	//     "projectId"
10042	//   ],
10043	//   "parameters": {
10044	//     "allUsers": {
10045	//       "description": "Whether to display jobs owned by all users in the project. Default false",
10046	//       "location": "query",
10047	//       "type": "boolean"
10048	//     },
10049	//     "maxCreationTime": {
10050	//       "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",
10051	//       "format": "uint64",
10052	//       "location": "query",
10053	//       "type": "string"
10054	//     },
10055	//     "maxResults": {
10056	//       "description": "Maximum number of results to return",
10057	//       "format": "uint32",
10058	//       "location": "query",
10059	//       "type": "integer"
10060	//     },
10061	//     "minCreationTime": {
10062	//       "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",
10063	//       "format": "uint64",
10064	//       "location": "query",
10065	//       "type": "string"
10066	//     },
10067	//     "pageToken": {
10068	//       "description": "Page token, returned by a previous call, to request the next page of results",
10069	//       "location": "query",
10070	//       "type": "string"
10071	//     },
10072	//     "parentJobId": {
10073	//       "description": "If set, retrieves only jobs whose parent is this job. Otherwise, retrieves only jobs which have no parent",
10074	//       "location": "query",
10075	//       "type": "string"
10076	//     },
10077	//     "projectId": {
10078	//       "description": "Project ID of the jobs to list",
10079	//       "location": "path",
10080	//       "required": true,
10081	//       "type": "string"
10082	//     },
10083	//     "projection": {
10084	//       "description": "Restrict information returned to a set of selected fields",
10085	//       "enum": [
10086	//         "full",
10087	//         "minimal"
10088	//       ],
10089	//       "enumDescriptions": [
10090	//         "Includes all job data",
10091	//         "Does not include the job configuration"
10092	//       ],
10093	//       "location": "query",
10094	//       "type": "string"
10095	//     },
10096	//     "stateFilter": {
10097	//       "description": "Filter for job state",
10098	//       "enum": [
10099	//         "done",
10100	//         "pending",
10101	//         "running"
10102	//       ],
10103	//       "enumDescriptions": [
10104	//         "Finished jobs",
10105	//         "Pending jobs",
10106	//         "Running jobs"
10107	//       ],
10108	//       "location": "query",
10109	//       "repeated": true,
10110	//       "type": "string"
10111	//     }
10112	//   },
10113	//   "path": "projects/{projectId}/jobs",
10114	//   "response": {
10115	//     "$ref": "JobList"
10116	//   },
10117	//   "scopes": [
10118	//     "https://www.googleapis.com/auth/bigquery",
10119	//     "https://www.googleapis.com/auth/cloud-platform",
10120	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
10121	//   ]
10122	// }
10123
10124}
10125
10126// Pages invokes f for each page of results.
10127// A non-nil error returned from f will halt the iteration.
10128// The provided context supersedes any context provided to the Context method.
10129func (c *JobsListCall) Pages(ctx context.Context, f func(*JobList) error) error {
10130	c.ctx_ = ctx
10131	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
10132	for {
10133		x, err := c.Do()
10134		if err != nil {
10135			return err
10136		}
10137		if err := f(x); err != nil {
10138			return err
10139		}
10140		if x.NextPageToken == "" {
10141			return nil
10142		}
10143		c.PageToken(x.NextPageToken)
10144	}
10145}
10146
10147// method id "bigquery.jobs.query":
10148
10149type JobsQueryCall struct {
10150	s            *Service
10151	projectId    string
10152	queryrequest *QueryRequest
10153	urlParams_   gensupport.URLParams
10154	ctx_         context.Context
10155	header_      http.Header
10156}
10157
10158// Query: Runs a BigQuery SQL query synchronously and returns query
10159// results if the query completes within a specified timeout.
10160//
10161// - projectId: Project ID of the project billed for the query.
10162func (r *JobsService) Query(projectId string, queryrequest *QueryRequest) *JobsQueryCall {
10163	c := &JobsQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10164	c.projectId = projectId
10165	c.queryrequest = queryrequest
10166	return c
10167}
10168
10169// Fields allows partial responses to be retrieved. See
10170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10171// for more information.
10172func (c *JobsQueryCall) Fields(s ...googleapi.Field) *JobsQueryCall {
10173	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10174	return c
10175}
10176
10177// Context sets the context to be used in this call's Do method. Any
10178// pending HTTP request will be aborted if the provided context is
10179// canceled.
10180func (c *JobsQueryCall) Context(ctx context.Context) *JobsQueryCall {
10181	c.ctx_ = ctx
10182	return c
10183}
10184
10185// Header returns an http.Header that can be modified by the caller to
10186// add HTTP headers to the request.
10187func (c *JobsQueryCall) Header() http.Header {
10188	if c.header_ == nil {
10189		c.header_ = make(http.Header)
10190	}
10191	return c.header_
10192}
10193
10194func (c *JobsQueryCall) doRequest(alt string) (*http.Response, error) {
10195	reqHeaders := make(http.Header)
10196	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10197	for k, v := range c.header_ {
10198		reqHeaders[k] = v
10199	}
10200	reqHeaders.Set("User-Agent", c.s.userAgent())
10201	var body io.Reader = nil
10202	body, err := googleapi.WithoutDataWrapper.JSONReader(c.queryrequest)
10203	if err != nil {
10204		return nil, err
10205	}
10206	reqHeaders.Set("Content-Type", "application/json")
10207	c.urlParams_.Set("alt", alt)
10208	c.urlParams_.Set("prettyPrint", "false")
10209	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/queries")
10210	urls += "?" + c.urlParams_.Encode()
10211	req, err := http.NewRequest("POST", urls, body)
10212	if err != nil {
10213		return nil, err
10214	}
10215	req.Header = reqHeaders
10216	googleapi.Expand(req.URL, map[string]string{
10217		"projectId": c.projectId,
10218	})
10219	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10220}
10221
10222// Do executes the "bigquery.jobs.query" call.
10223// Exactly one of *QueryResponse or error will be non-nil. Any non-2xx
10224// status code is an error. Response headers are in either
10225// *QueryResponse.ServerResponse.Header or (if a response was returned
10226// at all) in error.(*googleapi.Error).Header. Use
10227// googleapi.IsNotModified to check whether the returned error was
10228// because http.StatusNotModified was returned.
10229func (c *JobsQueryCall) Do(opts ...googleapi.CallOption) (*QueryResponse, error) {
10230	gensupport.SetOptions(c.urlParams_, opts...)
10231	res, err := c.doRequest("json")
10232	if res != nil && res.StatusCode == http.StatusNotModified {
10233		if res.Body != nil {
10234			res.Body.Close()
10235		}
10236		return nil, &googleapi.Error{
10237			Code:   res.StatusCode,
10238			Header: res.Header,
10239		}
10240	}
10241	if err != nil {
10242		return nil, err
10243	}
10244	defer googleapi.CloseBody(res)
10245	if err := googleapi.CheckResponse(res); err != nil {
10246		return nil, err
10247	}
10248	ret := &QueryResponse{
10249		ServerResponse: googleapi.ServerResponse{
10250			Header:         res.Header,
10251			HTTPStatusCode: res.StatusCode,
10252		},
10253	}
10254	target := &ret
10255	if err := gensupport.DecodeResponse(target, res); err != nil {
10256		return nil, err
10257	}
10258	return ret, nil
10259	// {
10260	//   "description": "Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.",
10261	//   "httpMethod": "POST",
10262	//   "id": "bigquery.jobs.query",
10263	//   "parameterOrder": [
10264	//     "projectId"
10265	//   ],
10266	//   "parameters": {
10267	//     "projectId": {
10268	//       "description": "Project ID of the project billed for the query",
10269	//       "location": "path",
10270	//       "required": true,
10271	//       "type": "string"
10272	//     }
10273	//   },
10274	//   "path": "projects/{projectId}/queries",
10275	//   "request": {
10276	//     "$ref": "QueryRequest"
10277	//   },
10278	//   "response": {
10279	//     "$ref": "QueryResponse"
10280	//   },
10281	//   "scopes": [
10282	//     "https://www.googleapis.com/auth/bigquery",
10283	//     "https://www.googleapis.com/auth/cloud-platform",
10284	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
10285	//   ]
10286	// }
10287
10288}
10289
10290// method id "bigquery.models.delete":
10291
10292type ModelsDeleteCall struct {
10293	s          *Service
10294	projectId  string
10295	datasetId  string
10296	modelId    string
10297	urlParams_ gensupport.URLParams
10298	ctx_       context.Context
10299	header_    http.Header
10300}
10301
10302// Delete: Deletes the model specified by modelId from the dataset.
10303//
10304// - datasetId: Dataset ID of the model to delete.
10305// - modelId: Model ID of the model to delete.
10306// - projectId: Project ID of the model to delete.
10307func (r *ModelsService) Delete(projectId string, datasetId string, modelId string) *ModelsDeleteCall {
10308	c := &ModelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10309	c.projectId = projectId
10310	c.datasetId = datasetId
10311	c.modelId = modelId
10312	return c
10313}
10314
10315// Fields allows partial responses to be retrieved. See
10316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10317// for more information.
10318func (c *ModelsDeleteCall) Fields(s ...googleapi.Field) *ModelsDeleteCall {
10319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10320	return c
10321}
10322
10323// Context sets the context to be used in this call's Do method. Any
10324// pending HTTP request will be aborted if the provided context is
10325// canceled.
10326func (c *ModelsDeleteCall) Context(ctx context.Context) *ModelsDeleteCall {
10327	c.ctx_ = ctx
10328	return c
10329}
10330
10331// Header returns an http.Header that can be modified by the caller to
10332// add HTTP headers to the request.
10333func (c *ModelsDeleteCall) Header() http.Header {
10334	if c.header_ == nil {
10335		c.header_ = make(http.Header)
10336	}
10337	return c.header_
10338}
10339
10340func (c *ModelsDeleteCall) doRequest(alt string) (*http.Response, error) {
10341	reqHeaders := make(http.Header)
10342	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10343	for k, v := range c.header_ {
10344		reqHeaders[k] = v
10345	}
10346	reqHeaders.Set("User-Agent", c.s.userAgent())
10347	var body io.Reader = nil
10348	c.urlParams_.Set("alt", alt)
10349	c.urlParams_.Set("prettyPrint", "false")
10350	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}")
10351	urls += "?" + c.urlParams_.Encode()
10352	req, err := http.NewRequest("DELETE", urls, body)
10353	if err != nil {
10354		return nil, err
10355	}
10356	req.Header = reqHeaders
10357	googleapi.Expand(req.URL, map[string]string{
10358		"projectId": c.projectId,
10359		"datasetId": c.datasetId,
10360		"modelId":   c.modelId,
10361	})
10362	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10363}
10364
10365// Do executes the "bigquery.models.delete" call.
10366func (c *ModelsDeleteCall) Do(opts ...googleapi.CallOption) error {
10367	gensupport.SetOptions(c.urlParams_, opts...)
10368	res, err := c.doRequest("json")
10369	if err != nil {
10370		return err
10371	}
10372	defer googleapi.CloseBody(res)
10373	if err := googleapi.CheckResponse(res); err != nil {
10374		return err
10375	}
10376	return nil
10377	// {
10378	//   "description": "Deletes the model specified by modelId from the dataset.",
10379	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/models/{modelsId}",
10380	//   "httpMethod": "DELETE",
10381	//   "id": "bigquery.models.delete",
10382	//   "parameterOrder": [
10383	//     "projectId",
10384	//     "datasetId",
10385	//     "modelId"
10386	//   ],
10387	//   "parameters": {
10388	//     "datasetId": {
10389	//       "description": "Required. Dataset ID of the model to delete.",
10390	//       "location": "path",
10391	//       "pattern": "^[^/]+$",
10392	//       "required": true,
10393	//       "type": "string"
10394	//     },
10395	//     "modelId": {
10396	//       "description": "Required. Model ID of the model to delete.",
10397	//       "location": "path",
10398	//       "pattern": "^[^/]+$",
10399	//       "required": true,
10400	//       "type": "string"
10401	//     },
10402	//     "projectId": {
10403	//       "description": "Required. Project ID of the model to delete.",
10404	//       "location": "path",
10405	//       "pattern": "^[^/]+$",
10406	//       "required": true,
10407	//       "type": "string"
10408	//     }
10409	//   },
10410	//   "path": "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}",
10411	//   "scopes": [
10412	//     "https://www.googleapis.com/auth/bigquery",
10413	//     "https://www.googleapis.com/auth/cloud-platform"
10414	//   ]
10415	// }
10416
10417}
10418
10419// method id "bigquery.models.get":
10420
10421type ModelsGetCall struct {
10422	s            *Service
10423	projectId    string
10424	datasetId    string
10425	modelId      string
10426	urlParams_   gensupport.URLParams
10427	ifNoneMatch_ string
10428	ctx_         context.Context
10429	header_      http.Header
10430}
10431
10432// Get: Gets the specified model resource by model ID.
10433//
10434// - datasetId: Dataset ID of the requested model.
10435// - modelId: Model ID of the requested model.
10436// - projectId: Project ID of the requested model.
10437func (r *ModelsService) Get(projectId string, datasetId string, modelId string) *ModelsGetCall {
10438	c := &ModelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10439	c.projectId = projectId
10440	c.datasetId = datasetId
10441	c.modelId = modelId
10442	return c
10443}
10444
10445// Fields allows partial responses to be retrieved. See
10446// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10447// for more information.
10448func (c *ModelsGetCall) Fields(s ...googleapi.Field) *ModelsGetCall {
10449	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10450	return c
10451}
10452
10453// IfNoneMatch sets the optional parameter which makes the operation
10454// fail if the object's ETag matches the given value. This is useful for
10455// getting updates only after the object has changed since the last
10456// request. Use googleapi.IsNotModified to check whether the response
10457// error from Do is the result of In-None-Match.
10458func (c *ModelsGetCall) IfNoneMatch(entityTag string) *ModelsGetCall {
10459	c.ifNoneMatch_ = entityTag
10460	return c
10461}
10462
10463// Context sets the context to be used in this call's Do method. Any
10464// pending HTTP request will be aborted if the provided context is
10465// canceled.
10466func (c *ModelsGetCall) Context(ctx context.Context) *ModelsGetCall {
10467	c.ctx_ = ctx
10468	return c
10469}
10470
10471// Header returns an http.Header that can be modified by the caller to
10472// add HTTP headers to the request.
10473func (c *ModelsGetCall) Header() http.Header {
10474	if c.header_ == nil {
10475		c.header_ = make(http.Header)
10476	}
10477	return c.header_
10478}
10479
10480func (c *ModelsGetCall) doRequest(alt string) (*http.Response, error) {
10481	reqHeaders := make(http.Header)
10482	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10483	for k, v := range c.header_ {
10484		reqHeaders[k] = v
10485	}
10486	reqHeaders.Set("User-Agent", c.s.userAgent())
10487	if c.ifNoneMatch_ != "" {
10488		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10489	}
10490	var body io.Reader = nil
10491	c.urlParams_.Set("alt", alt)
10492	c.urlParams_.Set("prettyPrint", "false")
10493	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}")
10494	urls += "?" + c.urlParams_.Encode()
10495	req, err := http.NewRequest("GET", urls, body)
10496	if err != nil {
10497		return nil, err
10498	}
10499	req.Header = reqHeaders
10500	googleapi.Expand(req.URL, map[string]string{
10501		"projectId": c.projectId,
10502		"datasetId": c.datasetId,
10503		"modelId":   c.modelId,
10504	})
10505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10506}
10507
10508// Do executes the "bigquery.models.get" call.
10509// Exactly one of *Model or error will be non-nil. Any non-2xx status
10510// code is an error. Response headers are in either
10511// *Model.ServerResponse.Header or (if a response was returned at all)
10512// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
10513// check whether the returned error was because http.StatusNotModified
10514// was returned.
10515func (c *ModelsGetCall) Do(opts ...googleapi.CallOption) (*Model, error) {
10516	gensupport.SetOptions(c.urlParams_, opts...)
10517	res, err := c.doRequest("json")
10518	if res != nil && res.StatusCode == http.StatusNotModified {
10519		if res.Body != nil {
10520			res.Body.Close()
10521		}
10522		return nil, &googleapi.Error{
10523			Code:   res.StatusCode,
10524			Header: res.Header,
10525		}
10526	}
10527	if err != nil {
10528		return nil, err
10529	}
10530	defer googleapi.CloseBody(res)
10531	if err := googleapi.CheckResponse(res); err != nil {
10532		return nil, err
10533	}
10534	ret := &Model{
10535		ServerResponse: googleapi.ServerResponse{
10536			Header:         res.Header,
10537			HTTPStatusCode: res.StatusCode,
10538		},
10539	}
10540	target := &ret
10541	if err := gensupport.DecodeResponse(target, res); err != nil {
10542		return nil, err
10543	}
10544	return ret, nil
10545	// {
10546	//   "description": "Gets the specified model resource by model ID.",
10547	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/models/{modelsId}",
10548	//   "httpMethod": "GET",
10549	//   "id": "bigquery.models.get",
10550	//   "parameterOrder": [
10551	//     "projectId",
10552	//     "datasetId",
10553	//     "modelId"
10554	//   ],
10555	//   "parameters": {
10556	//     "datasetId": {
10557	//       "description": "Required. Dataset ID of the requested model.",
10558	//       "location": "path",
10559	//       "pattern": "^[^/]+$",
10560	//       "required": true,
10561	//       "type": "string"
10562	//     },
10563	//     "modelId": {
10564	//       "description": "Required. Model ID of the requested model.",
10565	//       "location": "path",
10566	//       "pattern": "^[^/]+$",
10567	//       "required": true,
10568	//       "type": "string"
10569	//     },
10570	//     "projectId": {
10571	//       "description": "Required. Project ID of the requested model.",
10572	//       "location": "path",
10573	//       "pattern": "^[^/]+$",
10574	//       "required": true,
10575	//       "type": "string"
10576	//     }
10577	//   },
10578	//   "path": "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}",
10579	//   "response": {
10580	//     "$ref": "Model"
10581	//   },
10582	//   "scopes": [
10583	//     "https://www.googleapis.com/auth/bigquery",
10584	//     "https://www.googleapis.com/auth/bigquery.readonly",
10585	//     "https://www.googleapis.com/auth/cloud-platform",
10586	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
10587	//   ]
10588	// }
10589
10590}
10591
10592// method id "bigquery.models.list":
10593
10594type ModelsListCall struct {
10595	s            *Service
10596	projectId    string
10597	datasetId    string
10598	urlParams_   gensupport.URLParams
10599	ifNoneMatch_ string
10600	ctx_         context.Context
10601	header_      http.Header
10602}
10603
10604// List: Lists all models in the specified dataset. Requires the READER
10605// dataset role.
10606//
10607// - datasetId: Dataset ID of the models to list.
10608// - projectId: Project ID of the models to list.
10609func (r *ModelsService) List(projectId string, datasetId string) *ModelsListCall {
10610	c := &ModelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10611	c.projectId = projectId
10612	c.datasetId = datasetId
10613	return c
10614}
10615
10616// MaxResults sets the optional parameter "maxResults": The maximum
10617// number of results to return in a single response page. Leverage the
10618// page tokens to iterate through the entire collection.
10619func (c *ModelsListCall) MaxResults(maxResults int64) *ModelsListCall {
10620	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
10621	return c
10622}
10623
10624// PageToken sets the optional parameter "pageToken": Page token,
10625// returned by a previous call to request the next page of results
10626func (c *ModelsListCall) PageToken(pageToken string) *ModelsListCall {
10627	c.urlParams_.Set("pageToken", pageToken)
10628	return c
10629}
10630
10631// Fields allows partial responses to be retrieved. See
10632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10633// for more information.
10634func (c *ModelsListCall) Fields(s ...googleapi.Field) *ModelsListCall {
10635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10636	return c
10637}
10638
10639// IfNoneMatch sets the optional parameter which makes the operation
10640// fail if the object's ETag matches the given value. This is useful for
10641// getting updates only after the object has changed since the last
10642// request. Use googleapi.IsNotModified to check whether the response
10643// error from Do is the result of In-None-Match.
10644func (c *ModelsListCall) IfNoneMatch(entityTag string) *ModelsListCall {
10645	c.ifNoneMatch_ = entityTag
10646	return c
10647}
10648
10649// Context sets the context to be used in this call's Do method. Any
10650// pending HTTP request will be aborted if the provided context is
10651// canceled.
10652func (c *ModelsListCall) Context(ctx context.Context) *ModelsListCall {
10653	c.ctx_ = ctx
10654	return c
10655}
10656
10657// Header returns an http.Header that can be modified by the caller to
10658// add HTTP headers to the request.
10659func (c *ModelsListCall) Header() http.Header {
10660	if c.header_ == nil {
10661		c.header_ = make(http.Header)
10662	}
10663	return c.header_
10664}
10665
10666func (c *ModelsListCall) doRequest(alt string) (*http.Response, error) {
10667	reqHeaders := make(http.Header)
10668	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10669	for k, v := range c.header_ {
10670		reqHeaders[k] = v
10671	}
10672	reqHeaders.Set("User-Agent", c.s.userAgent())
10673	if c.ifNoneMatch_ != "" {
10674		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10675	}
10676	var body io.Reader = nil
10677	c.urlParams_.Set("alt", alt)
10678	c.urlParams_.Set("prettyPrint", "false")
10679	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/models")
10680	urls += "?" + c.urlParams_.Encode()
10681	req, err := http.NewRequest("GET", urls, body)
10682	if err != nil {
10683		return nil, err
10684	}
10685	req.Header = reqHeaders
10686	googleapi.Expand(req.URL, map[string]string{
10687		"projectId": c.projectId,
10688		"datasetId": c.datasetId,
10689	})
10690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10691}
10692
10693// Do executes the "bigquery.models.list" call.
10694// Exactly one of *ListModelsResponse or error will be non-nil. Any
10695// non-2xx status code is an error. Response headers are in either
10696// *ListModelsResponse.ServerResponse.Header or (if a response was
10697// returned at all) in error.(*googleapi.Error).Header. Use
10698// googleapi.IsNotModified to check whether the returned error was
10699// because http.StatusNotModified was returned.
10700func (c *ModelsListCall) Do(opts ...googleapi.CallOption) (*ListModelsResponse, error) {
10701	gensupport.SetOptions(c.urlParams_, opts...)
10702	res, err := c.doRequest("json")
10703	if res != nil && res.StatusCode == http.StatusNotModified {
10704		if res.Body != nil {
10705			res.Body.Close()
10706		}
10707		return nil, &googleapi.Error{
10708			Code:   res.StatusCode,
10709			Header: res.Header,
10710		}
10711	}
10712	if err != nil {
10713		return nil, err
10714	}
10715	defer googleapi.CloseBody(res)
10716	if err := googleapi.CheckResponse(res); err != nil {
10717		return nil, err
10718	}
10719	ret := &ListModelsResponse{
10720		ServerResponse: googleapi.ServerResponse{
10721			Header:         res.Header,
10722			HTTPStatusCode: res.StatusCode,
10723		},
10724	}
10725	target := &ret
10726	if err := gensupport.DecodeResponse(target, res); err != nil {
10727		return nil, err
10728	}
10729	return ret, nil
10730	// {
10731	//   "description": "Lists all models in the specified dataset. Requires the READER dataset role.",
10732	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/models",
10733	//   "httpMethod": "GET",
10734	//   "id": "bigquery.models.list",
10735	//   "parameterOrder": [
10736	//     "projectId",
10737	//     "datasetId"
10738	//   ],
10739	//   "parameters": {
10740	//     "datasetId": {
10741	//       "description": "Required. Dataset ID of the models to list.",
10742	//       "location": "path",
10743	//       "pattern": "^[^/]+$",
10744	//       "required": true,
10745	//       "type": "string"
10746	//     },
10747	//     "maxResults": {
10748	//       "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.",
10749	//       "format": "uint32",
10750	//       "location": "query",
10751	//       "type": "integer"
10752	//     },
10753	//     "pageToken": {
10754	//       "description": "Page token, returned by a previous call to request the next page of results",
10755	//       "location": "query",
10756	//       "type": "string"
10757	//     },
10758	//     "projectId": {
10759	//       "description": "Required. Project ID of the models to list.",
10760	//       "location": "path",
10761	//       "pattern": "^[^/]+$",
10762	//       "required": true,
10763	//       "type": "string"
10764	//     }
10765	//   },
10766	//   "path": "projects/{+projectId}/datasets/{+datasetId}/models",
10767	//   "response": {
10768	//     "$ref": "ListModelsResponse"
10769	//   },
10770	//   "scopes": [
10771	//     "https://www.googleapis.com/auth/bigquery",
10772	//     "https://www.googleapis.com/auth/bigquery.readonly",
10773	//     "https://www.googleapis.com/auth/cloud-platform",
10774	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
10775	//   ]
10776	// }
10777
10778}
10779
10780// Pages invokes f for each page of results.
10781// A non-nil error returned from f will halt the iteration.
10782// The provided context supersedes any context provided to the Context method.
10783func (c *ModelsListCall) Pages(ctx context.Context, f func(*ListModelsResponse) error) error {
10784	c.ctx_ = ctx
10785	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
10786	for {
10787		x, err := c.Do()
10788		if err != nil {
10789			return err
10790		}
10791		if err := f(x); err != nil {
10792			return err
10793		}
10794		if x.NextPageToken == "" {
10795			return nil
10796		}
10797		c.PageToken(x.NextPageToken)
10798	}
10799}
10800
10801// method id "bigquery.models.patch":
10802
10803type ModelsPatchCall struct {
10804	s          *Service
10805	projectId  string
10806	datasetId  string
10807	modelId    string
10808	model      *Model
10809	urlParams_ gensupport.URLParams
10810	ctx_       context.Context
10811	header_    http.Header
10812}
10813
10814// Patch: Patch specific fields in the specified model.
10815//
10816// - datasetId: Dataset ID of the model to patch.
10817// - modelId: Model ID of the model to patch.
10818// - projectId: Project ID of the model to patch.
10819func (r *ModelsService) Patch(projectId string, datasetId string, modelId string, model *Model) *ModelsPatchCall {
10820	c := &ModelsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10821	c.projectId = projectId
10822	c.datasetId = datasetId
10823	c.modelId = modelId
10824	c.model = model
10825	return c
10826}
10827
10828// Fields allows partial responses to be retrieved. See
10829// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10830// for more information.
10831func (c *ModelsPatchCall) Fields(s ...googleapi.Field) *ModelsPatchCall {
10832	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10833	return c
10834}
10835
10836// Context sets the context to be used in this call's Do method. Any
10837// pending HTTP request will be aborted if the provided context is
10838// canceled.
10839func (c *ModelsPatchCall) Context(ctx context.Context) *ModelsPatchCall {
10840	c.ctx_ = ctx
10841	return c
10842}
10843
10844// Header returns an http.Header that can be modified by the caller to
10845// add HTTP headers to the request.
10846func (c *ModelsPatchCall) Header() http.Header {
10847	if c.header_ == nil {
10848		c.header_ = make(http.Header)
10849	}
10850	return c.header_
10851}
10852
10853func (c *ModelsPatchCall) doRequest(alt string) (*http.Response, error) {
10854	reqHeaders := make(http.Header)
10855	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10856	for k, v := range c.header_ {
10857		reqHeaders[k] = v
10858	}
10859	reqHeaders.Set("User-Agent", c.s.userAgent())
10860	var body io.Reader = nil
10861	body, err := googleapi.WithoutDataWrapper.JSONReader(c.model)
10862	if err != nil {
10863		return nil, err
10864	}
10865	reqHeaders.Set("Content-Type", "application/json")
10866	c.urlParams_.Set("alt", alt)
10867	c.urlParams_.Set("prettyPrint", "false")
10868	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}")
10869	urls += "?" + c.urlParams_.Encode()
10870	req, err := http.NewRequest("PATCH", urls, body)
10871	if err != nil {
10872		return nil, err
10873	}
10874	req.Header = reqHeaders
10875	googleapi.Expand(req.URL, map[string]string{
10876		"projectId": c.projectId,
10877		"datasetId": c.datasetId,
10878		"modelId":   c.modelId,
10879	})
10880	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10881}
10882
10883// Do executes the "bigquery.models.patch" call.
10884// Exactly one of *Model or error will be non-nil. Any non-2xx status
10885// code is an error. Response headers are in either
10886// *Model.ServerResponse.Header or (if a response was returned at all)
10887// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
10888// check whether the returned error was because http.StatusNotModified
10889// was returned.
10890func (c *ModelsPatchCall) Do(opts ...googleapi.CallOption) (*Model, error) {
10891	gensupport.SetOptions(c.urlParams_, opts...)
10892	res, err := c.doRequest("json")
10893	if res != nil && res.StatusCode == http.StatusNotModified {
10894		if res.Body != nil {
10895			res.Body.Close()
10896		}
10897		return nil, &googleapi.Error{
10898			Code:   res.StatusCode,
10899			Header: res.Header,
10900		}
10901	}
10902	if err != nil {
10903		return nil, err
10904	}
10905	defer googleapi.CloseBody(res)
10906	if err := googleapi.CheckResponse(res); err != nil {
10907		return nil, err
10908	}
10909	ret := &Model{
10910		ServerResponse: googleapi.ServerResponse{
10911			Header:         res.Header,
10912			HTTPStatusCode: res.StatusCode,
10913		},
10914	}
10915	target := &ret
10916	if err := gensupport.DecodeResponse(target, res); err != nil {
10917		return nil, err
10918	}
10919	return ret, nil
10920	// {
10921	//   "description": "Patch specific fields in the specified model.",
10922	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/models/{modelsId}",
10923	//   "httpMethod": "PATCH",
10924	//   "id": "bigquery.models.patch",
10925	//   "parameterOrder": [
10926	//     "projectId",
10927	//     "datasetId",
10928	//     "modelId"
10929	//   ],
10930	//   "parameters": {
10931	//     "datasetId": {
10932	//       "description": "Required. Dataset ID of the model to patch.",
10933	//       "location": "path",
10934	//       "pattern": "^[^/]+$",
10935	//       "required": true,
10936	//       "type": "string"
10937	//     },
10938	//     "modelId": {
10939	//       "description": "Required. Model ID of the model to patch.",
10940	//       "location": "path",
10941	//       "pattern": "^[^/]+$",
10942	//       "required": true,
10943	//       "type": "string"
10944	//     },
10945	//     "projectId": {
10946	//       "description": "Required. Project ID of the model to patch.",
10947	//       "location": "path",
10948	//       "pattern": "^[^/]+$",
10949	//       "required": true,
10950	//       "type": "string"
10951	//     }
10952	//   },
10953	//   "path": "projects/{+projectId}/datasets/{+datasetId}/models/{+modelId}",
10954	//   "request": {
10955	//     "$ref": "Model"
10956	//   },
10957	//   "response": {
10958	//     "$ref": "Model"
10959	//   },
10960	//   "scopes": [
10961	//     "https://www.googleapis.com/auth/bigquery",
10962	//     "https://www.googleapis.com/auth/cloud-platform"
10963	//   ]
10964	// }
10965
10966}
10967
10968// method id "bigquery.projects.getServiceAccount":
10969
10970type ProjectsGetServiceAccountCall struct {
10971	s            *Service
10972	projectId    string
10973	urlParams_   gensupport.URLParams
10974	ifNoneMatch_ string
10975	ctx_         context.Context
10976	header_      http.Header
10977}
10978
10979// GetServiceAccount: Returns the email address of the service account
10980// for your project used for interactions with Google Cloud KMS.
10981//
10982// - projectId: Project ID for which the service account is requested.
10983func (r *ProjectsService) GetServiceAccount(projectId string) *ProjectsGetServiceAccountCall {
10984	c := &ProjectsGetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10985	c.projectId = projectId
10986	return c
10987}
10988
10989// Fields allows partial responses to be retrieved. See
10990// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10991// for more information.
10992func (c *ProjectsGetServiceAccountCall) Fields(s ...googleapi.Field) *ProjectsGetServiceAccountCall {
10993	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10994	return c
10995}
10996
10997// IfNoneMatch sets the optional parameter which makes the operation
10998// fail if the object's ETag matches the given value. This is useful for
10999// getting updates only after the object has changed since the last
11000// request. Use googleapi.IsNotModified to check whether the response
11001// error from Do is the result of In-None-Match.
11002func (c *ProjectsGetServiceAccountCall) IfNoneMatch(entityTag string) *ProjectsGetServiceAccountCall {
11003	c.ifNoneMatch_ = entityTag
11004	return c
11005}
11006
11007// Context sets the context to be used in this call's Do method. Any
11008// pending HTTP request will be aborted if the provided context is
11009// canceled.
11010func (c *ProjectsGetServiceAccountCall) Context(ctx context.Context) *ProjectsGetServiceAccountCall {
11011	c.ctx_ = ctx
11012	return c
11013}
11014
11015// Header returns an http.Header that can be modified by the caller to
11016// add HTTP headers to the request.
11017func (c *ProjectsGetServiceAccountCall) Header() http.Header {
11018	if c.header_ == nil {
11019		c.header_ = make(http.Header)
11020	}
11021	return c.header_
11022}
11023
11024func (c *ProjectsGetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
11025	reqHeaders := make(http.Header)
11026	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11027	for k, v := range c.header_ {
11028		reqHeaders[k] = v
11029	}
11030	reqHeaders.Set("User-Agent", c.s.userAgent())
11031	if c.ifNoneMatch_ != "" {
11032		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11033	}
11034	var body io.Reader = nil
11035	c.urlParams_.Set("alt", alt)
11036	c.urlParams_.Set("prettyPrint", "false")
11037	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/serviceAccount")
11038	urls += "?" + c.urlParams_.Encode()
11039	req, err := http.NewRequest("GET", urls, body)
11040	if err != nil {
11041		return nil, err
11042	}
11043	req.Header = reqHeaders
11044	googleapi.Expand(req.URL, map[string]string{
11045		"projectId": c.projectId,
11046	})
11047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11048}
11049
11050// Do executes the "bigquery.projects.getServiceAccount" call.
11051// Exactly one of *GetServiceAccountResponse or error will be non-nil.
11052// Any non-2xx status code is an error. Response headers are in either
11053// *GetServiceAccountResponse.ServerResponse.Header or (if a response
11054// was returned at all) in error.(*googleapi.Error).Header. Use
11055// googleapi.IsNotModified to check whether the returned error was
11056// because http.StatusNotModified was returned.
11057func (c *ProjectsGetServiceAccountCall) Do(opts ...googleapi.CallOption) (*GetServiceAccountResponse, error) {
11058	gensupport.SetOptions(c.urlParams_, opts...)
11059	res, err := c.doRequest("json")
11060	if res != nil && res.StatusCode == http.StatusNotModified {
11061		if res.Body != nil {
11062			res.Body.Close()
11063		}
11064		return nil, &googleapi.Error{
11065			Code:   res.StatusCode,
11066			Header: res.Header,
11067		}
11068	}
11069	if err != nil {
11070		return nil, err
11071	}
11072	defer googleapi.CloseBody(res)
11073	if err := googleapi.CheckResponse(res); err != nil {
11074		return nil, err
11075	}
11076	ret := &GetServiceAccountResponse{
11077		ServerResponse: googleapi.ServerResponse{
11078			Header:         res.Header,
11079			HTTPStatusCode: res.StatusCode,
11080		},
11081	}
11082	target := &ret
11083	if err := gensupport.DecodeResponse(target, res); err != nil {
11084		return nil, err
11085	}
11086	return ret, nil
11087	// {
11088	//   "description": "Returns the email address of the service account for your project used for interactions with Google Cloud KMS.",
11089	//   "httpMethod": "GET",
11090	//   "id": "bigquery.projects.getServiceAccount",
11091	//   "parameterOrder": [
11092	//     "projectId"
11093	//   ],
11094	//   "parameters": {
11095	//     "projectId": {
11096	//       "description": "Project ID for which the service account is requested.",
11097	//       "location": "path",
11098	//       "required": true,
11099	//       "type": "string"
11100	//     }
11101	//   },
11102	//   "path": "projects/{projectId}/serviceAccount",
11103	//   "response": {
11104	//     "$ref": "GetServiceAccountResponse"
11105	//   },
11106	//   "scopes": [
11107	//     "https://www.googleapis.com/auth/bigquery",
11108	//     "https://www.googleapis.com/auth/cloud-platform",
11109	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
11110	//   ]
11111	// }
11112
11113}
11114
11115// method id "bigquery.projects.list":
11116
11117type ProjectsListCall struct {
11118	s            *Service
11119	urlParams_   gensupport.URLParams
11120	ifNoneMatch_ string
11121	ctx_         context.Context
11122	header_      http.Header
11123}
11124
11125// List: Lists all projects to which you have been granted any project
11126// role.
11127func (r *ProjectsService) List() *ProjectsListCall {
11128	c := &ProjectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11129	return c
11130}
11131
11132// MaxResults sets the optional parameter "maxResults": Maximum number
11133// of results to return
11134func (c *ProjectsListCall) MaxResults(maxResults int64) *ProjectsListCall {
11135	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
11136	return c
11137}
11138
11139// PageToken sets the optional parameter "pageToken": Page token,
11140// returned by a previous call, to request the next page of results
11141func (c *ProjectsListCall) PageToken(pageToken string) *ProjectsListCall {
11142	c.urlParams_.Set("pageToken", pageToken)
11143	return c
11144}
11145
11146// Fields allows partial responses to be retrieved. See
11147// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11148// for more information.
11149func (c *ProjectsListCall) Fields(s ...googleapi.Field) *ProjectsListCall {
11150	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11151	return c
11152}
11153
11154// IfNoneMatch sets the optional parameter which makes the operation
11155// fail if the object's ETag matches the given value. This is useful for
11156// getting updates only after the object has changed since the last
11157// request. Use googleapi.IsNotModified to check whether the response
11158// error from Do is the result of In-None-Match.
11159func (c *ProjectsListCall) IfNoneMatch(entityTag string) *ProjectsListCall {
11160	c.ifNoneMatch_ = entityTag
11161	return c
11162}
11163
11164// Context sets the context to be used in this call's Do method. Any
11165// pending HTTP request will be aborted if the provided context is
11166// canceled.
11167func (c *ProjectsListCall) Context(ctx context.Context) *ProjectsListCall {
11168	c.ctx_ = ctx
11169	return c
11170}
11171
11172// Header returns an http.Header that can be modified by the caller to
11173// add HTTP headers to the request.
11174func (c *ProjectsListCall) Header() http.Header {
11175	if c.header_ == nil {
11176		c.header_ = make(http.Header)
11177	}
11178	return c.header_
11179}
11180
11181func (c *ProjectsListCall) doRequest(alt string) (*http.Response, error) {
11182	reqHeaders := make(http.Header)
11183	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11184	for k, v := range c.header_ {
11185		reqHeaders[k] = v
11186	}
11187	reqHeaders.Set("User-Agent", c.s.userAgent())
11188	if c.ifNoneMatch_ != "" {
11189		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11190	}
11191	var body io.Reader = nil
11192	c.urlParams_.Set("alt", alt)
11193	c.urlParams_.Set("prettyPrint", "false")
11194	urls := googleapi.ResolveRelative(c.s.BasePath, "projects")
11195	urls += "?" + c.urlParams_.Encode()
11196	req, err := http.NewRequest("GET", urls, body)
11197	if err != nil {
11198		return nil, err
11199	}
11200	req.Header = reqHeaders
11201	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11202}
11203
11204// Do executes the "bigquery.projects.list" call.
11205// Exactly one of *ProjectList or error will be non-nil. Any non-2xx
11206// status code is an error. Response headers are in either
11207// *ProjectList.ServerResponse.Header or (if a response was returned at
11208// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11209// to check whether the returned error was because
11210// http.StatusNotModified was returned.
11211func (c *ProjectsListCall) Do(opts ...googleapi.CallOption) (*ProjectList, error) {
11212	gensupport.SetOptions(c.urlParams_, opts...)
11213	res, err := c.doRequest("json")
11214	if res != nil && res.StatusCode == http.StatusNotModified {
11215		if res.Body != nil {
11216			res.Body.Close()
11217		}
11218		return nil, &googleapi.Error{
11219			Code:   res.StatusCode,
11220			Header: res.Header,
11221		}
11222	}
11223	if err != nil {
11224		return nil, err
11225	}
11226	defer googleapi.CloseBody(res)
11227	if err := googleapi.CheckResponse(res); err != nil {
11228		return nil, err
11229	}
11230	ret := &ProjectList{
11231		ServerResponse: googleapi.ServerResponse{
11232			Header:         res.Header,
11233			HTTPStatusCode: res.StatusCode,
11234		},
11235	}
11236	target := &ret
11237	if err := gensupport.DecodeResponse(target, res); err != nil {
11238		return nil, err
11239	}
11240	return ret, nil
11241	// {
11242	//   "description": "Lists all projects to which you have been granted any project role.",
11243	//   "httpMethod": "GET",
11244	//   "id": "bigquery.projects.list",
11245	//   "parameters": {
11246	//     "maxResults": {
11247	//       "description": "Maximum number of results to return",
11248	//       "format": "uint32",
11249	//       "location": "query",
11250	//       "type": "integer"
11251	//     },
11252	//     "pageToken": {
11253	//       "description": "Page token, returned by a previous call, to request the next page of results",
11254	//       "location": "query",
11255	//       "type": "string"
11256	//     }
11257	//   },
11258	//   "path": "projects",
11259	//   "response": {
11260	//     "$ref": "ProjectList"
11261	//   },
11262	//   "scopes": [
11263	//     "https://www.googleapis.com/auth/bigquery",
11264	//     "https://www.googleapis.com/auth/cloud-platform",
11265	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
11266	//   ]
11267	// }
11268
11269}
11270
11271// Pages invokes f for each page of results.
11272// A non-nil error returned from f will halt the iteration.
11273// The provided context supersedes any context provided to the Context method.
11274func (c *ProjectsListCall) Pages(ctx context.Context, f func(*ProjectList) error) error {
11275	c.ctx_ = ctx
11276	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
11277	for {
11278		x, err := c.Do()
11279		if err != nil {
11280			return err
11281		}
11282		if err := f(x); err != nil {
11283			return err
11284		}
11285		if x.NextPageToken == "" {
11286			return nil
11287		}
11288		c.PageToken(x.NextPageToken)
11289	}
11290}
11291
11292// method id "bigquery.routines.delete":
11293
11294type RoutinesDeleteCall struct {
11295	s          *Service
11296	projectId  string
11297	datasetId  string
11298	routineId  string
11299	urlParams_ gensupport.URLParams
11300	ctx_       context.Context
11301	header_    http.Header
11302}
11303
11304// Delete: Deletes the routine specified by routineId from the dataset.
11305//
11306// - datasetId: Dataset ID of the routine to delete.
11307// - projectId: Project ID of the routine to delete.
11308// - routineId: Routine ID of the routine to delete.
11309func (r *RoutinesService) Delete(projectId string, datasetId string, routineId string) *RoutinesDeleteCall {
11310	c := &RoutinesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11311	c.projectId = projectId
11312	c.datasetId = datasetId
11313	c.routineId = routineId
11314	return c
11315}
11316
11317// Fields allows partial responses to be retrieved. See
11318// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11319// for more information.
11320func (c *RoutinesDeleteCall) Fields(s ...googleapi.Field) *RoutinesDeleteCall {
11321	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11322	return c
11323}
11324
11325// Context sets the context to be used in this call's Do method. Any
11326// pending HTTP request will be aborted if the provided context is
11327// canceled.
11328func (c *RoutinesDeleteCall) Context(ctx context.Context) *RoutinesDeleteCall {
11329	c.ctx_ = ctx
11330	return c
11331}
11332
11333// Header returns an http.Header that can be modified by the caller to
11334// add HTTP headers to the request.
11335func (c *RoutinesDeleteCall) Header() http.Header {
11336	if c.header_ == nil {
11337		c.header_ = make(http.Header)
11338	}
11339	return c.header_
11340}
11341
11342func (c *RoutinesDeleteCall) doRequest(alt string) (*http.Response, error) {
11343	reqHeaders := make(http.Header)
11344	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11345	for k, v := range c.header_ {
11346		reqHeaders[k] = v
11347	}
11348	reqHeaders.Set("User-Agent", c.s.userAgent())
11349	var body io.Reader = nil
11350	c.urlParams_.Set("alt", alt)
11351	c.urlParams_.Set("prettyPrint", "false")
11352	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}")
11353	urls += "?" + c.urlParams_.Encode()
11354	req, err := http.NewRequest("DELETE", urls, body)
11355	if err != nil {
11356		return nil, err
11357	}
11358	req.Header = reqHeaders
11359	googleapi.Expand(req.URL, map[string]string{
11360		"projectId": c.projectId,
11361		"datasetId": c.datasetId,
11362		"routineId": c.routineId,
11363	})
11364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11365}
11366
11367// Do executes the "bigquery.routines.delete" call.
11368func (c *RoutinesDeleteCall) Do(opts ...googleapi.CallOption) error {
11369	gensupport.SetOptions(c.urlParams_, opts...)
11370	res, err := c.doRequest("json")
11371	if err != nil {
11372		return err
11373	}
11374	defer googleapi.CloseBody(res)
11375	if err := googleapi.CheckResponse(res); err != nil {
11376		return err
11377	}
11378	return nil
11379	// {
11380	//   "description": "Deletes the routine specified by routineId from the dataset.",
11381	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}",
11382	//   "httpMethod": "DELETE",
11383	//   "id": "bigquery.routines.delete",
11384	//   "parameterOrder": [
11385	//     "projectId",
11386	//     "datasetId",
11387	//     "routineId"
11388	//   ],
11389	//   "parameters": {
11390	//     "datasetId": {
11391	//       "description": "Required. Dataset ID of the routine to delete",
11392	//       "location": "path",
11393	//       "pattern": "^[^/]+$",
11394	//       "required": true,
11395	//       "type": "string"
11396	//     },
11397	//     "projectId": {
11398	//       "description": "Required. Project ID of the routine to delete",
11399	//       "location": "path",
11400	//       "pattern": "^[^/]+$",
11401	//       "required": true,
11402	//       "type": "string"
11403	//     },
11404	//     "routineId": {
11405	//       "description": "Required. Routine ID of the routine to delete",
11406	//       "location": "path",
11407	//       "pattern": "^[^/]+$",
11408	//       "required": true,
11409	//       "type": "string"
11410	//     }
11411	//   },
11412	//   "path": "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}",
11413	//   "scopes": [
11414	//     "https://www.googleapis.com/auth/bigquery",
11415	//     "https://www.googleapis.com/auth/cloud-platform"
11416	//   ]
11417	// }
11418
11419}
11420
11421// method id "bigquery.routines.get":
11422
11423type RoutinesGetCall struct {
11424	s            *Service
11425	projectId    string
11426	datasetId    string
11427	routineId    string
11428	urlParams_   gensupport.URLParams
11429	ifNoneMatch_ string
11430	ctx_         context.Context
11431	header_      http.Header
11432}
11433
11434// Get: Gets the specified routine resource by routine ID.
11435//
11436// - datasetId: Dataset ID of the requested routine.
11437// - projectId: Project ID of the requested routine.
11438// - routineId: Routine ID of the requested routine.
11439func (r *RoutinesService) Get(projectId string, datasetId string, routineId string) *RoutinesGetCall {
11440	c := &RoutinesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11441	c.projectId = projectId
11442	c.datasetId = datasetId
11443	c.routineId = routineId
11444	return c
11445}
11446
11447// ReadMask sets the optional parameter "readMask": If set, only the
11448// Routine fields in the field mask are returned in the response. If
11449// unset, all Routine fields are returned.
11450func (c *RoutinesGetCall) ReadMask(readMask string) *RoutinesGetCall {
11451	c.urlParams_.Set("readMask", readMask)
11452	return c
11453}
11454
11455// Fields allows partial responses to be retrieved. See
11456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11457// for more information.
11458func (c *RoutinesGetCall) Fields(s ...googleapi.Field) *RoutinesGetCall {
11459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11460	return c
11461}
11462
11463// IfNoneMatch sets the optional parameter which makes the operation
11464// fail if the object's ETag matches the given value. This is useful for
11465// getting updates only after the object has changed since the last
11466// request. Use googleapi.IsNotModified to check whether the response
11467// error from Do is the result of In-None-Match.
11468func (c *RoutinesGetCall) IfNoneMatch(entityTag string) *RoutinesGetCall {
11469	c.ifNoneMatch_ = entityTag
11470	return c
11471}
11472
11473// Context sets the context to be used in this call's Do method. Any
11474// pending HTTP request will be aborted if the provided context is
11475// canceled.
11476func (c *RoutinesGetCall) Context(ctx context.Context) *RoutinesGetCall {
11477	c.ctx_ = ctx
11478	return c
11479}
11480
11481// Header returns an http.Header that can be modified by the caller to
11482// add HTTP headers to the request.
11483func (c *RoutinesGetCall) Header() http.Header {
11484	if c.header_ == nil {
11485		c.header_ = make(http.Header)
11486	}
11487	return c.header_
11488}
11489
11490func (c *RoutinesGetCall) doRequest(alt string) (*http.Response, error) {
11491	reqHeaders := make(http.Header)
11492	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11493	for k, v := range c.header_ {
11494		reqHeaders[k] = v
11495	}
11496	reqHeaders.Set("User-Agent", c.s.userAgent())
11497	if c.ifNoneMatch_ != "" {
11498		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11499	}
11500	var body io.Reader = nil
11501	c.urlParams_.Set("alt", alt)
11502	c.urlParams_.Set("prettyPrint", "false")
11503	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}")
11504	urls += "?" + c.urlParams_.Encode()
11505	req, err := http.NewRequest("GET", urls, body)
11506	if err != nil {
11507		return nil, err
11508	}
11509	req.Header = reqHeaders
11510	googleapi.Expand(req.URL, map[string]string{
11511		"projectId": c.projectId,
11512		"datasetId": c.datasetId,
11513		"routineId": c.routineId,
11514	})
11515	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11516}
11517
11518// Do executes the "bigquery.routines.get" call.
11519// Exactly one of *Routine or error will be non-nil. Any non-2xx status
11520// code is an error. Response headers are in either
11521// *Routine.ServerResponse.Header or (if a response was returned at all)
11522// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
11523// check whether the returned error was because http.StatusNotModified
11524// was returned.
11525func (c *RoutinesGetCall) Do(opts ...googleapi.CallOption) (*Routine, error) {
11526	gensupport.SetOptions(c.urlParams_, opts...)
11527	res, err := c.doRequest("json")
11528	if res != nil && res.StatusCode == http.StatusNotModified {
11529		if res.Body != nil {
11530			res.Body.Close()
11531		}
11532		return nil, &googleapi.Error{
11533			Code:   res.StatusCode,
11534			Header: res.Header,
11535		}
11536	}
11537	if err != nil {
11538		return nil, err
11539	}
11540	defer googleapi.CloseBody(res)
11541	if err := googleapi.CheckResponse(res); err != nil {
11542		return nil, err
11543	}
11544	ret := &Routine{
11545		ServerResponse: googleapi.ServerResponse{
11546			Header:         res.Header,
11547			HTTPStatusCode: res.StatusCode,
11548		},
11549	}
11550	target := &ret
11551	if err := gensupport.DecodeResponse(target, res); err != nil {
11552		return nil, err
11553	}
11554	return ret, nil
11555	// {
11556	//   "description": "Gets the specified routine resource by routine ID.",
11557	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}",
11558	//   "httpMethod": "GET",
11559	//   "id": "bigquery.routines.get",
11560	//   "parameterOrder": [
11561	//     "projectId",
11562	//     "datasetId",
11563	//     "routineId"
11564	//   ],
11565	//   "parameters": {
11566	//     "datasetId": {
11567	//       "description": "Required. Dataset ID of the requested routine",
11568	//       "location": "path",
11569	//       "pattern": "^[^/]+$",
11570	//       "required": true,
11571	//       "type": "string"
11572	//     },
11573	//     "projectId": {
11574	//       "description": "Required. Project ID of the requested routine",
11575	//       "location": "path",
11576	//       "pattern": "^[^/]+$",
11577	//       "required": true,
11578	//       "type": "string"
11579	//     },
11580	//     "readMask": {
11581	//       "description": "If set, only the Routine fields in the field mask are returned in the response. If unset, all Routine fields are returned.",
11582	//       "format": "google-fieldmask",
11583	//       "location": "query",
11584	//       "type": "string"
11585	//     },
11586	//     "routineId": {
11587	//       "description": "Required. Routine ID of the requested routine",
11588	//       "location": "path",
11589	//       "pattern": "^[^/]+$",
11590	//       "required": true,
11591	//       "type": "string"
11592	//     }
11593	//   },
11594	//   "path": "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}",
11595	//   "response": {
11596	//     "$ref": "Routine"
11597	//   },
11598	//   "scopes": [
11599	//     "https://www.googleapis.com/auth/bigquery",
11600	//     "https://www.googleapis.com/auth/bigquery.readonly",
11601	//     "https://www.googleapis.com/auth/cloud-platform",
11602	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
11603	//   ]
11604	// }
11605
11606}
11607
11608// method id "bigquery.routines.insert":
11609
11610type RoutinesInsertCall struct {
11611	s          *Service
11612	projectId  string
11613	datasetId  string
11614	routine    *Routine
11615	urlParams_ gensupport.URLParams
11616	ctx_       context.Context
11617	header_    http.Header
11618}
11619
11620// Insert: Creates a new routine in the dataset.
11621//
11622// - datasetId: Dataset ID of the new routine.
11623// - projectId: Project ID of the new routine.
11624func (r *RoutinesService) Insert(projectId string, datasetId string, routine *Routine) *RoutinesInsertCall {
11625	c := &RoutinesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11626	c.projectId = projectId
11627	c.datasetId = datasetId
11628	c.routine = routine
11629	return c
11630}
11631
11632// Fields allows partial responses to be retrieved. See
11633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11634// for more information.
11635func (c *RoutinesInsertCall) Fields(s ...googleapi.Field) *RoutinesInsertCall {
11636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11637	return c
11638}
11639
11640// Context sets the context to be used in this call's Do method. Any
11641// pending HTTP request will be aborted if the provided context is
11642// canceled.
11643func (c *RoutinesInsertCall) Context(ctx context.Context) *RoutinesInsertCall {
11644	c.ctx_ = ctx
11645	return c
11646}
11647
11648// Header returns an http.Header that can be modified by the caller to
11649// add HTTP headers to the request.
11650func (c *RoutinesInsertCall) Header() http.Header {
11651	if c.header_ == nil {
11652		c.header_ = make(http.Header)
11653	}
11654	return c.header_
11655}
11656
11657func (c *RoutinesInsertCall) doRequest(alt string) (*http.Response, error) {
11658	reqHeaders := make(http.Header)
11659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11660	for k, v := range c.header_ {
11661		reqHeaders[k] = v
11662	}
11663	reqHeaders.Set("User-Agent", c.s.userAgent())
11664	var body io.Reader = nil
11665	body, err := googleapi.WithoutDataWrapper.JSONReader(c.routine)
11666	if err != nil {
11667		return nil, err
11668	}
11669	reqHeaders.Set("Content-Type", "application/json")
11670	c.urlParams_.Set("alt", alt)
11671	c.urlParams_.Set("prettyPrint", "false")
11672	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/routines")
11673	urls += "?" + c.urlParams_.Encode()
11674	req, err := http.NewRequest("POST", urls, body)
11675	if err != nil {
11676		return nil, err
11677	}
11678	req.Header = reqHeaders
11679	googleapi.Expand(req.URL, map[string]string{
11680		"projectId": c.projectId,
11681		"datasetId": c.datasetId,
11682	})
11683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11684}
11685
11686// Do executes the "bigquery.routines.insert" call.
11687// Exactly one of *Routine or error will be non-nil. Any non-2xx status
11688// code is an error. Response headers are in either
11689// *Routine.ServerResponse.Header or (if a response was returned at all)
11690// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
11691// check whether the returned error was because http.StatusNotModified
11692// was returned.
11693func (c *RoutinesInsertCall) Do(opts ...googleapi.CallOption) (*Routine, error) {
11694	gensupport.SetOptions(c.urlParams_, opts...)
11695	res, err := c.doRequest("json")
11696	if res != nil && res.StatusCode == http.StatusNotModified {
11697		if res.Body != nil {
11698			res.Body.Close()
11699		}
11700		return nil, &googleapi.Error{
11701			Code:   res.StatusCode,
11702			Header: res.Header,
11703		}
11704	}
11705	if err != nil {
11706		return nil, err
11707	}
11708	defer googleapi.CloseBody(res)
11709	if err := googleapi.CheckResponse(res); err != nil {
11710		return nil, err
11711	}
11712	ret := &Routine{
11713		ServerResponse: googleapi.ServerResponse{
11714			Header:         res.Header,
11715			HTTPStatusCode: res.StatusCode,
11716		},
11717	}
11718	target := &ret
11719	if err := gensupport.DecodeResponse(target, res); err != nil {
11720		return nil, err
11721	}
11722	return ret, nil
11723	// {
11724	//   "description": "Creates a new routine in the dataset.",
11725	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines",
11726	//   "httpMethod": "POST",
11727	//   "id": "bigquery.routines.insert",
11728	//   "parameterOrder": [
11729	//     "projectId",
11730	//     "datasetId"
11731	//   ],
11732	//   "parameters": {
11733	//     "datasetId": {
11734	//       "description": "Required. Dataset ID of the new routine",
11735	//       "location": "path",
11736	//       "pattern": "^[^/]+$",
11737	//       "required": true,
11738	//       "type": "string"
11739	//     },
11740	//     "projectId": {
11741	//       "description": "Required. Project ID of the new routine",
11742	//       "location": "path",
11743	//       "pattern": "^[^/]+$",
11744	//       "required": true,
11745	//       "type": "string"
11746	//     }
11747	//   },
11748	//   "path": "projects/{+projectId}/datasets/{+datasetId}/routines",
11749	//   "request": {
11750	//     "$ref": "Routine"
11751	//   },
11752	//   "response": {
11753	//     "$ref": "Routine"
11754	//   },
11755	//   "scopes": [
11756	//     "https://www.googleapis.com/auth/bigquery",
11757	//     "https://www.googleapis.com/auth/cloud-platform"
11758	//   ]
11759	// }
11760
11761}
11762
11763// method id "bigquery.routines.list":
11764
11765type RoutinesListCall struct {
11766	s            *Service
11767	projectId    string
11768	datasetId    string
11769	urlParams_   gensupport.URLParams
11770	ifNoneMatch_ string
11771	ctx_         context.Context
11772	header_      http.Header
11773}
11774
11775// List: Lists all routines in the specified dataset. Requires the
11776// READER dataset role.
11777//
11778// - datasetId: Dataset ID of the routines to list.
11779// - projectId: Project ID of the routines to list.
11780func (r *RoutinesService) List(projectId string, datasetId string) *RoutinesListCall {
11781	c := &RoutinesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11782	c.projectId = projectId
11783	c.datasetId = datasetId
11784	return c
11785}
11786
11787// Filter sets the optional parameter "filter": If set, then only the
11788// Routines matching this filter are returned. The current supported
11789// form is either "routine_type:" or "routineType:", where is a
11790// RoutineType enum. Example: "routineType:SCALAR_FUNCTION".
11791func (c *RoutinesListCall) Filter(filter string) *RoutinesListCall {
11792	c.urlParams_.Set("filter", filter)
11793	return c
11794}
11795
11796// MaxResults sets the optional parameter "maxResults": The maximum
11797// number of results to return in a single response page. Leverage the
11798// page tokens to iterate through the entire collection.
11799func (c *RoutinesListCall) MaxResults(maxResults int64) *RoutinesListCall {
11800	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
11801	return c
11802}
11803
11804// PageToken sets the optional parameter "pageToken": Page token,
11805// returned by a previous call, to request the next page of results
11806func (c *RoutinesListCall) PageToken(pageToken string) *RoutinesListCall {
11807	c.urlParams_.Set("pageToken", pageToken)
11808	return c
11809}
11810
11811// ReadMask sets the optional parameter "readMask": If set, then only
11812// the Routine fields in the field mask, as well as project_id,
11813// dataset_id and routine_id, are returned in the response. If unset,
11814// then the following Routine fields are returned: etag, project_id,
11815// dataset_id, routine_id, routine_type, creation_time,
11816// last_modified_time, and language.
11817func (c *RoutinesListCall) ReadMask(readMask string) *RoutinesListCall {
11818	c.urlParams_.Set("readMask", readMask)
11819	return c
11820}
11821
11822// Fields allows partial responses to be retrieved. See
11823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11824// for more information.
11825func (c *RoutinesListCall) Fields(s ...googleapi.Field) *RoutinesListCall {
11826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11827	return c
11828}
11829
11830// IfNoneMatch sets the optional parameter which makes the operation
11831// fail if the object's ETag matches the given value. This is useful for
11832// getting updates only after the object has changed since the last
11833// request. Use googleapi.IsNotModified to check whether the response
11834// error from Do is the result of In-None-Match.
11835func (c *RoutinesListCall) IfNoneMatch(entityTag string) *RoutinesListCall {
11836	c.ifNoneMatch_ = entityTag
11837	return c
11838}
11839
11840// Context sets the context to be used in this call's Do method. Any
11841// pending HTTP request will be aborted if the provided context is
11842// canceled.
11843func (c *RoutinesListCall) Context(ctx context.Context) *RoutinesListCall {
11844	c.ctx_ = ctx
11845	return c
11846}
11847
11848// Header returns an http.Header that can be modified by the caller to
11849// add HTTP headers to the request.
11850func (c *RoutinesListCall) Header() http.Header {
11851	if c.header_ == nil {
11852		c.header_ = make(http.Header)
11853	}
11854	return c.header_
11855}
11856
11857func (c *RoutinesListCall) doRequest(alt string) (*http.Response, error) {
11858	reqHeaders := make(http.Header)
11859	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11860	for k, v := range c.header_ {
11861		reqHeaders[k] = v
11862	}
11863	reqHeaders.Set("User-Agent", c.s.userAgent())
11864	if c.ifNoneMatch_ != "" {
11865		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11866	}
11867	var body io.Reader = nil
11868	c.urlParams_.Set("alt", alt)
11869	c.urlParams_.Set("prettyPrint", "false")
11870	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/routines")
11871	urls += "?" + c.urlParams_.Encode()
11872	req, err := http.NewRequest("GET", urls, body)
11873	if err != nil {
11874		return nil, err
11875	}
11876	req.Header = reqHeaders
11877	googleapi.Expand(req.URL, map[string]string{
11878		"projectId": c.projectId,
11879		"datasetId": c.datasetId,
11880	})
11881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11882}
11883
11884// Do executes the "bigquery.routines.list" call.
11885// Exactly one of *ListRoutinesResponse or error will be non-nil. Any
11886// non-2xx status code is an error. Response headers are in either
11887// *ListRoutinesResponse.ServerResponse.Header or (if a response was
11888// returned at all) in error.(*googleapi.Error).Header. Use
11889// googleapi.IsNotModified to check whether the returned error was
11890// because http.StatusNotModified was returned.
11891func (c *RoutinesListCall) Do(opts ...googleapi.CallOption) (*ListRoutinesResponse, error) {
11892	gensupport.SetOptions(c.urlParams_, opts...)
11893	res, err := c.doRequest("json")
11894	if res != nil && res.StatusCode == http.StatusNotModified {
11895		if res.Body != nil {
11896			res.Body.Close()
11897		}
11898		return nil, &googleapi.Error{
11899			Code:   res.StatusCode,
11900			Header: res.Header,
11901		}
11902	}
11903	if err != nil {
11904		return nil, err
11905	}
11906	defer googleapi.CloseBody(res)
11907	if err := googleapi.CheckResponse(res); err != nil {
11908		return nil, err
11909	}
11910	ret := &ListRoutinesResponse{
11911		ServerResponse: googleapi.ServerResponse{
11912			Header:         res.Header,
11913			HTTPStatusCode: res.StatusCode,
11914		},
11915	}
11916	target := &ret
11917	if err := gensupport.DecodeResponse(target, res); err != nil {
11918		return nil, err
11919	}
11920	return ret, nil
11921	// {
11922	//   "description": "Lists all routines in the specified dataset. Requires the READER dataset role.",
11923	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines",
11924	//   "httpMethod": "GET",
11925	//   "id": "bigquery.routines.list",
11926	//   "parameterOrder": [
11927	//     "projectId",
11928	//     "datasetId"
11929	//   ],
11930	//   "parameters": {
11931	//     "datasetId": {
11932	//       "description": "Required. Dataset ID of the routines to list",
11933	//       "location": "path",
11934	//       "pattern": "^[^/]+$",
11935	//       "required": true,
11936	//       "type": "string"
11937	//     },
11938	//     "filter": {
11939	//       "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\".",
11940	//       "location": "query",
11941	//       "type": "string"
11942	//     },
11943	//     "maxResults": {
11944	//       "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.",
11945	//       "format": "uint32",
11946	//       "location": "query",
11947	//       "type": "integer"
11948	//     },
11949	//     "pageToken": {
11950	//       "description": "Page token, returned by a previous call, to request the next page of results",
11951	//       "location": "query",
11952	//       "type": "string"
11953	//     },
11954	//     "projectId": {
11955	//       "description": "Required. Project ID of the routines to list",
11956	//       "location": "path",
11957	//       "pattern": "^[^/]+$",
11958	//       "required": true,
11959	//       "type": "string"
11960	//     },
11961	//     "readMask": {
11962	//       "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.",
11963	//       "format": "google-fieldmask",
11964	//       "location": "query",
11965	//       "type": "string"
11966	//     }
11967	//   },
11968	//   "path": "projects/{+projectId}/datasets/{+datasetId}/routines",
11969	//   "response": {
11970	//     "$ref": "ListRoutinesResponse"
11971	//   },
11972	//   "scopes": [
11973	//     "https://www.googleapis.com/auth/bigquery",
11974	//     "https://www.googleapis.com/auth/bigquery.readonly",
11975	//     "https://www.googleapis.com/auth/cloud-platform",
11976	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
11977	//   ]
11978	// }
11979
11980}
11981
11982// Pages invokes f for each page of results.
11983// A non-nil error returned from f will halt the iteration.
11984// The provided context supersedes any context provided to the Context method.
11985func (c *RoutinesListCall) Pages(ctx context.Context, f func(*ListRoutinesResponse) error) error {
11986	c.ctx_ = ctx
11987	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
11988	for {
11989		x, err := c.Do()
11990		if err != nil {
11991			return err
11992		}
11993		if err := f(x); err != nil {
11994			return err
11995		}
11996		if x.NextPageToken == "" {
11997			return nil
11998		}
11999		c.PageToken(x.NextPageToken)
12000	}
12001}
12002
12003// method id "bigquery.routines.update":
12004
12005type RoutinesUpdateCall struct {
12006	s          *Service
12007	projectId  string
12008	datasetId  string
12009	routineId  string
12010	routine    *Routine
12011	urlParams_ gensupport.URLParams
12012	ctx_       context.Context
12013	header_    http.Header
12014}
12015
12016// Update: Updates information in an existing routine. The update method
12017// replaces the entire Routine resource.
12018//
12019// - datasetId: Dataset ID of the routine to update.
12020// - projectId: Project ID of the routine to update.
12021// - routineId: Routine ID of the routine to update.
12022func (r *RoutinesService) Update(projectId string, datasetId string, routineId string, routine *Routine) *RoutinesUpdateCall {
12023	c := &RoutinesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12024	c.projectId = projectId
12025	c.datasetId = datasetId
12026	c.routineId = routineId
12027	c.routine = routine
12028	return c
12029}
12030
12031// Fields allows partial responses to be retrieved. See
12032// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12033// for more information.
12034func (c *RoutinesUpdateCall) Fields(s ...googleapi.Field) *RoutinesUpdateCall {
12035	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12036	return c
12037}
12038
12039// Context sets the context to be used in this call's Do method. Any
12040// pending HTTP request will be aborted if the provided context is
12041// canceled.
12042func (c *RoutinesUpdateCall) Context(ctx context.Context) *RoutinesUpdateCall {
12043	c.ctx_ = ctx
12044	return c
12045}
12046
12047// Header returns an http.Header that can be modified by the caller to
12048// add HTTP headers to the request.
12049func (c *RoutinesUpdateCall) Header() http.Header {
12050	if c.header_ == nil {
12051		c.header_ = make(http.Header)
12052	}
12053	return c.header_
12054}
12055
12056func (c *RoutinesUpdateCall) doRequest(alt string) (*http.Response, error) {
12057	reqHeaders := make(http.Header)
12058	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12059	for k, v := range c.header_ {
12060		reqHeaders[k] = v
12061	}
12062	reqHeaders.Set("User-Agent", c.s.userAgent())
12063	var body io.Reader = nil
12064	body, err := googleapi.WithoutDataWrapper.JSONReader(c.routine)
12065	if err != nil {
12066		return nil, err
12067	}
12068	reqHeaders.Set("Content-Type", "application/json")
12069	c.urlParams_.Set("alt", alt)
12070	c.urlParams_.Set("prettyPrint", "false")
12071	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}")
12072	urls += "?" + c.urlParams_.Encode()
12073	req, err := http.NewRequest("PUT", urls, body)
12074	if err != nil {
12075		return nil, err
12076	}
12077	req.Header = reqHeaders
12078	googleapi.Expand(req.URL, map[string]string{
12079		"projectId": c.projectId,
12080		"datasetId": c.datasetId,
12081		"routineId": c.routineId,
12082	})
12083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12084}
12085
12086// Do executes the "bigquery.routines.update" call.
12087// Exactly one of *Routine or error will be non-nil. Any non-2xx status
12088// code is an error. Response headers are in either
12089// *Routine.ServerResponse.Header or (if a response was returned at all)
12090// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12091// check whether the returned error was because http.StatusNotModified
12092// was returned.
12093func (c *RoutinesUpdateCall) Do(opts ...googleapi.CallOption) (*Routine, error) {
12094	gensupport.SetOptions(c.urlParams_, opts...)
12095	res, err := c.doRequest("json")
12096	if res != nil && res.StatusCode == http.StatusNotModified {
12097		if res.Body != nil {
12098			res.Body.Close()
12099		}
12100		return nil, &googleapi.Error{
12101			Code:   res.StatusCode,
12102			Header: res.Header,
12103		}
12104	}
12105	if err != nil {
12106		return nil, err
12107	}
12108	defer googleapi.CloseBody(res)
12109	if err := googleapi.CheckResponse(res); err != nil {
12110		return nil, err
12111	}
12112	ret := &Routine{
12113		ServerResponse: googleapi.ServerResponse{
12114			Header:         res.Header,
12115			HTTPStatusCode: res.StatusCode,
12116		},
12117	}
12118	target := &ret
12119	if err := gensupport.DecodeResponse(target, res); err != nil {
12120		return nil, err
12121	}
12122	return ret, nil
12123	// {
12124	//   "description": "Updates information in an existing routine. The update method replaces the entire Routine resource.",
12125	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}",
12126	//   "httpMethod": "PUT",
12127	//   "id": "bigquery.routines.update",
12128	//   "parameterOrder": [
12129	//     "projectId",
12130	//     "datasetId",
12131	//     "routineId"
12132	//   ],
12133	//   "parameters": {
12134	//     "datasetId": {
12135	//       "description": "Required. Dataset ID of the routine to update",
12136	//       "location": "path",
12137	//       "pattern": "^[^/]+$",
12138	//       "required": true,
12139	//       "type": "string"
12140	//     },
12141	//     "projectId": {
12142	//       "description": "Required. Project ID of the routine to update",
12143	//       "location": "path",
12144	//       "pattern": "^[^/]+$",
12145	//       "required": true,
12146	//       "type": "string"
12147	//     },
12148	//     "routineId": {
12149	//       "description": "Required. Routine ID of the routine to update",
12150	//       "location": "path",
12151	//       "pattern": "^[^/]+$",
12152	//       "required": true,
12153	//       "type": "string"
12154	//     }
12155	//   },
12156	//   "path": "projects/{+projectId}/datasets/{+datasetId}/routines/{+routineId}",
12157	//   "request": {
12158	//     "$ref": "Routine"
12159	//   },
12160	//   "response": {
12161	//     "$ref": "Routine"
12162	//   },
12163	//   "scopes": [
12164	//     "https://www.googleapis.com/auth/bigquery",
12165	//     "https://www.googleapis.com/auth/cloud-platform"
12166	//   ]
12167	// }
12168
12169}
12170
12171// method id "bigquery.rowAccessPolicies.getIamPolicy":
12172
12173type RowAccessPoliciesGetIamPolicyCall struct {
12174	s                   *Service
12175	resource            string
12176	getiampolicyrequest *GetIamPolicyRequest
12177	urlParams_          gensupport.URLParams
12178	ctx_                context.Context
12179	header_             http.Header
12180}
12181
12182// GetIamPolicy: Gets the access control policy for a resource. Returns
12183// an empty policy if the resource exists and does not have a policy
12184// set.
12185//
12186// - resource: REQUIRED: The resource for which the policy is being
12187//   requested. See the operation documentation for the appropriate
12188//   value for this field.
12189func (r *RowAccessPoliciesService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *RowAccessPoliciesGetIamPolicyCall {
12190	c := &RowAccessPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12191	c.resource = resource
12192	c.getiampolicyrequest = getiampolicyrequest
12193	return c
12194}
12195
12196// Fields allows partial responses to be retrieved. See
12197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12198// for more information.
12199func (c *RowAccessPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *RowAccessPoliciesGetIamPolicyCall {
12200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12201	return c
12202}
12203
12204// Context sets the context to be used in this call's Do method. Any
12205// pending HTTP request will be aborted if the provided context is
12206// canceled.
12207func (c *RowAccessPoliciesGetIamPolicyCall) Context(ctx context.Context) *RowAccessPoliciesGetIamPolicyCall {
12208	c.ctx_ = ctx
12209	return c
12210}
12211
12212// Header returns an http.Header that can be modified by the caller to
12213// add HTTP headers to the request.
12214func (c *RowAccessPoliciesGetIamPolicyCall) Header() http.Header {
12215	if c.header_ == nil {
12216		c.header_ = make(http.Header)
12217	}
12218	return c.header_
12219}
12220
12221func (c *RowAccessPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
12222	reqHeaders := make(http.Header)
12223	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12224	for k, v := range c.header_ {
12225		reqHeaders[k] = v
12226	}
12227	reqHeaders.Set("User-Agent", c.s.userAgent())
12228	var body io.Reader = nil
12229	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest)
12230	if err != nil {
12231		return nil, err
12232	}
12233	reqHeaders.Set("Content-Type", "application/json")
12234	c.urlParams_.Set("alt", alt)
12235	c.urlParams_.Set("prettyPrint", "false")
12236	urls := googleapi.ResolveRelative(c.s.BasePath, "{+resource}:getIamPolicy")
12237	urls += "?" + c.urlParams_.Encode()
12238	req, err := http.NewRequest("POST", urls, body)
12239	if err != nil {
12240		return nil, err
12241	}
12242	req.Header = reqHeaders
12243	googleapi.Expand(req.URL, map[string]string{
12244		"resource": c.resource,
12245	})
12246	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12247}
12248
12249// Do executes the "bigquery.rowAccessPolicies.getIamPolicy" call.
12250// Exactly one of *Policy or error will be non-nil. Any non-2xx status
12251// code is an error. Response headers are in either
12252// *Policy.ServerResponse.Header or (if a response was returned at all)
12253// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12254// check whether the returned error was because http.StatusNotModified
12255// was returned.
12256func (c *RowAccessPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
12257	gensupport.SetOptions(c.urlParams_, opts...)
12258	res, err := c.doRequest("json")
12259	if res != nil && res.StatusCode == http.StatusNotModified {
12260		if res.Body != nil {
12261			res.Body.Close()
12262		}
12263		return nil, &googleapi.Error{
12264			Code:   res.StatusCode,
12265			Header: res.Header,
12266		}
12267	}
12268	if err != nil {
12269		return nil, err
12270	}
12271	defer googleapi.CloseBody(res)
12272	if err := googleapi.CheckResponse(res); err != nil {
12273		return nil, err
12274	}
12275	ret := &Policy{
12276		ServerResponse: googleapi.ServerResponse{
12277			Header:         res.Header,
12278			HTTPStatusCode: res.StatusCode,
12279		},
12280	}
12281	target := &ret
12282	if err := gensupport.DecodeResponse(target, res); err != nil {
12283		return nil, err
12284	}
12285	return ret, nil
12286	// {
12287	//   "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
12288	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/rowAccessPolicies/{rowAccessPoliciesId}:getIamPolicy",
12289	//   "httpMethod": "POST",
12290	//   "id": "bigquery.rowAccessPolicies.getIamPolicy",
12291	//   "parameterOrder": [
12292	//     "resource"
12293	//   ],
12294	//   "parameters": {
12295	//     "resource": {
12296	//       "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.",
12297	//       "location": "path",
12298	//       "pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+/rowAccessPolicies/[^/]+$",
12299	//       "required": true,
12300	//       "type": "string"
12301	//     }
12302	//   },
12303	//   "path": "{+resource}:getIamPolicy",
12304	//   "request": {
12305	//     "$ref": "GetIamPolicyRequest"
12306	//   },
12307	//   "response": {
12308	//     "$ref": "Policy"
12309	//   },
12310	//   "scopes": [
12311	//     "https://www.googleapis.com/auth/bigquery",
12312	//     "https://www.googleapis.com/auth/bigquery.readonly",
12313	//     "https://www.googleapis.com/auth/cloud-platform",
12314	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
12315	//   ]
12316	// }
12317
12318}
12319
12320// method id "bigquery.rowAccessPolicies.list":
12321
12322type RowAccessPoliciesListCall struct {
12323	s            *Service
12324	projectId    string
12325	datasetId    string
12326	tableId      string
12327	urlParams_   gensupport.URLParams
12328	ifNoneMatch_ string
12329	ctx_         context.Context
12330	header_      http.Header
12331}
12332
12333// List: Lists all row access policies on the specified table.
12334//
12335// - datasetId: Dataset ID of row access policies to list.
12336// - projectId: Project ID of the row access policies to list.
12337// - tableId: Table ID of the table to list row access policies.
12338func (r *RowAccessPoliciesService) List(projectId string, datasetId string, tableId string) *RowAccessPoliciesListCall {
12339	c := &RowAccessPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12340	c.projectId = projectId
12341	c.datasetId = datasetId
12342	c.tableId = tableId
12343	return c
12344}
12345
12346// PageSize sets the optional parameter "pageSize": The maximum number
12347// of results to return in a single response page. Leverage the page
12348// tokens to iterate through the entire collection.
12349func (c *RowAccessPoliciesListCall) PageSize(pageSize int64) *RowAccessPoliciesListCall {
12350	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
12351	return c
12352}
12353
12354// PageToken sets the optional parameter "pageToken": Page token,
12355// returned by a previous call, to request the next page of results.
12356func (c *RowAccessPoliciesListCall) PageToken(pageToken string) *RowAccessPoliciesListCall {
12357	c.urlParams_.Set("pageToken", pageToken)
12358	return c
12359}
12360
12361// Fields allows partial responses to be retrieved. See
12362// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12363// for more information.
12364func (c *RowAccessPoliciesListCall) Fields(s ...googleapi.Field) *RowAccessPoliciesListCall {
12365	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12366	return c
12367}
12368
12369// IfNoneMatch sets the optional parameter which makes the operation
12370// fail if the object's ETag matches the given value. This is useful for
12371// getting updates only after the object has changed since the last
12372// request. Use googleapi.IsNotModified to check whether the response
12373// error from Do is the result of In-None-Match.
12374func (c *RowAccessPoliciesListCall) IfNoneMatch(entityTag string) *RowAccessPoliciesListCall {
12375	c.ifNoneMatch_ = entityTag
12376	return c
12377}
12378
12379// Context sets the context to be used in this call's Do method. Any
12380// pending HTTP request will be aborted if the provided context is
12381// canceled.
12382func (c *RowAccessPoliciesListCall) Context(ctx context.Context) *RowAccessPoliciesListCall {
12383	c.ctx_ = ctx
12384	return c
12385}
12386
12387// Header returns an http.Header that can be modified by the caller to
12388// add HTTP headers to the request.
12389func (c *RowAccessPoliciesListCall) Header() http.Header {
12390	if c.header_ == nil {
12391		c.header_ = make(http.Header)
12392	}
12393	return c.header_
12394}
12395
12396func (c *RowAccessPoliciesListCall) doRequest(alt string) (*http.Response, error) {
12397	reqHeaders := make(http.Header)
12398	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12399	for k, v := range c.header_ {
12400		reqHeaders[k] = v
12401	}
12402	reqHeaders.Set("User-Agent", c.s.userAgent())
12403	if c.ifNoneMatch_ != "" {
12404		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12405	}
12406	var body io.Reader = nil
12407	c.urlParams_.Set("alt", alt)
12408	c.urlParams_.Set("prettyPrint", "false")
12409	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/rowAccessPolicies")
12410	urls += "?" + c.urlParams_.Encode()
12411	req, err := http.NewRequest("GET", urls, body)
12412	if err != nil {
12413		return nil, err
12414	}
12415	req.Header = reqHeaders
12416	googleapi.Expand(req.URL, map[string]string{
12417		"projectId": c.projectId,
12418		"datasetId": c.datasetId,
12419		"tableId":   c.tableId,
12420	})
12421	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12422}
12423
12424// Do executes the "bigquery.rowAccessPolicies.list" call.
12425// Exactly one of *ListRowAccessPoliciesResponse or error will be
12426// non-nil. Any non-2xx status code is an error. Response headers are in
12427// either *ListRowAccessPoliciesResponse.ServerResponse.Header or (if a
12428// response was returned at all) in error.(*googleapi.Error).Header. Use
12429// googleapi.IsNotModified to check whether the returned error was
12430// because http.StatusNotModified was returned.
12431func (c *RowAccessPoliciesListCall) Do(opts ...googleapi.CallOption) (*ListRowAccessPoliciesResponse, error) {
12432	gensupport.SetOptions(c.urlParams_, opts...)
12433	res, err := c.doRequest("json")
12434	if res != nil && res.StatusCode == http.StatusNotModified {
12435		if res.Body != nil {
12436			res.Body.Close()
12437		}
12438		return nil, &googleapi.Error{
12439			Code:   res.StatusCode,
12440			Header: res.Header,
12441		}
12442	}
12443	if err != nil {
12444		return nil, err
12445	}
12446	defer googleapi.CloseBody(res)
12447	if err := googleapi.CheckResponse(res); err != nil {
12448		return nil, err
12449	}
12450	ret := &ListRowAccessPoliciesResponse{
12451		ServerResponse: googleapi.ServerResponse{
12452			Header:         res.Header,
12453			HTTPStatusCode: res.StatusCode,
12454		},
12455	}
12456	target := &ret
12457	if err := gensupport.DecodeResponse(target, res); err != nil {
12458		return nil, err
12459	}
12460	return ret, nil
12461	// {
12462	//   "description": "Lists all row access policies on the specified table.",
12463	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/rowAccessPolicies",
12464	//   "httpMethod": "GET",
12465	//   "id": "bigquery.rowAccessPolicies.list",
12466	//   "parameterOrder": [
12467	//     "projectId",
12468	//     "datasetId",
12469	//     "tableId"
12470	//   ],
12471	//   "parameters": {
12472	//     "datasetId": {
12473	//       "description": "Required. Dataset ID of row access policies to list.",
12474	//       "location": "path",
12475	//       "pattern": "^[^/]+$",
12476	//       "required": true,
12477	//       "type": "string"
12478	//     },
12479	//     "pageSize": {
12480	//       "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.",
12481	//       "format": "int32",
12482	//       "location": "query",
12483	//       "type": "integer"
12484	//     },
12485	//     "pageToken": {
12486	//       "description": "Page token, returned by a previous call, to request the next page of results.",
12487	//       "location": "query",
12488	//       "type": "string"
12489	//     },
12490	//     "projectId": {
12491	//       "description": "Required. Project ID of the row access policies to list.",
12492	//       "location": "path",
12493	//       "pattern": "^[^/]+$",
12494	//       "required": true,
12495	//       "type": "string"
12496	//     },
12497	//     "tableId": {
12498	//       "description": "Required. Table ID of the table to list row access policies.",
12499	//       "location": "path",
12500	//       "pattern": "^[^/]+$",
12501	//       "required": true,
12502	//       "type": "string"
12503	//     }
12504	//   },
12505	//   "path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/rowAccessPolicies",
12506	//   "response": {
12507	//     "$ref": "ListRowAccessPoliciesResponse"
12508	//   },
12509	//   "scopes": [
12510	//     "https://www.googleapis.com/auth/bigquery",
12511	//     "https://www.googleapis.com/auth/bigquery.readonly",
12512	//     "https://www.googleapis.com/auth/cloud-platform",
12513	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
12514	//   ]
12515	// }
12516
12517}
12518
12519// Pages invokes f for each page of results.
12520// A non-nil error returned from f will halt the iteration.
12521// The provided context supersedes any context provided to the Context method.
12522func (c *RowAccessPoliciesListCall) Pages(ctx context.Context, f func(*ListRowAccessPoliciesResponse) error) error {
12523	c.ctx_ = ctx
12524	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
12525	for {
12526		x, err := c.Do()
12527		if err != nil {
12528			return err
12529		}
12530		if err := f(x); err != nil {
12531			return err
12532		}
12533		if x.NextPageToken == "" {
12534			return nil
12535		}
12536		c.PageToken(x.NextPageToken)
12537	}
12538}
12539
12540// method id "bigquery.rowAccessPolicies.setIamPolicy":
12541
12542type RowAccessPoliciesSetIamPolicyCall struct {
12543	s                   *Service
12544	resource            string
12545	setiampolicyrequest *SetIamPolicyRequest
12546	urlParams_          gensupport.URLParams
12547	ctx_                context.Context
12548	header_             http.Header
12549}
12550
12551// SetIamPolicy: Sets the access control policy on the specified
12552// resource. Replaces any existing policy. Can return `NOT_FOUND`,
12553// `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
12554//
12555// - resource: REQUIRED: The resource for which the policy is being
12556//   specified. See the operation documentation for the appropriate
12557//   value for this field.
12558func (r *RowAccessPoliciesService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *RowAccessPoliciesSetIamPolicyCall {
12559	c := &RowAccessPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12560	c.resource = resource
12561	c.setiampolicyrequest = setiampolicyrequest
12562	return c
12563}
12564
12565// Fields allows partial responses to be retrieved. See
12566// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12567// for more information.
12568func (c *RowAccessPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *RowAccessPoliciesSetIamPolicyCall {
12569	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12570	return c
12571}
12572
12573// Context sets the context to be used in this call's Do method. Any
12574// pending HTTP request will be aborted if the provided context is
12575// canceled.
12576func (c *RowAccessPoliciesSetIamPolicyCall) Context(ctx context.Context) *RowAccessPoliciesSetIamPolicyCall {
12577	c.ctx_ = ctx
12578	return c
12579}
12580
12581// Header returns an http.Header that can be modified by the caller to
12582// add HTTP headers to the request.
12583func (c *RowAccessPoliciesSetIamPolicyCall) Header() http.Header {
12584	if c.header_ == nil {
12585		c.header_ = make(http.Header)
12586	}
12587	return c.header_
12588}
12589
12590func (c *RowAccessPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
12591	reqHeaders := make(http.Header)
12592	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12593	for k, v := range c.header_ {
12594		reqHeaders[k] = v
12595	}
12596	reqHeaders.Set("User-Agent", c.s.userAgent())
12597	var body io.Reader = nil
12598	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
12599	if err != nil {
12600		return nil, err
12601	}
12602	reqHeaders.Set("Content-Type", "application/json")
12603	c.urlParams_.Set("alt", alt)
12604	c.urlParams_.Set("prettyPrint", "false")
12605	urls := googleapi.ResolveRelative(c.s.BasePath, "{+resource}:setIamPolicy")
12606	urls += "?" + c.urlParams_.Encode()
12607	req, err := http.NewRequest("POST", urls, body)
12608	if err != nil {
12609		return nil, err
12610	}
12611	req.Header = reqHeaders
12612	googleapi.Expand(req.URL, map[string]string{
12613		"resource": c.resource,
12614	})
12615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12616}
12617
12618// Do executes the "bigquery.rowAccessPolicies.setIamPolicy" call.
12619// Exactly one of *Policy or error will be non-nil. Any non-2xx status
12620// code is an error. Response headers are in either
12621// *Policy.ServerResponse.Header or (if a response was returned at all)
12622// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12623// check whether the returned error was because http.StatusNotModified
12624// was returned.
12625func (c *RowAccessPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
12626	gensupport.SetOptions(c.urlParams_, opts...)
12627	res, err := c.doRequest("json")
12628	if res != nil && res.StatusCode == http.StatusNotModified {
12629		if res.Body != nil {
12630			res.Body.Close()
12631		}
12632		return nil, &googleapi.Error{
12633			Code:   res.StatusCode,
12634			Header: res.Header,
12635		}
12636	}
12637	if err != nil {
12638		return nil, err
12639	}
12640	defer googleapi.CloseBody(res)
12641	if err := googleapi.CheckResponse(res); err != nil {
12642		return nil, err
12643	}
12644	ret := &Policy{
12645		ServerResponse: googleapi.ServerResponse{
12646			Header:         res.Header,
12647			HTTPStatusCode: res.StatusCode,
12648		},
12649	}
12650	target := &ret
12651	if err := gensupport.DecodeResponse(target, res); err != nil {
12652		return nil, err
12653	}
12654	return ret, nil
12655	// {
12656	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
12657	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/rowAccessPolicies/{rowAccessPoliciesId}:setIamPolicy",
12658	//   "httpMethod": "POST",
12659	//   "id": "bigquery.rowAccessPolicies.setIamPolicy",
12660	//   "parameterOrder": [
12661	//     "resource"
12662	//   ],
12663	//   "parameters": {
12664	//     "resource": {
12665	//       "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.",
12666	//       "location": "path",
12667	//       "pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+/rowAccessPolicies/[^/]+$",
12668	//       "required": true,
12669	//       "type": "string"
12670	//     }
12671	//   },
12672	//   "path": "{+resource}:setIamPolicy",
12673	//   "request": {
12674	//     "$ref": "SetIamPolicyRequest"
12675	//   },
12676	//   "response": {
12677	//     "$ref": "Policy"
12678	//   },
12679	//   "scopes": [
12680	//     "https://www.googleapis.com/auth/bigquery",
12681	//     "https://www.googleapis.com/auth/cloud-platform"
12682	//   ]
12683	// }
12684
12685}
12686
12687// method id "bigquery.rowAccessPolicies.testIamPermissions":
12688
12689type RowAccessPoliciesTestIamPermissionsCall struct {
12690	s                         *Service
12691	resource                  string
12692	testiampermissionsrequest *TestIamPermissionsRequest
12693	urlParams_                gensupport.URLParams
12694	ctx_                      context.Context
12695	header_                   http.Header
12696}
12697
12698// TestIamPermissions: Returns permissions that a caller has on the
12699// specified resource. If the resource does not exist, this will return
12700// an empty set of permissions, not a `NOT_FOUND` error. Note: This
12701// operation is designed to be used for building permission-aware UIs
12702// and command-line tools, not for authorization checking. This
12703// operation may "fail open" without warning.
12704//
12705// - resource: REQUIRED: The resource for which the policy detail is
12706//   being requested. See the operation documentation for the
12707//   appropriate value for this field.
12708func (r *RowAccessPoliciesService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *RowAccessPoliciesTestIamPermissionsCall {
12709	c := &RowAccessPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12710	c.resource = resource
12711	c.testiampermissionsrequest = testiampermissionsrequest
12712	return c
12713}
12714
12715// Fields allows partial responses to be retrieved. See
12716// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12717// for more information.
12718func (c *RowAccessPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RowAccessPoliciesTestIamPermissionsCall {
12719	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12720	return c
12721}
12722
12723// Context sets the context to be used in this call's Do method. Any
12724// pending HTTP request will be aborted if the provided context is
12725// canceled.
12726func (c *RowAccessPoliciesTestIamPermissionsCall) Context(ctx context.Context) *RowAccessPoliciesTestIamPermissionsCall {
12727	c.ctx_ = ctx
12728	return c
12729}
12730
12731// Header returns an http.Header that can be modified by the caller to
12732// add HTTP headers to the request.
12733func (c *RowAccessPoliciesTestIamPermissionsCall) Header() http.Header {
12734	if c.header_ == nil {
12735		c.header_ = make(http.Header)
12736	}
12737	return c.header_
12738}
12739
12740func (c *RowAccessPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
12741	reqHeaders := make(http.Header)
12742	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12743	for k, v := range c.header_ {
12744		reqHeaders[k] = v
12745	}
12746	reqHeaders.Set("User-Agent", c.s.userAgent())
12747	var body io.Reader = nil
12748	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
12749	if err != nil {
12750		return nil, err
12751	}
12752	reqHeaders.Set("Content-Type", "application/json")
12753	c.urlParams_.Set("alt", alt)
12754	c.urlParams_.Set("prettyPrint", "false")
12755	urls := googleapi.ResolveRelative(c.s.BasePath, "{+resource}:testIamPermissions")
12756	urls += "?" + c.urlParams_.Encode()
12757	req, err := http.NewRequest("POST", urls, body)
12758	if err != nil {
12759		return nil, err
12760	}
12761	req.Header = reqHeaders
12762	googleapi.Expand(req.URL, map[string]string{
12763		"resource": c.resource,
12764	})
12765	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12766}
12767
12768// Do executes the "bigquery.rowAccessPolicies.testIamPermissions" call.
12769// Exactly one of *TestIamPermissionsResponse or error will be non-nil.
12770// Any non-2xx status code is an error. Response headers are in either
12771// *TestIamPermissionsResponse.ServerResponse.Header or (if a response
12772// was returned at all) in error.(*googleapi.Error).Header. Use
12773// googleapi.IsNotModified to check whether the returned error was
12774// because http.StatusNotModified was returned.
12775func (c *RowAccessPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
12776	gensupport.SetOptions(c.urlParams_, opts...)
12777	res, err := c.doRequest("json")
12778	if res != nil && res.StatusCode == http.StatusNotModified {
12779		if res.Body != nil {
12780			res.Body.Close()
12781		}
12782		return nil, &googleapi.Error{
12783			Code:   res.StatusCode,
12784			Header: res.Header,
12785		}
12786	}
12787	if err != nil {
12788		return nil, err
12789	}
12790	defer googleapi.CloseBody(res)
12791	if err := googleapi.CheckResponse(res); err != nil {
12792		return nil, err
12793	}
12794	ret := &TestIamPermissionsResponse{
12795		ServerResponse: googleapi.ServerResponse{
12796			Header:         res.Header,
12797			HTTPStatusCode: res.StatusCode,
12798		},
12799	}
12800	target := &ret
12801	if err := gensupport.DecodeResponse(target, res); err != nil {
12802		return nil, err
12803	}
12804	return ret, nil
12805	// {
12806	//   "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.",
12807	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/rowAccessPolicies/{rowAccessPoliciesId}:testIamPermissions",
12808	//   "httpMethod": "POST",
12809	//   "id": "bigquery.rowAccessPolicies.testIamPermissions",
12810	//   "parameterOrder": [
12811	//     "resource"
12812	//   ],
12813	//   "parameters": {
12814	//     "resource": {
12815	//       "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
12816	//       "location": "path",
12817	//       "pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+/rowAccessPolicies/[^/]+$",
12818	//       "required": true,
12819	//       "type": "string"
12820	//     }
12821	//   },
12822	//   "path": "{+resource}:testIamPermissions",
12823	//   "request": {
12824	//     "$ref": "TestIamPermissionsRequest"
12825	//   },
12826	//   "response": {
12827	//     "$ref": "TestIamPermissionsResponse"
12828	//   },
12829	//   "scopes": [
12830	//     "https://www.googleapis.com/auth/bigquery",
12831	//     "https://www.googleapis.com/auth/bigquery.readonly",
12832	//     "https://www.googleapis.com/auth/cloud-platform",
12833	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
12834	//   ]
12835	// }
12836
12837}
12838
12839// method id "bigquery.tabledata.insertAll":
12840
12841type TabledataInsertAllCall struct {
12842	s                         *Service
12843	projectId                 string
12844	datasetId                 string
12845	tableId                   string
12846	tabledatainsertallrequest *TableDataInsertAllRequest
12847	urlParams_                gensupport.URLParams
12848	ctx_                      context.Context
12849	header_                   http.Header
12850}
12851
12852// InsertAll: Streams data into BigQuery one record at a time without
12853// needing to run a load job. Requires the WRITER dataset role.
12854//
12855// - datasetId: Dataset ID of the destination table.
12856// - projectId: Project ID of the destination table.
12857// - tableId: Table ID of the destination table.
12858func (r *TabledataService) InsertAll(projectId string, datasetId string, tableId string, tabledatainsertallrequest *TableDataInsertAllRequest) *TabledataInsertAllCall {
12859	c := &TabledataInsertAllCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12860	c.projectId = projectId
12861	c.datasetId = datasetId
12862	c.tableId = tableId
12863	c.tabledatainsertallrequest = tabledatainsertallrequest
12864	return c
12865}
12866
12867// Fields allows partial responses to be retrieved. See
12868// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12869// for more information.
12870func (c *TabledataInsertAllCall) Fields(s ...googleapi.Field) *TabledataInsertAllCall {
12871	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12872	return c
12873}
12874
12875// Context sets the context to be used in this call's Do method. Any
12876// pending HTTP request will be aborted if the provided context is
12877// canceled.
12878func (c *TabledataInsertAllCall) Context(ctx context.Context) *TabledataInsertAllCall {
12879	c.ctx_ = ctx
12880	return c
12881}
12882
12883// Header returns an http.Header that can be modified by the caller to
12884// add HTTP headers to the request.
12885func (c *TabledataInsertAllCall) Header() http.Header {
12886	if c.header_ == nil {
12887		c.header_ = make(http.Header)
12888	}
12889	return c.header_
12890}
12891
12892func (c *TabledataInsertAllCall) doRequest(alt string) (*http.Response, error) {
12893	reqHeaders := make(http.Header)
12894	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12895	for k, v := range c.header_ {
12896		reqHeaders[k] = v
12897	}
12898	reqHeaders.Set("User-Agent", c.s.userAgent())
12899	var body io.Reader = nil
12900	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tabledatainsertallrequest)
12901	if err != nil {
12902		return nil, err
12903	}
12904	reqHeaders.Set("Content-Type", "application/json")
12905	c.urlParams_.Set("alt", alt)
12906	c.urlParams_.Set("prettyPrint", "false")
12907	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/insertAll")
12908	urls += "?" + c.urlParams_.Encode()
12909	req, err := http.NewRequest("POST", urls, body)
12910	if err != nil {
12911		return nil, err
12912	}
12913	req.Header = reqHeaders
12914	googleapi.Expand(req.URL, map[string]string{
12915		"projectId": c.projectId,
12916		"datasetId": c.datasetId,
12917		"tableId":   c.tableId,
12918	})
12919	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12920}
12921
12922// Do executes the "bigquery.tabledata.insertAll" call.
12923// Exactly one of *TableDataInsertAllResponse or error will be non-nil.
12924// Any non-2xx status code is an error. Response headers are in either
12925// *TableDataInsertAllResponse.ServerResponse.Header or (if a response
12926// was returned at all) in error.(*googleapi.Error).Header. Use
12927// googleapi.IsNotModified to check whether the returned error was
12928// because http.StatusNotModified was returned.
12929func (c *TabledataInsertAllCall) Do(opts ...googleapi.CallOption) (*TableDataInsertAllResponse, error) {
12930	gensupport.SetOptions(c.urlParams_, opts...)
12931	res, err := c.doRequest("json")
12932	if res != nil && res.StatusCode == http.StatusNotModified {
12933		if res.Body != nil {
12934			res.Body.Close()
12935		}
12936		return nil, &googleapi.Error{
12937			Code:   res.StatusCode,
12938			Header: res.Header,
12939		}
12940	}
12941	if err != nil {
12942		return nil, err
12943	}
12944	defer googleapi.CloseBody(res)
12945	if err := googleapi.CheckResponse(res); err != nil {
12946		return nil, err
12947	}
12948	ret := &TableDataInsertAllResponse{
12949		ServerResponse: googleapi.ServerResponse{
12950			Header:         res.Header,
12951			HTTPStatusCode: res.StatusCode,
12952		},
12953	}
12954	target := &ret
12955	if err := gensupport.DecodeResponse(target, res); err != nil {
12956		return nil, err
12957	}
12958	return ret, nil
12959	// {
12960	//   "description": "Streams data into BigQuery one record at a time without needing to run a load job. Requires the WRITER dataset role.",
12961	//   "httpMethod": "POST",
12962	//   "id": "bigquery.tabledata.insertAll",
12963	//   "parameterOrder": [
12964	//     "projectId",
12965	//     "datasetId",
12966	//     "tableId"
12967	//   ],
12968	//   "parameters": {
12969	//     "datasetId": {
12970	//       "description": "Dataset ID of the destination table.",
12971	//       "location": "path",
12972	//       "required": true,
12973	//       "type": "string"
12974	//     },
12975	//     "projectId": {
12976	//       "description": "Project ID of the destination table.",
12977	//       "location": "path",
12978	//       "required": true,
12979	//       "type": "string"
12980	//     },
12981	//     "tableId": {
12982	//       "description": "Table ID of the destination table.",
12983	//       "location": "path",
12984	//       "required": true,
12985	//       "type": "string"
12986	//     }
12987	//   },
12988	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/insertAll",
12989	//   "request": {
12990	//     "$ref": "TableDataInsertAllRequest"
12991	//   },
12992	//   "response": {
12993	//     "$ref": "TableDataInsertAllResponse"
12994	//   },
12995	//   "scopes": [
12996	//     "https://www.googleapis.com/auth/bigquery",
12997	//     "https://www.googleapis.com/auth/bigquery.insertdata",
12998	//     "https://www.googleapis.com/auth/cloud-platform"
12999	//   ]
13000	// }
13001
13002}
13003
13004// method id "bigquery.tabledata.list":
13005
13006type TabledataListCall struct {
13007	s            *Service
13008	projectId    string
13009	datasetId    string
13010	tableId      string
13011	urlParams_   gensupport.URLParams
13012	ifNoneMatch_ string
13013	ctx_         context.Context
13014	header_      http.Header
13015}
13016
13017// List: Retrieves table data from a specified set of rows. Requires the
13018// READER dataset role.
13019//
13020// - datasetId: Dataset ID of the table to read.
13021// - projectId: Project ID of the table to read.
13022// - tableId: Table ID of the table to read.
13023func (r *TabledataService) List(projectId string, datasetId string, tableId string) *TabledataListCall {
13024	c := &TabledataListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13025	c.projectId = projectId
13026	c.datasetId = datasetId
13027	c.tableId = tableId
13028	return c
13029}
13030
13031// MaxResults sets the optional parameter "maxResults": Maximum number
13032// of results to return
13033func (c *TabledataListCall) MaxResults(maxResults int64) *TabledataListCall {
13034	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
13035	return c
13036}
13037
13038// PageToken sets the optional parameter "pageToken": Page token,
13039// returned by a previous call, identifying the result set
13040func (c *TabledataListCall) PageToken(pageToken string) *TabledataListCall {
13041	c.urlParams_.Set("pageToken", pageToken)
13042	return c
13043}
13044
13045// SelectedFields sets the optional parameter "selectedFields": List of
13046// fields to return (comma-separated). If unspecified, all fields are
13047// returned
13048func (c *TabledataListCall) SelectedFields(selectedFields string) *TabledataListCall {
13049	c.urlParams_.Set("selectedFields", selectedFields)
13050	return c
13051}
13052
13053// StartIndex sets the optional parameter "startIndex": Zero-based index
13054// of the starting row to read
13055func (c *TabledataListCall) StartIndex(startIndex uint64) *TabledataListCall {
13056	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
13057	return c
13058}
13059
13060// Fields allows partial responses to be retrieved. See
13061// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13062// for more information.
13063func (c *TabledataListCall) Fields(s ...googleapi.Field) *TabledataListCall {
13064	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13065	return c
13066}
13067
13068// IfNoneMatch sets the optional parameter which makes the operation
13069// fail if the object's ETag matches the given value. This is useful for
13070// getting updates only after the object has changed since the last
13071// request. Use googleapi.IsNotModified to check whether the response
13072// error from Do is the result of In-None-Match.
13073func (c *TabledataListCall) IfNoneMatch(entityTag string) *TabledataListCall {
13074	c.ifNoneMatch_ = entityTag
13075	return c
13076}
13077
13078// Context sets the context to be used in this call's Do method. Any
13079// pending HTTP request will be aborted if the provided context is
13080// canceled.
13081func (c *TabledataListCall) Context(ctx context.Context) *TabledataListCall {
13082	c.ctx_ = ctx
13083	return c
13084}
13085
13086// Header returns an http.Header that can be modified by the caller to
13087// add HTTP headers to the request.
13088func (c *TabledataListCall) Header() http.Header {
13089	if c.header_ == nil {
13090		c.header_ = make(http.Header)
13091	}
13092	return c.header_
13093}
13094
13095func (c *TabledataListCall) doRequest(alt string) (*http.Response, error) {
13096	reqHeaders := make(http.Header)
13097	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
13098	for k, v := range c.header_ {
13099		reqHeaders[k] = v
13100	}
13101	reqHeaders.Set("User-Agent", c.s.userAgent())
13102	if c.ifNoneMatch_ != "" {
13103		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13104	}
13105	var body io.Reader = nil
13106	c.urlParams_.Set("alt", alt)
13107	c.urlParams_.Set("prettyPrint", "false")
13108	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/data")
13109	urls += "?" + c.urlParams_.Encode()
13110	req, err := http.NewRequest("GET", urls, body)
13111	if err != nil {
13112		return nil, err
13113	}
13114	req.Header = reqHeaders
13115	googleapi.Expand(req.URL, map[string]string{
13116		"projectId": c.projectId,
13117		"datasetId": c.datasetId,
13118		"tableId":   c.tableId,
13119	})
13120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13121}
13122
13123// Do executes the "bigquery.tabledata.list" call.
13124// Exactly one of *TableDataList or error will be non-nil. Any non-2xx
13125// status code is an error. Response headers are in either
13126// *TableDataList.ServerResponse.Header or (if a response was returned
13127// at all) in error.(*googleapi.Error).Header. Use
13128// googleapi.IsNotModified to check whether the returned error was
13129// because http.StatusNotModified was returned.
13130func (c *TabledataListCall) Do(opts ...googleapi.CallOption) (*TableDataList, error) {
13131	gensupport.SetOptions(c.urlParams_, opts...)
13132	res, err := c.doRequest("json")
13133	if res != nil && res.StatusCode == http.StatusNotModified {
13134		if res.Body != nil {
13135			res.Body.Close()
13136		}
13137		return nil, &googleapi.Error{
13138			Code:   res.StatusCode,
13139			Header: res.Header,
13140		}
13141	}
13142	if err != nil {
13143		return nil, err
13144	}
13145	defer googleapi.CloseBody(res)
13146	if err := googleapi.CheckResponse(res); err != nil {
13147		return nil, err
13148	}
13149	ret := &TableDataList{
13150		ServerResponse: googleapi.ServerResponse{
13151			Header:         res.Header,
13152			HTTPStatusCode: res.StatusCode,
13153		},
13154	}
13155	target := &ret
13156	if err := gensupport.DecodeResponse(target, res); err != nil {
13157		return nil, err
13158	}
13159	return ret, nil
13160	// {
13161	//   "description": "Retrieves table data from a specified set of rows. Requires the READER dataset role.",
13162	//   "httpMethod": "GET",
13163	//   "id": "bigquery.tabledata.list",
13164	//   "parameterOrder": [
13165	//     "projectId",
13166	//     "datasetId",
13167	//     "tableId"
13168	//   ],
13169	//   "parameters": {
13170	//     "datasetId": {
13171	//       "description": "Dataset ID of the table to read",
13172	//       "location": "path",
13173	//       "required": true,
13174	//       "type": "string"
13175	//     },
13176	//     "maxResults": {
13177	//       "description": "Maximum number of results to return",
13178	//       "format": "uint32",
13179	//       "location": "query",
13180	//       "type": "integer"
13181	//     },
13182	//     "pageToken": {
13183	//       "description": "Page token, returned by a previous call, identifying the result set",
13184	//       "location": "query",
13185	//       "type": "string"
13186	//     },
13187	//     "projectId": {
13188	//       "description": "Project ID of the table to read",
13189	//       "location": "path",
13190	//       "required": true,
13191	//       "type": "string"
13192	//     },
13193	//     "selectedFields": {
13194	//       "description": "List of fields to return (comma-separated). If unspecified, all fields are returned",
13195	//       "location": "query",
13196	//       "type": "string"
13197	//     },
13198	//     "startIndex": {
13199	//       "description": "Zero-based index of the starting row to read",
13200	//       "format": "uint64",
13201	//       "location": "query",
13202	//       "type": "string"
13203	//     },
13204	//     "tableId": {
13205	//       "description": "Table ID of the table to read",
13206	//       "location": "path",
13207	//       "required": true,
13208	//       "type": "string"
13209	//     }
13210	//   },
13211	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/data",
13212	//   "response": {
13213	//     "$ref": "TableDataList"
13214	//   },
13215	//   "scopes": [
13216	//     "https://www.googleapis.com/auth/bigquery",
13217	//     "https://www.googleapis.com/auth/cloud-platform",
13218	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
13219	//   ]
13220	// }
13221
13222}
13223
13224// Pages invokes f for each page of results.
13225// A non-nil error returned from f will halt the iteration.
13226// The provided context supersedes any context provided to the Context method.
13227func (c *TabledataListCall) Pages(ctx context.Context, f func(*TableDataList) error) error {
13228	c.ctx_ = ctx
13229	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
13230	for {
13231		x, err := c.Do()
13232		if err != nil {
13233			return err
13234		}
13235		if err := f(x); err != nil {
13236			return err
13237		}
13238		if x.PageToken == "" {
13239			return nil
13240		}
13241		c.PageToken(x.PageToken)
13242	}
13243}
13244
13245// method id "bigquery.tables.delete":
13246
13247type TablesDeleteCall struct {
13248	s          *Service
13249	projectId  string
13250	datasetId  string
13251	tableId    string
13252	urlParams_ gensupport.URLParams
13253	ctx_       context.Context
13254	header_    http.Header
13255}
13256
13257// Delete: Deletes the table specified by tableId from the dataset. If
13258// the table contains data, all the data will be deleted.
13259//
13260// - datasetId: Dataset ID of the table to delete.
13261// - projectId: Project ID of the table to delete.
13262// - tableId: Table ID of the table to delete.
13263func (r *TablesService) Delete(projectId string, datasetId string, tableId string) *TablesDeleteCall {
13264	c := &TablesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13265	c.projectId = projectId
13266	c.datasetId = datasetId
13267	c.tableId = tableId
13268	return c
13269}
13270
13271// Fields allows partial responses to be retrieved. See
13272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13273// for more information.
13274func (c *TablesDeleteCall) Fields(s ...googleapi.Field) *TablesDeleteCall {
13275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13276	return c
13277}
13278
13279// Context sets the context to be used in this call's Do method. Any
13280// pending HTTP request will be aborted if the provided context is
13281// canceled.
13282func (c *TablesDeleteCall) Context(ctx context.Context) *TablesDeleteCall {
13283	c.ctx_ = ctx
13284	return c
13285}
13286
13287// Header returns an http.Header that can be modified by the caller to
13288// add HTTP headers to the request.
13289func (c *TablesDeleteCall) Header() http.Header {
13290	if c.header_ == nil {
13291		c.header_ = make(http.Header)
13292	}
13293	return c.header_
13294}
13295
13296func (c *TablesDeleteCall) doRequest(alt string) (*http.Response, error) {
13297	reqHeaders := make(http.Header)
13298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
13299	for k, v := range c.header_ {
13300		reqHeaders[k] = v
13301	}
13302	reqHeaders.Set("User-Agent", c.s.userAgent())
13303	var body io.Reader = nil
13304	c.urlParams_.Set("alt", alt)
13305	c.urlParams_.Set("prettyPrint", "false")
13306	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}")
13307	urls += "?" + c.urlParams_.Encode()
13308	req, err := http.NewRequest("DELETE", urls, body)
13309	if err != nil {
13310		return nil, err
13311	}
13312	req.Header = reqHeaders
13313	googleapi.Expand(req.URL, map[string]string{
13314		"projectId": c.projectId,
13315		"datasetId": c.datasetId,
13316		"tableId":   c.tableId,
13317	})
13318	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13319}
13320
13321// Do executes the "bigquery.tables.delete" call.
13322func (c *TablesDeleteCall) Do(opts ...googleapi.CallOption) error {
13323	gensupport.SetOptions(c.urlParams_, opts...)
13324	res, err := c.doRequest("json")
13325	if err != nil {
13326		return err
13327	}
13328	defer googleapi.CloseBody(res)
13329	if err := googleapi.CheckResponse(res); err != nil {
13330		return err
13331	}
13332	return nil
13333	// {
13334	//   "description": "Deletes the table specified by tableId from the dataset. If the table contains data, all the data will be deleted.",
13335	//   "httpMethod": "DELETE",
13336	//   "id": "bigquery.tables.delete",
13337	//   "parameterOrder": [
13338	//     "projectId",
13339	//     "datasetId",
13340	//     "tableId"
13341	//   ],
13342	//   "parameters": {
13343	//     "datasetId": {
13344	//       "description": "Dataset ID of the table to delete",
13345	//       "location": "path",
13346	//       "required": true,
13347	//       "type": "string"
13348	//     },
13349	//     "projectId": {
13350	//       "description": "Project ID of the table to delete",
13351	//       "location": "path",
13352	//       "required": true,
13353	//       "type": "string"
13354	//     },
13355	//     "tableId": {
13356	//       "description": "Table ID of the table to delete",
13357	//       "location": "path",
13358	//       "required": true,
13359	//       "type": "string"
13360	//     }
13361	//   },
13362	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}",
13363	//   "scopes": [
13364	//     "https://www.googleapis.com/auth/bigquery",
13365	//     "https://www.googleapis.com/auth/cloud-platform"
13366	//   ]
13367	// }
13368
13369}
13370
13371// method id "bigquery.tables.get":
13372
13373type TablesGetCall struct {
13374	s            *Service
13375	projectId    string
13376	datasetId    string
13377	tableId      string
13378	urlParams_   gensupport.URLParams
13379	ifNoneMatch_ string
13380	ctx_         context.Context
13381	header_      http.Header
13382}
13383
13384// Get: Gets the specified table resource by table ID. This method does
13385// not return the data in the table, it only returns the table resource,
13386// which describes the structure of this table.
13387//
13388// - datasetId: Dataset ID of the requested table.
13389// - projectId: Project ID of the requested table.
13390// - tableId: Table ID of the requested table.
13391func (r *TablesService) Get(projectId string, datasetId string, tableId string) *TablesGetCall {
13392	c := &TablesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13393	c.projectId = projectId
13394	c.datasetId = datasetId
13395	c.tableId = tableId
13396	return c
13397}
13398
13399// SelectedFields sets the optional parameter "selectedFields": List of
13400// fields to return (comma-separated). If unspecified, all fields are
13401// returned
13402func (c *TablesGetCall) SelectedFields(selectedFields string) *TablesGetCall {
13403	c.urlParams_.Set("selectedFields", selectedFields)
13404	return c
13405}
13406
13407// Fields allows partial responses to be retrieved. See
13408// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13409// for more information.
13410func (c *TablesGetCall) Fields(s ...googleapi.Field) *TablesGetCall {
13411	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13412	return c
13413}
13414
13415// IfNoneMatch sets the optional parameter which makes the operation
13416// fail if the object's ETag matches the given value. This is useful for
13417// getting updates only after the object has changed since the last
13418// request. Use googleapi.IsNotModified to check whether the response
13419// error from Do is the result of In-None-Match.
13420func (c *TablesGetCall) IfNoneMatch(entityTag string) *TablesGetCall {
13421	c.ifNoneMatch_ = entityTag
13422	return c
13423}
13424
13425// Context sets the context to be used in this call's Do method. Any
13426// pending HTTP request will be aborted if the provided context is
13427// canceled.
13428func (c *TablesGetCall) Context(ctx context.Context) *TablesGetCall {
13429	c.ctx_ = ctx
13430	return c
13431}
13432
13433// Header returns an http.Header that can be modified by the caller to
13434// add HTTP headers to the request.
13435func (c *TablesGetCall) Header() http.Header {
13436	if c.header_ == nil {
13437		c.header_ = make(http.Header)
13438	}
13439	return c.header_
13440}
13441
13442func (c *TablesGetCall) doRequest(alt string) (*http.Response, error) {
13443	reqHeaders := make(http.Header)
13444	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
13445	for k, v := range c.header_ {
13446		reqHeaders[k] = v
13447	}
13448	reqHeaders.Set("User-Agent", c.s.userAgent())
13449	if c.ifNoneMatch_ != "" {
13450		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13451	}
13452	var body io.Reader = nil
13453	c.urlParams_.Set("alt", alt)
13454	c.urlParams_.Set("prettyPrint", "false")
13455	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}")
13456	urls += "?" + c.urlParams_.Encode()
13457	req, err := http.NewRequest("GET", urls, body)
13458	if err != nil {
13459		return nil, err
13460	}
13461	req.Header = reqHeaders
13462	googleapi.Expand(req.URL, map[string]string{
13463		"projectId": c.projectId,
13464		"datasetId": c.datasetId,
13465		"tableId":   c.tableId,
13466	})
13467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13468}
13469
13470// Do executes the "bigquery.tables.get" call.
13471// Exactly one of *Table or error will be non-nil. Any non-2xx status
13472// code is an error. Response headers are in either
13473// *Table.ServerResponse.Header or (if a response was returned at all)
13474// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13475// check whether the returned error was because http.StatusNotModified
13476// was returned.
13477func (c *TablesGetCall) Do(opts ...googleapi.CallOption) (*Table, error) {
13478	gensupport.SetOptions(c.urlParams_, opts...)
13479	res, err := c.doRequest("json")
13480	if res != nil && res.StatusCode == http.StatusNotModified {
13481		if res.Body != nil {
13482			res.Body.Close()
13483		}
13484		return nil, &googleapi.Error{
13485			Code:   res.StatusCode,
13486			Header: res.Header,
13487		}
13488	}
13489	if err != nil {
13490		return nil, err
13491	}
13492	defer googleapi.CloseBody(res)
13493	if err := googleapi.CheckResponse(res); err != nil {
13494		return nil, err
13495	}
13496	ret := &Table{
13497		ServerResponse: googleapi.ServerResponse{
13498			Header:         res.Header,
13499			HTTPStatusCode: res.StatusCode,
13500		},
13501	}
13502	target := &ret
13503	if err := gensupport.DecodeResponse(target, res); err != nil {
13504		return nil, err
13505	}
13506	return ret, nil
13507	// {
13508	//   "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.",
13509	//   "httpMethod": "GET",
13510	//   "id": "bigquery.tables.get",
13511	//   "parameterOrder": [
13512	//     "projectId",
13513	//     "datasetId",
13514	//     "tableId"
13515	//   ],
13516	//   "parameters": {
13517	//     "datasetId": {
13518	//       "description": "Dataset ID of the requested table",
13519	//       "location": "path",
13520	//       "required": true,
13521	//       "type": "string"
13522	//     },
13523	//     "projectId": {
13524	//       "description": "Project ID of the requested table",
13525	//       "location": "path",
13526	//       "required": true,
13527	//       "type": "string"
13528	//     },
13529	//     "selectedFields": {
13530	//       "description": "List of fields to return (comma-separated). If unspecified, all fields are returned",
13531	//       "location": "query",
13532	//       "type": "string"
13533	//     },
13534	//     "tableId": {
13535	//       "description": "Table ID of the requested table",
13536	//       "location": "path",
13537	//       "required": true,
13538	//       "type": "string"
13539	//     }
13540	//   },
13541	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}",
13542	//   "response": {
13543	//     "$ref": "Table"
13544	//   },
13545	//   "scopes": [
13546	//     "https://www.googleapis.com/auth/bigquery",
13547	//     "https://www.googleapis.com/auth/cloud-platform",
13548	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
13549	//   ]
13550	// }
13551
13552}
13553
13554// method id "bigquery.tables.getIamPolicy":
13555
13556type TablesGetIamPolicyCall struct {
13557	s                   *Service
13558	resource            string
13559	getiampolicyrequest *GetIamPolicyRequest
13560	urlParams_          gensupport.URLParams
13561	ctx_                context.Context
13562	header_             http.Header
13563}
13564
13565// GetIamPolicy: Gets the access control policy for a resource. Returns
13566// an empty policy if the resource exists and does not have a policy
13567// set.
13568//
13569// - resource: REQUIRED: The resource for which the policy is being
13570//   requested. See the operation documentation for the appropriate
13571//   value for this field.
13572func (r *TablesService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *TablesGetIamPolicyCall {
13573	c := &TablesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13574	c.resource = resource
13575	c.getiampolicyrequest = getiampolicyrequest
13576	return c
13577}
13578
13579// Fields allows partial responses to be retrieved. See
13580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13581// for more information.
13582func (c *TablesGetIamPolicyCall) Fields(s ...googleapi.Field) *TablesGetIamPolicyCall {
13583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13584	return c
13585}
13586
13587// Context sets the context to be used in this call's Do method. Any
13588// pending HTTP request will be aborted if the provided context is
13589// canceled.
13590func (c *TablesGetIamPolicyCall) Context(ctx context.Context) *TablesGetIamPolicyCall {
13591	c.ctx_ = ctx
13592	return c
13593}
13594
13595// Header returns an http.Header that can be modified by the caller to
13596// add HTTP headers to the request.
13597func (c *TablesGetIamPolicyCall) Header() http.Header {
13598	if c.header_ == nil {
13599		c.header_ = make(http.Header)
13600	}
13601	return c.header_
13602}
13603
13604func (c *TablesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
13605	reqHeaders := make(http.Header)
13606	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
13607	for k, v := range c.header_ {
13608		reqHeaders[k] = v
13609	}
13610	reqHeaders.Set("User-Agent", c.s.userAgent())
13611	var body io.Reader = nil
13612	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest)
13613	if err != nil {
13614		return nil, err
13615	}
13616	reqHeaders.Set("Content-Type", "application/json")
13617	c.urlParams_.Set("alt", alt)
13618	c.urlParams_.Set("prettyPrint", "false")
13619	urls := googleapi.ResolveRelative(c.s.BasePath, "{+resource}:getIamPolicy")
13620	urls += "?" + c.urlParams_.Encode()
13621	req, err := http.NewRequest("POST", urls, body)
13622	if err != nil {
13623		return nil, err
13624	}
13625	req.Header = reqHeaders
13626	googleapi.Expand(req.URL, map[string]string{
13627		"resource": c.resource,
13628	})
13629	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13630}
13631
13632// Do executes the "bigquery.tables.getIamPolicy" call.
13633// Exactly one of *Policy or error will be non-nil. Any non-2xx status
13634// code is an error. Response headers are in either
13635// *Policy.ServerResponse.Header or (if a response was returned at all)
13636// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13637// check whether the returned error was because http.StatusNotModified
13638// was returned.
13639func (c *TablesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
13640	gensupport.SetOptions(c.urlParams_, opts...)
13641	res, err := c.doRequest("json")
13642	if res != nil && res.StatusCode == http.StatusNotModified {
13643		if res.Body != nil {
13644			res.Body.Close()
13645		}
13646		return nil, &googleapi.Error{
13647			Code:   res.StatusCode,
13648			Header: res.Header,
13649		}
13650	}
13651	if err != nil {
13652		return nil, err
13653	}
13654	defer googleapi.CloseBody(res)
13655	if err := googleapi.CheckResponse(res); err != nil {
13656		return nil, err
13657	}
13658	ret := &Policy{
13659		ServerResponse: googleapi.ServerResponse{
13660			Header:         res.Header,
13661			HTTPStatusCode: res.StatusCode,
13662		},
13663	}
13664	target := &ret
13665	if err := gensupport.DecodeResponse(target, res); err != nil {
13666		return nil, err
13667	}
13668	return ret, nil
13669	// {
13670	//   "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
13671	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}:getIamPolicy",
13672	//   "httpMethod": "POST",
13673	//   "id": "bigquery.tables.getIamPolicy",
13674	//   "parameterOrder": [
13675	//     "resource"
13676	//   ],
13677	//   "parameters": {
13678	//     "resource": {
13679	//       "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.",
13680	//       "location": "path",
13681	//       "pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+$",
13682	//       "required": true,
13683	//       "type": "string"
13684	//     }
13685	//   },
13686	//   "path": "{+resource}:getIamPolicy",
13687	//   "request": {
13688	//     "$ref": "GetIamPolicyRequest"
13689	//   },
13690	//   "response": {
13691	//     "$ref": "Policy"
13692	//   },
13693	//   "scopes": [
13694	//     "https://www.googleapis.com/auth/bigquery",
13695	//     "https://www.googleapis.com/auth/bigquery.readonly",
13696	//     "https://www.googleapis.com/auth/cloud-platform",
13697	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
13698	//   ]
13699	// }
13700
13701}
13702
13703// method id "bigquery.tables.insert":
13704
13705type TablesInsertCall struct {
13706	s          *Service
13707	projectId  string
13708	datasetId  string
13709	table      *Table
13710	urlParams_ gensupport.URLParams
13711	ctx_       context.Context
13712	header_    http.Header
13713}
13714
13715// Insert: Creates a new, empty table in the dataset.
13716//
13717// - datasetId: Dataset ID of the new table.
13718// - projectId: Project ID of the new table.
13719func (r *TablesService) Insert(projectId string, datasetId string, table *Table) *TablesInsertCall {
13720	c := &TablesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13721	c.projectId = projectId
13722	c.datasetId = datasetId
13723	c.table = table
13724	return c
13725}
13726
13727// Fields allows partial responses to be retrieved. See
13728// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13729// for more information.
13730func (c *TablesInsertCall) Fields(s ...googleapi.Field) *TablesInsertCall {
13731	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13732	return c
13733}
13734
13735// Context sets the context to be used in this call's Do method. Any
13736// pending HTTP request will be aborted if the provided context is
13737// canceled.
13738func (c *TablesInsertCall) Context(ctx context.Context) *TablesInsertCall {
13739	c.ctx_ = ctx
13740	return c
13741}
13742
13743// Header returns an http.Header that can be modified by the caller to
13744// add HTTP headers to the request.
13745func (c *TablesInsertCall) Header() http.Header {
13746	if c.header_ == nil {
13747		c.header_ = make(http.Header)
13748	}
13749	return c.header_
13750}
13751
13752func (c *TablesInsertCall) doRequest(alt string) (*http.Response, error) {
13753	reqHeaders := make(http.Header)
13754	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
13755	for k, v := range c.header_ {
13756		reqHeaders[k] = v
13757	}
13758	reqHeaders.Set("User-Agent", c.s.userAgent())
13759	var body io.Reader = nil
13760	body, err := googleapi.WithoutDataWrapper.JSONReader(c.table)
13761	if err != nil {
13762		return nil, err
13763	}
13764	reqHeaders.Set("Content-Type", "application/json")
13765	c.urlParams_.Set("alt", alt)
13766	c.urlParams_.Set("prettyPrint", "false")
13767	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables")
13768	urls += "?" + c.urlParams_.Encode()
13769	req, err := http.NewRequest("POST", urls, body)
13770	if err != nil {
13771		return nil, err
13772	}
13773	req.Header = reqHeaders
13774	googleapi.Expand(req.URL, map[string]string{
13775		"projectId": c.projectId,
13776		"datasetId": c.datasetId,
13777	})
13778	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13779}
13780
13781// Do executes the "bigquery.tables.insert" call.
13782// Exactly one of *Table or error will be non-nil. Any non-2xx status
13783// code is an error. Response headers are in either
13784// *Table.ServerResponse.Header or (if a response was returned at all)
13785// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13786// check whether the returned error was because http.StatusNotModified
13787// was returned.
13788func (c *TablesInsertCall) Do(opts ...googleapi.CallOption) (*Table, error) {
13789	gensupport.SetOptions(c.urlParams_, opts...)
13790	res, err := c.doRequest("json")
13791	if res != nil && res.StatusCode == http.StatusNotModified {
13792		if res.Body != nil {
13793			res.Body.Close()
13794		}
13795		return nil, &googleapi.Error{
13796			Code:   res.StatusCode,
13797			Header: res.Header,
13798		}
13799	}
13800	if err != nil {
13801		return nil, err
13802	}
13803	defer googleapi.CloseBody(res)
13804	if err := googleapi.CheckResponse(res); err != nil {
13805		return nil, err
13806	}
13807	ret := &Table{
13808		ServerResponse: googleapi.ServerResponse{
13809			Header:         res.Header,
13810			HTTPStatusCode: res.StatusCode,
13811		},
13812	}
13813	target := &ret
13814	if err := gensupport.DecodeResponse(target, res); err != nil {
13815		return nil, err
13816	}
13817	return ret, nil
13818	// {
13819	//   "description": "Creates a new, empty table in the dataset.",
13820	//   "httpMethod": "POST",
13821	//   "id": "bigquery.tables.insert",
13822	//   "parameterOrder": [
13823	//     "projectId",
13824	//     "datasetId"
13825	//   ],
13826	//   "parameters": {
13827	//     "datasetId": {
13828	//       "description": "Dataset ID of the new table",
13829	//       "location": "path",
13830	//       "required": true,
13831	//       "type": "string"
13832	//     },
13833	//     "projectId": {
13834	//       "description": "Project ID of the new table",
13835	//       "location": "path",
13836	//       "required": true,
13837	//       "type": "string"
13838	//     }
13839	//   },
13840	//   "path": "projects/{projectId}/datasets/{datasetId}/tables",
13841	//   "request": {
13842	//     "$ref": "Table"
13843	//   },
13844	//   "response": {
13845	//     "$ref": "Table"
13846	//   },
13847	//   "scopes": [
13848	//     "https://www.googleapis.com/auth/bigquery",
13849	//     "https://www.googleapis.com/auth/cloud-platform"
13850	//   ]
13851	// }
13852
13853}
13854
13855// method id "bigquery.tables.list":
13856
13857type TablesListCall struct {
13858	s            *Service
13859	projectId    string
13860	datasetId    string
13861	urlParams_   gensupport.URLParams
13862	ifNoneMatch_ string
13863	ctx_         context.Context
13864	header_      http.Header
13865}
13866
13867// List: Lists all tables in the specified dataset. Requires the READER
13868// dataset role.
13869//
13870// - datasetId: Dataset ID of the tables to list.
13871// - projectId: Project ID of the tables to list.
13872func (r *TablesService) List(projectId string, datasetId string) *TablesListCall {
13873	c := &TablesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13874	c.projectId = projectId
13875	c.datasetId = datasetId
13876	return c
13877}
13878
13879// MaxResults sets the optional parameter "maxResults": Maximum number
13880// of results to return
13881func (c *TablesListCall) MaxResults(maxResults int64) *TablesListCall {
13882	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
13883	return c
13884}
13885
13886// PageToken sets the optional parameter "pageToken": Page token,
13887// returned by a previous call, to request the next page of results
13888func (c *TablesListCall) PageToken(pageToken string) *TablesListCall {
13889	c.urlParams_.Set("pageToken", pageToken)
13890	return c
13891}
13892
13893// Fields allows partial responses to be retrieved. See
13894// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13895// for more information.
13896func (c *TablesListCall) Fields(s ...googleapi.Field) *TablesListCall {
13897	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13898	return c
13899}
13900
13901// IfNoneMatch sets the optional parameter which makes the operation
13902// fail if the object's ETag matches the given value. This is useful for
13903// getting updates only after the object has changed since the last
13904// request. Use googleapi.IsNotModified to check whether the response
13905// error from Do is the result of In-None-Match.
13906func (c *TablesListCall) IfNoneMatch(entityTag string) *TablesListCall {
13907	c.ifNoneMatch_ = entityTag
13908	return c
13909}
13910
13911// Context sets the context to be used in this call's Do method. Any
13912// pending HTTP request will be aborted if the provided context is
13913// canceled.
13914func (c *TablesListCall) Context(ctx context.Context) *TablesListCall {
13915	c.ctx_ = ctx
13916	return c
13917}
13918
13919// Header returns an http.Header that can be modified by the caller to
13920// add HTTP headers to the request.
13921func (c *TablesListCall) Header() http.Header {
13922	if c.header_ == nil {
13923		c.header_ = make(http.Header)
13924	}
13925	return c.header_
13926}
13927
13928func (c *TablesListCall) doRequest(alt string) (*http.Response, error) {
13929	reqHeaders := make(http.Header)
13930	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
13931	for k, v := range c.header_ {
13932		reqHeaders[k] = v
13933	}
13934	reqHeaders.Set("User-Agent", c.s.userAgent())
13935	if c.ifNoneMatch_ != "" {
13936		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13937	}
13938	var body io.Reader = nil
13939	c.urlParams_.Set("alt", alt)
13940	c.urlParams_.Set("prettyPrint", "false")
13941	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables")
13942	urls += "?" + c.urlParams_.Encode()
13943	req, err := http.NewRequest("GET", urls, body)
13944	if err != nil {
13945		return nil, err
13946	}
13947	req.Header = reqHeaders
13948	googleapi.Expand(req.URL, map[string]string{
13949		"projectId": c.projectId,
13950		"datasetId": c.datasetId,
13951	})
13952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13953}
13954
13955// Do executes the "bigquery.tables.list" call.
13956// Exactly one of *TableList or error will be non-nil. Any non-2xx
13957// status code is an error. Response headers are in either
13958// *TableList.ServerResponse.Header or (if a response was returned at
13959// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13960// to check whether the returned error was because
13961// http.StatusNotModified was returned.
13962func (c *TablesListCall) Do(opts ...googleapi.CallOption) (*TableList, error) {
13963	gensupport.SetOptions(c.urlParams_, opts...)
13964	res, err := c.doRequest("json")
13965	if res != nil && res.StatusCode == http.StatusNotModified {
13966		if res.Body != nil {
13967			res.Body.Close()
13968		}
13969		return nil, &googleapi.Error{
13970			Code:   res.StatusCode,
13971			Header: res.Header,
13972		}
13973	}
13974	if err != nil {
13975		return nil, err
13976	}
13977	defer googleapi.CloseBody(res)
13978	if err := googleapi.CheckResponse(res); err != nil {
13979		return nil, err
13980	}
13981	ret := &TableList{
13982		ServerResponse: googleapi.ServerResponse{
13983			Header:         res.Header,
13984			HTTPStatusCode: res.StatusCode,
13985		},
13986	}
13987	target := &ret
13988	if err := gensupport.DecodeResponse(target, res); err != nil {
13989		return nil, err
13990	}
13991	return ret, nil
13992	// {
13993	//   "description": "Lists all tables in the specified dataset. Requires the READER dataset role.",
13994	//   "httpMethod": "GET",
13995	//   "id": "bigquery.tables.list",
13996	//   "parameterOrder": [
13997	//     "projectId",
13998	//     "datasetId"
13999	//   ],
14000	//   "parameters": {
14001	//     "datasetId": {
14002	//       "description": "Dataset ID of the tables to list",
14003	//       "location": "path",
14004	//       "required": true,
14005	//       "type": "string"
14006	//     },
14007	//     "maxResults": {
14008	//       "description": "Maximum number of results to return",
14009	//       "format": "uint32",
14010	//       "location": "query",
14011	//       "type": "integer"
14012	//     },
14013	//     "pageToken": {
14014	//       "description": "Page token, returned by a previous call, to request the next page of results",
14015	//       "location": "query",
14016	//       "type": "string"
14017	//     },
14018	//     "projectId": {
14019	//       "description": "Project ID of the tables to list",
14020	//       "location": "path",
14021	//       "required": true,
14022	//       "type": "string"
14023	//     }
14024	//   },
14025	//   "path": "projects/{projectId}/datasets/{datasetId}/tables",
14026	//   "response": {
14027	//     "$ref": "TableList"
14028	//   },
14029	//   "scopes": [
14030	//     "https://www.googleapis.com/auth/bigquery",
14031	//     "https://www.googleapis.com/auth/cloud-platform",
14032	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
14033	//   ]
14034	// }
14035
14036}
14037
14038// Pages invokes f for each page of results.
14039// A non-nil error returned from f will halt the iteration.
14040// The provided context supersedes any context provided to the Context method.
14041func (c *TablesListCall) Pages(ctx context.Context, f func(*TableList) error) error {
14042	c.ctx_ = ctx
14043	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
14044	for {
14045		x, err := c.Do()
14046		if err != nil {
14047			return err
14048		}
14049		if err := f(x); err != nil {
14050			return err
14051		}
14052		if x.NextPageToken == "" {
14053			return nil
14054		}
14055		c.PageToken(x.NextPageToken)
14056	}
14057}
14058
14059// method id "bigquery.tables.patch":
14060
14061type TablesPatchCall struct {
14062	s          *Service
14063	projectId  string
14064	datasetId  string
14065	tableId    string
14066	table      *Table
14067	urlParams_ gensupport.URLParams
14068	ctx_       context.Context
14069	header_    http.Header
14070}
14071
14072// Patch: Updates information in an existing table. The update method
14073// replaces the entire table resource, whereas the patch method only
14074// replaces fields that are provided in the submitted table resource.
14075// This method supports patch semantics.
14076//
14077// - datasetId: Dataset ID of the table to update.
14078// - projectId: Project ID of the table to update.
14079// - tableId: Table ID of the table to update.
14080func (r *TablesService) Patch(projectId string, datasetId string, tableId string, table *Table) *TablesPatchCall {
14081	c := &TablesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14082	c.projectId = projectId
14083	c.datasetId = datasetId
14084	c.tableId = tableId
14085	c.table = table
14086	return c
14087}
14088
14089// Fields allows partial responses to be retrieved. See
14090// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14091// for more information.
14092func (c *TablesPatchCall) Fields(s ...googleapi.Field) *TablesPatchCall {
14093	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14094	return c
14095}
14096
14097// Context sets the context to be used in this call's Do method. Any
14098// pending HTTP request will be aborted if the provided context is
14099// canceled.
14100func (c *TablesPatchCall) Context(ctx context.Context) *TablesPatchCall {
14101	c.ctx_ = ctx
14102	return c
14103}
14104
14105// Header returns an http.Header that can be modified by the caller to
14106// add HTTP headers to the request.
14107func (c *TablesPatchCall) Header() http.Header {
14108	if c.header_ == nil {
14109		c.header_ = make(http.Header)
14110	}
14111	return c.header_
14112}
14113
14114func (c *TablesPatchCall) doRequest(alt string) (*http.Response, error) {
14115	reqHeaders := make(http.Header)
14116	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
14117	for k, v := range c.header_ {
14118		reqHeaders[k] = v
14119	}
14120	reqHeaders.Set("User-Agent", c.s.userAgent())
14121	var body io.Reader = nil
14122	body, err := googleapi.WithoutDataWrapper.JSONReader(c.table)
14123	if err != nil {
14124		return nil, err
14125	}
14126	reqHeaders.Set("Content-Type", "application/json")
14127	c.urlParams_.Set("alt", alt)
14128	c.urlParams_.Set("prettyPrint", "false")
14129	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}")
14130	urls += "?" + c.urlParams_.Encode()
14131	req, err := http.NewRequest("PATCH", urls, body)
14132	if err != nil {
14133		return nil, err
14134	}
14135	req.Header = reqHeaders
14136	googleapi.Expand(req.URL, map[string]string{
14137		"projectId": c.projectId,
14138		"datasetId": c.datasetId,
14139		"tableId":   c.tableId,
14140	})
14141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14142}
14143
14144// Do executes the "bigquery.tables.patch" call.
14145// Exactly one of *Table or error will be non-nil. Any non-2xx status
14146// code is an error. Response headers are in either
14147// *Table.ServerResponse.Header or (if a response was returned at all)
14148// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
14149// check whether the returned error was because http.StatusNotModified
14150// was returned.
14151func (c *TablesPatchCall) Do(opts ...googleapi.CallOption) (*Table, error) {
14152	gensupport.SetOptions(c.urlParams_, opts...)
14153	res, err := c.doRequest("json")
14154	if res != nil && res.StatusCode == http.StatusNotModified {
14155		if res.Body != nil {
14156			res.Body.Close()
14157		}
14158		return nil, &googleapi.Error{
14159			Code:   res.StatusCode,
14160			Header: res.Header,
14161		}
14162	}
14163	if err != nil {
14164		return nil, err
14165	}
14166	defer googleapi.CloseBody(res)
14167	if err := googleapi.CheckResponse(res); err != nil {
14168		return nil, err
14169	}
14170	ret := &Table{
14171		ServerResponse: googleapi.ServerResponse{
14172			Header:         res.Header,
14173			HTTPStatusCode: res.StatusCode,
14174		},
14175	}
14176	target := &ret
14177	if err := gensupport.DecodeResponse(target, res); err != nil {
14178		return nil, err
14179	}
14180	return ret, nil
14181	// {
14182	//   "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.",
14183	//   "httpMethod": "PATCH",
14184	//   "id": "bigquery.tables.patch",
14185	//   "parameterOrder": [
14186	//     "projectId",
14187	//     "datasetId",
14188	//     "tableId"
14189	//   ],
14190	//   "parameters": {
14191	//     "datasetId": {
14192	//       "description": "Dataset ID of the table to update",
14193	//       "location": "path",
14194	//       "required": true,
14195	//       "type": "string"
14196	//     },
14197	//     "projectId": {
14198	//       "description": "Project ID of the table to update",
14199	//       "location": "path",
14200	//       "required": true,
14201	//       "type": "string"
14202	//     },
14203	//     "tableId": {
14204	//       "description": "Table ID of the table to update",
14205	//       "location": "path",
14206	//       "required": true,
14207	//       "type": "string"
14208	//     }
14209	//   },
14210	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}",
14211	//   "request": {
14212	//     "$ref": "Table"
14213	//   },
14214	//   "response": {
14215	//     "$ref": "Table"
14216	//   },
14217	//   "scopes": [
14218	//     "https://www.googleapis.com/auth/bigquery",
14219	//     "https://www.googleapis.com/auth/cloud-platform"
14220	//   ]
14221	// }
14222
14223}
14224
14225// method id "bigquery.tables.setIamPolicy":
14226
14227type TablesSetIamPolicyCall struct {
14228	s                   *Service
14229	resource            string
14230	setiampolicyrequest *SetIamPolicyRequest
14231	urlParams_          gensupport.URLParams
14232	ctx_                context.Context
14233	header_             http.Header
14234}
14235
14236// SetIamPolicy: Sets the access control policy on the specified
14237// resource. Replaces any existing policy. Can return `NOT_FOUND`,
14238// `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
14239//
14240// - resource: REQUIRED: The resource for which the policy is being
14241//   specified. See the operation documentation for the appropriate
14242//   value for this field.
14243func (r *TablesService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *TablesSetIamPolicyCall {
14244	c := &TablesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14245	c.resource = resource
14246	c.setiampolicyrequest = setiampolicyrequest
14247	return c
14248}
14249
14250// Fields allows partial responses to be retrieved. See
14251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14252// for more information.
14253func (c *TablesSetIamPolicyCall) Fields(s ...googleapi.Field) *TablesSetIamPolicyCall {
14254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14255	return c
14256}
14257
14258// Context sets the context to be used in this call's Do method. Any
14259// pending HTTP request will be aborted if the provided context is
14260// canceled.
14261func (c *TablesSetIamPolicyCall) Context(ctx context.Context) *TablesSetIamPolicyCall {
14262	c.ctx_ = ctx
14263	return c
14264}
14265
14266// Header returns an http.Header that can be modified by the caller to
14267// add HTTP headers to the request.
14268func (c *TablesSetIamPolicyCall) Header() http.Header {
14269	if c.header_ == nil {
14270		c.header_ = make(http.Header)
14271	}
14272	return c.header_
14273}
14274
14275func (c *TablesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
14276	reqHeaders := make(http.Header)
14277	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
14278	for k, v := range c.header_ {
14279		reqHeaders[k] = v
14280	}
14281	reqHeaders.Set("User-Agent", c.s.userAgent())
14282	var body io.Reader = nil
14283	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
14284	if err != nil {
14285		return nil, err
14286	}
14287	reqHeaders.Set("Content-Type", "application/json")
14288	c.urlParams_.Set("alt", alt)
14289	c.urlParams_.Set("prettyPrint", "false")
14290	urls := googleapi.ResolveRelative(c.s.BasePath, "{+resource}:setIamPolicy")
14291	urls += "?" + c.urlParams_.Encode()
14292	req, err := http.NewRequest("POST", urls, body)
14293	if err != nil {
14294		return nil, err
14295	}
14296	req.Header = reqHeaders
14297	googleapi.Expand(req.URL, map[string]string{
14298		"resource": c.resource,
14299	})
14300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14301}
14302
14303// Do executes the "bigquery.tables.setIamPolicy" call.
14304// Exactly one of *Policy or error will be non-nil. Any non-2xx status
14305// code is an error. Response headers are in either
14306// *Policy.ServerResponse.Header or (if a response was returned at all)
14307// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
14308// check whether the returned error was because http.StatusNotModified
14309// was returned.
14310func (c *TablesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
14311	gensupport.SetOptions(c.urlParams_, opts...)
14312	res, err := c.doRequest("json")
14313	if res != nil && res.StatusCode == http.StatusNotModified {
14314		if res.Body != nil {
14315			res.Body.Close()
14316		}
14317		return nil, &googleapi.Error{
14318			Code:   res.StatusCode,
14319			Header: res.Header,
14320		}
14321	}
14322	if err != nil {
14323		return nil, err
14324	}
14325	defer googleapi.CloseBody(res)
14326	if err := googleapi.CheckResponse(res); err != nil {
14327		return nil, err
14328	}
14329	ret := &Policy{
14330		ServerResponse: googleapi.ServerResponse{
14331			Header:         res.Header,
14332			HTTPStatusCode: res.StatusCode,
14333		},
14334	}
14335	target := &ret
14336	if err := gensupport.DecodeResponse(target, res); err != nil {
14337		return nil, err
14338	}
14339	return ret, nil
14340	// {
14341	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
14342	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}:setIamPolicy",
14343	//   "httpMethod": "POST",
14344	//   "id": "bigquery.tables.setIamPolicy",
14345	//   "parameterOrder": [
14346	//     "resource"
14347	//   ],
14348	//   "parameters": {
14349	//     "resource": {
14350	//       "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.",
14351	//       "location": "path",
14352	//       "pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+$",
14353	//       "required": true,
14354	//       "type": "string"
14355	//     }
14356	//   },
14357	//   "path": "{+resource}:setIamPolicy",
14358	//   "request": {
14359	//     "$ref": "SetIamPolicyRequest"
14360	//   },
14361	//   "response": {
14362	//     "$ref": "Policy"
14363	//   },
14364	//   "scopes": [
14365	//     "https://www.googleapis.com/auth/bigquery",
14366	//     "https://www.googleapis.com/auth/cloud-platform"
14367	//   ]
14368	// }
14369
14370}
14371
14372// method id "bigquery.tables.testIamPermissions":
14373
14374type TablesTestIamPermissionsCall struct {
14375	s                         *Service
14376	resource                  string
14377	testiampermissionsrequest *TestIamPermissionsRequest
14378	urlParams_                gensupport.URLParams
14379	ctx_                      context.Context
14380	header_                   http.Header
14381}
14382
14383// TestIamPermissions: Returns permissions that a caller has on the
14384// specified resource. If the resource does not exist, this will return
14385// an empty set of permissions, not a `NOT_FOUND` error. Note: This
14386// operation is designed to be used for building permission-aware UIs
14387// and command-line tools, not for authorization checking. This
14388// operation may "fail open" without warning.
14389//
14390// - resource: REQUIRED: The resource for which the policy detail is
14391//   being requested. See the operation documentation for the
14392//   appropriate value for this field.
14393func (r *TablesService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *TablesTestIamPermissionsCall {
14394	c := &TablesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14395	c.resource = resource
14396	c.testiampermissionsrequest = testiampermissionsrequest
14397	return c
14398}
14399
14400// Fields allows partial responses to be retrieved. See
14401// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14402// for more information.
14403func (c *TablesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TablesTestIamPermissionsCall {
14404	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14405	return c
14406}
14407
14408// Context sets the context to be used in this call's Do method. Any
14409// pending HTTP request will be aborted if the provided context is
14410// canceled.
14411func (c *TablesTestIamPermissionsCall) Context(ctx context.Context) *TablesTestIamPermissionsCall {
14412	c.ctx_ = ctx
14413	return c
14414}
14415
14416// Header returns an http.Header that can be modified by the caller to
14417// add HTTP headers to the request.
14418func (c *TablesTestIamPermissionsCall) Header() http.Header {
14419	if c.header_ == nil {
14420		c.header_ = make(http.Header)
14421	}
14422	return c.header_
14423}
14424
14425func (c *TablesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
14426	reqHeaders := make(http.Header)
14427	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
14428	for k, v := range c.header_ {
14429		reqHeaders[k] = v
14430	}
14431	reqHeaders.Set("User-Agent", c.s.userAgent())
14432	var body io.Reader = nil
14433	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
14434	if err != nil {
14435		return nil, err
14436	}
14437	reqHeaders.Set("Content-Type", "application/json")
14438	c.urlParams_.Set("alt", alt)
14439	c.urlParams_.Set("prettyPrint", "false")
14440	urls := googleapi.ResolveRelative(c.s.BasePath, "{+resource}:testIamPermissions")
14441	urls += "?" + c.urlParams_.Encode()
14442	req, err := http.NewRequest("POST", urls, body)
14443	if err != nil {
14444		return nil, err
14445	}
14446	req.Header = reqHeaders
14447	googleapi.Expand(req.URL, map[string]string{
14448		"resource": c.resource,
14449	})
14450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14451}
14452
14453// Do executes the "bigquery.tables.testIamPermissions" call.
14454// Exactly one of *TestIamPermissionsResponse or error will be non-nil.
14455// Any non-2xx status code is an error. Response headers are in either
14456// *TestIamPermissionsResponse.ServerResponse.Header or (if a response
14457// was returned at all) in error.(*googleapi.Error).Header. Use
14458// googleapi.IsNotModified to check whether the returned error was
14459// because http.StatusNotModified was returned.
14460func (c *TablesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
14461	gensupport.SetOptions(c.urlParams_, opts...)
14462	res, err := c.doRequest("json")
14463	if res != nil && res.StatusCode == http.StatusNotModified {
14464		if res.Body != nil {
14465			res.Body.Close()
14466		}
14467		return nil, &googleapi.Error{
14468			Code:   res.StatusCode,
14469			Header: res.Header,
14470		}
14471	}
14472	if err != nil {
14473		return nil, err
14474	}
14475	defer googleapi.CloseBody(res)
14476	if err := googleapi.CheckResponse(res); err != nil {
14477		return nil, err
14478	}
14479	ret := &TestIamPermissionsResponse{
14480		ServerResponse: googleapi.ServerResponse{
14481			Header:         res.Header,
14482			HTTPStatusCode: res.StatusCode,
14483		},
14484	}
14485	target := &ret
14486	if err := gensupport.DecodeResponse(target, res); err != nil {
14487		return nil, err
14488	}
14489	return ret, nil
14490	// {
14491	//   "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.",
14492	//   "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}:testIamPermissions",
14493	//   "httpMethod": "POST",
14494	//   "id": "bigquery.tables.testIamPermissions",
14495	//   "parameterOrder": [
14496	//     "resource"
14497	//   ],
14498	//   "parameters": {
14499	//     "resource": {
14500	//       "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
14501	//       "location": "path",
14502	//       "pattern": "^projects/[^/]+/datasets/[^/]+/tables/[^/]+$",
14503	//       "required": true,
14504	//       "type": "string"
14505	//     }
14506	//   },
14507	//   "path": "{+resource}:testIamPermissions",
14508	//   "request": {
14509	//     "$ref": "TestIamPermissionsRequest"
14510	//   },
14511	//   "response": {
14512	//     "$ref": "TestIamPermissionsResponse"
14513	//   },
14514	//   "scopes": [
14515	//     "https://www.googleapis.com/auth/bigquery",
14516	//     "https://www.googleapis.com/auth/bigquery.readonly",
14517	//     "https://www.googleapis.com/auth/cloud-platform",
14518	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
14519	//   ]
14520	// }
14521
14522}
14523
14524// method id "bigquery.tables.update":
14525
14526type TablesUpdateCall struct {
14527	s          *Service
14528	projectId  string
14529	datasetId  string
14530	tableId    string
14531	table      *Table
14532	urlParams_ gensupport.URLParams
14533	ctx_       context.Context
14534	header_    http.Header
14535}
14536
14537// Update: Updates information in an existing table. The update method
14538// replaces the entire table resource, whereas the patch method only
14539// replaces fields that are provided in the submitted table resource.
14540//
14541// - datasetId: Dataset ID of the table to update.
14542// - projectId: Project ID of the table to update.
14543// - tableId: Table ID of the table to update.
14544func (r *TablesService) Update(projectId string, datasetId string, tableId string, table *Table) *TablesUpdateCall {
14545	c := &TablesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14546	c.projectId = projectId
14547	c.datasetId = datasetId
14548	c.tableId = tableId
14549	c.table = table
14550	return c
14551}
14552
14553// Fields allows partial responses to be retrieved. See
14554// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14555// for more information.
14556func (c *TablesUpdateCall) Fields(s ...googleapi.Field) *TablesUpdateCall {
14557	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14558	return c
14559}
14560
14561// Context sets the context to be used in this call's Do method. Any
14562// pending HTTP request will be aborted if the provided context is
14563// canceled.
14564func (c *TablesUpdateCall) Context(ctx context.Context) *TablesUpdateCall {
14565	c.ctx_ = ctx
14566	return c
14567}
14568
14569// Header returns an http.Header that can be modified by the caller to
14570// add HTTP headers to the request.
14571func (c *TablesUpdateCall) Header() http.Header {
14572	if c.header_ == nil {
14573		c.header_ = make(http.Header)
14574	}
14575	return c.header_
14576}
14577
14578func (c *TablesUpdateCall) doRequest(alt string) (*http.Response, error) {
14579	reqHeaders := make(http.Header)
14580	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
14581	for k, v := range c.header_ {
14582		reqHeaders[k] = v
14583	}
14584	reqHeaders.Set("User-Agent", c.s.userAgent())
14585	var body io.Reader = nil
14586	body, err := googleapi.WithoutDataWrapper.JSONReader(c.table)
14587	if err != nil {
14588		return nil, err
14589	}
14590	reqHeaders.Set("Content-Type", "application/json")
14591	c.urlParams_.Set("alt", alt)
14592	c.urlParams_.Set("prettyPrint", "false")
14593	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/datasets/{datasetId}/tables/{tableId}")
14594	urls += "?" + c.urlParams_.Encode()
14595	req, err := http.NewRequest("PUT", urls, body)
14596	if err != nil {
14597		return nil, err
14598	}
14599	req.Header = reqHeaders
14600	googleapi.Expand(req.URL, map[string]string{
14601		"projectId": c.projectId,
14602		"datasetId": c.datasetId,
14603		"tableId":   c.tableId,
14604	})
14605	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14606}
14607
14608// Do executes the "bigquery.tables.update" call.
14609// Exactly one of *Table or error will be non-nil. Any non-2xx status
14610// code is an error. Response headers are in either
14611// *Table.ServerResponse.Header or (if a response was returned at all)
14612// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
14613// check whether the returned error was because http.StatusNotModified
14614// was returned.
14615func (c *TablesUpdateCall) Do(opts ...googleapi.CallOption) (*Table, error) {
14616	gensupport.SetOptions(c.urlParams_, opts...)
14617	res, err := c.doRequest("json")
14618	if res != nil && res.StatusCode == http.StatusNotModified {
14619		if res.Body != nil {
14620			res.Body.Close()
14621		}
14622		return nil, &googleapi.Error{
14623			Code:   res.StatusCode,
14624			Header: res.Header,
14625		}
14626	}
14627	if err != nil {
14628		return nil, err
14629	}
14630	defer googleapi.CloseBody(res)
14631	if err := googleapi.CheckResponse(res); err != nil {
14632		return nil, err
14633	}
14634	ret := &Table{
14635		ServerResponse: googleapi.ServerResponse{
14636			Header:         res.Header,
14637			HTTPStatusCode: res.StatusCode,
14638		},
14639	}
14640	target := &ret
14641	if err := gensupport.DecodeResponse(target, res); err != nil {
14642		return nil, err
14643	}
14644	return ret, nil
14645	// {
14646	//   "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.",
14647	//   "httpMethod": "PUT",
14648	//   "id": "bigquery.tables.update",
14649	//   "parameterOrder": [
14650	//     "projectId",
14651	//     "datasetId",
14652	//     "tableId"
14653	//   ],
14654	//   "parameters": {
14655	//     "datasetId": {
14656	//       "description": "Dataset ID of the table to update",
14657	//       "location": "path",
14658	//       "required": true,
14659	//       "type": "string"
14660	//     },
14661	//     "projectId": {
14662	//       "description": "Project ID of the table to update",
14663	//       "location": "path",
14664	//       "required": true,
14665	//       "type": "string"
14666	//     },
14667	//     "tableId": {
14668	//       "description": "Table ID of the table to update",
14669	//       "location": "path",
14670	//       "required": true,
14671	//       "type": "string"
14672	//     }
14673	//   },
14674	//   "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}",
14675	//   "request": {
14676	//     "$ref": "Table"
14677	//   },
14678	//   "response": {
14679	//     "$ref": "Table"
14680	//   },
14681	//   "scopes": [
14682	//     "https://www.googleapis.com/auth/bigquery",
14683	//     "https://www.googleapis.com/auth/cloud-platform"
14684	//   ]
14685	// }
14686
14687}
14688