1// Copyright 2020 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package sheets provides access to the Google Sheets API.
8//
9// For product documentation, see: https://developers.google.com/sheets/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/sheets/v4"
16//   ...
17//   ctx := context.Background()
18//   sheetsService, err := sheets.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   sheetsService, err := sheets.NewService(ctx, option.WithScopes(sheets.SpreadsheetsReadonlyScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   sheetsService, err := sheets.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   sheetsService, err := sheets.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package sheets // import "google.golang.org/api/sheets/v4"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "sheets:v4"
79const apiName = "sheets"
80const apiVersion = "v4"
81const basePath = "https://sheets.googleapis.com/"
82const mtlsBasePath = "https://sheets.mtls.googleapis.com/"
83
84// OAuth2 scopes used by this API.
85const (
86	// See, edit, create, and delete all of your Google Drive files
87	DriveScope = "https://www.googleapis.com/auth/drive"
88
89	// View and manage Google Drive files and folders that you have opened
90	// or created with this app
91	DriveFileScope = "https://www.googleapis.com/auth/drive.file"
92
93	// See and download all your Google Drive files
94	DriveReadonlyScope = "https://www.googleapis.com/auth/drive.readonly"
95
96	// See, edit, create, and delete your spreadsheets in Google Drive
97	SpreadsheetsScope = "https://www.googleapis.com/auth/spreadsheets"
98
99	// View your Google Spreadsheets
100	SpreadsheetsReadonlyScope = "https://www.googleapis.com/auth/spreadsheets.readonly"
101)
102
103// NewService creates a new Service.
104func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
105	scopesOption := option.WithScopes(
106		"https://www.googleapis.com/auth/drive",
107		"https://www.googleapis.com/auth/drive.file",
108		"https://www.googleapis.com/auth/drive.readonly",
109		"https://www.googleapis.com/auth/spreadsheets",
110		"https://www.googleapis.com/auth/spreadsheets.readonly",
111	)
112	// NOTE: prepend, so we don't override user-specified scopes.
113	opts = append([]option.ClientOption{scopesOption}, opts...)
114	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
115	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
116	client, endpoint, err := htransport.NewClient(ctx, opts...)
117	if err != nil {
118		return nil, err
119	}
120	s, err := New(client)
121	if err != nil {
122		return nil, err
123	}
124	if endpoint != "" {
125		s.BasePath = endpoint
126	}
127	return s, nil
128}
129
130// New creates a new Service. It uses the provided http.Client for requests.
131//
132// Deprecated: please use NewService instead.
133// To provide a custom HTTP client, use option.WithHTTPClient.
134// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
135func New(client *http.Client) (*Service, error) {
136	if client == nil {
137		return nil, errors.New("client is nil")
138	}
139	s := &Service{client: client, BasePath: basePath}
140	s.Spreadsheets = NewSpreadsheetsService(s)
141	return s, nil
142}
143
144type Service struct {
145	client    *http.Client
146	BasePath  string // API endpoint base URL
147	UserAgent string // optional additional User-Agent fragment
148
149	Spreadsheets *SpreadsheetsService
150}
151
152func (s *Service) userAgent() string {
153	if s.UserAgent == "" {
154		return googleapi.UserAgent
155	}
156	return googleapi.UserAgent + " " + s.UserAgent
157}
158
159func NewSpreadsheetsService(s *Service) *SpreadsheetsService {
160	rs := &SpreadsheetsService{s: s}
161	rs.DeveloperMetadata = NewSpreadsheetsDeveloperMetadataService(s)
162	rs.Sheets = NewSpreadsheetsSheetsService(s)
163	rs.Values = NewSpreadsheetsValuesService(s)
164	return rs
165}
166
167type SpreadsheetsService struct {
168	s *Service
169
170	DeveloperMetadata *SpreadsheetsDeveloperMetadataService
171
172	Sheets *SpreadsheetsSheetsService
173
174	Values *SpreadsheetsValuesService
175}
176
177func NewSpreadsheetsDeveloperMetadataService(s *Service) *SpreadsheetsDeveloperMetadataService {
178	rs := &SpreadsheetsDeveloperMetadataService{s: s}
179	return rs
180}
181
182type SpreadsheetsDeveloperMetadataService struct {
183	s *Service
184}
185
186func NewSpreadsheetsSheetsService(s *Service) *SpreadsheetsSheetsService {
187	rs := &SpreadsheetsSheetsService{s: s}
188	return rs
189}
190
191type SpreadsheetsSheetsService struct {
192	s *Service
193}
194
195func NewSpreadsheetsValuesService(s *Service) *SpreadsheetsValuesService {
196	rs := &SpreadsheetsValuesService{s: s}
197	return rs
198}
199
200type SpreadsheetsValuesService struct {
201	s *Service
202}
203
204// AddBandingRequest: Adds a new banded range to the spreadsheet.
205type AddBandingRequest struct {
206	// BandedRange: The banded range to add. The bandedRangeId field is
207	// optional; if one is not set, an id will be randomly generated. (It is
208	// an error to specify the ID of a range that already exists.)
209	BandedRange *BandedRange `json:"bandedRange,omitempty"`
210
211	// ForceSendFields is a list of field names (e.g. "BandedRange") to
212	// unconditionally include in API requests. By default, fields with
213	// empty values are omitted from API requests. However, any non-pointer,
214	// non-interface field appearing in ForceSendFields will be sent to the
215	// server regardless of whether the field is empty or not. This may be
216	// used to include empty fields in Patch requests.
217	ForceSendFields []string `json:"-"`
218
219	// NullFields is a list of field names (e.g. "BandedRange") to include
220	// in API requests with the JSON null value. By default, fields with
221	// empty values are omitted from API requests. However, any field with
222	// an empty value appearing in NullFields will be sent to the server as
223	// null. It is an error if a field in this list has a non-empty value.
224	// This may be used to include null fields in Patch requests.
225	NullFields []string `json:"-"`
226}
227
228func (s *AddBandingRequest) MarshalJSON() ([]byte, error) {
229	type NoMethod AddBandingRequest
230	raw := NoMethod(*s)
231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
232}
233
234// AddBandingResponse: The result of adding a banded range.
235type AddBandingResponse struct {
236	// BandedRange: The banded range that was added.
237	BandedRange *BandedRange `json:"bandedRange,omitempty"`
238
239	// ForceSendFields is a list of field names (e.g. "BandedRange") to
240	// unconditionally include in API requests. By default, fields with
241	// empty values are omitted from API requests. However, any non-pointer,
242	// non-interface field appearing in ForceSendFields will be sent to the
243	// server regardless of whether the field is empty or not. This may be
244	// used to include empty fields in Patch requests.
245	ForceSendFields []string `json:"-"`
246
247	// NullFields is a list of field names (e.g. "BandedRange") to include
248	// in API requests with the JSON null value. By default, fields with
249	// empty values are omitted from API requests. However, any field with
250	// an empty value appearing in NullFields will be sent to the server as
251	// null. It is an error if a field in this list has a non-empty value.
252	// This may be used to include null fields in Patch requests.
253	NullFields []string `json:"-"`
254}
255
256func (s *AddBandingResponse) MarshalJSON() ([]byte, error) {
257	type NoMethod AddBandingResponse
258	raw := NoMethod(*s)
259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
260}
261
262// AddChartRequest: Adds a chart to a sheet in the spreadsheet.
263type AddChartRequest struct {
264	// Chart: The chart that should be added to the spreadsheet, including
265	// the position where it should be placed. The chartId field is
266	// optional; if one is not set, an id will be randomly generated. (It is
267	// an error to specify the ID of an embedded object that already
268	// exists.)
269	Chart *EmbeddedChart `json:"chart,omitempty"`
270
271	// ForceSendFields is a list of field names (e.g. "Chart") to
272	// unconditionally include in API requests. By default, fields with
273	// empty values are omitted from API requests. However, any non-pointer,
274	// non-interface field appearing in ForceSendFields will be sent to the
275	// server regardless of whether the field is empty or not. This may be
276	// used to include empty fields in Patch requests.
277	ForceSendFields []string `json:"-"`
278
279	// NullFields is a list of field names (e.g. "Chart") to include in API
280	// requests with the JSON null value. By default, fields with empty
281	// values are omitted from API requests. However, any field with an
282	// empty value appearing in NullFields will be sent to the server as
283	// null. It is an error if a field in this list has a non-empty value.
284	// This may be used to include null fields in Patch requests.
285	NullFields []string `json:"-"`
286}
287
288func (s *AddChartRequest) MarshalJSON() ([]byte, error) {
289	type NoMethod AddChartRequest
290	raw := NoMethod(*s)
291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
292}
293
294// AddChartResponse: The result of adding a chart to a spreadsheet.
295type AddChartResponse struct {
296	// Chart: The newly added chart.
297	Chart *EmbeddedChart `json:"chart,omitempty"`
298
299	// ForceSendFields is a list of field names (e.g. "Chart") to
300	// unconditionally include in API requests. By default, fields with
301	// empty values are omitted from API requests. However, any non-pointer,
302	// non-interface field appearing in ForceSendFields will be sent to the
303	// server regardless of whether the field is empty or not. This may be
304	// used to include empty fields in Patch requests.
305	ForceSendFields []string `json:"-"`
306
307	// NullFields is a list of field names (e.g. "Chart") to include in API
308	// requests with the JSON null value. By default, fields with empty
309	// values are omitted from API requests. However, any field with an
310	// empty value appearing in NullFields will be sent to the server as
311	// null. It is an error if a field in this list has a non-empty value.
312	// This may be used to include null fields in Patch requests.
313	NullFields []string `json:"-"`
314}
315
316func (s *AddChartResponse) MarshalJSON() ([]byte, error) {
317	type NoMethod AddChartResponse
318	raw := NoMethod(*s)
319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
320}
321
322// AddConditionalFormatRuleRequest: Adds a new conditional format rule
323// at the given index. All subsequent rules' indexes are incremented.
324type AddConditionalFormatRuleRequest struct {
325	// Index: The zero-based index where the rule should be inserted.
326	Index int64 `json:"index,omitempty"`
327
328	// Rule: The rule to add.
329	Rule *ConditionalFormatRule `json:"rule,omitempty"`
330
331	// ForceSendFields is a list of field names (e.g. "Index") to
332	// unconditionally include in API requests. By default, fields with
333	// empty values are omitted from API requests. However, any non-pointer,
334	// non-interface field appearing in ForceSendFields will be sent to the
335	// server regardless of whether the field is empty or not. This may be
336	// used to include empty fields in Patch requests.
337	ForceSendFields []string `json:"-"`
338
339	// NullFields is a list of field names (e.g. "Index") to include in API
340	// requests with the JSON null value. By default, fields with empty
341	// values are omitted from API requests. However, any field with an
342	// empty value appearing in NullFields will be sent to the server as
343	// null. It is an error if a field in this list has a non-empty value.
344	// This may be used to include null fields in Patch requests.
345	NullFields []string `json:"-"`
346}
347
348func (s *AddConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
349	type NoMethod AddConditionalFormatRuleRequest
350	raw := NoMethod(*s)
351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
352}
353
354// AddDataSourceRequest: Adds a data source. After the data source is
355// added successfully, an associated DATA_SOURCE sheet is created and an
356// execution is triggered to refresh the sheet to read data from the
357// data source. The request requires an additional `bigquery.readonly`
358// OAuth scope.
359type AddDataSourceRequest struct {
360	// DataSource: The data source to add.
361	DataSource *DataSource `json:"dataSource,omitempty"`
362
363	// ForceSendFields is a list of field names (e.g. "DataSource") to
364	// unconditionally include in API requests. By default, fields with
365	// empty values are omitted from API requests. However, any non-pointer,
366	// non-interface field appearing in ForceSendFields will be sent to the
367	// server regardless of whether the field is empty or not. This may be
368	// used to include empty fields in Patch requests.
369	ForceSendFields []string `json:"-"`
370
371	// NullFields is a list of field names (e.g. "DataSource") to include in
372	// API requests with the JSON null value. By default, fields with empty
373	// values are omitted from API requests. However, any field with an
374	// empty value appearing in NullFields will be sent to the server as
375	// null. It is an error if a field in this list has a non-empty value.
376	// This may be used to include null fields in Patch requests.
377	NullFields []string `json:"-"`
378}
379
380func (s *AddDataSourceRequest) MarshalJSON() ([]byte, error) {
381	type NoMethod AddDataSourceRequest
382	raw := NoMethod(*s)
383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
384}
385
386// AddDataSourceResponse: The result of adding a data source.
387type AddDataSourceResponse struct {
388	// DataExecutionStatus: The data execution status.
389	DataExecutionStatus *DataExecutionStatus `json:"dataExecutionStatus,omitempty"`
390
391	// DataSource: The data source that was created.
392	DataSource *DataSource `json:"dataSource,omitempty"`
393
394	// ForceSendFields is a list of field names (e.g. "DataExecutionStatus")
395	// to unconditionally include in API requests. By default, fields with
396	// empty values are omitted from API requests. However, any non-pointer,
397	// non-interface field appearing in ForceSendFields will be sent to the
398	// server regardless of whether the field is empty or not. This may be
399	// used to include empty fields in Patch requests.
400	ForceSendFields []string `json:"-"`
401
402	// NullFields is a list of field names (e.g. "DataExecutionStatus") to
403	// include in API requests with the JSON null value. By default, fields
404	// with empty values are omitted from API requests. However, any field
405	// with an empty value appearing in NullFields will be sent to the
406	// server as null. It is an error if a field in this list has a
407	// non-empty value. This may be used to include null fields in Patch
408	// requests.
409	NullFields []string `json:"-"`
410}
411
412func (s *AddDataSourceResponse) MarshalJSON() ([]byte, error) {
413	type NoMethod AddDataSourceResponse
414	raw := NoMethod(*s)
415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
416}
417
418// AddDimensionGroupRequest: Creates a group over the specified range.
419// If the requested range is a superset of the range of an existing
420// group G, then the depth of G is incremented and this new group G' has
421// the depth of that group. For example, a group [C:D, depth 1] + [B:E]
422// results in groups [B:E, depth 1] and [C:D, depth 2]. If the requested
423// range is a subset of the range of an existing group G, then the depth
424// of the new group G' becomes one greater than the depth of G. For
425// example, a group [B:E, depth 1] + [C:D] results in groups [B:E, depth
426// 1] and [C:D, depth 2]. If the requested range starts before and ends
427// within, or starts within and ends after, the range of an existing
428// group G, then the range of the existing group G becomes the union of
429// the ranges, and the new group G' has depth one greater than the depth
430// of G and range as the intersection of the ranges. For example, a
431// group [B:D, depth 1] + [C:E] results in groups [B:E, depth 1] and
432// [C:D, depth 2].
433type AddDimensionGroupRequest struct {
434	// Range: The range over which to create a group.
435	Range *DimensionRange `json:"range,omitempty"`
436
437	// ForceSendFields is a list of field names (e.g. "Range") to
438	// unconditionally include in API requests. By default, fields with
439	// empty values are omitted from API requests. However, any non-pointer,
440	// non-interface field appearing in ForceSendFields will be sent to the
441	// server regardless of whether the field is empty or not. This may be
442	// used to include empty fields in Patch requests.
443	ForceSendFields []string `json:"-"`
444
445	// NullFields is a list of field names (e.g. "Range") to include in API
446	// requests with the JSON null value. By default, fields with empty
447	// values are omitted from API requests. However, any field with an
448	// empty value appearing in NullFields will be sent to the server as
449	// null. It is an error if a field in this list has a non-empty value.
450	// This may be used to include null fields in Patch requests.
451	NullFields []string `json:"-"`
452}
453
454func (s *AddDimensionGroupRequest) MarshalJSON() ([]byte, error) {
455	type NoMethod AddDimensionGroupRequest
456	raw := NoMethod(*s)
457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
458}
459
460// AddDimensionGroupResponse: The result of adding a group.
461type AddDimensionGroupResponse struct {
462	// DimensionGroups: All groups of a dimension after adding a group to
463	// that dimension.
464	DimensionGroups []*DimensionGroup `json:"dimensionGroups,omitempty"`
465
466	// ForceSendFields is a list of field names (e.g. "DimensionGroups") to
467	// unconditionally include in API requests. By default, fields with
468	// empty values are omitted from API requests. However, any non-pointer,
469	// non-interface field appearing in ForceSendFields will be sent to the
470	// server regardless of whether the field is empty or not. This may be
471	// used to include empty fields in Patch requests.
472	ForceSendFields []string `json:"-"`
473
474	// NullFields is a list of field names (e.g. "DimensionGroups") to
475	// include in API requests with the JSON null value. By default, fields
476	// with empty values are omitted from API requests. However, any field
477	// with an empty value appearing in NullFields will be sent to the
478	// server as null. It is an error if a field in this list has a
479	// non-empty value. This may be used to include null fields in Patch
480	// requests.
481	NullFields []string `json:"-"`
482}
483
484func (s *AddDimensionGroupResponse) MarshalJSON() ([]byte, error) {
485	type NoMethod AddDimensionGroupResponse
486	raw := NoMethod(*s)
487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
488}
489
490// AddFilterViewRequest: Adds a filter view.
491type AddFilterViewRequest struct {
492	// Filter: The filter to add. The filterViewId field is optional; if one
493	// is not set, an id will be randomly generated. (It is an error to
494	// specify the ID of a filter that already exists.)
495	Filter *FilterView `json:"filter,omitempty"`
496
497	// ForceSendFields is a list of field names (e.g. "Filter") to
498	// unconditionally include in API requests. By default, fields with
499	// empty values are omitted from API requests. However, any non-pointer,
500	// non-interface field appearing in ForceSendFields will be sent to the
501	// server regardless of whether the field is empty or not. This may be
502	// used to include empty fields in Patch requests.
503	ForceSendFields []string `json:"-"`
504
505	// NullFields is a list of field names (e.g. "Filter") to include in API
506	// requests with the JSON null value. By default, fields with empty
507	// values are omitted from API requests. However, any field with an
508	// empty value appearing in NullFields will be sent to the server as
509	// null. It is an error if a field in this list has a non-empty value.
510	// This may be used to include null fields in Patch requests.
511	NullFields []string `json:"-"`
512}
513
514func (s *AddFilterViewRequest) MarshalJSON() ([]byte, error) {
515	type NoMethod AddFilterViewRequest
516	raw := NoMethod(*s)
517	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
518}
519
520// AddFilterViewResponse: The result of adding a filter view.
521type AddFilterViewResponse struct {
522	// Filter: The newly added filter view.
523	Filter *FilterView `json:"filter,omitempty"`
524
525	// ForceSendFields is a list of field names (e.g. "Filter") to
526	// unconditionally include in API requests. By default, fields with
527	// empty values are omitted from API requests. However, any non-pointer,
528	// non-interface field appearing in ForceSendFields will be sent to the
529	// server regardless of whether the field is empty or not. This may be
530	// used to include empty fields in Patch requests.
531	ForceSendFields []string `json:"-"`
532
533	// NullFields is a list of field names (e.g. "Filter") to include in API
534	// requests with the JSON null value. By default, fields with empty
535	// values are omitted from API requests. However, any field with an
536	// empty value appearing in NullFields will be sent to the server as
537	// null. It is an error if a field in this list has a non-empty value.
538	// This may be used to include null fields in Patch requests.
539	NullFields []string `json:"-"`
540}
541
542func (s *AddFilterViewResponse) MarshalJSON() ([]byte, error) {
543	type NoMethod AddFilterViewResponse
544	raw := NoMethod(*s)
545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
546}
547
548// AddNamedRangeRequest: Adds a named range to the spreadsheet.
549type AddNamedRangeRequest struct {
550	// NamedRange: The named range to add. The namedRangeId field is
551	// optional; if one is not set, an id will be randomly generated. (It is
552	// an error to specify the ID of a range that already exists.)
553	NamedRange *NamedRange `json:"namedRange,omitempty"`
554
555	// ForceSendFields is a list of field names (e.g. "NamedRange") to
556	// unconditionally include in API requests. By default, fields with
557	// empty values are omitted from API requests. However, any non-pointer,
558	// non-interface field appearing in ForceSendFields will be sent to the
559	// server regardless of whether the field is empty or not. This may be
560	// used to include empty fields in Patch requests.
561	ForceSendFields []string `json:"-"`
562
563	// NullFields is a list of field names (e.g. "NamedRange") to include in
564	// API requests with the JSON null value. By default, fields with empty
565	// values are omitted from API requests. However, any field with an
566	// empty value appearing in NullFields will be sent to the server as
567	// null. It is an error if a field in this list has a non-empty value.
568	// This may be used to include null fields in Patch requests.
569	NullFields []string `json:"-"`
570}
571
572func (s *AddNamedRangeRequest) MarshalJSON() ([]byte, error) {
573	type NoMethod AddNamedRangeRequest
574	raw := NoMethod(*s)
575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
576}
577
578// AddNamedRangeResponse: The result of adding a named range.
579type AddNamedRangeResponse struct {
580	// NamedRange: The named range to add.
581	NamedRange *NamedRange `json:"namedRange,omitempty"`
582
583	// ForceSendFields is a list of field names (e.g. "NamedRange") to
584	// unconditionally include in API requests. By default, fields with
585	// empty values are omitted from API requests. However, any non-pointer,
586	// non-interface field appearing in ForceSendFields will be sent to the
587	// server regardless of whether the field is empty or not. This may be
588	// used to include empty fields in Patch requests.
589	ForceSendFields []string `json:"-"`
590
591	// NullFields is a list of field names (e.g. "NamedRange") to include in
592	// API requests with the JSON null value. By default, fields with empty
593	// values are omitted from API requests. However, any field with an
594	// empty value appearing in NullFields will be sent to the server as
595	// null. It is an error if a field in this list has a non-empty value.
596	// This may be used to include null fields in Patch requests.
597	NullFields []string `json:"-"`
598}
599
600func (s *AddNamedRangeResponse) MarshalJSON() ([]byte, error) {
601	type NoMethod AddNamedRangeResponse
602	raw := NoMethod(*s)
603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
604}
605
606// AddProtectedRangeRequest: Adds a new protected range.
607type AddProtectedRangeRequest struct {
608	// ProtectedRange: The protected range to be added. The protectedRangeId
609	// field is optional; if one is not set, an id will be randomly
610	// generated. (It is an error to specify the ID of a range that already
611	// exists.)
612	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
613
614	// ForceSendFields is a list of field names (e.g. "ProtectedRange") to
615	// unconditionally include in API requests. By default, fields with
616	// empty values are omitted from API requests. However, any non-pointer,
617	// non-interface field appearing in ForceSendFields will be sent to the
618	// server regardless of whether the field is empty or not. This may be
619	// used to include empty fields in Patch requests.
620	ForceSendFields []string `json:"-"`
621
622	// NullFields is a list of field names (e.g. "ProtectedRange") to
623	// include in API requests with the JSON null value. By default, fields
624	// with empty values are omitted from API requests. However, any field
625	// with an empty value appearing in NullFields will be sent to the
626	// server as null. It is an error if a field in this list has a
627	// non-empty value. This may be used to include null fields in Patch
628	// requests.
629	NullFields []string `json:"-"`
630}
631
632func (s *AddProtectedRangeRequest) MarshalJSON() ([]byte, error) {
633	type NoMethod AddProtectedRangeRequest
634	raw := NoMethod(*s)
635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
636}
637
638// AddProtectedRangeResponse: The result of adding a new protected
639// range.
640type AddProtectedRangeResponse struct {
641	// ProtectedRange: The newly added protected range.
642	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
643
644	// ForceSendFields is a list of field names (e.g. "ProtectedRange") to
645	// unconditionally include in API requests. By default, fields with
646	// empty values are omitted from API requests. However, any non-pointer,
647	// non-interface field appearing in ForceSendFields will be sent to the
648	// server regardless of whether the field is empty or not. This may be
649	// used to include empty fields in Patch requests.
650	ForceSendFields []string `json:"-"`
651
652	// NullFields is a list of field names (e.g. "ProtectedRange") to
653	// include in API requests with the JSON null value. By default, fields
654	// with empty values are omitted from API requests. However, any field
655	// with an empty value appearing in NullFields will be sent to the
656	// server as null. It is an error if a field in this list has a
657	// non-empty value. This may be used to include null fields in Patch
658	// requests.
659	NullFields []string `json:"-"`
660}
661
662func (s *AddProtectedRangeResponse) MarshalJSON() ([]byte, error) {
663	type NoMethod AddProtectedRangeResponse
664	raw := NoMethod(*s)
665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
666}
667
668// AddSheetRequest: Adds a new sheet. When a sheet is added at a given
669// index, all subsequent sheets' indexes are incremented. To add an
670// object sheet, use AddChartRequest instead and specify
671// EmbeddedObjectPosition.sheetId or EmbeddedObjectPosition.newSheet.
672type AddSheetRequest struct {
673	// Properties: The properties the new sheet should have. All properties
674	// are optional. The sheetId field is optional; if one is not set, an id
675	// will be randomly generated. (It is an error to specify the ID of a
676	// sheet that already exists.)
677	Properties *SheetProperties `json:"properties,omitempty"`
678
679	// ForceSendFields is a list of field names (e.g. "Properties") to
680	// unconditionally include in API requests. By default, fields with
681	// empty values are omitted from API requests. However, any non-pointer,
682	// non-interface field appearing in ForceSendFields will be sent to the
683	// server regardless of whether the field is empty or not. This may be
684	// used to include empty fields in Patch requests.
685	ForceSendFields []string `json:"-"`
686
687	// NullFields is a list of field names (e.g. "Properties") to include in
688	// API requests with the JSON null value. By default, fields with empty
689	// values are omitted from API requests. However, any field with an
690	// empty value appearing in NullFields will be sent to the server as
691	// null. It is an error if a field in this list has a non-empty value.
692	// This may be used to include null fields in Patch requests.
693	NullFields []string `json:"-"`
694}
695
696func (s *AddSheetRequest) MarshalJSON() ([]byte, error) {
697	type NoMethod AddSheetRequest
698	raw := NoMethod(*s)
699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
700}
701
702// AddSheetResponse: The result of adding a sheet.
703type AddSheetResponse struct {
704	// Properties: The properties of the newly added sheet.
705	Properties *SheetProperties `json:"properties,omitempty"`
706
707	// ForceSendFields is a list of field names (e.g. "Properties") to
708	// unconditionally include in API requests. By default, fields with
709	// empty values are omitted from API requests. However, any non-pointer,
710	// non-interface field appearing in ForceSendFields will be sent to the
711	// server regardless of whether the field is empty or not. This may be
712	// used to include empty fields in Patch requests.
713	ForceSendFields []string `json:"-"`
714
715	// NullFields is a list of field names (e.g. "Properties") to include in
716	// API requests with the JSON null value. By default, fields with empty
717	// values are omitted from API requests. However, any field with an
718	// empty value appearing in NullFields will be sent to the server as
719	// null. It is an error if a field in this list has a non-empty value.
720	// This may be used to include null fields in Patch requests.
721	NullFields []string `json:"-"`
722}
723
724func (s *AddSheetResponse) MarshalJSON() ([]byte, error) {
725	type NoMethod AddSheetResponse
726	raw := NoMethod(*s)
727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
728}
729
730// AddSlicerRequest: Adds a slicer to a sheet in the spreadsheet.
731type AddSlicerRequest struct {
732	// Slicer: The slicer that should be added to the spreadsheet, including
733	// the position where it should be placed. The slicerId field is
734	// optional; if one is not set, an id will be randomly generated. (It is
735	// an error to specify the ID of a slicer that already exists.)
736	Slicer *Slicer `json:"slicer,omitempty"`
737
738	// ForceSendFields is a list of field names (e.g. "Slicer") to
739	// unconditionally include in API requests. By default, fields with
740	// empty values are omitted from API requests. However, any non-pointer,
741	// non-interface field appearing in ForceSendFields will be sent to the
742	// server regardless of whether the field is empty or not. This may be
743	// used to include empty fields in Patch requests.
744	ForceSendFields []string `json:"-"`
745
746	// NullFields is a list of field names (e.g. "Slicer") to include in API
747	// requests with the JSON null value. By default, fields with empty
748	// values are omitted from API requests. However, any field with an
749	// empty value appearing in NullFields will be sent to the server as
750	// null. It is an error if a field in this list has a non-empty value.
751	// This may be used to include null fields in Patch requests.
752	NullFields []string `json:"-"`
753}
754
755func (s *AddSlicerRequest) MarshalJSON() ([]byte, error) {
756	type NoMethod AddSlicerRequest
757	raw := NoMethod(*s)
758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
759}
760
761// AddSlicerResponse: The result of adding a slicer to a spreadsheet.
762type AddSlicerResponse struct {
763	// Slicer: The newly added slicer.
764	Slicer *Slicer `json:"slicer,omitempty"`
765
766	// ForceSendFields is a list of field names (e.g. "Slicer") to
767	// unconditionally include in API requests. By default, fields with
768	// empty values are omitted from API requests. However, any non-pointer,
769	// non-interface field appearing in ForceSendFields will be sent to the
770	// server regardless of whether the field is empty or not. This may be
771	// used to include empty fields in Patch requests.
772	ForceSendFields []string `json:"-"`
773
774	// NullFields is a list of field names (e.g. "Slicer") to include in API
775	// requests with the JSON null value. By default, fields with empty
776	// values are omitted from API requests. However, any field with an
777	// empty value appearing in NullFields will be sent to the server as
778	// null. It is an error if a field in this list has a non-empty value.
779	// This may be used to include null fields in Patch requests.
780	NullFields []string `json:"-"`
781}
782
783func (s *AddSlicerResponse) MarshalJSON() ([]byte, error) {
784	type NoMethod AddSlicerResponse
785	raw := NoMethod(*s)
786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
787}
788
789// AppendCellsRequest: Adds new cells after the last row with data in a
790// sheet, inserting new rows into the sheet if necessary.
791type AppendCellsRequest struct {
792	// Fields: The fields of CellData that should be updated. At least one
793	// field must be specified. The root is the CellData; 'row.values.'
794	// should not be specified. A single "*" can be used as short-hand for
795	// listing every field.
796	Fields string `json:"fields,omitempty"`
797
798	// Rows: The data to append.
799	Rows []*RowData `json:"rows,omitempty"`
800
801	// SheetId: The sheet ID to append the data to.
802	SheetId int64 `json:"sheetId,omitempty"`
803
804	// ForceSendFields is a list of field names (e.g. "Fields") to
805	// unconditionally include in API requests. By default, fields with
806	// empty values are omitted from API requests. However, any non-pointer,
807	// non-interface field appearing in ForceSendFields will be sent to the
808	// server regardless of whether the field is empty or not. This may be
809	// used to include empty fields in Patch requests.
810	ForceSendFields []string `json:"-"`
811
812	// NullFields is a list of field names (e.g. "Fields") to include in API
813	// requests with the JSON null value. By default, fields with empty
814	// values are omitted from API requests. However, any field with an
815	// empty value appearing in NullFields will be sent to the server as
816	// null. It is an error if a field in this list has a non-empty value.
817	// This may be used to include null fields in Patch requests.
818	NullFields []string `json:"-"`
819}
820
821func (s *AppendCellsRequest) MarshalJSON() ([]byte, error) {
822	type NoMethod AppendCellsRequest
823	raw := NoMethod(*s)
824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
825}
826
827// AppendDimensionRequest: Appends rows or columns to the end of a
828// sheet.
829type AppendDimensionRequest struct {
830	// Dimension: Whether rows or columns should be appended.
831	//
832	// Possible values:
833	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
834	//   "ROWS" - Operates on the rows of a sheet.
835	//   "COLUMNS" - Operates on the columns of a sheet.
836	Dimension string `json:"dimension,omitempty"`
837
838	// Length: The number of rows or columns to append.
839	Length int64 `json:"length,omitempty"`
840
841	// SheetId: The sheet to append rows or columns to.
842	SheetId int64 `json:"sheetId,omitempty"`
843
844	// ForceSendFields is a list of field names (e.g. "Dimension") to
845	// unconditionally include in API requests. By default, fields with
846	// empty values are omitted from API requests. However, any non-pointer,
847	// non-interface field appearing in ForceSendFields will be sent to the
848	// server regardless of whether the field is empty or not. This may be
849	// used to include empty fields in Patch requests.
850	ForceSendFields []string `json:"-"`
851
852	// NullFields is a list of field names (e.g. "Dimension") to include in
853	// API requests with the JSON null value. By default, fields with empty
854	// values are omitted from API requests. However, any field with an
855	// empty value appearing in NullFields will be sent to the server as
856	// null. It is an error if a field in this list has a non-empty value.
857	// This may be used to include null fields in Patch requests.
858	NullFields []string `json:"-"`
859}
860
861func (s *AppendDimensionRequest) MarshalJSON() ([]byte, error) {
862	type NoMethod AppendDimensionRequest
863	raw := NoMethod(*s)
864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
865}
866
867// AppendValuesResponse: The response when updating a range of values in
868// a spreadsheet.
869type AppendValuesResponse struct {
870	// SpreadsheetId: The spreadsheet the updates were applied to.
871	SpreadsheetId string `json:"spreadsheetId,omitempty"`
872
873	// TableRange: The range (in A1 notation) of the table that values are
874	// being appended to (before the values were appended). Empty if no
875	// table was found.
876	TableRange string `json:"tableRange,omitempty"`
877
878	// Updates: Information about the updates that were applied.
879	Updates *UpdateValuesResponse `json:"updates,omitempty"`
880
881	// ServerResponse contains the HTTP response code and headers from the
882	// server.
883	googleapi.ServerResponse `json:"-"`
884
885	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
886	// unconditionally include in API requests. By default, fields with
887	// empty values are omitted from API requests. However, any non-pointer,
888	// non-interface field appearing in ForceSendFields will be sent to the
889	// server regardless of whether the field is empty or not. This may be
890	// used to include empty fields in Patch requests.
891	ForceSendFields []string `json:"-"`
892
893	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
894	// in API requests with the JSON null value. By default, fields with
895	// empty values are omitted from API requests. However, any field with
896	// an empty value appearing in NullFields will be sent to the server as
897	// null. It is an error if a field in this list has a non-empty value.
898	// This may be used to include null fields in Patch requests.
899	NullFields []string `json:"-"`
900}
901
902func (s *AppendValuesResponse) MarshalJSON() ([]byte, error) {
903	type NoMethod AppendValuesResponse
904	raw := NoMethod(*s)
905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
906}
907
908// AutoFillRequest: Fills in more data based on existing data.
909type AutoFillRequest struct {
910	// Range: The range to autofill. This will examine the range and detect
911	// the location that has data and automatically fill that data in to the
912	// rest of the range.
913	Range *GridRange `json:"range,omitempty"`
914
915	// SourceAndDestination: The source and destination areas to autofill.
916	// This explicitly lists the source of the autofill and where to extend
917	// that data.
918	SourceAndDestination *SourceAndDestination `json:"sourceAndDestination,omitempty"`
919
920	// UseAlternateSeries: True if we should generate data with the
921	// "alternate" series. This differs based on the type and amount of
922	// source data.
923	UseAlternateSeries bool `json:"useAlternateSeries,omitempty"`
924
925	// ForceSendFields is a list of field names (e.g. "Range") to
926	// unconditionally include in API requests. By default, fields with
927	// empty values are omitted from API requests. However, any non-pointer,
928	// non-interface field appearing in ForceSendFields will be sent to the
929	// server regardless of whether the field is empty or not. This may be
930	// used to include empty fields in Patch requests.
931	ForceSendFields []string `json:"-"`
932
933	// NullFields is a list of field names (e.g. "Range") to include in API
934	// requests with the JSON null value. By default, fields with empty
935	// values are omitted from API requests. However, any field with an
936	// empty value appearing in NullFields will be sent to the server as
937	// null. It is an error if a field in this list has a non-empty value.
938	// This may be used to include null fields in Patch requests.
939	NullFields []string `json:"-"`
940}
941
942func (s *AutoFillRequest) MarshalJSON() ([]byte, error) {
943	type NoMethod AutoFillRequest
944	raw := NoMethod(*s)
945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
946}
947
948// AutoResizeDimensionsRequest: Automatically resizes one or more
949// dimensions based on the contents of the cells in that dimension.
950type AutoResizeDimensionsRequest struct {
951	// DataSourceSheetDimensions: The dimensions on a data source sheet to
952	// automatically resize.
953	DataSourceSheetDimensions *DataSourceSheetDimensionRange `json:"dataSourceSheetDimensions,omitempty"`
954
955	// Dimensions: The dimensions to automatically resize.
956	Dimensions *DimensionRange `json:"dimensions,omitempty"`
957
958	// ForceSendFields is a list of field names (e.g.
959	// "DataSourceSheetDimensions") to unconditionally include in API
960	// requests. By default, fields with empty values are omitted from API
961	// requests. However, any non-pointer, non-interface field appearing in
962	// ForceSendFields will be sent to the server regardless of whether the
963	// field is empty or not. This may be used to include empty fields in
964	// Patch requests.
965	ForceSendFields []string `json:"-"`
966
967	// NullFields is a list of field names (e.g.
968	// "DataSourceSheetDimensions") to include in API requests with the JSON
969	// null value. By default, fields with empty values are omitted from API
970	// requests. However, any field with an empty value appearing in
971	// NullFields will be sent to the server as null. It is an error if a
972	// field in this list has a non-empty value. This may be used to include
973	// null fields in Patch requests.
974	NullFields []string `json:"-"`
975}
976
977func (s *AutoResizeDimensionsRequest) MarshalJSON() ([]byte, error) {
978	type NoMethod AutoResizeDimensionsRequest
979	raw := NoMethod(*s)
980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
981}
982
983// BandedRange: A banded (alternating colors) range in a sheet.
984type BandedRange struct {
985	// BandedRangeId: The id of the banded range.
986	BandedRangeId int64 `json:"bandedRangeId,omitempty"`
987
988	// ColumnProperties: Properties for column bands. These properties are
989	// applied on a column- by-column basis throughout all the columns in
990	// the range. At least one of row_properties or column_properties must
991	// be specified.
992	ColumnProperties *BandingProperties `json:"columnProperties,omitempty"`
993
994	// Range: The range over which these properties are applied.
995	Range *GridRange `json:"range,omitempty"`
996
997	// RowProperties: Properties for row bands. These properties are applied
998	// on a row-by-row basis throughout all the rows in the range. At least
999	// one of row_properties or column_properties must be specified.
1000	RowProperties *BandingProperties `json:"rowProperties,omitempty"`
1001
1002	// ForceSendFields is a list of field names (e.g. "BandedRangeId") to
1003	// unconditionally include in API requests. By default, fields with
1004	// empty values are omitted from API requests. However, any non-pointer,
1005	// non-interface field appearing in ForceSendFields will be sent to the
1006	// server regardless of whether the field is empty or not. This may be
1007	// used to include empty fields in Patch requests.
1008	ForceSendFields []string `json:"-"`
1009
1010	// NullFields is a list of field names (e.g. "BandedRangeId") to include
1011	// in API requests with the JSON null value. By default, fields with
1012	// empty values are omitted from API requests. However, any field with
1013	// an empty value appearing in NullFields will be sent to the server as
1014	// null. It is an error if a field in this list has a non-empty value.
1015	// This may be used to include null fields in Patch requests.
1016	NullFields []string `json:"-"`
1017}
1018
1019func (s *BandedRange) MarshalJSON() ([]byte, error) {
1020	type NoMethod BandedRange
1021	raw := NoMethod(*s)
1022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1023}
1024
1025// BandingProperties: Properties referring a single dimension (either
1026// row or column). If both BandedRange.row_properties and
1027// BandedRange.column_properties are set, the fill colors are applied to
1028// cells according to the following rules: * header_color and
1029// footer_color take priority over band colors. * first_band_color takes
1030// priority over second_band_color. * row_properties takes priority over
1031// column_properties. For example, the first row color takes priority
1032// over the first column color, but the first column color takes
1033// priority over the second row color. Similarly, the row header takes
1034// priority over the column header in the top left cell, but the column
1035// header takes priority over the first row color if the row header is
1036// not set.
1037type BandingProperties struct {
1038	// FirstBandColor: The first color that is alternating. (Required)
1039	FirstBandColor *Color `json:"firstBandColor,omitempty"`
1040
1041	// FirstBandColorStyle: The first color that is alternating. (Required)
1042	// If first_band_color is also set, this field takes precedence.
1043	FirstBandColorStyle *ColorStyle `json:"firstBandColorStyle,omitempty"`
1044
1045	// FooterColor: The color of the last row or column. If this field is
1046	// not set, the last row or column is filled with either
1047	// first_band_color or second_band_color, depending on the color of the
1048	// previous row or column.
1049	FooterColor *Color `json:"footerColor,omitempty"`
1050
1051	// FooterColorStyle: The color of the last row or column. If this field
1052	// is not set, the last row or column is filled with either
1053	// first_band_color or second_band_color, depending on the color of the
1054	// previous row or column. If footer_color is also set, this field takes
1055	// precedence.
1056	FooterColorStyle *ColorStyle `json:"footerColorStyle,omitempty"`
1057
1058	// HeaderColor: The color of the first row or column. If this field is
1059	// set, the first row or column is filled with this color and the colors
1060	// alternate between first_band_color and second_band_color starting
1061	// from the second row or column. Otherwise, the first row or column is
1062	// filled with first_band_color and the colors proceed to alternate as
1063	// they normally would.
1064	HeaderColor *Color `json:"headerColor,omitempty"`
1065
1066	// HeaderColorStyle: The color of the first row or column. If this field
1067	// is set, the first row or column is filled with this color and the
1068	// colors alternate between first_band_color and second_band_color
1069	// starting from the second row or column. Otherwise, the first row or
1070	// column is filled with first_band_color and the colors proceed to
1071	// alternate as they normally would. If header_color is also set, this
1072	// field takes precedence.
1073	HeaderColorStyle *ColorStyle `json:"headerColorStyle,omitempty"`
1074
1075	// SecondBandColor: The second color that is alternating. (Required)
1076	SecondBandColor *Color `json:"secondBandColor,omitempty"`
1077
1078	// SecondBandColorStyle: The second color that is alternating.
1079	// (Required) If second_band_color is also set, this field takes
1080	// precedence.
1081	SecondBandColorStyle *ColorStyle `json:"secondBandColorStyle,omitempty"`
1082
1083	// ForceSendFields is a list of field names (e.g. "FirstBandColor") to
1084	// unconditionally include in API requests. By default, fields with
1085	// empty values are omitted from API requests. However, any non-pointer,
1086	// non-interface field appearing in ForceSendFields will be sent to the
1087	// server regardless of whether the field is empty or not. This may be
1088	// used to include empty fields in Patch requests.
1089	ForceSendFields []string `json:"-"`
1090
1091	// NullFields is a list of field names (e.g. "FirstBandColor") to
1092	// include in API requests with the JSON null value. By default, fields
1093	// with empty values are omitted from API requests. However, any field
1094	// with an empty value appearing in NullFields will be sent to the
1095	// server as null. It is an error if a field in this list has a
1096	// non-empty value. This may be used to include null fields in Patch
1097	// requests.
1098	NullFields []string `json:"-"`
1099}
1100
1101func (s *BandingProperties) MarshalJSON() ([]byte, error) {
1102	type NoMethod BandingProperties
1103	raw := NoMethod(*s)
1104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1105}
1106
1107// BaselineValueFormat: Formatting options for baseline value.
1108type BaselineValueFormat struct {
1109	// ComparisonType: The comparison type of key value with baseline value.
1110	//
1111	// Possible values:
1112	//   "COMPARISON_TYPE_UNDEFINED" - Default value, do not use.
1113	//   "ABSOLUTE_DIFFERENCE" - Use absolute difference between key and
1114	// baseline value.
1115	//   "PERCENTAGE_DIFFERENCE" - Use percentage difference between key and
1116	// baseline value.
1117	ComparisonType string `json:"comparisonType,omitempty"`
1118
1119	// Description: Description which is appended after the baseline value.
1120	// This field is optional.
1121	Description string `json:"description,omitempty"`
1122
1123	// NegativeColor: Color to be used, in case baseline value represents a
1124	// negative change for key value. This field is optional.
1125	NegativeColor *Color `json:"negativeColor,omitempty"`
1126
1127	// NegativeColorStyle: Color to be used, in case baseline value
1128	// represents a negative change for key value. This field is optional.
1129	// If negative_color is also set, this field takes precedence.
1130	NegativeColorStyle *ColorStyle `json:"negativeColorStyle,omitempty"`
1131
1132	// Position: Specifies the horizontal text positioning of baseline
1133	// value. This field is optional. If not specified, default positioning
1134	// is used.
1135	Position *TextPosition `json:"position,omitempty"`
1136
1137	// PositiveColor: Color to be used, in case baseline value represents a
1138	// positive change for key value. This field is optional.
1139	PositiveColor *Color `json:"positiveColor,omitempty"`
1140
1141	// PositiveColorStyle: Color to be used, in case baseline value
1142	// represents a positive change for key value. This field is optional.
1143	// If positive_color is also set, this field takes precedence.
1144	PositiveColorStyle *ColorStyle `json:"positiveColorStyle,omitempty"`
1145
1146	// TextFormat: Text formatting options for baseline value.
1147	TextFormat *TextFormat `json:"textFormat,omitempty"`
1148
1149	// ForceSendFields is a list of field names (e.g. "ComparisonType") to
1150	// unconditionally include in API requests. By default, fields with
1151	// empty values are omitted from API requests. However, any non-pointer,
1152	// non-interface field appearing in ForceSendFields will be sent to the
1153	// server regardless of whether the field is empty or not. This may be
1154	// used to include empty fields in Patch requests.
1155	ForceSendFields []string `json:"-"`
1156
1157	// NullFields is a list of field names (e.g. "ComparisonType") to
1158	// include in API requests with the JSON null value. By default, fields
1159	// with empty values are omitted from API requests. However, any field
1160	// with an empty value appearing in NullFields will be sent to the
1161	// server as null. It is an error if a field in this list has a
1162	// non-empty value. This may be used to include null fields in Patch
1163	// requests.
1164	NullFields []string `json:"-"`
1165}
1166
1167func (s *BaselineValueFormat) MarshalJSON() ([]byte, error) {
1168	type NoMethod BaselineValueFormat
1169	raw := NoMethod(*s)
1170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1171}
1172
1173// BasicChartAxis: An axis of the chart. A chart may not have more than
1174// one axis per axis position.
1175type BasicChartAxis struct {
1176	// Format: The format of the title. Only valid if the axis is not
1177	// associated with the domain.
1178	Format *TextFormat `json:"format,omitempty"`
1179
1180	// Position: The position of this axis.
1181	//
1182	// Possible values:
1183	//   "BASIC_CHART_AXIS_POSITION_UNSPECIFIED" - Default value, do not
1184	// use.
1185	//   "BOTTOM_AXIS" - The axis rendered at the bottom of a chart. For
1186	// most charts, this is the standard major axis. For bar charts, this is
1187	// a minor axis.
1188	//   "LEFT_AXIS" - The axis rendered at the left of a chart. For most
1189	// charts, this is a minor axis. For bar charts, this is the standard
1190	// major axis.
1191	//   "RIGHT_AXIS" - The axis rendered at the right of a chart. For most
1192	// charts, this is a minor axis. For bar charts, this is an unusual
1193	// major axis.
1194	Position string `json:"position,omitempty"`
1195
1196	// Title: The title of this axis. If set, this overrides any title
1197	// inferred from headers of the data.
1198	Title string `json:"title,omitempty"`
1199
1200	// TitleTextPosition: The axis title text position.
1201	TitleTextPosition *TextPosition `json:"titleTextPosition,omitempty"`
1202
1203	// ViewWindowOptions: The view window options for this axis.
1204	ViewWindowOptions *ChartAxisViewWindowOptions `json:"viewWindowOptions,omitempty"`
1205
1206	// ForceSendFields is a list of field names (e.g. "Format") to
1207	// unconditionally include in API requests. By default, fields with
1208	// empty values are omitted from API requests. However, any non-pointer,
1209	// non-interface field appearing in ForceSendFields will be sent to the
1210	// server regardless of whether the field is empty or not. This may be
1211	// used to include empty fields in Patch requests.
1212	ForceSendFields []string `json:"-"`
1213
1214	// NullFields is a list of field names (e.g. "Format") to include in API
1215	// requests with the JSON null value. By default, fields with empty
1216	// values are omitted from API requests. However, any field with an
1217	// empty value appearing in NullFields will be sent to the server as
1218	// null. It is an error if a field in this list has a non-empty value.
1219	// This may be used to include null fields in Patch requests.
1220	NullFields []string `json:"-"`
1221}
1222
1223func (s *BasicChartAxis) MarshalJSON() ([]byte, error) {
1224	type NoMethod BasicChartAxis
1225	raw := NoMethod(*s)
1226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1227}
1228
1229// BasicChartDomain: The domain of a chart. For example, if charting
1230// stock prices over time, this would be the date.
1231type BasicChartDomain struct {
1232	// Domain: The data of the domain. For example, if charting stock prices
1233	// over time, this is the data representing the dates.
1234	Domain *ChartData `json:"domain,omitempty"`
1235
1236	// Reversed: True to reverse the order of the domain values (horizontal
1237	// axis).
1238	Reversed bool `json:"reversed,omitempty"`
1239
1240	// ForceSendFields is a list of field names (e.g. "Domain") to
1241	// unconditionally include in API requests. By default, fields with
1242	// empty values are omitted from API requests. However, any non-pointer,
1243	// non-interface field appearing in ForceSendFields will be sent to the
1244	// server regardless of whether the field is empty or not. This may be
1245	// used to include empty fields in Patch requests.
1246	ForceSendFields []string `json:"-"`
1247
1248	// NullFields is a list of field names (e.g. "Domain") to include in API
1249	// requests with the JSON null value. By default, fields with empty
1250	// values are omitted from API requests. However, any field with an
1251	// empty value appearing in NullFields will be sent to the server as
1252	// null. It is an error if a field in this list has a non-empty value.
1253	// This may be used to include null fields in Patch requests.
1254	NullFields []string `json:"-"`
1255}
1256
1257func (s *BasicChartDomain) MarshalJSON() ([]byte, error) {
1258	type NoMethod BasicChartDomain
1259	raw := NoMethod(*s)
1260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1261}
1262
1263// BasicChartSeries: A single series of data in a chart. For example, if
1264// charting stock prices over time, multiple series may exist, one for
1265// the "Open Price", "High Price", "Low Price" and "Close Price".
1266type BasicChartSeries struct {
1267	// Color: The color for elements (such as bars, lines, and points)
1268	// associated with this series. If empty, a default color is used.
1269	Color *Color `json:"color,omitempty"`
1270
1271	// ColorStyle: The color for elements (such as bars, lines, and points)
1272	// associated with this series. If empty, a default color is used. If
1273	// color is also set, this field takes precedence.
1274	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
1275
1276	// DataLabel: Information about the data labels for this series.
1277	DataLabel *DataLabel `json:"dataLabel,omitempty"`
1278
1279	// LineStyle: The line style of this series. Valid only if the chartType
1280	// is AREA, LINE, or SCATTER. COMBO charts are also supported if the
1281	// series chart type is AREA or LINE.
1282	LineStyle *LineStyle `json:"lineStyle,omitempty"`
1283
1284	// PointStyle: The style for points associated with this series. Valid
1285	// only if the chartType is AREA, LINE, or SCATTER. COMBO charts are
1286	// also supported if the series chart type is AREA, LINE, or SCATTER. If
1287	// empty, a default point style is used.
1288	PointStyle *PointStyle `json:"pointStyle,omitempty"`
1289
1290	// Series: The data being visualized in this chart series.
1291	Series *ChartData `json:"series,omitempty"`
1292
1293	// StyleOverrides: Style override settings for series data points.
1294	StyleOverrides []*BasicSeriesDataPointStyleOverride `json:"styleOverrides,omitempty"`
1295
1296	// TargetAxis: The minor axis that will specify the range of values for
1297	// this series. For example, if charting stocks over time, the "Volume"
1298	// series may want to be pinned to the right with the prices pinned to
1299	// the left, because the scale of trading volume is different than the
1300	// scale of prices. It is an error to specify an axis that isn't a valid
1301	// minor axis for the chart's type.
1302	//
1303	// Possible values:
1304	//   "BASIC_CHART_AXIS_POSITION_UNSPECIFIED" - Default value, do not
1305	// use.
1306	//   "BOTTOM_AXIS" - The axis rendered at the bottom of a chart. For
1307	// most charts, this is the standard major axis. For bar charts, this is
1308	// a minor axis.
1309	//   "LEFT_AXIS" - The axis rendered at the left of a chart. For most
1310	// charts, this is a minor axis. For bar charts, this is the standard
1311	// major axis.
1312	//   "RIGHT_AXIS" - The axis rendered at the right of a chart. For most
1313	// charts, this is a minor axis. For bar charts, this is an unusual
1314	// major axis.
1315	TargetAxis string `json:"targetAxis,omitempty"`
1316
1317	// Type: The type of this series. Valid only if the chartType is COMBO.
1318	// Different types will change the way the series is visualized. Only
1319	// LINE, AREA, and COLUMN are supported.
1320	//
1321	// Possible values:
1322	//   "BASIC_CHART_TYPE_UNSPECIFIED" - Default value, do not use.
1323	//   "BAR" - A bar chart.
1324	//   "LINE" - A line chart.
1325	//   "AREA" - An area chart.
1326	//   "COLUMN" - A column chart.
1327	//   "SCATTER" - A scatter chart.
1328	//   "COMBO" - A combo chart.
1329	//   "STEPPED_AREA" - A stepped area chart.
1330	Type string `json:"type,omitempty"`
1331
1332	// ForceSendFields is a list of field names (e.g. "Color") to
1333	// unconditionally include in API requests. By default, fields with
1334	// empty values are omitted from API requests. However, any non-pointer,
1335	// non-interface field appearing in ForceSendFields will be sent to the
1336	// server regardless of whether the field is empty or not. This may be
1337	// used to include empty fields in Patch requests.
1338	ForceSendFields []string `json:"-"`
1339
1340	// NullFields is a list of field names (e.g. "Color") to include in API
1341	// requests with the JSON null value. By default, fields with empty
1342	// values are omitted from API requests. However, any field with an
1343	// empty value appearing in NullFields will be sent to the server as
1344	// null. It is an error if a field in this list has a non-empty value.
1345	// This may be used to include null fields in Patch requests.
1346	NullFields []string `json:"-"`
1347}
1348
1349func (s *BasicChartSeries) MarshalJSON() ([]byte, error) {
1350	type NoMethod BasicChartSeries
1351	raw := NoMethod(*s)
1352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1353}
1354
1355// BasicChartSpec: The specification for a basic chart. See
1356// BasicChartType for the list of charts this supports.
1357type BasicChartSpec struct {
1358	// Axis: The axis on the chart.
1359	Axis []*BasicChartAxis `json:"axis,omitempty"`
1360
1361	// ChartType: The type of the chart.
1362	//
1363	// Possible values:
1364	//   "BASIC_CHART_TYPE_UNSPECIFIED" - Default value, do not use.
1365	//   "BAR" - A bar chart.
1366	//   "LINE" - A line chart.
1367	//   "AREA" - An area chart.
1368	//   "COLUMN" - A column chart.
1369	//   "SCATTER" - A scatter chart.
1370	//   "COMBO" - A combo chart.
1371	//   "STEPPED_AREA" - A stepped area chart.
1372	ChartType string `json:"chartType,omitempty"`
1373
1374	// CompareMode: The behavior of tooltips and data highlighting when
1375	// hovering on data and chart area.
1376	//
1377	// Possible values:
1378	//   "BASIC_CHART_COMPARE_MODE_UNSPECIFIED" - Default value, do not use.
1379	//   "DATUM" - Only the focused data element is highlighted and shown in
1380	// the tooltip.
1381	//   "CATEGORY" - All data elements with the same category (e.g., domain
1382	// value) are highlighted and shown in the tooltip.
1383	CompareMode string `json:"compareMode,omitempty"`
1384
1385	// Domains: The domain of data this is charting. Only a single domain is
1386	// supported.
1387	Domains []*BasicChartDomain `json:"domains,omitempty"`
1388
1389	// HeaderCount: The number of rows or columns in the data that are
1390	// "headers". If not set, Google Sheets will guess how many rows are
1391	// headers based on the data. (Note that BasicChartAxis.title may
1392	// override the axis title inferred from the header values.)
1393	HeaderCount int64 `json:"headerCount,omitempty"`
1394
1395	// InterpolateNulls: If some values in a series are missing, gaps may
1396	// appear in the chart (e.g, segments of lines in a line chart will be
1397	// missing). To eliminate these gaps set this to true. Applies to Line,
1398	// Area, and Combo charts.
1399	InterpolateNulls bool `json:"interpolateNulls,omitempty"`
1400
1401	// LegendPosition: The position of the chart legend.
1402	//
1403	// Possible values:
1404	//   "BASIC_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
1405	// use.
1406	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
1407	// chart.
1408	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
1409	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
1410	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
1411	//   "NO_LEGEND" - No legend is rendered.
1412	LegendPosition string `json:"legendPosition,omitempty"`
1413
1414	// LineSmoothing: Gets whether all lines should be rendered smooth or
1415	// straight by default. Applies to Line charts.
1416	LineSmoothing bool `json:"lineSmoothing,omitempty"`
1417
1418	// Series: The data this chart is visualizing.
1419	Series []*BasicChartSeries `json:"series,omitempty"`
1420
1421	// StackedType: The stacked type for charts that support vertical
1422	// stacking. Applies to Area, Bar, Column, Combo, and Stepped Area
1423	// charts.
1424	//
1425	// Possible values:
1426	//   "BASIC_CHART_STACKED_TYPE_UNSPECIFIED" - Default value, do not use.
1427	//   "NOT_STACKED" - Series are not stacked.
1428	//   "STACKED" - Series values are stacked, each value is rendered
1429	// vertically beginning from the top of the value below it.
1430	//   "PERCENT_STACKED" - Vertical stacks are stretched to reach the top
1431	// of the chart, with values laid out as percentages of each other.
1432	StackedType string `json:"stackedType,omitempty"`
1433
1434	// ThreeDimensional: True to make the chart 3D. Applies to Bar and
1435	// Column charts.
1436	ThreeDimensional bool `json:"threeDimensional,omitempty"`
1437
1438	// TotalDataLabel: Controls whether to display additional data labels on
1439	// stacked charts which sum the total value of all stacked values at
1440	// each value along the domain axis. These data labels can only be set
1441	// when chart_type is one of AREA, BAR, COLUMN, COMBO or STEPPED_AREA
1442	// and stacked_type is either STACKED or PERCENT_STACKED. In addition,
1443	// for COMBO, this will only be supported if there is only one type of
1444	// stackable series type or one type has more series than the others and
1445	// each of the other types have no more than one series. For example, if
1446	// a chart has two stacked bar series and one area series, the total
1447	// data labels will be supported. If it has three bar series and two
1448	// area series, total data labels are not allowed. Neither CUSTOM nor
1449	// placement can be set on the total_data_label.
1450	TotalDataLabel *DataLabel `json:"totalDataLabel,omitempty"`
1451
1452	// ForceSendFields is a list of field names (e.g. "Axis") to
1453	// unconditionally include in API requests. By default, fields with
1454	// empty values are omitted from API requests. However, any non-pointer,
1455	// non-interface field appearing in ForceSendFields will be sent to the
1456	// server regardless of whether the field is empty or not. This may be
1457	// used to include empty fields in Patch requests.
1458	ForceSendFields []string `json:"-"`
1459
1460	// NullFields is a list of field names (e.g. "Axis") to include in API
1461	// requests with the JSON null value. By default, fields with empty
1462	// values are omitted from API requests. However, any field with an
1463	// empty value appearing in NullFields will be sent to the server as
1464	// null. It is an error if a field in this list has a non-empty value.
1465	// This may be used to include null fields in Patch requests.
1466	NullFields []string `json:"-"`
1467}
1468
1469func (s *BasicChartSpec) MarshalJSON() ([]byte, error) {
1470	type NoMethod BasicChartSpec
1471	raw := NoMethod(*s)
1472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1473}
1474
1475// BasicFilter: The default filter associated with a sheet.
1476type BasicFilter struct {
1477	// Criteria: The criteria for showing/hiding values per column. The
1478	// map's key is the column index, and the value is the criteria for that
1479	// column. This field is deprecated in favor of filter_specs.
1480	Criteria map[string]FilterCriteria `json:"criteria,omitempty"`
1481
1482	// FilterSpecs: The filter criteria per column. Both criteria and
1483	// filter_specs are populated in responses. If both fields are specified
1484	// in an update request, this field takes precedence.
1485	FilterSpecs []*FilterSpec `json:"filterSpecs,omitempty"`
1486
1487	// Range: The range the filter covers.
1488	Range *GridRange `json:"range,omitempty"`
1489
1490	// SortSpecs: The sort order per column. Later specifications are used
1491	// when values are equal in the earlier specifications.
1492	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
1493
1494	// ForceSendFields is a list of field names (e.g. "Criteria") to
1495	// unconditionally include in API requests. By default, fields with
1496	// empty values are omitted from API requests. However, any non-pointer,
1497	// non-interface field appearing in ForceSendFields will be sent to the
1498	// server regardless of whether the field is empty or not. This may be
1499	// used to include empty fields in Patch requests.
1500	ForceSendFields []string `json:"-"`
1501
1502	// NullFields is a list of field names (e.g. "Criteria") to include in
1503	// API requests with the JSON null value. By default, fields with empty
1504	// values are omitted from API requests. However, any field with an
1505	// empty value appearing in NullFields will be sent to the server as
1506	// null. It is an error if a field in this list has a non-empty value.
1507	// This may be used to include null fields in Patch requests.
1508	NullFields []string `json:"-"`
1509}
1510
1511func (s *BasicFilter) MarshalJSON() ([]byte, error) {
1512	type NoMethod BasicFilter
1513	raw := NoMethod(*s)
1514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1515}
1516
1517// BasicSeriesDataPointStyleOverride: Style override settings for a
1518// single series data point.
1519type BasicSeriesDataPointStyleOverride struct {
1520	// Color: Color of the series data point. If empty, the series default
1521	// is used.
1522	Color *Color `json:"color,omitempty"`
1523
1524	// ColorStyle: Color of the series data point. If empty, the series
1525	// default is used. If color is also set, this field takes precedence.
1526	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
1527
1528	// Index: Zero based index of the series data point.
1529	Index int64 `json:"index,omitempty"`
1530
1531	// PointStyle: Point style of the series data point. Valid only if the
1532	// chartType is AREA, LINE, or SCATTER. COMBO charts are also supported
1533	// if the series chart type is AREA, LINE, or SCATTER. If empty, the
1534	// series default is used.
1535	PointStyle *PointStyle `json:"pointStyle,omitempty"`
1536
1537	// ForceSendFields is a list of field names (e.g. "Color") to
1538	// unconditionally include in API requests. By default, fields with
1539	// empty values are omitted from API requests. However, any non-pointer,
1540	// non-interface field appearing in ForceSendFields will be sent to the
1541	// server regardless of whether the field is empty or not. This may be
1542	// used to include empty fields in Patch requests.
1543	ForceSendFields []string `json:"-"`
1544
1545	// NullFields is a list of field names (e.g. "Color") to include in API
1546	// requests with the JSON null value. By default, fields with empty
1547	// values are omitted from API requests. However, any field with an
1548	// empty value appearing in NullFields will be sent to the server as
1549	// null. It is an error if a field in this list has a non-empty value.
1550	// This may be used to include null fields in Patch requests.
1551	NullFields []string `json:"-"`
1552}
1553
1554func (s *BasicSeriesDataPointStyleOverride) MarshalJSON() ([]byte, error) {
1555	type NoMethod BasicSeriesDataPointStyleOverride
1556	raw := NoMethod(*s)
1557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1558}
1559
1560// BatchClearValuesByDataFilterRequest: The request for clearing more
1561// than one range selected by a DataFilter in a spreadsheet.
1562type BatchClearValuesByDataFilterRequest struct {
1563	// DataFilters: The DataFilters used to determine which ranges to clear.
1564	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
1565
1566	// ForceSendFields is a list of field names (e.g. "DataFilters") to
1567	// unconditionally include in API requests. By default, fields with
1568	// empty values are omitted from API requests. However, any non-pointer,
1569	// non-interface field appearing in ForceSendFields will be sent to the
1570	// server regardless of whether the field is empty or not. This may be
1571	// used to include empty fields in Patch requests.
1572	ForceSendFields []string `json:"-"`
1573
1574	// NullFields is a list of field names (e.g. "DataFilters") to include
1575	// in API requests with the JSON null value. By default, fields with
1576	// empty values are omitted from API requests. However, any field with
1577	// an empty value appearing in NullFields will be sent to the server as
1578	// null. It is an error if a field in this list has a non-empty value.
1579	// This may be used to include null fields in Patch requests.
1580	NullFields []string `json:"-"`
1581}
1582
1583func (s *BatchClearValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
1584	type NoMethod BatchClearValuesByDataFilterRequest
1585	raw := NoMethod(*s)
1586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1587}
1588
1589// BatchClearValuesByDataFilterResponse: The response when clearing a
1590// range of values selected with DataFilters in a spreadsheet.
1591type BatchClearValuesByDataFilterResponse struct {
1592	// ClearedRanges: The ranges that were cleared, in A1 notation. If the
1593	// requests are for an unbounded range or a ranger larger than the
1594	// bounds of the sheet, this is the actual ranges that were cleared,
1595	// bounded to the sheet's limits.
1596	ClearedRanges []string `json:"clearedRanges,omitempty"`
1597
1598	// SpreadsheetId: The spreadsheet the updates were applied to.
1599	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1600
1601	// ServerResponse contains the HTTP response code and headers from the
1602	// server.
1603	googleapi.ServerResponse `json:"-"`
1604
1605	// ForceSendFields is a list of field names (e.g. "ClearedRanges") to
1606	// unconditionally include in API requests. By default, fields with
1607	// empty values are omitted from API requests. However, any non-pointer,
1608	// non-interface field appearing in ForceSendFields will be sent to the
1609	// server regardless of whether the field is empty or not. This may be
1610	// used to include empty fields in Patch requests.
1611	ForceSendFields []string `json:"-"`
1612
1613	// NullFields is a list of field names (e.g. "ClearedRanges") to include
1614	// in API requests with the JSON null value. By default, fields with
1615	// empty values are omitted from API requests. However, any field with
1616	// an empty value appearing in NullFields will be sent to the server as
1617	// null. It is an error if a field in this list has a non-empty value.
1618	// This may be used to include null fields in Patch requests.
1619	NullFields []string `json:"-"`
1620}
1621
1622func (s *BatchClearValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
1623	type NoMethod BatchClearValuesByDataFilterResponse
1624	raw := NoMethod(*s)
1625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1626}
1627
1628// BatchClearValuesRequest: The request for clearing more than one range
1629// of values in a spreadsheet.
1630type BatchClearValuesRequest struct {
1631	// Ranges: The ranges to clear, in A1 notation.
1632	Ranges []string `json:"ranges,omitempty"`
1633
1634	// ForceSendFields is a list of field names (e.g. "Ranges") 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. "Ranges") 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 *BatchClearValuesRequest) MarshalJSON() ([]byte, error) {
1652	type NoMethod BatchClearValuesRequest
1653	raw := NoMethod(*s)
1654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1655}
1656
1657// BatchClearValuesResponse: The response when clearing a range of
1658// values in a spreadsheet.
1659type BatchClearValuesResponse struct {
1660	// ClearedRanges: The ranges that were cleared, in A1 notation. If the
1661	// requests are for an unbounded range or a ranger larger than the
1662	// bounds of the sheet, this is the actual ranges that were cleared,
1663	// bounded to the sheet's limits.
1664	ClearedRanges []string `json:"clearedRanges,omitempty"`
1665
1666	// SpreadsheetId: The spreadsheet the updates were applied to.
1667	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1668
1669	// ServerResponse contains the HTTP response code and headers from the
1670	// server.
1671	googleapi.ServerResponse `json:"-"`
1672
1673	// ForceSendFields is a list of field names (e.g. "ClearedRanges") to
1674	// unconditionally include in API requests. By default, fields with
1675	// empty values are omitted from API requests. However, any non-pointer,
1676	// non-interface field appearing in ForceSendFields will be sent to the
1677	// server regardless of whether the field is empty or not. This may be
1678	// used to include empty fields in Patch requests.
1679	ForceSendFields []string `json:"-"`
1680
1681	// NullFields is a list of field names (e.g. "ClearedRanges") to include
1682	// in API requests with the JSON null value. By default, fields with
1683	// empty values are omitted from API requests. However, any field with
1684	// an empty value appearing in NullFields will be sent to the server as
1685	// null. It is an error if a field in this list has a non-empty value.
1686	// This may be used to include null fields in Patch requests.
1687	NullFields []string `json:"-"`
1688}
1689
1690func (s *BatchClearValuesResponse) MarshalJSON() ([]byte, error) {
1691	type NoMethod BatchClearValuesResponse
1692	raw := NoMethod(*s)
1693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1694}
1695
1696// BatchGetValuesByDataFilterRequest: The request for retrieving a range
1697// of values in a spreadsheet selected by a set of DataFilters.
1698type BatchGetValuesByDataFilterRequest struct {
1699	// DataFilters: The data filters used to match the ranges of values to
1700	// retrieve. Ranges that match any of the specified data filters are
1701	// included in the response.
1702	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
1703
1704	// DateTimeRenderOption: How dates, times, and durations should be
1705	// represented in the output. This is ignored if value_render_option is
1706	// FORMATTED_VALUE. The default dateTime render option is
1707	// [DateTimeRenderOption.SERIAL_NUMBER].
1708	//
1709	// Possible values:
1710	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
1711	// fields to be output as doubles in "serial number" format, as
1712	// popularized by Lotus 1-2-3. The whole number portion of the value
1713	// (left of the decimal) counts the days since December 30th 1899. The
1714	// fractional portion (right of the decimal) counts the time as a
1715	// fraction of the day. For example, January 1st 1900 at noon would be
1716	// 2.5, 2 because it's 2 days after December 30st 1899, and .5 because
1717	// noon is half a day. February 1st 1900 at 3pm would be 33.625. This
1718	// correctly treats the year 1900 as not a leap year.
1719	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
1720	// fields to be output as strings in their given number format (which is
1721	// dependent on the spreadsheet locale).
1722	DateTimeRenderOption string `json:"dateTimeRenderOption,omitempty"`
1723
1724	// MajorDimension: The major dimension that results should use. For
1725	// example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then a
1726	// request that selects that range and sets `majorDimension=ROWS`
1727	// returns `[[1,2],[3,4]]`, whereas a request that sets
1728	// `majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.
1729	//
1730	// Possible values:
1731	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
1732	//   "ROWS" - Operates on the rows of a sheet.
1733	//   "COLUMNS" - Operates on the columns of a sheet.
1734	MajorDimension string `json:"majorDimension,omitempty"`
1735
1736	// ValueRenderOption: How values should be represented in the output.
1737	// The default render option is ValueRenderOption.FORMATTED_VALUE.
1738	//
1739	// Possible values:
1740	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
1741	// reply according to the cell's formatting. Formatting is based on the
1742	// spreadsheet's locale, not the requesting user's locale. For example,
1743	// if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then
1744	// `A2` would return "$1.23".
1745	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
1746	// in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and
1747	// formatted as currency, then `A2` would return the number `1.23`.
1748	//   "FORMULA" - Values will not be calculated. The reply will include
1749	// the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and
1750	// formatted as currency, then A2 would return "=A1".
1751	ValueRenderOption string `json:"valueRenderOption,omitempty"`
1752
1753	// ForceSendFields is a list of field names (e.g. "DataFilters") to
1754	// unconditionally include in API requests. By default, fields with
1755	// empty values are omitted from API requests. However, any non-pointer,
1756	// non-interface field appearing in ForceSendFields will be sent to the
1757	// server regardless of whether the field is empty or not. This may be
1758	// used to include empty fields in Patch requests.
1759	ForceSendFields []string `json:"-"`
1760
1761	// NullFields is a list of field names (e.g. "DataFilters") to include
1762	// in API requests with the JSON null value. By default, fields with
1763	// empty values are omitted from API requests. However, any field with
1764	// an empty value appearing in NullFields will be sent to the server as
1765	// null. It is an error if a field in this list has a non-empty value.
1766	// This may be used to include null fields in Patch requests.
1767	NullFields []string `json:"-"`
1768}
1769
1770func (s *BatchGetValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
1771	type NoMethod BatchGetValuesByDataFilterRequest
1772	raw := NoMethod(*s)
1773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1774}
1775
1776// BatchGetValuesByDataFilterResponse: The response when retrieving more
1777// than one range of values in a spreadsheet selected by DataFilters.
1778type BatchGetValuesByDataFilterResponse struct {
1779	// SpreadsheetId: The ID of the spreadsheet the data was retrieved from.
1780	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1781
1782	// ValueRanges: The requested values with the list of data filters that
1783	// matched them.
1784	ValueRanges []*MatchedValueRange `json:"valueRanges,omitempty"`
1785
1786	// ServerResponse contains the HTTP response code and headers from the
1787	// server.
1788	googleapi.ServerResponse `json:"-"`
1789
1790	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
1791	// unconditionally include in API requests. By default, fields with
1792	// empty values are omitted from API requests. However, any non-pointer,
1793	// non-interface field appearing in ForceSendFields will be sent to the
1794	// server regardless of whether the field is empty or not. This may be
1795	// used to include empty fields in Patch requests.
1796	ForceSendFields []string `json:"-"`
1797
1798	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
1799	// in API requests with the JSON null value. By default, fields with
1800	// empty values are omitted from API requests. However, any field with
1801	// an empty value appearing in NullFields will be sent to the server as
1802	// null. It is an error if a field in this list has a non-empty value.
1803	// This may be used to include null fields in Patch requests.
1804	NullFields []string `json:"-"`
1805}
1806
1807func (s *BatchGetValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
1808	type NoMethod BatchGetValuesByDataFilterResponse
1809	raw := NoMethod(*s)
1810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1811}
1812
1813// BatchGetValuesResponse: The response when retrieving more than one
1814// range of values in a spreadsheet.
1815type BatchGetValuesResponse struct {
1816	// SpreadsheetId: The ID of the spreadsheet the data was retrieved from.
1817	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1818
1819	// ValueRanges: The requested values. The order of the ValueRanges is
1820	// the same as the order of the requested ranges.
1821	ValueRanges []*ValueRange `json:"valueRanges,omitempty"`
1822
1823	// ServerResponse contains the HTTP response code and headers from the
1824	// server.
1825	googleapi.ServerResponse `json:"-"`
1826
1827	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
1828	// unconditionally include in API requests. By default, fields with
1829	// empty values are omitted from API requests. However, any non-pointer,
1830	// non-interface field appearing in ForceSendFields will be sent to the
1831	// server regardless of whether the field is empty or not. This may be
1832	// used to include empty fields in Patch requests.
1833	ForceSendFields []string `json:"-"`
1834
1835	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
1836	// in API requests with the JSON null value. By default, fields with
1837	// empty values are omitted from API requests. However, any field with
1838	// an empty value appearing in NullFields will be sent to the server as
1839	// null. It is an error if a field in this list has a non-empty value.
1840	// This may be used to include null fields in Patch requests.
1841	NullFields []string `json:"-"`
1842}
1843
1844func (s *BatchGetValuesResponse) MarshalJSON() ([]byte, error) {
1845	type NoMethod BatchGetValuesResponse
1846	raw := NoMethod(*s)
1847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1848}
1849
1850// BatchUpdateSpreadsheetRequest: The request for updating any aspect of
1851// a spreadsheet.
1852type BatchUpdateSpreadsheetRequest struct {
1853	// IncludeSpreadsheetInResponse: Determines if the update response
1854	// should include the spreadsheet resource.
1855	IncludeSpreadsheetInResponse bool `json:"includeSpreadsheetInResponse,omitempty"`
1856
1857	// Requests: A list of updates to apply to the spreadsheet. Requests
1858	// will be applied in the order they are specified. If any request is
1859	// not valid, no requests will be applied.
1860	Requests []*Request `json:"requests,omitempty"`
1861
1862	// ResponseIncludeGridData: True if grid data should be returned.
1863	// Meaningful only if include_spreadsheet_in_response is 'true'. This
1864	// parameter is ignored if a field mask was set in the request.
1865	ResponseIncludeGridData bool `json:"responseIncludeGridData,omitempty"`
1866
1867	// ResponseRanges: Limits the ranges included in the response
1868	// spreadsheet. Meaningful only if include_spreadsheet_in_response is
1869	// 'true'.
1870	ResponseRanges []string `json:"responseRanges,omitempty"`
1871
1872	// ForceSendFields is a list of field names (e.g.
1873	// "IncludeSpreadsheetInResponse") to unconditionally include in API
1874	// requests. By default, fields with empty values are omitted from API
1875	// requests. However, any non-pointer, non-interface field appearing in
1876	// ForceSendFields will be sent to the server regardless of whether the
1877	// field is empty or not. This may be used to include empty fields in
1878	// Patch requests.
1879	ForceSendFields []string `json:"-"`
1880
1881	// NullFields is a list of field names (e.g.
1882	// "IncludeSpreadsheetInResponse") to include in API requests with the
1883	// JSON null value. By default, fields with empty values are omitted
1884	// from API requests. However, any field with an empty value appearing
1885	// in NullFields will be sent to the server as null. It is an error if a
1886	// field in this list has a non-empty value. This may be used to include
1887	// null fields in Patch requests.
1888	NullFields []string `json:"-"`
1889}
1890
1891func (s *BatchUpdateSpreadsheetRequest) MarshalJSON() ([]byte, error) {
1892	type NoMethod BatchUpdateSpreadsheetRequest
1893	raw := NoMethod(*s)
1894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1895}
1896
1897// BatchUpdateSpreadsheetResponse: The reply for batch updating a
1898// spreadsheet.
1899type BatchUpdateSpreadsheetResponse struct {
1900	// Replies: The reply of the updates. This maps 1:1 with the updates,
1901	// although replies to some requests may be empty.
1902	Replies []*Response `json:"replies,omitempty"`
1903
1904	// SpreadsheetId: The spreadsheet the updates were applied to.
1905	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1906
1907	// UpdatedSpreadsheet: The spreadsheet after updates were applied. This
1908	// is only set if
1909	// [BatchUpdateSpreadsheetRequest.include_spreadsheet_in_response] is
1910	// `true`.
1911	UpdatedSpreadsheet *Spreadsheet `json:"updatedSpreadsheet,omitempty"`
1912
1913	// ServerResponse contains the HTTP response code and headers from the
1914	// server.
1915	googleapi.ServerResponse `json:"-"`
1916
1917	// ForceSendFields is a list of field names (e.g. "Replies") to
1918	// unconditionally include in API requests. By default, fields with
1919	// empty values are omitted from API requests. However, any non-pointer,
1920	// non-interface field appearing in ForceSendFields will be sent to the
1921	// server regardless of whether the field is empty or not. This may be
1922	// used to include empty fields in Patch requests.
1923	ForceSendFields []string `json:"-"`
1924
1925	// NullFields is a list of field names (e.g. "Replies") to include in
1926	// API requests with the JSON null value. By default, fields with empty
1927	// values are omitted from API requests. However, any field with an
1928	// empty value appearing in NullFields will be sent to the server as
1929	// null. It is an error if a field in this list has a non-empty value.
1930	// This may be used to include null fields in Patch requests.
1931	NullFields []string `json:"-"`
1932}
1933
1934func (s *BatchUpdateSpreadsheetResponse) MarshalJSON() ([]byte, error) {
1935	type NoMethod BatchUpdateSpreadsheetResponse
1936	raw := NoMethod(*s)
1937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1938}
1939
1940// BatchUpdateValuesByDataFilterRequest: The request for updating more
1941// than one range of values in a spreadsheet.
1942type BatchUpdateValuesByDataFilterRequest struct {
1943	// Data: The new values to apply to the spreadsheet. If more than one
1944	// range is matched by the specified DataFilter the specified values are
1945	// applied to all of those ranges.
1946	Data []*DataFilterValueRange `json:"data,omitempty"`
1947
1948	// IncludeValuesInResponse: Determines if the update response should
1949	// include the values of the cells that were updated. By default,
1950	// responses do not include the updated values. The `updatedData` field
1951	// within each of the BatchUpdateValuesResponse.responses contains the
1952	// updated values. If the range to write was larger than the range
1953	// actually written, the response includes all values in the requested
1954	// range (excluding trailing empty rows and columns).
1955	IncludeValuesInResponse bool `json:"includeValuesInResponse,omitempty"`
1956
1957	// ResponseDateTimeRenderOption: Determines how dates, times, and
1958	// durations in the response should be rendered. This is ignored if
1959	// response_value_render_option is FORMATTED_VALUE. The default dateTime
1960	// render option is DateTimeRenderOption.SERIAL_NUMBER.
1961	//
1962	// Possible values:
1963	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
1964	// fields to be output as doubles in "serial number" format, as
1965	// popularized by Lotus 1-2-3. The whole number portion of the value
1966	// (left of the decimal) counts the days since December 30th 1899. The
1967	// fractional portion (right of the decimal) counts the time as a
1968	// fraction of the day. For example, January 1st 1900 at noon would be
1969	// 2.5, 2 because it's 2 days after December 30st 1899, and .5 because
1970	// noon is half a day. February 1st 1900 at 3pm would be 33.625. This
1971	// correctly treats the year 1900 as not a leap year.
1972	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
1973	// fields to be output as strings in their given number format (which is
1974	// dependent on the spreadsheet locale).
1975	ResponseDateTimeRenderOption string `json:"responseDateTimeRenderOption,omitempty"`
1976
1977	// ResponseValueRenderOption: Determines how values in the response
1978	// should be rendered. The default render option is
1979	// ValueRenderOption.FORMATTED_VALUE.
1980	//
1981	// Possible values:
1982	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
1983	// reply according to the cell's formatting. Formatting is based on the
1984	// spreadsheet's locale, not the requesting user's locale. For example,
1985	// if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then
1986	// `A2` would return "$1.23".
1987	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
1988	// in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and
1989	// formatted as currency, then `A2` would return the number `1.23`.
1990	//   "FORMULA" - Values will not be calculated. The reply will include
1991	// the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and
1992	// formatted as currency, then A2 would return "=A1".
1993	ResponseValueRenderOption string `json:"responseValueRenderOption,omitempty"`
1994
1995	// ValueInputOption: How the input data should be interpreted.
1996	//
1997	// Possible values:
1998	//   "INPUT_VALUE_OPTION_UNSPECIFIED" - Default input value. This value
1999	// must not be used.
2000	//   "RAW" - The values the user has entered will not be parsed and will
2001	// be stored as-is.
2002	//   "USER_ENTERED" - The values will be parsed as if the user typed
2003	// them into the UI. Numbers will stay as numbers, but strings may be
2004	// converted to numbers, dates, etc. following the same rules that are
2005	// applied when entering text into a cell via the Google Sheets UI.
2006	ValueInputOption string `json:"valueInputOption,omitempty"`
2007
2008	// ForceSendFields is a list of field names (e.g. "Data") to
2009	// unconditionally include in API requests. By default, fields with
2010	// empty values are omitted from API requests. However, any non-pointer,
2011	// non-interface field appearing in ForceSendFields will be sent to the
2012	// server regardless of whether the field is empty or not. This may be
2013	// used to include empty fields in Patch requests.
2014	ForceSendFields []string `json:"-"`
2015
2016	// NullFields is a list of field names (e.g. "Data") to include in API
2017	// requests with the JSON null value. By default, fields with empty
2018	// values are omitted from API requests. However, any field with an
2019	// empty value appearing in NullFields will be sent to the server as
2020	// null. It is an error if a field in this list has a non-empty value.
2021	// This may be used to include null fields in Patch requests.
2022	NullFields []string `json:"-"`
2023}
2024
2025func (s *BatchUpdateValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
2026	type NoMethod BatchUpdateValuesByDataFilterRequest
2027	raw := NoMethod(*s)
2028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2029}
2030
2031// BatchUpdateValuesByDataFilterResponse: The response when updating a
2032// range of values in a spreadsheet.
2033type BatchUpdateValuesByDataFilterResponse struct {
2034	// Responses: The response for each range updated.
2035	Responses []*UpdateValuesByDataFilterResponse `json:"responses,omitempty"`
2036
2037	// SpreadsheetId: The spreadsheet the updates were applied to.
2038	SpreadsheetId string `json:"spreadsheetId,omitempty"`
2039
2040	// TotalUpdatedCells: The total number of cells updated.
2041	TotalUpdatedCells int64 `json:"totalUpdatedCells,omitempty"`
2042
2043	// TotalUpdatedColumns: The total number of columns where at least one
2044	// cell in the column was updated.
2045	TotalUpdatedColumns int64 `json:"totalUpdatedColumns,omitempty"`
2046
2047	// TotalUpdatedRows: The total number of rows where at least one cell in
2048	// the row was updated.
2049	TotalUpdatedRows int64 `json:"totalUpdatedRows,omitempty"`
2050
2051	// TotalUpdatedSheets: The total number of sheets where at least one
2052	// cell in the sheet was updated.
2053	TotalUpdatedSheets int64 `json:"totalUpdatedSheets,omitempty"`
2054
2055	// ServerResponse contains the HTTP response code and headers from the
2056	// server.
2057	googleapi.ServerResponse `json:"-"`
2058
2059	// ForceSendFields is a list of field names (e.g. "Responses") to
2060	// unconditionally include in API requests. By default, fields with
2061	// empty values are omitted from API requests. However, any non-pointer,
2062	// non-interface field appearing in ForceSendFields will be sent to the
2063	// server regardless of whether the field is empty or not. This may be
2064	// used to include empty fields in Patch requests.
2065	ForceSendFields []string `json:"-"`
2066
2067	// NullFields is a list of field names (e.g. "Responses") to include in
2068	// API requests with the JSON null value. By default, fields with empty
2069	// values are omitted from API requests. However, any field with an
2070	// empty value appearing in NullFields will be sent to the server as
2071	// null. It is an error if a field in this list has a non-empty value.
2072	// This may be used to include null fields in Patch requests.
2073	NullFields []string `json:"-"`
2074}
2075
2076func (s *BatchUpdateValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
2077	type NoMethod BatchUpdateValuesByDataFilterResponse
2078	raw := NoMethod(*s)
2079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2080}
2081
2082// BatchUpdateValuesRequest: The request for updating more than one
2083// range of values in a spreadsheet.
2084type BatchUpdateValuesRequest struct {
2085	// Data: The new values to apply to the spreadsheet.
2086	Data []*ValueRange `json:"data,omitempty"`
2087
2088	// IncludeValuesInResponse: Determines if the update response should
2089	// include the values of the cells that were updated. By default,
2090	// responses do not include the updated values. The `updatedData` field
2091	// within each of the BatchUpdateValuesResponse.responses contains the
2092	// updated values. If the range to write was larger than the range
2093	// actually written, the response includes all values in the requested
2094	// range (excluding trailing empty rows and columns).
2095	IncludeValuesInResponse bool `json:"includeValuesInResponse,omitempty"`
2096
2097	// ResponseDateTimeRenderOption: Determines how dates, times, and
2098	// durations in the response should be rendered. This is ignored if
2099	// response_value_render_option is FORMATTED_VALUE. The default dateTime
2100	// render option is DateTimeRenderOption.SERIAL_NUMBER.
2101	//
2102	// Possible values:
2103	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
2104	// fields to be output as doubles in "serial number" format, as
2105	// popularized by Lotus 1-2-3. The whole number portion of the value
2106	// (left of the decimal) counts the days since December 30th 1899. The
2107	// fractional portion (right of the decimal) counts the time as a
2108	// fraction of the day. For example, January 1st 1900 at noon would be
2109	// 2.5, 2 because it's 2 days after December 30st 1899, and .5 because
2110	// noon is half a day. February 1st 1900 at 3pm would be 33.625. This
2111	// correctly treats the year 1900 as not a leap year.
2112	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
2113	// fields to be output as strings in their given number format (which is
2114	// dependent on the spreadsheet locale).
2115	ResponseDateTimeRenderOption string `json:"responseDateTimeRenderOption,omitempty"`
2116
2117	// ResponseValueRenderOption: Determines how values in the response
2118	// should be rendered. The default render option is
2119	// ValueRenderOption.FORMATTED_VALUE.
2120	//
2121	// Possible values:
2122	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
2123	// reply according to the cell's formatting. Formatting is based on the
2124	// spreadsheet's locale, not the requesting user's locale. For example,
2125	// if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then
2126	// `A2` would return "$1.23".
2127	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
2128	// in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and
2129	// formatted as currency, then `A2` would return the number `1.23`.
2130	//   "FORMULA" - Values will not be calculated. The reply will include
2131	// the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and
2132	// formatted as currency, then A2 would return "=A1".
2133	ResponseValueRenderOption string `json:"responseValueRenderOption,omitempty"`
2134
2135	// ValueInputOption: How the input data should be interpreted.
2136	//
2137	// Possible values:
2138	//   "INPUT_VALUE_OPTION_UNSPECIFIED" - Default input value. This value
2139	// must not be used.
2140	//   "RAW" - The values the user has entered will not be parsed and will
2141	// be stored as-is.
2142	//   "USER_ENTERED" - The values will be parsed as if the user typed
2143	// them into the UI. Numbers will stay as numbers, but strings may be
2144	// converted to numbers, dates, etc. following the same rules that are
2145	// applied when entering text into a cell via the Google Sheets UI.
2146	ValueInputOption string `json:"valueInputOption,omitempty"`
2147
2148	// ForceSendFields is a list of field names (e.g. "Data") to
2149	// unconditionally include in API requests. By default, fields with
2150	// empty values are omitted from API requests. However, any non-pointer,
2151	// non-interface field appearing in ForceSendFields will be sent to the
2152	// server regardless of whether the field is empty or not. This may be
2153	// used to include empty fields in Patch requests.
2154	ForceSendFields []string `json:"-"`
2155
2156	// NullFields is a list of field names (e.g. "Data") to include in API
2157	// requests with the JSON null value. By default, fields with empty
2158	// values are omitted from API requests. However, any field with an
2159	// empty value appearing in NullFields will be sent to the server as
2160	// null. It is an error if a field in this list has a non-empty value.
2161	// This may be used to include null fields in Patch requests.
2162	NullFields []string `json:"-"`
2163}
2164
2165func (s *BatchUpdateValuesRequest) MarshalJSON() ([]byte, error) {
2166	type NoMethod BatchUpdateValuesRequest
2167	raw := NoMethod(*s)
2168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2169}
2170
2171// BatchUpdateValuesResponse: The response when updating a range of
2172// values in a spreadsheet.
2173type BatchUpdateValuesResponse struct {
2174	// Responses: One UpdateValuesResponse per requested range, in the same
2175	// order as the requests appeared.
2176	Responses []*UpdateValuesResponse `json:"responses,omitempty"`
2177
2178	// SpreadsheetId: The spreadsheet the updates were applied to.
2179	SpreadsheetId string `json:"spreadsheetId,omitempty"`
2180
2181	// TotalUpdatedCells: The total number of cells updated.
2182	TotalUpdatedCells int64 `json:"totalUpdatedCells,omitempty"`
2183
2184	// TotalUpdatedColumns: The total number of columns where at least one
2185	// cell in the column was updated.
2186	TotalUpdatedColumns int64 `json:"totalUpdatedColumns,omitempty"`
2187
2188	// TotalUpdatedRows: The total number of rows where at least one cell in
2189	// the row was updated.
2190	TotalUpdatedRows int64 `json:"totalUpdatedRows,omitempty"`
2191
2192	// TotalUpdatedSheets: The total number of sheets where at least one
2193	// cell in the sheet was updated.
2194	TotalUpdatedSheets int64 `json:"totalUpdatedSheets,omitempty"`
2195
2196	// ServerResponse contains the HTTP response code and headers from the
2197	// server.
2198	googleapi.ServerResponse `json:"-"`
2199
2200	// ForceSendFields is a list of field names (e.g. "Responses") to
2201	// unconditionally include in API requests. By default, fields with
2202	// empty values are omitted from API requests. However, any non-pointer,
2203	// non-interface field appearing in ForceSendFields will be sent to the
2204	// server regardless of whether the field is empty or not. This may be
2205	// used to include empty fields in Patch requests.
2206	ForceSendFields []string `json:"-"`
2207
2208	// NullFields is a list of field names (e.g. "Responses") to include in
2209	// API requests with the JSON null value. By default, fields with empty
2210	// values are omitted from API requests. However, any field with an
2211	// empty value appearing in NullFields will be sent to the server as
2212	// null. It is an error if a field in this list has a non-empty value.
2213	// This may be used to include null fields in Patch requests.
2214	NullFields []string `json:"-"`
2215}
2216
2217func (s *BatchUpdateValuesResponse) MarshalJSON() ([]byte, error) {
2218	type NoMethod BatchUpdateValuesResponse
2219	raw := NoMethod(*s)
2220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2221}
2222
2223// BigQueryDataSourceSpec: The specification of a BigQuery data source
2224// that's connected to a sheet.
2225type BigQueryDataSourceSpec struct {
2226	// ProjectId: The ID of a BigQuery enabled GCP project with a billing
2227	// account attached. For any queries executed against the data source,
2228	// the project is charged.
2229	ProjectId string `json:"projectId,omitempty"`
2230
2231	// QuerySpec: A BigQueryQuerySpec.
2232	QuerySpec *BigQueryQuerySpec `json:"querySpec,omitempty"`
2233
2234	// TableSpec: A BigQueryTableSpec.
2235	TableSpec *BigQueryTableSpec `json:"tableSpec,omitempty"`
2236
2237	// ForceSendFields is a list of field names (e.g. "ProjectId") to
2238	// unconditionally include in API requests. By default, fields with
2239	// empty values are omitted from API requests. However, any non-pointer,
2240	// non-interface field appearing in ForceSendFields will be sent to the
2241	// server regardless of whether the field is empty or not. This may be
2242	// used to include empty fields in Patch requests.
2243	ForceSendFields []string `json:"-"`
2244
2245	// NullFields is a list of field names (e.g. "ProjectId") to include in
2246	// API requests with the JSON null value. By default, fields with empty
2247	// values are omitted from API requests. However, any field with an
2248	// empty value appearing in NullFields will be sent to the server as
2249	// null. It is an error if a field in this list has a non-empty value.
2250	// This may be used to include null fields in Patch requests.
2251	NullFields []string `json:"-"`
2252}
2253
2254func (s *BigQueryDataSourceSpec) MarshalJSON() ([]byte, error) {
2255	type NoMethod BigQueryDataSourceSpec
2256	raw := NoMethod(*s)
2257	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2258}
2259
2260// BigQueryQuerySpec: Specifies a custom BigQuery query.
2261type BigQueryQuerySpec struct {
2262	// RawQuery: The raw query string.
2263	RawQuery string `json:"rawQuery,omitempty"`
2264
2265	// ForceSendFields is a list of field names (e.g. "RawQuery") to
2266	// unconditionally include in API requests. By default, fields with
2267	// empty values are omitted from API requests. However, any non-pointer,
2268	// non-interface field appearing in ForceSendFields will be sent to the
2269	// server regardless of whether the field is empty or not. This may be
2270	// used to include empty fields in Patch requests.
2271	ForceSendFields []string `json:"-"`
2272
2273	// NullFields is a list of field names (e.g. "RawQuery") to include in
2274	// API requests with the JSON null value. By default, fields with empty
2275	// values are omitted from API requests. However, any field with an
2276	// empty value appearing in NullFields will be sent to the server as
2277	// null. It is an error if a field in this list has a non-empty value.
2278	// This may be used to include null fields in Patch requests.
2279	NullFields []string `json:"-"`
2280}
2281
2282func (s *BigQueryQuerySpec) MarshalJSON() ([]byte, error) {
2283	type NoMethod BigQueryQuerySpec
2284	raw := NoMethod(*s)
2285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2286}
2287
2288// BigQueryTableSpec: Specifies a BigQuery table definition. Only
2289// [native tables](https://cloud.google.com/bigquery/docs/tables-intro)
2290// is allowed.
2291type BigQueryTableSpec struct {
2292	// DatasetId: The BigQuery dataset id.
2293	DatasetId string `json:"datasetId,omitempty"`
2294
2295	// TableId: The BigQuery table id.
2296	TableId string `json:"tableId,omitempty"`
2297
2298	// TableProjectId: The ID of a BigQuery project the table belongs to. If
2299	// not specified, the project_id is assumed.
2300	TableProjectId string `json:"tableProjectId,omitempty"`
2301
2302	// ForceSendFields is a list of field names (e.g. "DatasetId") to
2303	// unconditionally include in API requests. By default, fields with
2304	// empty values are omitted from API requests. However, any non-pointer,
2305	// non-interface field appearing in ForceSendFields will be sent to the
2306	// server regardless of whether the field is empty or not. This may be
2307	// used to include empty fields in Patch requests.
2308	ForceSendFields []string `json:"-"`
2309
2310	// NullFields is a list of field names (e.g. "DatasetId") to include in
2311	// API requests with the JSON null value. By default, fields with empty
2312	// values are omitted from API requests. However, any field with an
2313	// empty value appearing in NullFields will be sent to the server as
2314	// null. It is an error if a field in this list has a non-empty value.
2315	// This may be used to include null fields in Patch requests.
2316	NullFields []string `json:"-"`
2317}
2318
2319func (s *BigQueryTableSpec) MarshalJSON() ([]byte, error) {
2320	type NoMethod BigQueryTableSpec
2321	raw := NoMethod(*s)
2322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2323}
2324
2325// BooleanCondition: A condition that can evaluate to true or false.
2326// BooleanConditions are used by conditional formatting, data
2327// validation, and the criteria in filters.
2328type BooleanCondition struct {
2329	// Type: The type of condition.
2330	//
2331	// Possible values:
2332	//   "CONDITION_TYPE_UNSPECIFIED" - The default value, do not use.
2333	//   "NUMBER_GREATER" - The cell's value must be greater than the
2334	// condition's value. Supported by data validation, conditional
2335	// formatting and filters. Requires a single ConditionValue.
2336	//   "NUMBER_GREATER_THAN_EQ" - The cell's value must be greater than or
2337	// equal to the condition's value. Supported by data validation,
2338	// conditional formatting and filters. Requires a single ConditionValue.
2339	//   "NUMBER_LESS" - The cell's value must be less than the condition's
2340	// value. Supported by data validation, conditional formatting and
2341	// filters. Requires a single ConditionValue.
2342	//   "NUMBER_LESS_THAN_EQ" - The cell's value must be less than or equal
2343	// to the condition's value. Supported by data validation, conditional
2344	// formatting and filters. Requires a single ConditionValue.
2345	//   "NUMBER_EQ" - The cell's value must be equal to the condition's
2346	// value. Supported by data validation, conditional formatting and
2347	// filters. Requires a single ConditionValue for data validation,
2348	// conditional formatting, and filters on non-data source objects and at
2349	// least one ConditionValue for filters on data source objects.
2350	//   "NUMBER_NOT_EQ" - The cell's value must be not equal to the
2351	// condition's value. Supported by data validation, conditional
2352	// formatting and filters. Requires a single ConditionValue for data
2353	// validation, conditional formatting, and filters on non-data source
2354	// objects and at least one ConditionValue for filters on data source
2355	// objects.
2356	//   "NUMBER_BETWEEN" - The cell's value must be between the two
2357	// condition values. Supported by data validation, conditional
2358	// formatting and filters. Requires exactly two ConditionValues.
2359	//   "NUMBER_NOT_BETWEEN" - The cell's value must not be between the two
2360	// condition values. Supported by data validation, conditional
2361	// formatting and filters. Requires exactly two ConditionValues.
2362	//   "TEXT_CONTAINS" - The cell's value must contain the condition's
2363	// value. Supported by data validation, conditional formatting and
2364	// filters. Requires a single ConditionValue.
2365	//   "TEXT_NOT_CONTAINS" - The cell's value must not contain the
2366	// condition's value. Supported by data validation, conditional
2367	// formatting and filters. Requires a single ConditionValue.
2368	//   "TEXT_STARTS_WITH" - The cell's value must start with the
2369	// condition's value. Supported by conditional formatting and filters.
2370	// Requires a single ConditionValue.
2371	//   "TEXT_ENDS_WITH" - The cell's value must end with the condition's
2372	// value. Supported by conditional formatting and filters. Requires a
2373	// single ConditionValue.
2374	//   "TEXT_EQ" - The cell's value must be exactly the condition's value.
2375	// Supported by data validation, conditional formatting and filters.
2376	// Requires a single ConditionValue for data validation, conditional
2377	// formatting, and filters on non-data source objects and at least one
2378	// ConditionValue for filters on data source objects.
2379	//   "TEXT_IS_EMAIL" - The cell's value must be a valid email address.
2380	// Supported by data validation. Requires no ConditionValues.
2381	//   "TEXT_IS_URL" - The cell's value must be a valid URL. Supported by
2382	// data validation. Requires no ConditionValues.
2383	//   "DATE_EQ" - The cell's value must be the same date as the
2384	// condition's value. Supported by data validation, conditional
2385	// formatting and filters. Requires a single ConditionValue for data
2386	// validation, conditional formatting, and filters on non-data source
2387	// objects and at least one ConditionValue for filters on data source
2388	// objects.
2389	//   "DATE_BEFORE" - The cell's value must be before the date of the
2390	// condition's value. Supported by data validation, conditional
2391	// formatting and filters. Requires a single ConditionValue that may be
2392	// a relative date.
2393	//   "DATE_AFTER" - The cell's value must be after the date of the
2394	// condition's value. Supported by data validation, conditional
2395	// formatting and filters. Requires a single ConditionValue that may be
2396	// a relative date.
2397	//   "DATE_ON_OR_BEFORE" - The cell's value must be on or before the
2398	// date of the condition's value. Supported by data validation. Requires
2399	// a single ConditionValue that may be a relative date.
2400	//   "DATE_ON_OR_AFTER" - The cell's value must be on or after the date
2401	// of the condition's value. Supported by data validation. Requires a
2402	// single ConditionValue that may be a relative date.
2403	//   "DATE_BETWEEN" - The cell's value must be between the dates of the
2404	// two condition values. Supported by data validation. Requires exactly
2405	// two ConditionValues.
2406	//   "DATE_NOT_BETWEEN" - The cell's value must be outside the dates of
2407	// the two condition values. Supported by data validation. Requires
2408	// exactly two ConditionValues.
2409	//   "DATE_IS_VALID" - The cell's value must be a date. Supported by
2410	// data validation. Requires no ConditionValues.
2411	//   "ONE_OF_RANGE" - The cell's value must be listed in the grid in
2412	// condition value's range. Supported by data validation. Requires a
2413	// single ConditionValue, and the value must be a valid range in A1
2414	// notation.
2415	//   "ONE_OF_LIST" - The cell's value must be in the list of condition
2416	// values. Supported by data validation. Supports any number of
2417	// condition values, one per item in the list. Formulas are not
2418	// supported in the values.
2419	//   "BLANK" - The cell's value must be empty. Supported by conditional
2420	// formatting and filters. Requires no ConditionValues.
2421	//   "NOT_BLANK" - The cell's value must not be empty. Supported by
2422	// conditional formatting and filters. Requires no ConditionValues.
2423	//   "CUSTOM_FORMULA" - The condition's formula must evaluate to true.
2424	// Supported by data validation, conditional formatting and filters. Not
2425	// supported by data source sheet filters. Requires a single
2426	// ConditionValue.
2427	//   "BOOLEAN" - The cell's value must be TRUE/FALSE or in the list of
2428	// condition values. Supported by data validation. Renders as a cell
2429	// checkbox. Supports zero, one or two ConditionValues. No values
2430	// indicates the cell must be TRUE or FALSE, where TRUE renders as
2431	// checked and FALSE renders as unchecked. One value indicates the cell
2432	// will render as checked when it contains that value and unchecked when
2433	// it is blank. Two values indicate that the cell will render as checked
2434	// when it contains the first value and unchecked when it contains the
2435	// second value. For example, ["Yes","No"] indicates that the cell will
2436	// render a checked box when it has the value "Yes" and an unchecked box
2437	// when it has the value "No".
2438	//   "TEXT_NOT_EQ" - The cell's value must be exactly not the
2439	// condition's value. Supported by filters on data source objects.
2440	// Requires at least one ConditionValue.
2441	//   "DATE_NOT_EQ" - The cell's value must be exactly not the
2442	// condition's value. Supported by filters on data source objects.
2443	// Requires at least one ConditionValue.
2444	Type string `json:"type,omitempty"`
2445
2446	// Values: The values of the condition. The number of supported values
2447	// depends on the condition type. Some support zero values, others one
2448	// or two values, and ConditionType.ONE_OF_LIST supports an arbitrary
2449	// number of values.
2450	Values []*ConditionValue `json:"values,omitempty"`
2451
2452	// ForceSendFields is a list of field names (e.g. "Type") to
2453	// unconditionally include in API requests. By default, fields with
2454	// empty values are omitted from API requests. However, any non-pointer,
2455	// non-interface field appearing in ForceSendFields will be sent to the
2456	// server regardless of whether the field is empty or not. This may be
2457	// used to include empty fields in Patch requests.
2458	ForceSendFields []string `json:"-"`
2459
2460	// NullFields is a list of field names (e.g. "Type") to include in API
2461	// requests with the JSON null value. By default, fields with empty
2462	// values are omitted from API requests. However, any field with an
2463	// empty value appearing in NullFields will be sent to the server as
2464	// null. It is an error if a field in this list has a non-empty value.
2465	// This may be used to include null fields in Patch requests.
2466	NullFields []string `json:"-"`
2467}
2468
2469func (s *BooleanCondition) MarshalJSON() ([]byte, error) {
2470	type NoMethod BooleanCondition
2471	raw := NoMethod(*s)
2472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2473}
2474
2475// BooleanRule: A rule that may or may not match, depending on the
2476// condition.
2477type BooleanRule struct {
2478	// Condition: The condition of the rule. If the condition evaluates to
2479	// true, the format is applied.
2480	Condition *BooleanCondition `json:"condition,omitempty"`
2481
2482	// Format: The format to apply. Conditional formatting can only apply a
2483	// subset of formatting: bold, italic, strikethrough, foreground color &
2484	// background color.
2485	Format *CellFormat `json:"format,omitempty"`
2486
2487	// ForceSendFields is a list of field names (e.g. "Condition") to
2488	// unconditionally include in API requests. By default, fields with
2489	// empty values are omitted from API requests. However, any non-pointer,
2490	// non-interface field appearing in ForceSendFields will be sent to the
2491	// server regardless of whether the field is empty or not. This may be
2492	// used to include empty fields in Patch requests.
2493	ForceSendFields []string `json:"-"`
2494
2495	// NullFields is a list of field names (e.g. "Condition") to include in
2496	// API requests with the JSON null value. By default, fields with empty
2497	// values are omitted from API requests. However, any field with an
2498	// empty value appearing in NullFields will be sent to the server as
2499	// null. It is an error if a field in this list has a non-empty value.
2500	// This may be used to include null fields in Patch requests.
2501	NullFields []string `json:"-"`
2502}
2503
2504func (s *BooleanRule) MarshalJSON() ([]byte, error) {
2505	type NoMethod BooleanRule
2506	raw := NoMethod(*s)
2507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2508}
2509
2510// Border: A border along a cell.
2511type Border struct {
2512	// Color: The color of the border.
2513	Color *Color `json:"color,omitempty"`
2514
2515	// ColorStyle: The color of the border. If color is also set, this field
2516	// takes precedence.
2517	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
2518
2519	// Style: The style of the border.
2520	//
2521	// Possible values:
2522	//   "STYLE_UNSPECIFIED" - The style is not specified. Do not use this.
2523	//   "DOTTED" - The border is dotted.
2524	//   "DASHED" - The border is dashed.
2525	//   "SOLID" - The border is a thin solid line.
2526	//   "SOLID_MEDIUM" - The border is a medium solid line.
2527	//   "SOLID_THICK" - The border is a thick solid line.
2528	//   "NONE" - No border. Used only when updating a border in order to
2529	// erase it.
2530	//   "DOUBLE" - The border is two solid lines.
2531	Style string `json:"style,omitempty"`
2532
2533	// Width: The width of the border, in pixels. Deprecated; the width is
2534	// determined by the "style" field.
2535	Width int64 `json:"width,omitempty"`
2536
2537	// ForceSendFields is a list of field names (e.g. "Color") to
2538	// unconditionally include in API requests. By default, fields with
2539	// empty values are omitted from API requests. However, any non-pointer,
2540	// non-interface field appearing in ForceSendFields will be sent to the
2541	// server regardless of whether the field is empty or not. This may be
2542	// used to include empty fields in Patch requests.
2543	ForceSendFields []string `json:"-"`
2544
2545	// NullFields is a list of field names (e.g. "Color") to include in API
2546	// requests with the JSON null value. By default, fields with empty
2547	// values are omitted from API requests. However, any field with an
2548	// empty value appearing in NullFields will be sent to the server as
2549	// null. It is an error if a field in this list has a non-empty value.
2550	// This may be used to include null fields in Patch requests.
2551	NullFields []string `json:"-"`
2552}
2553
2554func (s *Border) MarshalJSON() ([]byte, error) {
2555	type NoMethod Border
2556	raw := NoMethod(*s)
2557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2558}
2559
2560// Borders: The borders of the cell.
2561type Borders struct {
2562	// Bottom: The bottom border of the cell.
2563	Bottom *Border `json:"bottom,omitempty"`
2564
2565	// Left: The left border of the cell.
2566	Left *Border `json:"left,omitempty"`
2567
2568	// Right: The right border of the cell.
2569	Right *Border `json:"right,omitempty"`
2570
2571	// Top: The top border of the cell.
2572	Top *Border `json:"top,omitempty"`
2573
2574	// ForceSendFields is a list of field names (e.g. "Bottom") to
2575	// unconditionally include in API requests. By default, fields with
2576	// empty values are omitted from API requests. However, any non-pointer,
2577	// non-interface field appearing in ForceSendFields will be sent to the
2578	// server regardless of whether the field is empty or not. This may be
2579	// used to include empty fields in Patch requests.
2580	ForceSendFields []string `json:"-"`
2581
2582	// NullFields is a list of field names (e.g. "Bottom") to include in API
2583	// requests with the JSON null value. By default, fields with empty
2584	// values are omitted from API requests. However, any field with an
2585	// empty value appearing in NullFields will be sent to the server as
2586	// null. It is an error if a field in this list has a non-empty value.
2587	// This may be used to include null fields in Patch requests.
2588	NullFields []string `json:"-"`
2589}
2590
2591func (s *Borders) MarshalJSON() ([]byte, error) {
2592	type NoMethod Borders
2593	raw := NoMethod(*s)
2594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2595}
2596
2597// BubbleChartSpec: A bubble chart.
2598type BubbleChartSpec struct {
2599	// BubbleBorderColor: The bubble border color.
2600	BubbleBorderColor *Color `json:"bubbleBorderColor,omitempty"`
2601
2602	// BubbleBorderColorStyle: The bubble border color. If
2603	// bubble_border_color is also set, this field takes precedence.
2604	BubbleBorderColorStyle *ColorStyle `json:"bubbleBorderColorStyle,omitempty"`
2605
2606	// BubbleLabels: The data containing the bubble labels. These do not
2607	// need to be unique.
2608	BubbleLabels *ChartData `json:"bubbleLabels,omitempty"`
2609
2610	// BubbleMaxRadiusSize: The max radius size of the bubbles, in pixels.
2611	// If specified, the field must be a positive value.
2612	BubbleMaxRadiusSize int64 `json:"bubbleMaxRadiusSize,omitempty"`
2613
2614	// BubbleMinRadiusSize: The minimum radius size of the bubbles, in
2615	// pixels. If specific, the field must be a positive value.
2616	BubbleMinRadiusSize int64 `json:"bubbleMinRadiusSize,omitempty"`
2617
2618	// BubbleOpacity: The opacity of the bubbles between 0 and 1.0. 0 is
2619	// fully transparent and 1 is fully opaque.
2620	BubbleOpacity float64 `json:"bubbleOpacity,omitempty"`
2621
2622	// BubbleSizes: The data contianing the bubble sizes. Bubble sizes are
2623	// used to draw the bubbles at different sizes relative to each other.
2624	// If specified, group_ids must also be specified. This field is
2625	// optional.
2626	BubbleSizes *ChartData `json:"bubbleSizes,omitempty"`
2627
2628	// BubbleTextStyle: The format of the text inside the bubbles.
2629	// Strikethrough and underline are not supported.
2630	BubbleTextStyle *TextFormat `json:"bubbleTextStyle,omitempty"`
2631
2632	// Domain: The data containing the bubble x-values. These values locate
2633	// the bubbles in the chart horizontally.
2634	Domain *ChartData `json:"domain,omitempty"`
2635
2636	// GroupIds: The data containing the bubble group IDs. All bubbles with
2637	// the same group ID are drawn in the same color. If bubble_sizes is
2638	// specified then this field must also be specified but may contain
2639	// blank values. This field is optional.
2640	GroupIds *ChartData `json:"groupIds,omitempty"`
2641
2642	// LegendPosition: Where the legend of the chart should be drawn.
2643	//
2644	// Possible values:
2645	//   "BUBBLE_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
2646	// use.
2647	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
2648	// chart.
2649	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
2650	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
2651	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
2652	//   "NO_LEGEND" - No legend is rendered.
2653	//   "INSIDE_LEGEND" - The legend is rendered inside the chart area.
2654	LegendPosition string `json:"legendPosition,omitempty"`
2655
2656	// Series: The data contianing the bubble y-values. These values locate
2657	// the bubbles in the chart vertically.
2658	Series *ChartData `json:"series,omitempty"`
2659
2660	// ForceSendFields is a list of field names (e.g. "BubbleBorderColor")
2661	// to unconditionally include in API requests. By default, fields with
2662	// empty values are omitted from API requests. However, any non-pointer,
2663	// non-interface field appearing in ForceSendFields will be sent to the
2664	// server regardless of whether the field is empty or not. This may be
2665	// used to include empty fields in Patch requests.
2666	ForceSendFields []string `json:"-"`
2667
2668	// NullFields is a list of field names (e.g. "BubbleBorderColor") to
2669	// include in API requests with the JSON null value. By default, fields
2670	// with empty values are omitted from API requests. However, any field
2671	// with an empty value appearing in NullFields will be sent to the
2672	// server as null. It is an error if a field in this list has a
2673	// non-empty value. This may be used to include null fields in Patch
2674	// requests.
2675	NullFields []string `json:"-"`
2676}
2677
2678func (s *BubbleChartSpec) MarshalJSON() ([]byte, error) {
2679	type NoMethod BubbleChartSpec
2680	raw := NoMethod(*s)
2681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2682}
2683
2684func (s *BubbleChartSpec) UnmarshalJSON(data []byte) error {
2685	type NoMethod BubbleChartSpec
2686	var s1 struct {
2687		BubbleOpacity gensupport.JSONFloat64 `json:"bubbleOpacity"`
2688		*NoMethod
2689	}
2690	s1.NoMethod = (*NoMethod)(s)
2691	if err := json.Unmarshal(data, &s1); err != nil {
2692		return err
2693	}
2694	s.BubbleOpacity = float64(s1.BubbleOpacity)
2695	return nil
2696}
2697
2698// CandlestickChartSpec: A candlestick chart.
2699type CandlestickChartSpec struct {
2700	// Data: The Candlestick chart data. Only one CandlestickData is
2701	// supported.
2702	Data []*CandlestickData `json:"data,omitempty"`
2703
2704	// Domain: The domain data (horizontal axis) for the candlestick chart.
2705	// String data will be treated as discrete labels, other data will be
2706	// treated as continuous values.
2707	Domain *CandlestickDomain `json:"domain,omitempty"`
2708
2709	// ForceSendFields is a list of field names (e.g. "Data") to
2710	// unconditionally include in API requests. By default, fields with
2711	// empty values are omitted from API requests. However, any non-pointer,
2712	// non-interface field appearing in ForceSendFields will be sent to the
2713	// server regardless of whether the field is empty or not. This may be
2714	// used to include empty fields in Patch requests.
2715	ForceSendFields []string `json:"-"`
2716
2717	// NullFields is a list of field names (e.g. "Data") to include in API
2718	// requests with the JSON null value. By default, fields with empty
2719	// values are omitted from API requests. However, any field with an
2720	// empty value appearing in NullFields will be sent to the server as
2721	// null. It is an error if a field in this list has a non-empty value.
2722	// This may be used to include null fields in Patch requests.
2723	NullFields []string `json:"-"`
2724}
2725
2726func (s *CandlestickChartSpec) MarshalJSON() ([]byte, error) {
2727	type NoMethod CandlestickChartSpec
2728	raw := NoMethod(*s)
2729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2730}
2731
2732// CandlestickData: The Candlestick chart data, each containing the low,
2733// open, close, and high values for a series.
2734type CandlestickData struct {
2735	// CloseSeries: The range data (vertical axis) for the close/final value
2736	// for each candle. This is the top of the candle body. If greater than
2737	// the open value the candle will be filled. Otherwise the candle will
2738	// be hollow.
2739	CloseSeries *CandlestickSeries `json:"closeSeries,omitempty"`
2740
2741	// HighSeries: The range data (vertical axis) for the high/maximum value
2742	// for each candle. This is the top of the candle's center line.
2743	HighSeries *CandlestickSeries `json:"highSeries,omitempty"`
2744
2745	// LowSeries: The range data (vertical axis) for the low/minimum value
2746	// for each candle. This is the bottom of the candle's center line.
2747	LowSeries *CandlestickSeries `json:"lowSeries,omitempty"`
2748
2749	// OpenSeries: The range data (vertical axis) for the open/initial value
2750	// for each candle. This is the bottom of the candle body. If less than
2751	// the close value the candle will be filled. Otherwise the candle will
2752	// be hollow.
2753	OpenSeries *CandlestickSeries `json:"openSeries,omitempty"`
2754
2755	// ForceSendFields is a list of field names (e.g. "CloseSeries") to
2756	// unconditionally include in API requests. By default, fields with
2757	// empty values are omitted from API requests. However, any non-pointer,
2758	// non-interface field appearing in ForceSendFields will be sent to the
2759	// server regardless of whether the field is empty or not. This may be
2760	// used to include empty fields in Patch requests.
2761	ForceSendFields []string `json:"-"`
2762
2763	// NullFields is a list of field names (e.g. "CloseSeries") to include
2764	// in API requests with the JSON null value. By default, fields with
2765	// empty values are omitted from API requests. However, any field with
2766	// an empty value appearing in NullFields will be sent to the server as
2767	// null. It is an error if a field in this list has a non-empty value.
2768	// This may be used to include null fields in Patch requests.
2769	NullFields []string `json:"-"`
2770}
2771
2772func (s *CandlestickData) MarshalJSON() ([]byte, error) {
2773	type NoMethod CandlestickData
2774	raw := NoMethod(*s)
2775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2776}
2777
2778// CandlestickDomain: The domain of a CandlestickChart.
2779type CandlestickDomain struct {
2780	// Data: The data of the CandlestickDomain.
2781	Data *ChartData `json:"data,omitempty"`
2782
2783	// Reversed: True to reverse the order of the domain values (horizontal
2784	// axis).
2785	Reversed bool `json:"reversed,omitempty"`
2786
2787	// ForceSendFields is a list of field names (e.g. "Data") to
2788	// unconditionally include in API requests. By default, fields with
2789	// empty values are omitted from API requests. However, any non-pointer,
2790	// non-interface field appearing in ForceSendFields will be sent to the
2791	// server regardless of whether the field is empty or not. This may be
2792	// used to include empty fields in Patch requests.
2793	ForceSendFields []string `json:"-"`
2794
2795	// NullFields is a list of field names (e.g. "Data") to include in API
2796	// requests with the JSON null value. By default, fields with empty
2797	// values are omitted from API requests. However, any field with an
2798	// empty value appearing in NullFields will be sent to the server as
2799	// null. It is an error if a field in this list has a non-empty value.
2800	// This may be used to include null fields in Patch requests.
2801	NullFields []string `json:"-"`
2802}
2803
2804func (s *CandlestickDomain) MarshalJSON() ([]byte, error) {
2805	type NoMethod CandlestickDomain
2806	raw := NoMethod(*s)
2807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2808}
2809
2810// CandlestickSeries: The series of a CandlestickData.
2811type CandlestickSeries struct {
2812	// Data: The data of the CandlestickSeries.
2813	Data *ChartData `json:"data,omitempty"`
2814
2815	// ForceSendFields is a list of field names (e.g. "Data") to
2816	// unconditionally include in API requests. By default, fields with
2817	// empty values are omitted from API requests. However, any non-pointer,
2818	// non-interface field appearing in ForceSendFields will be sent to the
2819	// server regardless of whether the field is empty or not. This may be
2820	// used to include empty fields in Patch requests.
2821	ForceSendFields []string `json:"-"`
2822
2823	// NullFields is a list of field names (e.g. "Data") to include in API
2824	// requests with the JSON null value. By default, fields with empty
2825	// values are omitted from API requests. However, any field with an
2826	// empty value appearing in NullFields will be sent to the server as
2827	// null. It is an error if a field in this list has a non-empty value.
2828	// This may be used to include null fields in Patch requests.
2829	NullFields []string `json:"-"`
2830}
2831
2832func (s *CandlestickSeries) MarshalJSON() ([]byte, error) {
2833	type NoMethod CandlestickSeries
2834	raw := NoMethod(*s)
2835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2836}
2837
2838// CellData: Data about a specific cell.
2839type CellData struct {
2840	// DataSourceFormula: Output only. Information about a data source
2841	// formula on the cell. The field is set if user_entered_value is a
2842	// formula referencing some DATA_SOURCE sheet, e.g
2843	// `=SUM(DataSheet!Column)`.
2844	DataSourceFormula *DataSourceFormula `json:"dataSourceFormula,omitempty"`
2845
2846	// DataSourceTable: A data source table anchored at this cell. The size
2847	// of data source table itself is computed dynamically based on its
2848	// configuration. Only the first cell of the data source table contains
2849	// the data source table definition. The other cells will contain the
2850	// display values of the data source table result in their
2851	// effective_value fields.
2852	DataSourceTable *DataSourceTable `json:"dataSourceTable,omitempty"`
2853
2854	// DataValidation: A data validation rule on the cell, if any. When
2855	// writing, the new data validation rule will overwrite any prior rule.
2856	DataValidation *DataValidationRule `json:"dataValidation,omitempty"`
2857
2858	// EffectiveFormat: The effective format being used by the cell. This
2859	// includes the results of applying any conditional formatting and, if
2860	// the cell contains a formula, the computed number format. If the
2861	// effective format is the default format, effective format will not be
2862	// written. This field is read-only.
2863	EffectiveFormat *CellFormat `json:"effectiveFormat,omitempty"`
2864
2865	// EffectiveValue: The effective value of the cell. For cells with
2866	// formulas, this is the calculated value. For cells with literals, this
2867	// is the same as the user_entered_value. This field is read-only.
2868	EffectiveValue *ExtendedValue `json:"effectiveValue,omitempty"`
2869
2870	// FormattedValue: The formatted value of the cell. This is the value as
2871	// it's shown to the user. This field is read-only.
2872	FormattedValue string `json:"formattedValue,omitempty"`
2873
2874	// Hyperlink: A hyperlink this cell points to, if any. If the cell
2875	// contains multiple hyperlinks, this field will be empty. This field is
2876	// read-only. To set it, use a `=HYPERLINK` formula in the
2877	// userEnteredValue.formulaValue field.
2878	Hyperlink string `json:"hyperlink,omitempty"`
2879
2880	// Note: Any note on the cell.
2881	Note string `json:"note,omitempty"`
2882
2883	// PivotTable: A pivot table anchored at this cell. The size of pivot
2884	// table itself is computed dynamically based on its data, grouping,
2885	// filters, values, etc. Only the top-left cell of the pivot table
2886	// contains the pivot table definition. The other cells will contain the
2887	// calculated values of the results of the pivot in their
2888	// effective_value fields.
2889	PivotTable *PivotTable `json:"pivotTable,omitempty"`
2890
2891	// TextFormatRuns: Runs of rich text applied to subsections of the cell.
2892	// Runs are only valid on user entered strings, not formulas, bools, or
2893	// numbers. Properties of a run start at a specific index in the text
2894	// and continue until the next run. Runs will inherit the properties of
2895	// the cell unless explicitly changed. When writing, the new runs will
2896	// overwrite any prior runs. When writing a new user_entered_value,
2897	// previous runs are erased.
2898	TextFormatRuns []*TextFormatRun `json:"textFormatRuns,omitempty"`
2899
2900	// UserEnteredFormat: The format the user entered for the cell. When
2901	// writing, the new format will be merged with the existing format.
2902	UserEnteredFormat *CellFormat `json:"userEnteredFormat,omitempty"`
2903
2904	// UserEnteredValue: The value the user entered in the cell. e.g,
2905	// `1234`, `'Hello'`, or `=NOW()` Note: Dates, Times and DateTimes are
2906	// represented as doubles in serial number format.
2907	UserEnteredValue *ExtendedValue `json:"userEnteredValue,omitempty"`
2908
2909	// ForceSendFields is a list of field names (e.g. "DataSourceFormula")
2910	// to unconditionally include in API requests. By default, fields with
2911	// empty values are omitted from API requests. However, any non-pointer,
2912	// non-interface field appearing in ForceSendFields will be sent to the
2913	// server regardless of whether the field is empty or not. This may be
2914	// used to include empty fields in Patch requests.
2915	ForceSendFields []string `json:"-"`
2916
2917	// NullFields is a list of field names (e.g. "DataSourceFormula") to
2918	// include in API requests with the JSON null value. By default, fields
2919	// with empty values are omitted from API requests. However, any field
2920	// with an empty value appearing in NullFields will be sent to the
2921	// server as null. It is an error if a field in this list has a
2922	// non-empty value. This may be used to include null fields in Patch
2923	// requests.
2924	NullFields []string `json:"-"`
2925}
2926
2927func (s *CellData) MarshalJSON() ([]byte, error) {
2928	type NoMethod CellData
2929	raw := NoMethod(*s)
2930	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2931}
2932
2933// CellFormat: The format of a cell.
2934type CellFormat struct {
2935	// BackgroundColor: The background color of the cell.
2936	BackgroundColor *Color `json:"backgroundColor,omitempty"`
2937
2938	// BackgroundColorStyle: The background color of the cell. If
2939	// background_color is also set, this field takes precedence.
2940	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
2941
2942	// Borders: The borders of the cell.
2943	Borders *Borders `json:"borders,omitempty"`
2944
2945	// HorizontalAlignment: The horizontal alignment of the value in the
2946	// cell.
2947	//
2948	// Possible values:
2949	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
2950	// specified. Do not use this.
2951	//   "LEFT" - The text is explicitly aligned to the left of the cell.
2952	//   "CENTER" - The text is explicitly aligned to the center of the
2953	// cell.
2954	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
2955	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
2956
2957	// HyperlinkDisplayType: How a hyperlink, if it exists, should be
2958	// displayed in the cell.
2959	//
2960	// Possible values:
2961	//   "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED" - The default value: the
2962	// hyperlink is rendered. Do not use this.
2963	//   "LINKED" - A hyperlink should be explicitly rendered.
2964	//   "PLAIN_TEXT" - A hyperlink should not be rendered.
2965	HyperlinkDisplayType string `json:"hyperlinkDisplayType,omitempty"`
2966
2967	// NumberFormat: A format describing how number values should be
2968	// represented to the user.
2969	NumberFormat *NumberFormat `json:"numberFormat,omitempty"`
2970
2971	// Padding: The padding of the cell.
2972	Padding *Padding `json:"padding,omitempty"`
2973
2974	// TextDirection: The direction of the text in the cell.
2975	//
2976	// Possible values:
2977	//   "TEXT_DIRECTION_UNSPECIFIED" - The text direction is not specified.
2978	// Do not use this.
2979	//   "LEFT_TO_RIGHT" - The text direction of left-to-right was set by
2980	// the user.
2981	//   "RIGHT_TO_LEFT" - The text direction of right-to-left was set by
2982	// the user.
2983	TextDirection string `json:"textDirection,omitempty"`
2984
2985	// TextFormat: The format of the text in the cell (unless overridden by
2986	// a format run).
2987	TextFormat *TextFormat `json:"textFormat,omitempty"`
2988
2989	// TextRotation: The rotation applied to text in a cell
2990	TextRotation *TextRotation `json:"textRotation,omitempty"`
2991
2992	// VerticalAlignment: The vertical alignment of the value in the cell.
2993	//
2994	// Possible values:
2995	//   "VERTICAL_ALIGN_UNSPECIFIED" - The vertical alignment is not
2996	// specified. Do not use this.
2997	//   "TOP" - The text is explicitly aligned to the top of the cell.
2998	//   "MIDDLE" - The text is explicitly aligned to the middle of the
2999	// cell.
3000	//   "BOTTOM" - The text is explicitly aligned to the bottom of the
3001	// cell.
3002	VerticalAlignment string `json:"verticalAlignment,omitempty"`
3003
3004	// WrapStrategy: The wrap strategy for the value in the cell.
3005	//
3006	// Possible values:
3007	//   "WRAP_STRATEGY_UNSPECIFIED" - The default value, do not use.
3008	//   "OVERFLOW_CELL" - Lines that are longer than the cell width will be
3009	// written in the next cell over, so long as that cell is empty. If the
3010	// next cell over is non-empty, this behaves the same as CLIP. The text
3011	// will never wrap to the next line unless the user manually inserts a
3012	// new line. Example: | First sentence. | | Manual newline that is very
3013	// long. <- Text continues into next cell | Next newline. |
3014	//   "LEGACY_WRAP" - This wrap strategy represents the old Google Sheets
3015	// wrap strategy where words that are longer than a line are clipped
3016	// rather than broken. This strategy is not supported on all platforms
3017	// and is being phased out. Example: | Cell has a | | loooooooooo| <-
3018	// Word is clipped. | word. |
3019	//   "CLIP" - Lines that are longer than the cell width will be clipped.
3020	// The text will never wrap to the next line unless the user manually
3021	// inserts a new line. Example: | First sentence. | | Manual newline t|
3022	// <- Text is clipped | Next newline. |
3023	//   "WRAP" - Words that are longer than a line are wrapped at the
3024	// character level rather than clipped. Example: | Cell has a | |
3025	// loooooooooo| <- Word is broken. | ong word. |
3026	WrapStrategy string `json:"wrapStrategy,omitempty"`
3027
3028	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
3029	// unconditionally include in API requests. By default, fields with
3030	// empty values are omitted from API requests. However, any non-pointer,
3031	// non-interface field appearing in ForceSendFields will be sent to the
3032	// server regardless of whether the field is empty or not. This may be
3033	// used to include empty fields in Patch requests.
3034	ForceSendFields []string `json:"-"`
3035
3036	// NullFields is a list of field names (e.g. "BackgroundColor") to
3037	// include in API requests with the JSON null value. By default, fields
3038	// with empty values are omitted from API requests. However, any field
3039	// with an empty value appearing in NullFields will be sent to the
3040	// server as null. It is an error if a field in this list has a
3041	// non-empty value. This may be used to include null fields in Patch
3042	// requests.
3043	NullFields []string `json:"-"`
3044}
3045
3046func (s *CellFormat) MarshalJSON() ([]byte, error) {
3047	type NoMethod CellFormat
3048	raw := NoMethod(*s)
3049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3050}
3051
3052// ChartAxisViewWindowOptions: The options that define a "view window"
3053// for a chart (such as the visible values in an axis).
3054type ChartAxisViewWindowOptions struct {
3055	// ViewWindowMax: The maximum numeric value to be shown in this view
3056	// window. If unset, will automatically determine a maximum value that
3057	// looks good for the data.
3058	ViewWindowMax float64 `json:"viewWindowMax,omitempty"`
3059
3060	// ViewWindowMin: The minimum numeric value to be shown in this view
3061	// window. If unset, will automatically determine a minimum value that
3062	// looks good for the data.
3063	ViewWindowMin float64 `json:"viewWindowMin,omitempty"`
3064
3065	// ViewWindowMode: The view window's mode.
3066	//
3067	// Possible values:
3068	//   "DEFAULT_VIEW_WINDOW_MODE" - The default view window mode used in
3069	// the Sheets editor for this chart type. In most cases, if set, the
3070	// default mode is equivalent to `PRETTY`.
3071	//   "VIEW_WINDOW_MODE_UNSUPPORTED" - Do not use. Represents that the
3072	// currently set mode is not supported by the API.
3073	//   "EXPLICIT" - Follows the min and max exactly if specified. If a
3074	// value is unspecified, it will fall back to the `PRETTY` value.
3075	//   "PRETTY" - Chooses a min and max that make the chart look good.
3076	// Both min and max are ignored in this mode.
3077	ViewWindowMode string `json:"viewWindowMode,omitempty"`
3078
3079	// ForceSendFields is a list of field names (e.g. "ViewWindowMax") to
3080	// unconditionally include in API requests. By default, fields with
3081	// empty values are omitted from API requests. However, any non-pointer,
3082	// non-interface field appearing in ForceSendFields will be sent to the
3083	// server regardless of whether the field is empty or not. This may be
3084	// used to include empty fields in Patch requests.
3085	ForceSendFields []string `json:"-"`
3086
3087	// NullFields is a list of field names (e.g. "ViewWindowMax") to include
3088	// in API requests with the JSON null value. By default, fields with
3089	// empty values are omitted from API requests. However, any field with
3090	// an empty value appearing in NullFields will be sent to the server as
3091	// null. It is an error if a field in this list has a non-empty value.
3092	// This may be used to include null fields in Patch requests.
3093	NullFields []string `json:"-"`
3094}
3095
3096func (s *ChartAxisViewWindowOptions) MarshalJSON() ([]byte, error) {
3097	type NoMethod ChartAxisViewWindowOptions
3098	raw := NoMethod(*s)
3099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3100}
3101
3102func (s *ChartAxisViewWindowOptions) UnmarshalJSON(data []byte) error {
3103	type NoMethod ChartAxisViewWindowOptions
3104	var s1 struct {
3105		ViewWindowMax gensupport.JSONFloat64 `json:"viewWindowMax"`
3106		ViewWindowMin gensupport.JSONFloat64 `json:"viewWindowMin"`
3107		*NoMethod
3108	}
3109	s1.NoMethod = (*NoMethod)(s)
3110	if err := json.Unmarshal(data, &s1); err != nil {
3111		return err
3112	}
3113	s.ViewWindowMax = float64(s1.ViewWindowMax)
3114	s.ViewWindowMin = float64(s1.ViewWindowMin)
3115	return nil
3116}
3117
3118// ChartCustomNumberFormatOptions: Custom number formatting options for
3119// chart attributes.
3120type ChartCustomNumberFormatOptions struct {
3121	// Prefix: Custom prefix to be prepended to the chart attribute. This
3122	// field is optional.
3123	Prefix string `json:"prefix,omitempty"`
3124
3125	// Suffix: Custom suffix to be appended to the chart attribute. This
3126	// field is optional.
3127	Suffix string `json:"suffix,omitempty"`
3128
3129	// ForceSendFields is a list of field names (e.g. "Prefix") to
3130	// unconditionally include in API requests. By default, fields with
3131	// empty values are omitted from API requests. However, any non-pointer,
3132	// non-interface field appearing in ForceSendFields will be sent to the
3133	// server regardless of whether the field is empty or not. This may be
3134	// used to include empty fields in Patch requests.
3135	ForceSendFields []string `json:"-"`
3136
3137	// NullFields is a list of field names (e.g. "Prefix") to include in API
3138	// requests with the JSON null value. By default, fields with empty
3139	// values are omitted from API requests. However, any field with an
3140	// empty value appearing in NullFields will be sent to the server as
3141	// null. It is an error if a field in this list has a non-empty value.
3142	// This may be used to include null fields in Patch requests.
3143	NullFields []string `json:"-"`
3144}
3145
3146func (s *ChartCustomNumberFormatOptions) MarshalJSON() ([]byte, error) {
3147	type NoMethod ChartCustomNumberFormatOptions
3148	raw := NoMethod(*s)
3149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3150}
3151
3152// ChartData: The data included in a domain or series.
3153type ChartData struct {
3154	// AggregateType: The aggregation type for the series of a data source
3155	// chart. Not supported for regular charts.
3156	//
3157	// Possible values:
3158	//   "CHART_AGGREGATE_TYPE_UNSPECIFIED" - Default value, do not use.
3159	//   "AVERAGE" - Average aggregate function.
3160	//   "COUNT" - Count aggregate function.
3161	//   "MAX" - Maximum aggregate function.
3162	//   "MEDIAN" - Median aggregate function.
3163	//   "MIN" - Minimum aggregate function.
3164	//   "SUM" - Sum aggregate function.
3165	AggregateType string `json:"aggregateType,omitempty"`
3166
3167	// ColumnReference: The reference to the data source column that the
3168	// data reads from.
3169	ColumnReference *DataSourceColumnReference `json:"columnReference,omitempty"`
3170
3171	// GroupRule: The rule to group the data by if the ChartData backs the
3172	// domain of a data source chart. Not supported for regular charts.
3173	GroupRule *ChartGroupRule `json:"groupRule,omitempty"`
3174
3175	// SourceRange: The source ranges of the data.
3176	SourceRange *ChartSourceRange `json:"sourceRange,omitempty"`
3177
3178	// ForceSendFields is a list of field names (e.g. "AggregateType") to
3179	// unconditionally include in API requests. By default, fields with
3180	// empty values are omitted from API requests. However, any non-pointer,
3181	// non-interface field appearing in ForceSendFields will be sent to the
3182	// server regardless of whether the field is empty or not. This may be
3183	// used to include empty fields in Patch requests.
3184	ForceSendFields []string `json:"-"`
3185
3186	// NullFields is a list of field names (e.g. "AggregateType") to include
3187	// in API requests with the JSON null value. By default, fields with
3188	// empty values are omitted from API requests. However, any field with
3189	// an empty value appearing in NullFields will be sent to the server as
3190	// null. It is an error if a field in this list has a non-empty value.
3191	// This may be used to include null fields in Patch requests.
3192	NullFields []string `json:"-"`
3193}
3194
3195func (s *ChartData) MarshalJSON() ([]byte, error) {
3196	type NoMethod ChartData
3197	raw := NoMethod(*s)
3198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3199}
3200
3201// ChartDateTimeRule: Allows you to organize the date-time values in a
3202// source data column into buckets based on selected parts of their date
3203// or time values.
3204type ChartDateTimeRule struct {
3205	// Type: The type of date-time grouping to apply.
3206	//
3207	// Possible values:
3208	//   "CHART_DATE_TIME_RULE_TYPE_UNSPECIFIED" - The default type, do not
3209	// use.
3210	//   "SECOND" - Group dates by second, from 0 to 59.
3211	//   "MINUTE" - Group dates by minute, from 0 to 59.
3212	//   "HOUR" - Group dates by hour using a 24-hour system, from 0 to 23.
3213	//   "HOUR_MINUTE" - Group dates by hour and minute using a 24-hour
3214	// system, for example 19:45.
3215	//   "HOUR_MINUTE_AMPM" - Group dates by hour and minute using a 12-hour
3216	// system, for example 7:45 PM. The AM/PM designation is translated
3217	// based on the spreadsheet locale.
3218	//   "DAY_OF_WEEK" - Group dates by day of week, for example Sunday. The
3219	// days of the week will be translated based on the spreadsheet locale.
3220	//   "DAY_OF_YEAR" - Group dates by day of year, from 1 to 366. Note
3221	// that dates after Feb. 29 fall in different buckets in leap years than
3222	// in non-leap years.
3223	//   "DAY_OF_MONTH" - Group dates by day of month, from 1 to 31.
3224	//   "DAY_MONTH" - Group dates by day and month, for example 22-Nov. The
3225	// month is translated based on the spreadsheet locale.
3226	//   "MONTH" - Group dates by month, for example Nov. The month is
3227	// translated based on the spreadsheet locale.
3228	//   "QUARTER" - Group dates by quarter, for example Q1 (which
3229	// represents Jan-Mar).
3230	//   "YEAR" - Group dates by year, for example 2008.
3231	//   "YEAR_MONTH" - Group dates by year and month, for example 2008-Nov.
3232	// The month is translated based on the spreadsheet locale.
3233	//   "YEAR_QUARTER" - Group dates by year and quarter, for example 2008
3234	// Q4.
3235	//   "YEAR_MONTH_DAY" - Group dates by year, month, and day, for example
3236	// 2008-11-22.
3237	Type string `json:"type,omitempty"`
3238
3239	// ForceSendFields is a list of field names (e.g. "Type") to
3240	// unconditionally include in API requests. By default, fields with
3241	// empty values are omitted from API requests. However, any non-pointer,
3242	// non-interface field appearing in ForceSendFields will be sent to the
3243	// server regardless of whether the field is empty or not. This may be
3244	// used to include empty fields in Patch requests.
3245	ForceSendFields []string `json:"-"`
3246
3247	// NullFields is a list of field names (e.g. "Type") to include in API
3248	// requests with the JSON null value. By default, fields with empty
3249	// values are omitted from API requests. However, any field with an
3250	// empty value appearing in NullFields will be sent to the server as
3251	// null. It is an error if a field in this list has a non-empty value.
3252	// This may be used to include null fields in Patch requests.
3253	NullFields []string `json:"-"`
3254}
3255
3256func (s *ChartDateTimeRule) MarshalJSON() ([]byte, error) {
3257	type NoMethod ChartDateTimeRule
3258	raw := NoMethod(*s)
3259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3260}
3261
3262// ChartGroupRule: An optional setting on the ChartData of the domain of
3263// a data source chart that defines buckets for the values in the domain
3264// rather than breaking out each individual value. For example, when
3265// plotting a data source chart, you can specify a histogram rule on the
3266// domain (it should only contain numeric values), grouping its values
3267// into buckets. Any values of a chart series that fall into the same
3268// bucket are aggregated based on the aggregate_type.
3269type ChartGroupRule struct {
3270	// DateTimeRule: A ChartDateTimeRule.
3271	DateTimeRule *ChartDateTimeRule `json:"dateTimeRule,omitempty"`
3272
3273	// HistogramRule: A ChartHistogramRule
3274	HistogramRule *ChartHistogramRule `json:"histogramRule,omitempty"`
3275
3276	// ForceSendFields is a list of field names (e.g. "DateTimeRule") to
3277	// unconditionally include in API requests. By default, fields with
3278	// empty values are omitted from API requests. However, any non-pointer,
3279	// non-interface field appearing in ForceSendFields will be sent to the
3280	// server regardless of whether the field is empty or not. This may be
3281	// used to include empty fields in Patch requests.
3282	ForceSendFields []string `json:"-"`
3283
3284	// NullFields is a list of field names (e.g. "DateTimeRule") to include
3285	// in API requests with the JSON null value. By default, fields with
3286	// empty values are omitted from API requests. However, any field with
3287	// an empty value appearing in NullFields will be sent to the server as
3288	// null. It is an error if a field in this list has a non-empty value.
3289	// This may be used to include null fields in Patch requests.
3290	NullFields []string `json:"-"`
3291}
3292
3293func (s *ChartGroupRule) MarshalJSON() ([]byte, error) {
3294	type NoMethod ChartGroupRule
3295	raw := NoMethod(*s)
3296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3297}
3298
3299// ChartHistogramRule: Allows you to organize numeric values in a source
3300// data column into buckets of constant size.
3301type ChartHistogramRule struct {
3302	// IntervalSize: The size of the buckets that are created. Must be
3303	// positive.
3304	IntervalSize float64 `json:"intervalSize,omitempty"`
3305
3306	// MaxValue: The maximum value at which items are placed into buckets.
3307	// Values greater than the maximum are grouped into a single bucket. If
3308	// omitted, it is determined by the maximum item value.
3309	MaxValue float64 `json:"maxValue,omitempty"`
3310
3311	// MinValue: The minimum value at which items are placed into buckets.
3312	// Values that are less than the minimum are grouped into a single
3313	// bucket. If omitted, it is determined by the minimum item value.
3314	MinValue float64 `json:"minValue,omitempty"`
3315
3316	// ForceSendFields is a list of field names (e.g. "IntervalSize") to
3317	// unconditionally include in API requests. By default, fields with
3318	// empty values are omitted from API requests. However, any non-pointer,
3319	// non-interface field appearing in ForceSendFields will be sent to the
3320	// server regardless of whether the field is empty or not. This may be
3321	// used to include empty fields in Patch requests.
3322	ForceSendFields []string `json:"-"`
3323
3324	// NullFields is a list of field names (e.g. "IntervalSize") to include
3325	// in API requests with the JSON null value. By default, fields with
3326	// empty values are omitted from API requests. However, any field with
3327	// an empty value appearing in NullFields will be sent to the server as
3328	// null. It is an error if a field in this list has a non-empty value.
3329	// This may be used to include null fields in Patch requests.
3330	NullFields []string `json:"-"`
3331}
3332
3333func (s *ChartHistogramRule) MarshalJSON() ([]byte, error) {
3334	type NoMethod ChartHistogramRule
3335	raw := NoMethod(*s)
3336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3337}
3338
3339func (s *ChartHistogramRule) UnmarshalJSON(data []byte) error {
3340	type NoMethod ChartHistogramRule
3341	var s1 struct {
3342		IntervalSize gensupport.JSONFloat64 `json:"intervalSize"`
3343		MaxValue     gensupport.JSONFloat64 `json:"maxValue"`
3344		MinValue     gensupport.JSONFloat64 `json:"minValue"`
3345		*NoMethod
3346	}
3347	s1.NoMethod = (*NoMethod)(s)
3348	if err := json.Unmarshal(data, &s1); err != nil {
3349		return err
3350	}
3351	s.IntervalSize = float64(s1.IntervalSize)
3352	s.MaxValue = float64(s1.MaxValue)
3353	s.MinValue = float64(s1.MinValue)
3354	return nil
3355}
3356
3357// ChartSourceRange: Source ranges for a chart.
3358type ChartSourceRange struct {
3359	// Sources: The ranges of data for a series or domain. Exactly one
3360	// dimension must have a length of 1, and all sources in the list must
3361	// have the same dimension with length 1. The domain (if it exists) &
3362	// all series must have the same number of source ranges. If using more
3363	// than one source range, then the source range at a given offset must
3364	// be in order and contiguous across the domain and series. For example,
3365	// these are valid configurations: domain sources: A1:A5 series1
3366	// sources: B1:B5 series2 sources: D6:D10 domain sources: A1:A5, C10:C12
3367	// series1 sources: B1:B5, D10:D12 series2 sources: C1:C5, E10:E12
3368	Sources []*GridRange `json:"sources,omitempty"`
3369
3370	// ForceSendFields is a list of field names (e.g. "Sources") to
3371	// unconditionally include in API requests. By default, fields with
3372	// empty values are omitted from API requests. However, any non-pointer,
3373	// non-interface field appearing in ForceSendFields will be sent to the
3374	// server regardless of whether the field is empty or not. This may be
3375	// used to include empty fields in Patch requests.
3376	ForceSendFields []string `json:"-"`
3377
3378	// NullFields is a list of field names (e.g. "Sources") to include in
3379	// API requests with the JSON null value. By default, fields with empty
3380	// values are omitted from API requests. However, any field with an
3381	// empty value appearing in NullFields will be sent to the server as
3382	// null. It is an error if a field in this list has a non-empty value.
3383	// This may be used to include null fields in Patch requests.
3384	NullFields []string `json:"-"`
3385}
3386
3387func (s *ChartSourceRange) MarshalJSON() ([]byte, error) {
3388	type NoMethod ChartSourceRange
3389	raw := NoMethod(*s)
3390	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3391}
3392
3393// ChartSpec: The specifications of a chart.
3394type ChartSpec struct {
3395	// AltText: The alternative text that describes the chart. This is often
3396	// used for accessibility.
3397	AltText string `json:"altText,omitempty"`
3398
3399	// BackgroundColor: The background color of the entire chart. Not
3400	// applicable to Org charts.
3401	BackgroundColor *Color `json:"backgroundColor,omitempty"`
3402
3403	// BackgroundColorStyle: The background color of the entire chart. Not
3404	// applicable to Org charts. If background_color is also set, this field
3405	// takes precedence.
3406	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
3407
3408	// BasicChart: A basic chart specification, can be one of many kinds of
3409	// charts. See BasicChartType for the list of all charts this supports.
3410	BasicChart *BasicChartSpec `json:"basicChart,omitempty"`
3411
3412	// BubbleChart: A bubble chart specification.
3413	BubbleChart *BubbleChartSpec `json:"bubbleChart,omitempty"`
3414
3415	// CandlestickChart: A candlestick chart specification.
3416	CandlestickChart *CandlestickChartSpec `json:"candlestickChart,omitempty"`
3417
3418	// DataSourceChartProperties: If present, the field contains data source
3419	// chart specific properties.
3420	DataSourceChartProperties *DataSourceChartProperties `json:"dataSourceChartProperties,omitempty"`
3421
3422	// FilterSpecs: The filters applied to the source data of the chart.
3423	// Only supported for data source charts.
3424	FilterSpecs []*FilterSpec `json:"filterSpecs,omitempty"`
3425
3426	// FontName: The name of the font to use by default for all chart text
3427	// (e.g. title, axis labels, legend). If a font is specified for a
3428	// specific part of the chart it will override this font name.
3429	FontName string `json:"fontName,omitempty"`
3430
3431	// HiddenDimensionStrategy: Determines how the charts will use hidden
3432	// rows or columns.
3433	//
3434	// Possible values:
3435	//   "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED" - Default value, do
3436	// not use.
3437	//   "SKIP_HIDDEN_ROWS_AND_COLUMNS" - Charts will skip hidden rows and
3438	// columns.
3439	//   "SKIP_HIDDEN_ROWS" - Charts will skip hidden rows only.
3440	//   "SKIP_HIDDEN_COLUMNS" - Charts will skip hidden columns only.
3441	//   "SHOW_ALL" - Charts will not skip any hidden rows or columns.
3442	HiddenDimensionStrategy string `json:"hiddenDimensionStrategy,omitempty"`
3443
3444	// HistogramChart: A histogram chart specification.
3445	HistogramChart *HistogramChartSpec `json:"histogramChart,omitempty"`
3446
3447	// Maximized: True to make a chart fill the entire space in which it's
3448	// rendered with minimum padding. False to use the default padding. (Not
3449	// applicable to Geo and Org charts.)
3450	Maximized bool `json:"maximized,omitempty"`
3451
3452	// OrgChart: An org chart specification.
3453	OrgChart *OrgChartSpec `json:"orgChart,omitempty"`
3454
3455	// PieChart: A pie chart specification.
3456	PieChart *PieChartSpec `json:"pieChart,omitempty"`
3457
3458	// ScorecardChart: A scorecard chart specification.
3459	ScorecardChart *ScorecardChartSpec `json:"scorecardChart,omitempty"`
3460
3461	// SortSpecs: The order to sort the chart data by. Only a single sort
3462	// spec is supported. Only supported for data source charts.
3463	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
3464
3465	// Subtitle: The subtitle of the chart.
3466	Subtitle string `json:"subtitle,omitempty"`
3467
3468	// SubtitleTextFormat: The subtitle text format. Strikethrough and
3469	// underline are not supported.
3470	SubtitleTextFormat *TextFormat `json:"subtitleTextFormat,omitempty"`
3471
3472	// SubtitleTextPosition: The subtitle text position. This field is
3473	// optional.
3474	SubtitleTextPosition *TextPosition `json:"subtitleTextPosition,omitempty"`
3475
3476	// Title: The title of the chart.
3477	Title string `json:"title,omitempty"`
3478
3479	// TitleTextFormat: The title text format. Strikethrough and underline
3480	// are not supported.
3481	TitleTextFormat *TextFormat `json:"titleTextFormat,omitempty"`
3482
3483	// TitleTextPosition: The title text position. This field is optional.
3484	TitleTextPosition *TextPosition `json:"titleTextPosition,omitempty"`
3485
3486	// TreemapChart: A treemap chart specification.
3487	TreemapChart *TreemapChartSpec `json:"treemapChart,omitempty"`
3488
3489	// WaterfallChart: A waterfall chart specification.
3490	WaterfallChart *WaterfallChartSpec `json:"waterfallChart,omitempty"`
3491
3492	// ForceSendFields is a list of field names (e.g. "AltText") to
3493	// unconditionally include in API requests. By default, fields with
3494	// empty values are omitted from API requests. However, any non-pointer,
3495	// non-interface field appearing in ForceSendFields will be sent to the
3496	// server regardless of whether the field is empty or not. This may be
3497	// used to include empty fields in Patch requests.
3498	ForceSendFields []string `json:"-"`
3499
3500	// NullFields is a list of field names (e.g. "AltText") to include in
3501	// API requests with the JSON null value. By default, fields with empty
3502	// values are omitted from API requests. However, any field with an
3503	// empty value appearing in NullFields will be sent to the server as
3504	// null. It is an error if a field in this list has a non-empty value.
3505	// This may be used to include null fields in Patch requests.
3506	NullFields []string `json:"-"`
3507}
3508
3509func (s *ChartSpec) MarshalJSON() ([]byte, error) {
3510	type NoMethod ChartSpec
3511	raw := NoMethod(*s)
3512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3513}
3514
3515// ClearBasicFilterRequest: Clears the basic filter, if any exists on
3516// the sheet.
3517type ClearBasicFilterRequest struct {
3518	// SheetId: The sheet ID on which the basic filter should be cleared.
3519	SheetId int64 `json:"sheetId,omitempty"`
3520
3521	// ForceSendFields is a list of field names (e.g. "SheetId") to
3522	// unconditionally include in API requests. By default, fields with
3523	// empty values are omitted from API requests. However, any non-pointer,
3524	// non-interface field appearing in ForceSendFields will be sent to the
3525	// server regardless of whether the field is empty or not. This may be
3526	// used to include empty fields in Patch requests.
3527	ForceSendFields []string `json:"-"`
3528
3529	// NullFields is a list of field names (e.g. "SheetId") to include in
3530	// API requests with the JSON null value. By default, fields with empty
3531	// values are omitted from API requests. However, any field with an
3532	// empty value appearing in NullFields will be sent to the server as
3533	// null. It is an error if a field in this list has a non-empty value.
3534	// This may be used to include null fields in Patch requests.
3535	NullFields []string `json:"-"`
3536}
3537
3538func (s *ClearBasicFilterRequest) MarshalJSON() ([]byte, error) {
3539	type NoMethod ClearBasicFilterRequest
3540	raw := NoMethod(*s)
3541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3542}
3543
3544// ClearValuesRequest: The request for clearing a range of values in a
3545// spreadsheet.
3546type ClearValuesRequest struct {
3547}
3548
3549// ClearValuesResponse: The response when clearing a range of values in
3550// a spreadsheet.
3551type ClearValuesResponse struct {
3552	// ClearedRange: The range (in A1 notation) that was cleared. (If the
3553	// request was for an unbounded range or a ranger larger than the bounds
3554	// of the sheet, this will be the actual range that was cleared, bounded
3555	// to the sheet's limits.)
3556	ClearedRange string `json:"clearedRange,omitempty"`
3557
3558	// SpreadsheetId: The spreadsheet the updates were applied to.
3559	SpreadsheetId string `json:"spreadsheetId,omitempty"`
3560
3561	// ServerResponse contains the HTTP response code and headers from the
3562	// server.
3563	googleapi.ServerResponse `json:"-"`
3564
3565	// ForceSendFields is a list of field names (e.g. "ClearedRange") to
3566	// unconditionally include in API requests. By default, fields with
3567	// empty values are omitted from API requests. However, any non-pointer,
3568	// non-interface field appearing in ForceSendFields will be sent to the
3569	// server regardless of whether the field is empty or not. This may be
3570	// used to include empty fields in Patch requests.
3571	ForceSendFields []string `json:"-"`
3572
3573	// NullFields is a list of field names (e.g. "ClearedRange") to include
3574	// in API requests with the JSON null value. By default, fields with
3575	// empty values are omitted from API requests. However, any field with
3576	// an empty value appearing in NullFields will be sent to the server as
3577	// null. It is an error if a field in this list has a non-empty value.
3578	// This may be used to include null fields in Patch requests.
3579	NullFields []string `json:"-"`
3580}
3581
3582func (s *ClearValuesResponse) MarshalJSON() ([]byte, error) {
3583	type NoMethod ClearValuesResponse
3584	raw := NoMethod(*s)
3585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3586}
3587
3588// Color: Represents a color in the RGBA color space. This
3589// representation is designed for simplicity of conversion to/from color
3590// representations in various languages over compactness; for example,
3591// the fields of this representation can be trivially provided to the
3592// constructor of "java.awt.Color" in Java; it can also be trivially
3593// provided to UIColor's "+colorWithRed:green:blue:alpha" method in iOS;
3594// and, with just a little work, it can be easily formatted into a CSS
3595// "rgba()" string in JavaScript, as well. Note: this proto does not
3596// carry information about the absolute color space that should be used
3597// to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020,
3598// etc.). By default, applications SHOULD assume the sRGB color space.
3599// Note: when color equality needs to be decided, implementations,
3600// unless documented otherwise, will treat two colors to be equal if all
3601// their red, green, blue and alpha values each differ by at most 1e-5.
3602// Example (Java): import com.google.type.Color; // ... public static
3603// java.awt.Color fromProto(Color protocolor) { float alpha =
3604// protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0;
3605// return new java.awt.Color( protocolor.getRed(),
3606// protocolor.getGreen(), protocolor.getBlue(), alpha); } public static
3607// Color toProto(java.awt.Color color) { float red = (float)
3608// color.getRed(); float green = (float) color.getGreen(); float blue =
3609// (float) color.getBlue(); float denominator = 255.0; Color.Builder
3610// resultBuilder = Color .newBuilder() .setRed(red / denominator)
3611// .setGreen(green / denominator) .setBlue(blue / denominator); int
3612// alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha(
3613// FloatValue .newBuilder() .setValue(((float) alpha) / denominator)
3614// .build()); } return resultBuilder.build(); } // ... Example (iOS /
3615// Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float
3616// red = [protocolor red]; float green = [protocolor green]; float blue
3617// = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha];
3618// float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper
3619// value]; } return [UIColor colorWithRed:red green:green blue:blue
3620// alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red,
3621// green, blue, alpha; if (![color getRed:&red green:&green blue:&blue
3622// alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init];
3623// [result setRed:red]; [result setGreen:green]; [result setBlue:blue];
3624// if (alpha <= 0.9999) { [result
3625// setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease];
3626// return result; } // ... Example (JavaScript): // ... var
3627// protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red
3628// || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac =
3629// rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green
3630// = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255);
3631// if (!('alpha' in rgb_color)) { return rgbToCssColor_(red, green,
3632// blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams
3633// = [red, green, blue].join(','); return ['rgba(', rgbParams, ',',
3634// alphaFrac, ')'].join(''); }; var rgbToCssColor_ = function(red,
3635// green, blue) { var rgbNumber = new Number((red << 16) | (green << 8)
3636// | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6
3637// - hexString.length; var resultBuilder = ['#']; for (var i = 0; i <
3638// missingZeros; i++) { resultBuilder.push('0'); }
3639// resultBuilder.push(hexString); return resultBuilder.join(''); }; //
3640// ...
3641type Color struct {
3642	// Alpha: The fraction of this color that should be applied to the
3643	// pixel. That is, the final pixel color is defined by the equation:
3644	// pixel color = alpha * (this color) + (1.0 - alpha) * (background
3645	// color) This means that a value of 1.0 corresponds to a solid color,
3646	// whereas a value of 0.0 corresponds to a completely transparent color.
3647	// This uses a wrapper message rather than a simple float scalar so that
3648	// it is possible to distinguish between a default value and the value
3649	// being unset. If omitted, this color object is to be rendered as a
3650	// solid color (as if the alpha value had been explicitly given with a
3651	// value of 1.0).
3652	Alpha float64 `json:"alpha,omitempty"`
3653
3654	// Blue: The amount of blue in the color as a value in the interval [0,
3655	// 1].
3656	Blue float64 `json:"blue,omitempty"`
3657
3658	// Green: The amount of green in the color as a value in the interval
3659	// [0, 1].
3660	Green float64 `json:"green,omitempty"`
3661
3662	// Red: The amount of red in the color as a value in the interval [0,
3663	// 1].
3664	Red float64 `json:"red,omitempty"`
3665
3666	// ForceSendFields is a list of field names (e.g. "Alpha") to
3667	// unconditionally include in API requests. By default, fields with
3668	// empty values are omitted from API requests. However, any non-pointer,
3669	// non-interface field appearing in ForceSendFields will be sent to the
3670	// server regardless of whether the field is empty or not. This may be
3671	// used to include empty fields in Patch requests.
3672	ForceSendFields []string `json:"-"`
3673
3674	// NullFields is a list of field names (e.g. "Alpha") to include in API
3675	// requests with the JSON null value. By default, fields with empty
3676	// values are omitted from API requests. However, any field with an
3677	// empty value appearing in NullFields will be sent to the server as
3678	// null. It is an error if a field in this list has a non-empty value.
3679	// This may be used to include null fields in Patch requests.
3680	NullFields []string `json:"-"`
3681}
3682
3683func (s *Color) MarshalJSON() ([]byte, error) {
3684	type NoMethod Color
3685	raw := NoMethod(*s)
3686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3687}
3688
3689func (s *Color) UnmarshalJSON(data []byte) error {
3690	type NoMethod Color
3691	var s1 struct {
3692		Alpha gensupport.JSONFloat64 `json:"alpha"`
3693		Blue  gensupport.JSONFloat64 `json:"blue"`
3694		Green gensupport.JSONFloat64 `json:"green"`
3695		Red   gensupport.JSONFloat64 `json:"red"`
3696		*NoMethod
3697	}
3698	s1.NoMethod = (*NoMethod)(s)
3699	if err := json.Unmarshal(data, &s1); err != nil {
3700		return err
3701	}
3702	s.Alpha = float64(s1.Alpha)
3703	s.Blue = float64(s1.Blue)
3704	s.Green = float64(s1.Green)
3705	s.Red = float64(s1.Red)
3706	return nil
3707}
3708
3709// ColorStyle: A color value.
3710type ColorStyle struct {
3711	// RgbColor: RGB color.
3712	RgbColor *Color `json:"rgbColor,omitempty"`
3713
3714	// ThemeColor: Theme color.
3715	//
3716	// Possible values:
3717	//   "THEME_COLOR_TYPE_UNSPECIFIED" - Unspecified theme color
3718	//   "TEXT" - Represents the primary text color
3719	//   "BACKGROUND" - Represents the primary background color
3720	//   "ACCENT1" - Represents the first accent color
3721	//   "ACCENT2" - Represents the second accent color
3722	//   "ACCENT3" - Represents the third accent color
3723	//   "ACCENT4" - Represents the fourth accent color
3724	//   "ACCENT5" - Represents the fifth accent color
3725	//   "ACCENT6" - Represents the sixth accent color
3726	//   "LINK" - Represents the color to use for hyperlinks
3727	ThemeColor string `json:"themeColor,omitempty"`
3728
3729	// ForceSendFields is a list of field names (e.g. "RgbColor") to
3730	// unconditionally include in API requests. By default, fields with
3731	// empty values are omitted from API requests. However, any non-pointer,
3732	// non-interface field appearing in ForceSendFields will be sent to the
3733	// server regardless of whether the field is empty or not. This may be
3734	// used to include empty fields in Patch requests.
3735	ForceSendFields []string `json:"-"`
3736
3737	// NullFields is a list of field names (e.g. "RgbColor") to include in
3738	// API requests with the JSON null value. By default, fields with empty
3739	// values are omitted from API requests. However, any field with an
3740	// empty value appearing in NullFields will be sent to the server as
3741	// null. It is an error if a field in this list has a non-empty value.
3742	// This may be used to include null fields in Patch requests.
3743	NullFields []string `json:"-"`
3744}
3745
3746func (s *ColorStyle) MarshalJSON() ([]byte, error) {
3747	type NoMethod ColorStyle
3748	raw := NoMethod(*s)
3749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3750}
3751
3752// ConditionValue: The value of the condition.
3753type ConditionValue struct {
3754	// RelativeDate: A relative date (based on the current date). Valid only
3755	// if the type is DATE_BEFORE, DATE_AFTER, DATE_ON_OR_BEFORE or
3756	// DATE_ON_OR_AFTER. Relative dates are not supported in data
3757	// validation. They are supported only in conditional formatting and
3758	// conditional filters.
3759	//
3760	// Possible values:
3761	//   "RELATIVE_DATE_UNSPECIFIED" - Default value, do not use.
3762	//   "PAST_YEAR" - The value is one year before today.
3763	//   "PAST_MONTH" - The value is one month before today.
3764	//   "PAST_WEEK" - The value is one week before today.
3765	//   "YESTERDAY" - The value is yesterday.
3766	//   "TODAY" - The value is today.
3767	//   "TOMORROW" - The value is tomorrow.
3768	RelativeDate string `json:"relativeDate,omitempty"`
3769
3770	// UserEnteredValue: A value the condition is based on. The value is
3771	// parsed as if the user typed into a cell. Formulas are supported (and
3772	// must begin with an `=` or a '+').
3773	UserEnteredValue string `json:"userEnteredValue,omitempty"`
3774
3775	// ForceSendFields is a list of field names (e.g. "RelativeDate") to
3776	// unconditionally include in API requests. By default, fields with
3777	// empty values are omitted from API requests. However, any non-pointer,
3778	// non-interface field appearing in ForceSendFields will be sent to the
3779	// server regardless of whether the field is empty or not. This may be
3780	// used to include empty fields in Patch requests.
3781	ForceSendFields []string `json:"-"`
3782
3783	// NullFields is a list of field names (e.g. "RelativeDate") to include
3784	// in API requests with the JSON null value. By default, fields with
3785	// empty values are omitted from API requests. However, any field with
3786	// an empty value appearing in NullFields will be sent to the server as
3787	// null. It is an error if a field in this list has a non-empty value.
3788	// This may be used to include null fields in Patch requests.
3789	NullFields []string `json:"-"`
3790}
3791
3792func (s *ConditionValue) MarshalJSON() ([]byte, error) {
3793	type NoMethod ConditionValue
3794	raw := NoMethod(*s)
3795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3796}
3797
3798// ConditionalFormatRule: A rule describing a conditional format.
3799type ConditionalFormatRule struct {
3800	// BooleanRule: The formatting is either "on" or "off" according to the
3801	// rule.
3802	BooleanRule *BooleanRule `json:"booleanRule,omitempty"`
3803
3804	// GradientRule: The formatting will vary based on the gradients in the
3805	// rule.
3806	GradientRule *GradientRule `json:"gradientRule,omitempty"`
3807
3808	// Ranges: The ranges that are formatted if the condition is true. All
3809	// the ranges must be on the same grid.
3810	Ranges []*GridRange `json:"ranges,omitempty"`
3811
3812	// ForceSendFields is a list of field names (e.g. "BooleanRule") to
3813	// unconditionally include in API requests. By default, fields with
3814	// empty values are omitted from API requests. However, any non-pointer,
3815	// non-interface field appearing in ForceSendFields will be sent to the
3816	// server regardless of whether the field is empty or not. This may be
3817	// used to include empty fields in Patch requests.
3818	ForceSendFields []string `json:"-"`
3819
3820	// NullFields is a list of field names (e.g. "BooleanRule") to include
3821	// in API requests with the JSON null value. By default, fields with
3822	// empty values are omitted from API requests. However, any field with
3823	// an empty value appearing in NullFields will be sent to the server as
3824	// null. It is an error if a field in this list has a non-empty value.
3825	// This may be used to include null fields in Patch requests.
3826	NullFields []string `json:"-"`
3827}
3828
3829func (s *ConditionalFormatRule) MarshalJSON() ([]byte, error) {
3830	type NoMethod ConditionalFormatRule
3831	raw := NoMethod(*s)
3832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3833}
3834
3835// CopyPasteRequest: Copies data from the source to the destination.
3836type CopyPasteRequest struct {
3837	// Destination: The location to paste to. If the range covers a span
3838	// that's a multiple of the source's height or width, then the data will
3839	// be repeated to fill in the destination range. If the range is smaller
3840	// than the source range, the entire source data will still be copied
3841	// (beyond the end of the destination range).
3842	Destination *GridRange `json:"destination,omitempty"`
3843
3844	// PasteOrientation: How that data should be oriented when pasting.
3845	//
3846	// Possible values:
3847	//   "NORMAL" - Paste normally.
3848	//   "TRANSPOSE" - Paste transposed, where all rows become columns and
3849	// vice versa.
3850	PasteOrientation string `json:"pasteOrientation,omitempty"`
3851
3852	// PasteType: What kind of data to paste.
3853	//
3854	// Possible values:
3855	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
3856	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
3857	// or merges.
3858	//   "PASTE_FORMAT" - Paste the format and data validation only.
3859	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
3860	//   "PASTE_FORMULA" - Paste the formulas only.
3861	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
3862	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
3863	// rules only.
3864	PasteType string `json:"pasteType,omitempty"`
3865
3866	// Source: The source range to copy.
3867	Source *GridRange `json:"source,omitempty"`
3868
3869	// ForceSendFields is a list of field names (e.g. "Destination") to
3870	// unconditionally include in API requests. By default, fields with
3871	// empty values are omitted from API requests. However, any non-pointer,
3872	// non-interface field appearing in ForceSendFields will be sent to the
3873	// server regardless of whether the field is empty or not. This may be
3874	// used to include empty fields in Patch requests.
3875	ForceSendFields []string `json:"-"`
3876
3877	// NullFields is a list of field names (e.g. "Destination") to include
3878	// in API requests with the JSON null value. By default, fields with
3879	// empty values are omitted from API requests. However, any field with
3880	// an empty value appearing in NullFields will be sent to the server as
3881	// null. It is an error if a field in this list has a non-empty value.
3882	// This may be used to include null fields in Patch requests.
3883	NullFields []string `json:"-"`
3884}
3885
3886func (s *CopyPasteRequest) MarshalJSON() ([]byte, error) {
3887	type NoMethod CopyPasteRequest
3888	raw := NoMethod(*s)
3889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3890}
3891
3892// CopySheetToAnotherSpreadsheetRequest: The request to copy a sheet
3893// across spreadsheets.
3894type CopySheetToAnotherSpreadsheetRequest struct {
3895	// DestinationSpreadsheetId: The ID of the spreadsheet to copy the sheet
3896	// to.
3897	DestinationSpreadsheetId string `json:"destinationSpreadsheetId,omitempty"`
3898
3899	// ForceSendFields is a list of field names (e.g.
3900	// "DestinationSpreadsheetId") to unconditionally include in API
3901	// requests. By default, fields with empty values are omitted from API
3902	// requests. However, any non-pointer, non-interface field appearing in
3903	// ForceSendFields will be sent to the server regardless of whether the
3904	// field is empty or not. This may be used to include empty fields in
3905	// Patch requests.
3906	ForceSendFields []string `json:"-"`
3907
3908	// NullFields is a list of field names (e.g. "DestinationSpreadsheetId")
3909	// to include in API requests with the JSON null value. By default,
3910	// fields with empty values are omitted from API requests. However, any
3911	// field with an empty value appearing in NullFields will be sent to the
3912	// server as null. It is an error if a field in this list has a
3913	// non-empty value. This may be used to include null fields in Patch
3914	// requests.
3915	NullFields []string `json:"-"`
3916}
3917
3918func (s *CopySheetToAnotherSpreadsheetRequest) MarshalJSON() ([]byte, error) {
3919	type NoMethod CopySheetToAnotherSpreadsheetRequest
3920	raw := NoMethod(*s)
3921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3922}
3923
3924// CreateDeveloperMetadataRequest: A request to create developer
3925// metadata.
3926type CreateDeveloperMetadataRequest struct {
3927	// DeveloperMetadata: The developer metadata to create.
3928	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
3929
3930	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
3931	// to unconditionally include in API requests. By default, fields with
3932	// empty values are omitted from API requests. However, any non-pointer,
3933	// non-interface field appearing in ForceSendFields will be sent to the
3934	// server regardless of whether the field is empty or not. This may be
3935	// used to include empty fields in Patch requests.
3936	ForceSendFields []string `json:"-"`
3937
3938	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
3939	// include in API requests with the JSON null value. By default, fields
3940	// with empty values are omitted from API requests. However, any field
3941	// with an empty value appearing in NullFields will be sent to the
3942	// server as null. It is an error if a field in this list has a
3943	// non-empty value. This may be used to include null fields in Patch
3944	// requests.
3945	NullFields []string `json:"-"`
3946}
3947
3948func (s *CreateDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
3949	type NoMethod CreateDeveloperMetadataRequest
3950	raw := NoMethod(*s)
3951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3952}
3953
3954// CreateDeveloperMetadataResponse: The response from creating developer
3955// metadata.
3956type CreateDeveloperMetadataResponse struct {
3957	// DeveloperMetadata: The developer metadata that was created.
3958	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
3959
3960	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
3961	// to unconditionally include in API requests. By default, fields with
3962	// empty values are omitted from API requests. However, any non-pointer,
3963	// non-interface field appearing in ForceSendFields will be sent to the
3964	// server regardless of whether the field is empty or not. This may be
3965	// used to include empty fields in Patch requests.
3966	ForceSendFields []string `json:"-"`
3967
3968	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
3969	// include in API requests with the JSON null value. By default, fields
3970	// with empty values are omitted from API requests. However, any field
3971	// with an empty value appearing in NullFields will be sent to the
3972	// server as null. It is an error if a field in this list has a
3973	// non-empty value. This may be used to include null fields in Patch
3974	// requests.
3975	NullFields []string `json:"-"`
3976}
3977
3978func (s *CreateDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
3979	type NoMethod CreateDeveloperMetadataResponse
3980	raw := NoMethod(*s)
3981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3982}
3983
3984// CutPasteRequest: Moves data from the source to the destination.
3985type CutPasteRequest struct {
3986	// Destination: The top-left coordinate where the data should be pasted.
3987	Destination *GridCoordinate `json:"destination,omitempty"`
3988
3989	// PasteType: What kind of data to paste. All the source data will be
3990	// cut, regardless of what is pasted.
3991	//
3992	// Possible values:
3993	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
3994	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
3995	// or merges.
3996	//   "PASTE_FORMAT" - Paste the format and data validation only.
3997	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
3998	//   "PASTE_FORMULA" - Paste the formulas only.
3999	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
4000	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
4001	// rules only.
4002	PasteType string `json:"pasteType,omitempty"`
4003
4004	// Source: The source data to cut.
4005	Source *GridRange `json:"source,omitempty"`
4006
4007	// ForceSendFields is a list of field names (e.g. "Destination") to
4008	// unconditionally include in API requests. By default, fields with
4009	// empty values are omitted from API requests. However, any non-pointer,
4010	// non-interface field appearing in ForceSendFields will be sent to the
4011	// server regardless of whether the field is empty or not. This may be
4012	// used to include empty fields in Patch requests.
4013	ForceSendFields []string `json:"-"`
4014
4015	// NullFields is a list of field names (e.g. "Destination") to include
4016	// in API requests with the JSON null value. By default, fields with
4017	// empty values are omitted from API requests. However, any field with
4018	// an empty value appearing in NullFields will be sent to the server as
4019	// null. It is an error if a field in this list has a non-empty value.
4020	// This may be used to include null fields in Patch requests.
4021	NullFields []string `json:"-"`
4022}
4023
4024func (s *CutPasteRequest) MarshalJSON() ([]byte, error) {
4025	type NoMethod CutPasteRequest
4026	raw := NoMethod(*s)
4027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4028}
4029
4030// DataExecutionStatus: The data execution status. A data execution is
4031// created to sync a data source object with the latest data from a
4032// DataSource. It is usually scheduled to run at background, you can
4033// check its state to tell if an execution completes There are several
4034// scenarios where a data execution is triggered to run: * Adding a data
4035// source creates an associated data source sheet as well as a data
4036// execution to sync the data from the data source to the sheet. *
4037// Updating a data source creates a data execution to refresh the
4038// associated data source sheet similarly. * You can send refresh
4039// request to explicitly refresh one or multiple data source objects.
4040type DataExecutionStatus struct {
4041	// ErrorCode: The error code.
4042	//
4043	// Possible values:
4044	//   "DATA_EXECUTION_ERROR_CODE_UNSPECIFIED" - Default value, do not
4045	// use.
4046	//   "TIMED_OUT" - The data execution timed out.
4047	//   "TOO_MANY_ROWS" - The data execution returns more rows than the
4048	// limit.
4049	//   "TOO_MANY_CELLS" - The data execution returns more cells than the
4050	// limit.
4051	//   "ENGINE" - Error is received from the backend data execution engine
4052	// (e.g. BigQuery). Check error_message for details.
4053	//   "PARAMETER_INVALID" - One or some of the provided data source
4054	// parameters are invalid.
4055	//   "UNSUPPORTED_DATA_TYPE" - The data execution returns an unsupported
4056	// data type.
4057	//   "DUPLICATE_COLUMN_NAMES" - The data execution returns duplicate
4058	// column names or aliases.
4059	//   "INTERRUPTED" - The data execution is interrupted. Please refresh
4060	// later.
4061	//   "CONCURRENT_QUERY" - The data execution is currently in progress,
4062	// can not be refreshed until it completes.
4063	//   "OTHER" - Other errors.
4064	//   "TOO_MANY_CHARS_PER_CELL" - The data execution returns values that
4065	// exceed the maximum characters allowed in a single cell.
4066	//   "DATA_NOT_FOUND" - The database referenced by the data source is
4067	// not found. */
4068	//   "PERMISSION_DENIED" - The user does not have access to the database
4069	// referenced by the data source.
4070	//   "MISSING_COLUMN_ALIAS" - The data execution returns columns with
4071	// missing aliases.
4072	//   "OBJECT_NOT_FOUND" - The data source object does not exist.
4073	//   "OBJECT_IN_ERROR_STATE" - The data source object is currently in
4074	// error state. To force refresh, set force in RefreshDataSourceRequest.
4075	//   "OBJECT_SPEC_INVALID" - The data source object specification is
4076	// invalid.
4077	ErrorCode string `json:"errorCode,omitempty"`
4078
4079	// ErrorMessage: The error message, which may be empty.
4080	ErrorMessage string `json:"errorMessage,omitempty"`
4081
4082	// LastRefreshTime: Gets the time the data last successfully refreshed.
4083	LastRefreshTime string `json:"lastRefreshTime,omitempty"`
4084
4085	// State: The state of the data execution.
4086	//
4087	// Possible values:
4088	//   "DATA_EXECUTION_STATE_UNSPECIFIED" - Default value, do not use.
4089	//   "NOT_STARTED" - The data execution has not started.
4090	//   "RUNNING" - The data execution has started and is running.
4091	//   "SUCCEEDED" - The data execution has completed successfully.
4092	//   "FAILED" - The data execution has completed with errors.
4093	State string `json:"state,omitempty"`
4094
4095	// ForceSendFields is a list of field names (e.g. "ErrorCode") to
4096	// unconditionally include in API requests. By default, fields with
4097	// empty values are omitted from API requests. However, any non-pointer,
4098	// non-interface field appearing in ForceSendFields will be sent to the
4099	// server regardless of whether the field is empty or not. This may be
4100	// used to include empty fields in Patch requests.
4101	ForceSendFields []string `json:"-"`
4102
4103	// NullFields is a list of field names (e.g. "ErrorCode") to include in
4104	// API requests with the JSON null value. By default, fields with empty
4105	// values are omitted from API requests. However, any field with an
4106	// empty value appearing in NullFields will be sent to the server as
4107	// null. It is an error if a field in this list has a non-empty value.
4108	// This may be used to include null fields in Patch requests.
4109	NullFields []string `json:"-"`
4110}
4111
4112func (s *DataExecutionStatus) MarshalJSON() ([]byte, error) {
4113	type NoMethod DataExecutionStatus
4114	raw := NoMethod(*s)
4115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4116}
4117
4118// DataFilter: Filter that describes what data should be selected or
4119// returned from a request.
4120type DataFilter struct {
4121	// A1Range: Selects data that matches the specified A1 range.
4122	A1Range string `json:"a1Range,omitempty"`
4123
4124	// DeveloperMetadataLookup: Selects data associated with the developer
4125	// metadata matching the criteria described by this
4126	// DeveloperMetadataLookup.
4127	DeveloperMetadataLookup *DeveloperMetadataLookup `json:"developerMetadataLookup,omitempty"`
4128
4129	// GridRange: Selects data that matches the range described by the
4130	// GridRange.
4131	GridRange *GridRange `json:"gridRange,omitempty"`
4132
4133	// ForceSendFields is a list of field names (e.g. "A1Range") to
4134	// unconditionally include in API requests. By default, fields with
4135	// empty values are omitted from API requests. However, any non-pointer,
4136	// non-interface field appearing in ForceSendFields will be sent to the
4137	// server regardless of whether the field is empty or not. This may be
4138	// used to include empty fields in Patch requests.
4139	ForceSendFields []string `json:"-"`
4140
4141	// NullFields is a list of field names (e.g. "A1Range") to include in
4142	// API requests with the JSON null value. By default, fields with empty
4143	// values are omitted from API requests. However, any field with an
4144	// empty value appearing in NullFields will be sent to the server as
4145	// null. It is an error if a field in this list has a non-empty value.
4146	// This may be used to include null fields in Patch requests.
4147	NullFields []string `json:"-"`
4148}
4149
4150func (s *DataFilter) MarshalJSON() ([]byte, error) {
4151	type NoMethod DataFilter
4152	raw := NoMethod(*s)
4153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4154}
4155
4156// DataFilterValueRange: A range of values whose location is specified
4157// by a DataFilter.
4158type DataFilterValueRange struct {
4159	// DataFilter: The data filter describing the location of the values in
4160	// the spreadsheet.
4161	DataFilter *DataFilter `json:"dataFilter,omitempty"`
4162
4163	// MajorDimension: The major dimension of the values.
4164	//
4165	// Possible values:
4166	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
4167	//   "ROWS" - Operates on the rows of a sheet.
4168	//   "COLUMNS" - Operates on the columns of a sheet.
4169	MajorDimension string `json:"majorDimension,omitempty"`
4170
4171	// Values: The data to be written. If the provided values exceed any of
4172	// the ranges matched by the data filter then the request fails. If the
4173	// provided values are less than the matched ranges only the specified
4174	// values are written, existing values in the matched ranges remain
4175	// unaffected.
4176	Values [][]interface{} `json:"values,omitempty"`
4177
4178	// ForceSendFields is a list of field names (e.g. "DataFilter") to
4179	// unconditionally include in API requests. By default, fields with
4180	// empty values are omitted from API requests. However, any non-pointer,
4181	// non-interface field appearing in ForceSendFields will be sent to the
4182	// server regardless of whether the field is empty or not. This may be
4183	// used to include empty fields in Patch requests.
4184	ForceSendFields []string `json:"-"`
4185
4186	// NullFields is a list of field names (e.g. "DataFilter") to include in
4187	// API requests with the JSON null value. By default, fields with empty
4188	// values are omitted from API requests. However, any field with an
4189	// empty value appearing in NullFields will be sent to the server as
4190	// null. It is an error if a field in this list has a non-empty value.
4191	// This may be used to include null fields in Patch requests.
4192	NullFields []string `json:"-"`
4193}
4194
4195func (s *DataFilterValueRange) MarshalJSON() ([]byte, error) {
4196	type NoMethod DataFilterValueRange
4197	raw := NoMethod(*s)
4198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4199}
4200
4201// DataLabel: Settings for one set of data labels. Data labels are
4202// annotations that appear next to a set of data, such as the points on
4203// a line chart, and provide additional information about what the data
4204// represents, such as a text representation of the value behind that
4205// point on the graph.
4206type DataLabel struct {
4207	// CustomLabelData: Data to use for custom labels. Only used if type is
4208	// set to CUSTOM. This data must be the same length as the series or
4209	// other element this data label is applied to. In addition, if the
4210	// series is split into multiple source ranges, this source data must
4211	// come from the next column in the source data. For example, if the
4212	// series is B2:B4,E6:E8 then this data must come from C2:C4,F6:F8.
4213	CustomLabelData *ChartData `json:"customLabelData,omitempty"`
4214
4215	// Placement: The placement of the data label relative to the labeled
4216	// data.
4217	//
4218	// Possible values:
4219	//   "DATA_LABEL_PLACEMENT_UNSPECIFIED" - The positioning is determined
4220	// automatically by the renderer.
4221	//   "CENTER" - Center within a bar or column, both horizontally and
4222	// vertically.
4223	//   "LEFT" - To the left of a data point.
4224	//   "RIGHT" - To the right of a data point.
4225	//   "ABOVE" - Above a data point.
4226	//   "BELOW" - Below a data point.
4227	//   "INSIDE_END" - Inside a bar or column at the end (top if positive,
4228	// bottom if negative).
4229	//   "INSIDE_BASE" - Inside a bar or column at the base.
4230	//   "OUTSIDE_END" - Outside a bar or column at the end.
4231	Placement string `json:"placement,omitempty"`
4232
4233	// TextFormat: The text format used for the data label.
4234	TextFormat *TextFormat `json:"textFormat,omitempty"`
4235
4236	// Type: The type of the data label.
4237	//
4238	// Possible values:
4239	//   "DATA_LABEL_TYPE_UNSPECIFIED" - The data label type is not
4240	// specified and will be interpreted depending on the context of the
4241	// data label within the chart.
4242	//   "NONE" - The data label is not displayed.
4243	//   "DATA" - The data label is displayed using values from the series
4244	// data.
4245	//   "CUSTOM" - The data label is displayed using values from a custom
4246	// data source indicated by customLabelData.
4247	Type string `json:"type,omitempty"`
4248
4249	// ForceSendFields is a list of field names (e.g. "CustomLabelData") to
4250	// unconditionally include in API requests. By default, fields with
4251	// empty values are omitted from API requests. However, any non-pointer,
4252	// non-interface field appearing in ForceSendFields will be sent to the
4253	// server regardless of whether the field is empty or not. This may be
4254	// used to include empty fields in Patch requests.
4255	ForceSendFields []string `json:"-"`
4256
4257	// NullFields is a list of field names (e.g. "CustomLabelData") to
4258	// include in API requests with the JSON null value. By default, fields
4259	// with empty values are omitted from API requests. However, any field
4260	// with an empty value appearing in NullFields will be sent to the
4261	// server as null. It is an error if a field in this list has a
4262	// non-empty value. This may be used to include null fields in Patch
4263	// requests.
4264	NullFields []string `json:"-"`
4265}
4266
4267func (s *DataLabel) MarshalJSON() ([]byte, error) {
4268	type NoMethod DataLabel
4269	raw := NoMethod(*s)
4270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4271}
4272
4273// DataSource: Information about an external data source in the
4274// spreadsheet.
4275type DataSource struct {
4276	// CalculatedColumns: All calculated columns in the data source.
4277	CalculatedColumns []*DataSourceColumn `json:"calculatedColumns,omitempty"`
4278
4279	// DataSourceId: The spreadsheet-scoped unique ID that identifies the
4280	// data source. Example: 1080547365.
4281	DataSourceId string `json:"dataSourceId,omitempty"`
4282
4283	// SheetId: The ID of the Sheet connected with the data source. The
4284	// field cannot be changed once set. When creating a data source, an
4285	// associated DATA_SOURCE sheet is also created, if the field is not
4286	// specified, the ID of the created sheet will be randomly generated.
4287	SheetId int64 `json:"sheetId,omitempty"`
4288
4289	// Spec: The DataSourceSpec for the data source connected with this
4290	// spreadsheet.
4291	Spec *DataSourceSpec `json:"spec,omitempty"`
4292
4293	// ForceSendFields is a list of field names (e.g. "CalculatedColumns")
4294	// to unconditionally include in API requests. By default, fields with
4295	// empty values are omitted from API requests. However, any non-pointer,
4296	// non-interface field appearing in ForceSendFields will be sent to the
4297	// server regardless of whether the field is empty or not. This may be
4298	// used to include empty fields in Patch requests.
4299	ForceSendFields []string `json:"-"`
4300
4301	// NullFields is a list of field names (e.g. "CalculatedColumns") to
4302	// include in API requests with the JSON null value. By default, fields
4303	// with empty values are omitted from API requests. However, any field
4304	// with an empty value appearing in NullFields will be sent to the
4305	// server as null. It is an error if a field in this list has a
4306	// non-empty value. This may be used to include null fields in Patch
4307	// requests.
4308	NullFields []string `json:"-"`
4309}
4310
4311func (s *DataSource) MarshalJSON() ([]byte, error) {
4312	type NoMethod DataSource
4313	raw := NoMethod(*s)
4314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4315}
4316
4317// DataSourceChartProperties: Properties of a data source chart.
4318type DataSourceChartProperties struct {
4319	// DataExecutionStatus: Output only. The data execution status.
4320	DataExecutionStatus *DataExecutionStatus `json:"dataExecutionStatus,omitempty"`
4321
4322	// DataSourceId: ID of the data source that the chart is associated
4323	// with.
4324	DataSourceId string `json:"dataSourceId,omitempty"`
4325
4326	// ForceSendFields is a list of field names (e.g. "DataExecutionStatus")
4327	// to unconditionally include in API requests. By default, fields with
4328	// empty values are omitted from API requests. However, any non-pointer,
4329	// non-interface field appearing in ForceSendFields will be sent to the
4330	// server regardless of whether the field is empty or not. This may be
4331	// used to include empty fields in Patch requests.
4332	ForceSendFields []string `json:"-"`
4333
4334	// NullFields is a list of field names (e.g. "DataExecutionStatus") to
4335	// include in API requests with the JSON null value. By default, fields
4336	// with empty values are omitted from API requests. However, any field
4337	// with an empty value appearing in NullFields will be sent to the
4338	// server as null. It is an error if a field in this list has a
4339	// non-empty value. This may be used to include null fields in Patch
4340	// requests.
4341	NullFields []string `json:"-"`
4342}
4343
4344func (s *DataSourceChartProperties) MarshalJSON() ([]byte, error) {
4345	type NoMethod DataSourceChartProperties
4346	raw := NoMethod(*s)
4347	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4348}
4349
4350// DataSourceColumn: A column in a data source.
4351type DataSourceColumn struct {
4352	// Formula: The formula of the calculated column.
4353	Formula string `json:"formula,omitempty"`
4354
4355	// Reference: The column reference.
4356	Reference *DataSourceColumnReference `json:"reference,omitempty"`
4357
4358	// ForceSendFields is a list of field names (e.g. "Formula") to
4359	// unconditionally include in API requests. By default, fields with
4360	// empty values are omitted from API requests. However, any non-pointer,
4361	// non-interface field appearing in ForceSendFields will be sent to the
4362	// server regardless of whether the field is empty or not. This may be
4363	// used to include empty fields in Patch requests.
4364	ForceSendFields []string `json:"-"`
4365
4366	// NullFields is a list of field names (e.g. "Formula") to include in
4367	// API requests with the JSON null value. By default, fields with empty
4368	// values are omitted from API requests. However, any field with an
4369	// empty value appearing in NullFields will be sent to the server as
4370	// null. It is an error if a field in this list has a non-empty value.
4371	// This may be used to include null fields in Patch requests.
4372	NullFields []string `json:"-"`
4373}
4374
4375func (s *DataSourceColumn) MarshalJSON() ([]byte, error) {
4376	type NoMethod DataSourceColumn
4377	raw := NoMethod(*s)
4378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4379}
4380
4381// DataSourceColumnReference: An unique identifier that references a
4382// data source column.
4383type DataSourceColumnReference struct {
4384	// Name: The display name of the column. It should be unique within a
4385	// data source.
4386	Name string `json:"name,omitempty"`
4387
4388	// ForceSendFields is a list of field names (e.g. "Name") to
4389	// unconditionally include in API requests. By default, fields with
4390	// empty values are omitted from API requests. However, any non-pointer,
4391	// non-interface field appearing in ForceSendFields will be sent to the
4392	// server regardless of whether the field is empty or not. This may be
4393	// used to include empty fields in Patch requests.
4394	ForceSendFields []string `json:"-"`
4395
4396	// NullFields is a list of field names (e.g. "Name") to include in API
4397	// requests with the JSON null value. By default, fields with empty
4398	// values are omitted from API requests. However, any field with an
4399	// empty value appearing in NullFields will be sent to the server as
4400	// null. It is an error if a field in this list has a non-empty value.
4401	// This may be used to include null fields in Patch requests.
4402	NullFields []string `json:"-"`
4403}
4404
4405func (s *DataSourceColumnReference) MarshalJSON() ([]byte, error) {
4406	type NoMethod DataSourceColumnReference
4407	raw := NoMethod(*s)
4408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4409}
4410
4411// DataSourceFormula: A data source formula.
4412type DataSourceFormula struct {
4413	// DataExecutionStatus: Output only. The data execution status.
4414	DataExecutionStatus *DataExecutionStatus `json:"dataExecutionStatus,omitempty"`
4415
4416	// DataSourceId: The ID of the data source the formula is associated
4417	// with.
4418	DataSourceId string `json:"dataSourceId,omitempty"`
4419
4420	// ForceSendFields is a list of field names (e.g. "DataExecutionStatus")
4421	// to unconditionally include in API requests. By default, fields with
4422	// empty values are omitted from API requests. However, any non-pointer,
4423	// non-interface field appearing in ForceSendFields will be sent to the
4424	// server regardless of whether the field is empty or not. This may be
4425	// used to include empty fields in Patch requests.
4426	ForceSendFields []string `json:"-"`
4427
4428	// NullFields is a list of field names (e.g. "DataExecutionStatus") to
4429	// include in API requests with the JSON null value. By default, fields
4430	// with empty values are omitted from API requests. However, any field
4431	// with an empty value appearing in NullFields will be sent to the
4432	// server as null. It is an error if a field in this list has a
4433	// non-empty value. This may be used to include null fields in Patch
4434	// requests.
4435	NullFields []string `json:"-"`
4436}
4437
4438func (s *DataSourceFormula) MarshalJSON() ([]byte, error) {
4439	type NoMethod DataSourceFormula
4440	raw := NoMethod(*s)
4441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4442}
4443
4444// DataSourceObjectReference: Reference to a data source object.
4445type DataSourceObjectReference struct {
4446	// ChartId: References to a data source chart.
4447	ChartId int64 `json:"chartId,omitempty"`
4448
4449	// DataSourceFormulaCell: References to a cell containing
4450	// DataSourceFormula.
4451	DataSourceFormulaCell *GridCoordinate `json:"dataSourceFormulaCell,omitempty"`
4452
4453	// DataSourcePivotTableAnchorCell: References to a data source
4454	// PivotTable anchored at the cell.
4455	DataSourcePivotTableAnchorCell *GridCoordinate `json:"dataSourcePivotTableAnchorCell,omitempty"`
4456
4457	// DataSourceTableAnchorCell: References to a DataSourceTable anchored
4458	// at the cell.
4459	DataSourceTableAnchorCell *GridCoordinate `json:"dataSourceTableAnchorCell,omitempty"`
4460
4461	// SheetId: References to a DATA_SOURCE sheet.
4462	SheetId string `json:"sheetId,omitempty"`
4463
4464	// ForceSendFields is a list of field names (e.g. "ChartId") to
4465	// unconditionally include in API requests. By default, fields with
4466	// empty values are omitted from API requests. However, any non-pointer,
4467	// non-interface field appearing in ForceSendFields will be sent to the
4468	// server regardless of whether the field is empty or not. This may be
4469	// used to include empty fields in Patch requests.
4470	ForceSendFields []string `json:"-"`
4471
4472	// NullFields is a list of field names (e.g. "ChartId") to include in
4473	// API requests with the JSON null value. By default, fields with empty
4474	// values are omitted from API requests. However, any field with an
4475	// empty value appearing in NullFields will be sent to the server as
4476	// null. It is an error if a field in this list has a non-empty value.
4477	// This may be used to include null fields in Patch requests.
4478	NullFields []string `json:"-"`
4479}
4480
4481func (s *DataSourceObjectReference) MarshalJSON() ([]byte, error) {
4482	type NoMethod DataSourceObjectReference
4483	raw := NoMethod(*s)
4484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4485}
4486
4487// DataSourceObjectReferences: A list of references to data source
4488// objects.
4489type DataSourceObjectReferences struct {
4490	// References: The references.
4491	References []*DataSourceObjectReference `json:"references,omitempty"`
4492
4493	// ForceSendFields is a list of field names (e.g. "References") to
4494	// unconditionally include in API requests. By default, fields with
4495	// empty values are omitted from API requests. However, any non-pointer,
4496	// non-interface field appearing in ForceSendFields will be sent to the
4497	// server regardless of whether the field is empty or not. This may be
4498	// used to include empty fields in Patch requests.
4499	ForceSendFields []string `json:"-"`
4500
4501	// NullFields is a list of field names (e.g. "References") to include in
4502	// API requests with the JSON null value. By default, fields with empty
4503	// values are omitted from API requests. However, any field with an
4504	// empty value appearing in NullFields will be sent to the server as
4505	// null. It is an error if a field in this list has a non-empty value.
4506	// This may be used to include null fields in Patch requests.
4507	NullFields []string `json:"-"`
4508}
4509
4510func (s *DataSourceObjectReferences) MarshalJSON() ([]byte, error) {
4511	type NoMethod DataSourceObjectReferences
4512	raw := NoMethod(*s)
4513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4514}
4515
4516// DataSourceParameter: A parameter in a data source's query. The
4517// parameter allows the user to pass in values from the spreadsheet into
4518// a query.
4519type DataSourceParameter struct {
4520	// Name: Named parameter. Must be a legitimate identifier for the
4521	// DataSource that supports it. For example, [BigQuery
4522	// identifier](https://cloud.google.com/bigquery/docs/reference/standard-
4523	// sql/lexical#identifiers).
4524	Name string `json:"name,omitempty"`
4525
4526	// NamedRangeId: ID of a NamedRange. Its size must be 1x1.
4527	NamedRangeId string `json:"namedRangeId,omitempty"`
4528
4529	// Range: A range that contains the value of the parameter. Its size
4530	// must be 1x1.
4531	Range *GridRange `json:"range,omitempty"`
4532
4533	// ForceSendFields is a list of field names (e.g. "Name") to
4534	// unconditionally include in API requests. By default, fields with
4535	// empty values are omitted from API requests. However, any non-pointer,
4536	// non-interface field appearing in ForceSendFields will be sent to the
4537	// server regardless of whether the field is empty or not. This may be
4538	// used to include empty fields in Patch requests.
4539	ForceSendFields []string `json:"-"`
4540
4541	// NullFields is a list of field names (e.g. "Name") to include in API
4542	// requests with the JSON null value. By default, fields with empty
4543	// values are omitted from API requests. However, any field with an
4544	// empty value appearing in NullFields will be sent to the server as
4545	// null. It is an error if a field in this list has a non-empty value.
4546	// This may be used to include null fields in Patch requests.
4547	NullFields []string `json:"-"`
4548}
4549
4550func (s *DataSourceParameter) MarshalJSON() ([]byte, error) {
4551	type NoMethod DataSourceParameter
4552	raw := NoMethod(*s)
4553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4554}
4555
4556// DataSourceRefreshDailySchedule: A schedule for data to refresh every
4557// day in a given time interval.
4558type DataSourceRefreshDailySchedule struct {
4559	// StartTime: The start time of a time interval in which a data source
4560	// refresh is scheduled. Only `hours` part is used. The time interval
4561	// size defaults to that in the Sheets editor.
4562	StartTime *TimeOfDay `json:"startTime,omitempty"`
4563
4564	// ForceSendFields is a list of field names (e.g. "StartTime") to
4565	// unconditionally include in API requests. By default, fields with
4566	// empty values are omitted from API requests. However, any non-pointer,
4567	// non-interface field appearing in ForceSendFields will be sent to the
4568	// server regardless of whether the field is empty or not. This may be
4569	// used to include empty fields in Patch requests.
4570	ForceSendFields []string `json:"-"`
4571
4572	// NullFields is a list of field names (e.g. "StartTime") to include in
4573	// API requests with the JSON null value. By default, fields with empty
4574	// values are omitted from API requests. However, any field with an
4575	// empty value appearing in NullFields will be sent to the server as
4576	// null. It is an error if a field in this list has a non-empty value.
4577	// This may be used to include null fields in Patch requests.
4578	NullFields []string `json:"-"`
4579}
4580
4581func (s *DataSourceRefreshDailySchedule) MarshalJSON() ([]byte, error) {
4582	type NoMethod DataSourceRefreshDailySchedule
4583	raw := NoMethod(*s)
4584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4585}
4586
4587// DataSourceRefreshMonthlySchedule: A monthly schedule for data to
4588// refresh on specific days in the month in a given time interval.
4589type DataSourceRefreshMonthlySchedule struct {
4590	// DaysOfMonth: Days of the month to refresh. Only 1-28 are supported,
4591	// mapping to the 1st to the 28th day. At lesat one day must be
4592	// specified.
4593	DaysOfMonth []int64 `json:"daysOfMonth,omitempty"`
4594
4595	// StartTime: The start time of a time interval in which a data source
4596	// refresh is scheduled. Only `hours` part is used. The time interval
4597	// size defaults to that in the Sheets editor.
4598	StartTime *TimeOfDay `json:"startTime,omitempty"`
4599
4600	// ForceSendFields is a list of field names (e.g. "DaysOfMonth") to
4601	// unconditionally include in API requests. By default, fields with
4602	// empty values are omitted from API requests. However, any non-pointer,
4603	// non-interface field appearing in ForceSendFields will be sent to the
4604	// server regardless of whether the field is empty or not. This may be
4605	// used to include empty fields in Patch requests.
4606	ForceSendFields []string `json:"-"`
4607
4608	// NullFields is a list of field names (e.g. "DaysOfMonth") to include
4609	// in API requests with the JSON null value. By default, fields with
4610	// empty values are omitted from API requests. However, any field with
4611	// an empty value appearing in NullFields will be sent to the server as
4612	// null. It is an error if a field in this list has a non-empty value.
4613	// This may be used to include null fields in Patch requests.
4614	NullFields []string `json:"-"`
4615}
4616
4617func (s *DataSourceRefreshMonthlySchedule) MarshalJSON() ([]byte, error) {
4618	type NoMethod DataSourceRefreshMonthlySchedule
4619	raw := NoMethod(*s)
4620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4621}
4622
4623// DataSourceRefreshSchedule: Schedule for refreshing the data source.
4624// Data sources in the spreadsheet are refreshed within a time interval.
4625// You can specify the start time by clicking the Scheduled Refresh
4626// button in the Sheets editor, but the interval is fixed at 4 hours.
4627// For example, if you specify a start time of 8am , the refresh will
4628// take place between 8am and 12pm every day.
4629type DataSourceRefreshSchedule struct {
4630	// DailySchedule: Daily refresh schedule.
4631	DailySchedule *DataSourceRefreshDailySchedule `json:"dailySchedule,omitempty"`
4632
4633	// Enabled: True if the refresh schedule is enabled, or false otherwise.
4634	Enabled bool `json:"enabled,omitempty"`
4635
4636	// MonthlySchedule: Monthly refresh schedule.
4637	MonthlySchedule *DataSourceRefreshMonthlySchedule `json:"monthlySchedule,omitempty"`
4638
4639	// NextRun: Output only. The time interval of the next run.
4640	NextRun *Interval `json:"nextRun,omitempty"`
4641
4642	// RefreshScope: The scope of the refresh. Must be ALL_DATA_SOURCES.
4643	//
4644	// Possible values:
4645	//   "DATA_SOURCE_REFRESH_SCOPE_UNSPECIFIED" - Default value, do not
4646	// use.
4647	//   "ALL_DATA_SOURCES" - Refreshes all data sources and their
4648	// associated data source objects in the spreadsheet.
4649	RefreshScope string `json:"refreshScope,omitempty"`
4650
4651	// WeeklySchedule: Weekly refresh schedule.
4652	WeeklySchedule *DataSourceRefreshWeeklySchedule `json:"weeklySchedule,omitempty"`
4653
4654	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
4655	// unconditionally include in API requests. By default, fields with
4656	// empty values are omitted from API requests. However, any non-pointer,
4657	// non-interface field appearing in ForceSendFields will be sent to the
4658	// server regardless of whether the field is empty or not. This may be
4659	// used to include empty fields in Patch requests.
4660	ForceSendFields []string `json:"-"`
4661
4662	// NullFields is a list of field names (e.g. "DailySchedule") to include
4663	// in API requests with the JSON null value. By default, fields with
4664	// empty values are omitted from API requests. However, any field with
4665	// an empty value appearing in NullFields will be sent to the server as
4666	// null. It is an error if a field in this list has a non-empty value.
4667	// This may be used to include null fields in Patch requests.
4668	NullFields []string `json:"-"`
4669}
4670
4671func (s *DataSourceRefreshSchedule) MarshalJSON() ([]byte, error) {
4672	type NoMethod DataSourceRefreshSchedule
4673	raw := NoMethod(*s)
4674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4675}
4676
4677// DataSourceRefreshWeeklySchedule: A weekly schedule for data to
4678// refresh on specific days in a given time interval.
4679type DataSourceRefreshWeeklySchedule struct {
4680	// DaysOfWeek: Days of the week to refresh. At least one day must be
4681	// specified.
4682	//
4683	// Possible values:
4684	//   "DAY_OF_WEEK_UNSPECIFIED" - The day of the week is unspecified.
4685	//   "MONDAY" - Monday
4686	//   "TUESDAY" - Tuesday
4687	//   "WEDNESDAY" - Wednesday
4688	//   "THURSDAY" - Thursday
4689	//   "FRIDAY" - Friday
4690	//   "SATURDAY" - Saturday
4691	//   "SUNDAY" - Sunday
4692	DaysOfWeek []string `json:"daysOfWeek,omitempty"`
4693
4694	// StartTime: The start time of a time interval in which a data source
4695	// refresh is scheduled. Only `hours` part is used. The time interval
4696	// size defaults to that in the Sheets editor.
4697	StartTime *TimeOfDay `json:"startTime,omitempty"`
4698
4699	// ForceSendFields is a list of field names (e.g. "DaysOfWeek") to
4700	// unconditionally include in API requests. By default, fields with
4701	// empty values are omitted from API requests. However, any non-pointer,
4702	// non-interface field appearing in ForceSendFields will be sent to the
4703	// server regardless of whether the field is empty or not. This may be
4704	// used to include empty fields in Patch requests.
4705	ForceSendFields []string `json:"-"`
4706
4707	// NullFields is a list of field names (e.g. "DaysOfWeek") to include in
4708	// API requests with the JSON null value. By default, fields with empty
4709	// values are omitted from API requests. However, any field with an
4710	// empty value appearing in NullFields will be sent to the server as
4711	// null. It is an error if a field in this list has a non-empty value.
4712	// This may be used to include null fields in Patch requests.
4713	NullFields []string `json:"-"`
4714}
4715
4716func (s *DataSourceRefreshWeeklySchedule) MarshalJSON() ([]byte, error) {
4717	type NoMethod DataSourceRefreshWeeklySchedule
4718	raw := NoMethod(*s)
4719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4720}
4721
4722// DataSourceSheetDimensionRange: A range along a single dimension on a
4723// DATA_SOURCE sheet.
4724type DataSourceSheetDimensionRange struct {
4725	// ColumnReferences: The columns on the data source sheet.
4726	ColumnReferences []*DataSourceColumnReference `json:"columnReferences,omitempty"`
4727
4728	// SheetId: The ID of the data source sheet the range is on.
4729	SheetId int64 `json:"sheetId,omitempty"`
4730
4731	// ForceSendFields is a list of field names (e.g. "ColumnReferences") to
4732	// unconditionally include in API requests. By default, fields with
4733	// empty values are omitted from API requests. However, any non-pointer,
4734	// non-interface field appearing in ForceSendFields will be sent to the
4735	// server regardless of whether the field is empty or not. This may be
4736	// used to include empty fields in Patch requests.
4737	ForceSendFields []string `json:"-"`
4738
4739	// NullFields is a list of field names (e.g. "ColumnReferences") to
4740	// include in API requests with the JSON null value. By default, fields
4741	// with empty values are omitted from API requests. However, any field
4742	// with an empty value appearing in NullFields will be sent to the
4743	// server as null. It is an error if a field in this list has a
4744	// non-empty value. This may be used to include null fields in Patch
4745	// requests.
4746	NullFields []string `json:"-"`
4747}
4748
4749func (s *DataSourceSheetDimensionRange) MarshalJSON() ([]byte, error) {
4750	type NoMethod DataSourceSheetDimensionRange
4751	raw := NoMethod(*s)
4752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4753}
4754
4755// DataSourceSheetProperties: Additional properties of a DATA_SOURCE
4756// sheet.
4757type DataSourceSheetProperties struct {
4758	// Columns: The columns displayed on the sheet, corresponding to the
4759	// values in RowData.
4760	Columns []*DataSourceColumn `json:"columns,omitempty"`
4761
4762	// DataExecutionStatus: The data execution status.
4763	DataExecutionStatus *DataExecutionStatus `json:"dataExecutionStatus,omitempty"`
4764
4765	// DataSourceId: ID of the DataSource the sheet is connected to.
4766	DataSourceId string `json:"dataSourceId,omitempty"`
4767
4768	// ForceSendFields is a list of field names (e.g. "Columns") to
4769	// unconditionally include in API requests. By default, fields with
4770	// empty values are omitted from API requests. However, any non-pointer,
4771	// non-interface field appearing in ForceSendFields will be sent to the
4772	// server regardless of whether the field is empty or not. This may be
4773	// used to include empty fields in Patch requests.
4774	ForceSendFields []string `json:"-"`
4775
4776	// NullFields is a list of field names (e.g. "Columns") to include in
4777	// API requests with the JSON null value. By default, fields with empty
4778	// values are omitted from API requests. However, any field with an
4779	// empty value appearing in NullFields will be sent to the server as
4780	// null. It is an error if a field in this list has a non-empty value.
4781	// This may be used to include null fields in Patch requests.
4782	NullFields []string `json:"-"`
4783}
4784
4785func (s *DataSourceSheetProperties) MarshalJSON() ([]byte, error) {
4786	type NoMethod DataSourceSheetProperties
4787	raw := NoMethod(*s)
4788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4789}
4790
4791// DataSourceSpec: This specifies the details of the data source. For
4792// example, for BigQuery, this specifies information about the BigQuery
4793// source.
4794type DataSourceSpec struct {
4795	// BigQuery: A BigQueryDataSourceSpec.
4796	BigQuery *BigQueryDataSourceSpec `json:"bigQuery,omitempty"`
4797
4798	// Parameters: The parameters of the data source, used when querying the
4799	// data source.
4800	Parameters []*DataSourceParameter `json:"parameters,omitempty"`
4801
4802	// ForceSendFields is a list of field names (e.g. "BigQuery") to
4803	// unconditionally include in API requests. By default, fields with
4804	// empty values are omitted from API requests. However, any non-pointer,
4805	// non-interface field appearing in ForceSendFields will be sent to the
4806	// server regardless of whether the field is empty or not. This may be
4807	// used to include empty fields in Patch requests.
4808	ForceSendFields []string `json:"-"`
4809
4810	// NullFields is a list of field names (e.g. "BigQuery") to include in
4811	// API requests with the JSON null value. By default, fields with empty
4812	// values are omitted from API requests. However, any field with an
4813	// empty value appearing in NullFields will be sent to the server as
4814	// null. It is an error if a field in this list has a non-empty value.
4815	// This may be used to include null fields in Patch requests.
4816	NullFields []string `json:"-"`
4817}
4818
4819func (s *DataSourceSpec) MarshalJSON() ([]byte, error) {
4820	type NoMethod DataSourceSpec
4821	raw := NoMethod(*s)
4822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4823}
4824
4825// DataSourceTable: A data source table, which allows the user to import
4826// a static table of data from the DataSource into Sheets. This is also
4827// known as "Extract" in the Sheets editor.
4828type DataSourceTable struct {
4829	// ColumnSelectionType: The type to select columns for the data source
4830	// table. Defaults to SELECTED.
4831	//
4832	// Possible values:
4833	//   "DATA_SOURCE_TABLE_COLUMN_SELECTION_TYPE_UNSPECIFIED" - The default
4834	// column selection type, do not use.
4835	//   "SELECTED" - Select columns specified by columns field.
4836	//   "SYNC_ALL" - Sync all current and future columns in the data
4837	// source. If set, the data source table fetches all the columns in the
4838	// data source at the time of refresh.
4839	ColumnSelectionType string `json:"columnSelectionType,omitempty"`
4840
4841	// Columns: Columns selected for the data source table. The
4842	// column_selection_type must be SELECTED.
4843	Columns []*DataSourceColumnReference `json:"columns,omitempty"`
4844
4845	// DataExecutionStatus: Output only. The data execution status.
4846	DataExecutionStatus *DataExecutionStatus `json:"dataExecutionStatus,omitempty"`
4847
4848	// DataSourceId: The ID of the data source the data source table is
4849	// associated with.
4850	DataSourceId string `json:"dataSourceId,omitempty"`
4851
4852	// FilterSpecs: Filter specifications in the data source table.
4853	FilterSpecs []*FilterSpec `json:"filterSpecs,omitempty"`
4854
4855	// RowLimit: The limit of rows to return. If not set, a default limit is
4856	// applied. Please refer to the Sheets editor for the default and max
4857	// limit.
4858	RowLimit int64 `json:"rowLimit,omitempty"`
4859
4860	// SortSpecs: Sort specifications in the data source table. The result
4861	// of the data source table is sorted based on the sort specifications
4862	// in order.
4863	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
4864
4865	// ForceSendFields is a list of field names (e.g. "ColumnSelectionType")
4866	// to unconditionally include in API requests. By default, fields with
4867	// empty values are omitted from API requests. However, any non-pointer,
4868	// non-interface field appearing in ForceSendFields will be sent to the
4869	// server regardless of whether the field is empty or not. This may be
4870	// used to include empty fields in Patch requests.
4871	ForceSendFields []string `json:"-"`
4872
4873	// NullFields is a list of field names (e.g. "ColumnSelectionType") to
4874	// include in API requests with the JSON null value. By default, fields
4875	// with empty values are omitted from API requests. However, any field
4876	// with an empty value appearing in NullFields will be sent to the
4877	// server as null. It is an error if a field in this list has a
4878	// non-empty value. This may be used to include null fields in Patch
4879	// requests.
4880	NullFields []string `json:"-"`
4881}
4882
4883func (s *DataSourceTable) MarshalJSON() ([]byte, error) {
4884	type NoMethod DataSourceTable
4885	raw := NoMethod(*s)
4886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4887}
4888
4889// DataValidationRule: A data validation rule.
4890type DataValidationRule struct {
4891	// Condition: The condition that data in the cell must match.
4892	Condition *BooleanCondition `json:"condition,omitempty"`
4893
4894	// InputMessage: A message to show the user when adding data to the
4895	// cell.
4896	InputMessage string `json:"inputMessage,omitempty"`
4897
4898	// ShowCustomUi: True if the UI should be customized based on the kind
4899	// of condition. If true, "List" conditions will show a dropdown.
4900	ShowCustomUi bool `json:"showCustomUi,omitempty"`
4901
4902	// Strict: True if invalid data should be rejected.
4903	Strict bool `json:"strict,omitempty"`
4904
4905	// ForceSendFields is a list of field names (e.g. "Condition") to
4906	// unconditionally include in API requests. By default, fields with
4907	// empty values are omitted from API requests. However, any non-pointer,
4908	// non-interface field appearing in ForceSendFields will be sent to the
4909	// server regardless of whether the field is empty or not. This may be
4910	// used to include empty fields in Patch requests.
4911	ForceSendFields []string `json:"-"`
4912
4913	// NullFields is a list of field names (e.g. "Condition") to include in
4914	// API requests with the JSON null value. By default, fields with empty
4915	// values are omitted from API requests. However, any field with an
4916	// empty value appearing in NullFields will be sent to the server as
4917	// null. It is an error if a field in this list has a non-empty value.
4918	// This may be used to include null fields in Patch requests.
4919	NullFields []string `json:"-"`
4920}
4921
4922func (s *DataValidationRule) MarshalJSON() ([]byte, error) {
4923	type NoMethod DataValidationRule
4924	raw := NoMethod(*s)
4925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4926}
4927
4928// DateTimeRule: Allows you to organize the date-time values in a source
4929// data column into buckets based on selected parts of their date or
4930// time values. For example, consider a pivot table showing sales
4931// transactions by date: +----------+--------------+ | Date | SUM of
4932// Sales | +----------+--------------+ | 1/1/2017 | $621.14 | | 2/3/2017
4933// | $708.84 | | 5/8/2017 | $326.84 | ... +----------+--------------+
4934// Applying a date-time group rule with a DateTimeRuleType of YEAR_MONTH
4935// results in the following pivot table. +--------------+--------------+
4936// | Grouped Date | SUM of Sales | +--------------+--------------+ |
4937// 2017-Jan | $53,731.78 | | 2017-Feb | $83,475.32 | | 2017-Mar |
4938// $94,385.05 | ... +--------------+--------------+
4939type DateTimeRule struct {
4940	// Type: The type of date-time grouping to apply.
4941	//
4942	// Possible values:
4943	//   "DATE_TIME_RULE_TYPE_UNSPECIFIED" - The default type, do not use.
4944	//   "SECOND" - Group dates by second, from 0 to 59.
4945	//   "MINUTE" - Group dates by minute, from 0 to 59.
4946	//   "HOUR" - Group dates by hour using a 24-hour system, from 0 to 23.
4947	//   "HOUR_MINUTE" - Group dates by hour and minute using a 24-hour
4948	// system, for example 19:45.
4949	//   "HOUR_MINUTE_AMPM" - Group dates by hour and minute using a 12-hour
4950	// system, for example 7:45 PM. The AM/PM designation is translated
4951	// based on the spreadsheet locale.
4952	//   "DAY_OF_WEEK" - Group dates by day of week, for example Sunday. The
4953	// days of the week will be translated based on the spreadsheet locale.
4954	//   "DAY_OF_YEAR" - Group dates by day of year, from 1 to 366. Note
4955	// that dates after Feb. 29 fall in different buckets in leap years than
4956	// in non-leap years.
4957	//   "DAY_OF_MONTH" - Group dates by day of month, from 1 to 31.
4958	//   "DAY_MONTH" - Group dates by day and month, for example 22-Nov. The
4959	// month is translated based on the spreadsheet locale.
4960	//   "MONTH" - Group dates by month, for example Nov. The month is
4961	// translated based on the spreadsheet locale.
4962	//   "QUARTER" - Group dates by quarter, for example Q1 (which
4963	// represents Jan-Mar).
4964	//   "YEAR" - Group dates by year, for example 2008.
4965	//   "YEAR_MONTH" - Group dates by year and month, for example 2008-Nov.
4966	// The month is translated based on the spreadsheet locale.
4967	//   "YEAR_QUARTER" - Group dates by year and quarter, for example 2008
4968	// Q4.
4969	//   "YEAR_MONTH_DAY" - Group dates by year, month, and day, for example
4970	// 2008-11-22.
4971	Type string `json:"type,omitempty"`
4972
4973	// ForceSendFields is a list of field names (e.g. "Type") to
4974	// unconditionally include in API requests. By default, fields with
4975	// empty values are omitted from API requests. However, any non-pointer,
4976	// non-interface field appearing in ForceSendFields will be sent to the
4977	// server regardless of whether the field is empty or not. This may be
4978	// used to include empty fields in Patch requests.
4979	ForceSendFields []string `json:"-"`
4980
4981	// NullFields is a list of field names (e.g. "Type") to include in API
4982	// requests with the JSON null value. By default, fields with empty
4983	// values are omitted from API requests. However, any field with an
4984	// empty value appearing in NullFields will be sent to the server as
4985	// null. It is an error if a field in this list has a non-empty value.
4986	// This may be used to include null fields in Patch requests.
4987	NullFields []string `json:"-"`
4988}
4989
4990func (s *DateTimeRule) MarshalJSON() ([]byte, error) {
4991	type NoMethod DateTimeRule
4992	raw := NoMethod(*s)
4993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4994}
4995
4996// DeleteBandingRequest: Removes the banded range with the given ID from
4997// the spreadsheet.
4998type DeleteBandingRequest struct {
4999	// BandedRangeId: The ID of the banded range to delete.
5000	BandedRangeId int64 `json:"bandedRangeId,omitempty"`
5001
5002	// ForceSendFields is a list of field names (e.g. "BandedRangeId") to
5003	// unconditionally include in API requests. By default, fields with
5004	// empty values are omitted from API requests. However, any non-pointer,
5005	// non-interface field appearing in ForceSendFields will be sent to the
5006	// server regardless of whether the field is empty or not. This may be
5007	// used to include empty fields in Patch requests.
5008	ForceSendFields []string `json:"-"`
5009
5010	// NullFields is a list of field names (e.g. "BandedRangeId") to include
5011	// in API requests with the JSON null value. By default, fields with
5012	// empty values are omitted from API requests. However, any field with
5013	// an empty value appearing in NullFields will be sent to the server as
5014	// null. It is an error if a field in this list has a non-empty value.
5015	// This may be used to include null fields in Patch requests.
5016	NullFields []string `json:"-"`
5017}
5018
5019func (s *DeleteBandingRequest) MarshalJSON() ([]byte, error) {
5020	type NoMethod DeleteBandingRequest
5021	raw := NoMethod(*s)
5022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5023}
5024
5025// DeleteConditionalFormatRuleRequest: Deletes a conditional format rule
5026// at the given index. All subsequent rules' indexes are decremented.
5027type DeleteConditionalFormatRuleRequest struct {
5028	// Index: The zero-based index of the rule to be deleted.
5029	Index int64 `json:"index,omitempty"`
5030
5031	// SheetId: The sheet the rule is being deleted from.
5032	SheetId int64 `json:"sheetId,omitempty"`
5033
5034	// ForceSendFields is a list of field names (e.g. "Index") to
5035	// unconditionally include in API requests. By default, fields with
5036	// empty values are omitted from API requests. However, any non-pointer,
5037	// non-interface field appearing in ForceSendFields will be sent to the
5038	// server regardless of whether the field is empty or not. This may be
5039	// used to include empty fields in Patch requests.
5040	ForceSendFields []string `json:"-"`
5041
5042	// NullFields is a list of field names (e.g. "Index") to include in API
5043	// requests with the JSON null value. By default, fields with empty
5044	// values are omitted from API requests. However, any field with an
5045	// empty value appearing in NullFields will be sent to the server as
5046	// null. It is an error if a field in this list has a non-empty value.
5047	// This may be used to include null fields in Patch requests.
5048	NullFields []string `json:"-"`
5049}
5050
5051func (s *DeleteConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
5052	type NoMethod DeleteConditionalFormatRuleRequest
5053	raw := NoMethod(*s)
5054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5055}
5056
5057// DeleteConditionalFormatRuleResponse: The result of deleting a
5058// conditional format rule.
5059type DeleteConditionalFormatRuleResponse struct {
5060	// Rule: The rule that was deleted.
5061	Rule *ConditionalFormatRule `json:"rule,omitempty"`
5062
5063	// ForceSendFields is a list of field names (e.g. "Rule") to
5064	// unconditionally include in API requests. By default, fields with
5065	// empty values are omitted from API requests. However, any non-pointer,
5066	// non-interface field appearing in ForceSendFields will be sent to the
5067	// server regardless of whether the field is empty or not. This may be
5068	// used to include empty fields in Patch requests.
5069	ForceSendFields []string `json:"-"`
5070
5071	// NullFields is a list of field names (e.g. "Rule") to include in API
5072	// requests with the JSON null value. By default, fields with empty
5073	// values are omitted from API requests. However, any field with an
5074	// empty value appearing in NullFields will be sent to the server as
5075	// null. It is an error if a field in this list has a non-empty value.
5076	// This may be used to include null fields in Patch requests.
5077	NullFields []string `json:"-"`
5078}
5079
5080func (s *DeleteConditionalFormatRuleResponse) MarshalJSON() ([]byte, error) {
5081	type NoMethod DeleteConditionalFormatRuleResponse
5082	raw := NoMethod(*s)
5083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5084}
5085
5086// DeleteDataSourceRequest: Deletes a data source. The request also
5087// deletes the associated data source sheet, and unlinks all associated
5088// data source objects.
5089type DeleteDataSourceRequest struct {
5090	// DataSourceId: The ID of the data source to delete.
5091	DataSourceId string `json:"dataSourceId,omitempty"`
5092
5093	// ForceSendFields is a list of field names (e.g. "DataSourceId") to
5094	// unconditionally include in API requests. By default, fields with
5095	// empty values are omitted from API requests. However, any non-pointer,
5096	// non-interface field appearing in ForceSendFields will be sent to the
5097	// server regardless of whether the field is empty or not. This may be
5098	// used to include empty fields in Patch requests.
5099	ForceSendFields []string `json:"-"`
5100
5101	// NullFields is a list of field names (e.g. "DataSourceId") to include
5102	// in API requests with the JSON null value. By default, fields with
5103	// empty values are omitted from API requests. However, any field with
5104	// an empty value appearing in NullFields will be sent to the server as
5105	// null. It is an error if a field in this list has a non-empty value.
5106	// This may be used to include null fields in Patch requests.
5107	NullFields []string `json:"-"`
5108}
5109
5110func (s *DeleteDataSourceRequest) MarshalJSON() ([]byte, error) {
5111	type NoMethod DeleteDataSourceRequest
5112	raw := NoMethod(*s)
5113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5114}
5115
5116// DeleteDeveloperMetadataRequest: A request to delete developer
5117// metadata.
5118type DeleteDeveloperMetadataRequest struct {
5119	// DataFilter: The data filter describing the criteria used to select
5120	// which developer metadata entry to delete.
5121	DataFilter *DataFilter `json:"dataFilter,omitempty"`
5122
5123	// ForceSendFields is a list of field names (e.g. "DataFilter") to
5124	// unconditionally include in API requests. By default, fields with
5125	// empty values are omitted from API requests. However, any non-pointer,
5126	// non-interface field appearing in ForceSendFields will be sent to the
5127	// server regardless of whether the field is empty or not. This may be
5128	// used to include empty fields in Patch requests.
5129	ForceSendFields []string `json:"-"`
5130
5131	// NullFields is a list of field names (e.g. "DataFilter") to include in
5132	// API requests with the JSON null value. By default, fields with empty
5133	// values are omitted from API requests. However, any field with an
5134	// empty value appearing in NullFields will be sent to the server as
5135	// null. It is an error if a field in this list has a non-empty value.
5136	// This may be used to include null fields in Patch requests.
5137	NullFields []string `json:"-"`
5138}
5139
5140func (s *DeleteDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
5141	type NoMethod DeleteDeveloperMetadataRequest
5142	raw := NoMethod(*s)
5143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5144}
5145
5146// DeleteDeveloperMetadataResponse: The response from deleting developer
5147// metadata.
5148type DeleteDeveloperMetadataResponse struct {
5149	// DeletedDeveloperMetadata: The metadata that was deleted.
5150	DeletedDeveloperMetadata []*DeveloperMetadata `json:"deletedDeveloperMetadata,omitempty"`
5151
5152	// ForceSendFields is a list of field names (e.g.
5153	// "DeletedDeveloperMetadata") to unconditionally include in API
5154	// requests. By default, fields with empty values are omitted from API
5155	// requests. However, any non-pointer, non-interface field appearing in
5156	// ForceSendFields will be sent to the server regardless of whether the
5157	// field is empty or not. This may be used to include empty fields in
5158	// Patch requests.
5159	ForceSendFields []string `json:"-"`
5160
5161	// NullFields is a list of field names (e.g. "DeletedDeveloperMetadata")
5162	// to include in API requests with the JSON null value. By default,
5163	// fields with empty values are omitted from API requests. However, any
5164	// field with an empty value appearing in NullFields will be sent to the
5165	// server as null. It is an error if a field in this list has a
5166	// non-empty value. This may be used to include null fields in Patch
5167	// requests.
5168	NullFields []string `json:"-"`
5169}
5170
5171func (s *DeleteDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
5172	type NoMethod DeleteDeveloperMetadataResponse
5173	raw := NoMethod(*s)
5174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5175}
5176
5177// DeleteDimensionGroupRequest: Deletes a group over the specified range
5178// by decrementing the depth of the dimensions in the range. For
5179// example, assume the sheet has a depth-1 group over B:E and a depth-2
5180// group over C:D. Deleting a group over D:E leaves the sheet with a
5181// depth-1 group over B:D and a depth-2 group over C:C.
5182type DeleteDimensionGroupRequest struct {
5183	// Range: The range of the group to be deleted.
5184	Range *DimensionRange `json:"range,omitempty"`
5185
5186	// ForceSendFields is a list of field names (e.g. "Range") 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. "Range") 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 *DeleteDimensionGroupRequest) MarshalJSON() ([]byte, error) {
5204	type NoMethod DeleteDimensionGroupRequest
5205	raw := NoMethod(*s)
5206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5207}
5208
5209// DeleteDimensionGroupResponse: The result of deleting a group.
5210type DeleteDimensionGroupResponse struct {
5211	// DimensionGroups: All groups of a dimension after deleting a group
5212	// from that dimension.
5213	DimensionGroups []*DimensionGroup `json:"dimensionGroups,omitempty"`
5214
5215	// ForceSendFields is a list of field names (e.g. "DimensionGroups") to
5216	// unconditionally include in API requests. By default, fields with
5217	// empty values are omitted from API requests. However, any non-pointer,
5218	// non-interface field appearing in ForceSendFields will be sent to the
5219	// server regardless of whether the field is empty or not. This may be
5220	// used to include empty fields in Patch requests.
5221	ForceSendFields []string `json:"-"`
5222
5223	// NullFields is a list of field names (e.g. "DimensionGroups") to
5224	// include in API requests with the JSON null value. By default, fields
5225	// with empty values are omitted from API requests. However, any field
5226	// with an empty value appearing in NullFields will be sent to the
5227	// server as null. It is an error if a field in this list has a
5228	// non-empty value. This may be used to include null fields in Patch
5229	// requests.
5230	NullFields []string `json:"-"`
5231}
5232
5233func (s *DeleteDimensionGroupResponse) MarshalJSON() ([]byte, error) {
5234	type NoMethod DeleteDimensionGroupResponse
5235	raw := NoMethod(*s)
5236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5237}
5238
5239// DeleteDimensionRequest: Deletes the dimensions from the sheet.
5240type DeleteDimensionRequest struct {
5241	// Range: The dimensions to delete from the sheet.
5242	Range *DimensionRange `json:"range,omitempty"`
5243
5244	// ForceSendFields is a list of field names (e.g. "Range") to
5245	// unconditionally include in API requests. By default, fields with
5246	// empty values are omitted from API requests. However, any non-pointer,
5247	// non-interface field appearing in ForceSendFields will be sent to the
5248	// server regardless of whether the field is empty or not. This may be
5249	// used to include empty fields in Patch requests.
5250	ForceSendFields []string `json:"-"`
5251
5252	// NullFields is a list of field names (e.g. "Range") to include in API
5253	// requests with the JSON null value. By default, fields with empty
5254	// values are omitted from API requests. However, any field with an
5255	// empty value appearing in NullFields will be sent to the server as
5256	// null. It is an error if a field in this list has a non-empty value.
5257	// This may be used to include null fields in Patch requests.
5258	NullFields []string `json:"-"`
5259}
5260
5261func (s *DeleteDimensionRequest) MarshalJSON() ([]byte, error) {
5262	type NoMethod DeleteDimensionRequest
5263	raw := NoMethod(*s)
5264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5265}
5266
5267// DeleteDuplicatesRequest: Removes rows within this range that contain
5268// values in the specified columns that are duplicates of values in any
5269// previous row. Rows with identical values but different letter cases,
5270// formatting, or formulas are considered to be duplicates. This request
5271// also removes duplicate rows hidden from view (for example, due to a
5272// filter). When removing duplicates, the first instance of each
5273// duplicate row scanning from the top downwards is kept in the
5274// resulting range. Content outside of the specified range isn't
5275// removed, and rows considered duplicates do not have to be adjacent to
5276// each other in the range.
5277type DeleteDuplicatesRequest struct {
5278	// ComparisonColumns: The columns in the range to analyze for duplicate
5279	// values. If no columns are selected then all columns are analyzed for
5280	// duplicates.
5281	ComparisonColumns []*DimensionRange `json:"comparisonColumns,omitempty"`
5282
5283	// Range: The range to remove duplicates rows from.
5284	Range *GridRange `json:"range,omitempty"`
5285
5286	// ForceSendFields is a list of field names (e.g. "ComparisonColumns")
5287	// to unconditionally include in API requests. By default, fields with
5288	// empty values are omitted from API requests. However, any non-pointer,
5289	// non-interface field appearing in ForceSendFields will be sent to the
5290	// server regardless of whether the field is empty or not. This may be
5291	// used to include empty fields in Patch requests.
5292	ForceSendFields []string `json:"-"`
5293
5294	// NullFields is a list of field names (e.g. "ComparisonColumns") to
5295	// include in API requests with the JSON null value. By default, fields
5296	// with empty values are omitted from API requests. However, any field
5297	// with an empty value appearing in NullFields will be sent to the
5298	// server as null. It is an error if a field in this list has a
5299	// non-empty value. This may be used to include null fields in Patch
5300	// requests.
5301	NullFields []string `json:"-"`
5302}
5303
5304func (s *DeleteDuplicatesRequest) MarshalJSON() ([]byte, error) {
5305	type NoMethod DeleteDuplicatesRequest
5306	raw := NoMethod(*s)
5307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5308}
5309
5310// DeleteDuplicatesResponse: The result of removing duplicates in a
5311// range.
5312type DeleteDuplicatesResponse struct {
5313	// DuplicatesRemovedCount: The number of duplicate rows removed.
5314	DuplicatesRemovedCount int64 `json:"duplicatesRemovedCount,omitempty"`
5315
5316	// ForceSendFields is a list of field names (e.g.
5317	// "DuplicatesRemovedCount") to unconditionally include in API requests.
5318	// By default, fields with empty values are omitted from API requests.
5319	// However, any non-pointer, non-interface field appearing in
5320	// ForceSendFields will be sent to the server regardless of whether the
5321	// field is empty or not. This may be used to include empty fields in
5322	// Patch requests.
5323	ForceSendFields []string `json:"-"`
5324
5325	// NullFields is a list of field names (e.g. "DuplicatesRemovedCount")
5326	// to include in API requests with the JSON null value. By default,
5327	// fields with empty values are omitted from API requests. However, any
5328	// field with an empty value appearing in NullFields will be sent to the
5329	// server as null. It is an error if a field in this list has a
5330	// non-empty value. This may be used to include null fields in Patch
5331	// requests.
5332	NullFields []string `json:"-"`
5333}
5334
5335func (s *DeleteDuplicatesResponse) MarshalJSON() ([]byte, error) {
5336	type NoMethod DeleteDuplicatesResponse
5337	raw := NoMethod(*s)
5338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5339}
5340
5341// DeleteEmbeddedObjectRequest: Deletes the embedded object with the
5342// given ID.
5343type DeleteEmbeddedObjectRequest struct {
5344	// ObjectId: The ID of the embedded object to delete.
5345	ObjectId int64 `json:"objectId,omitempty"`
5346
5347	// ForceSendFields is a list of field names (e.g. "ObjectId") to
5348	// unconditionally include in API requests. By default, fields with
5349	// empty values are omitted from API requests. However, any non-pointer,
5350	// non-interface field appearing in ForceSendFields will be sent to the
5351	// server regardless of whether the field is empty or not. This may be
5352	// used to include empty fields in Patch requests.
5353	ForceSendFields []string `json:"-"`
5354
5355	// NullFields is a list of field names (e.g. "ObjectId") to include in
5356	// API requests with the JSON null value. By default, fields with empty
5357	// values are omitted from API requests. However, any field with an
5358	// empty value appearing in NullFields will be sent to the server as
5359	// null. It is an error if a field in this list has a non-empty value.
5360	// This may be used to include null fields in Patch requests.
5361	NullFields []string `json:"-"`
5362}
5363
5364func (s *DeleteEmbeddedObjectRequest) MarshalJSON() ([]byte, error) {
5365	type NoMethod DeleteEmbeddedObjectRequest
5366	raw := NoMethod(*s)
5367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5368}
5369
5370// DeleteFilterViewRequest: Deletes a particular filter view.
5371type DeleteFilterViewRequest struct {
5372	// FilterId: The ID of the filter to delete.
5373	FilterId int64 `json:"filterId,omitempty"`
5374
5375	// ForceSendFields is a list of field names (e.g. "FilterId") to
5376	// unconditionally include in API requests. By default, fields with
5377	// empty values are omitted from API requests. However, any non-pointer,
5378	// non-interface field appearing in ForceSendFields will be sent to the
5379	// server regardless of whether the field is empty or not. This may be
5380	// used to include empty fields in Patch requests.
5381	ForceSendFields []string `json:"-"`
5382
5383	// NullFields is a list of field names (e.g. "FilterId") to include in
5384	// API requests with the JSON null value. By default, fields with empty
5385	// values are omitted from API requests. However, any field with an
5386	// empty value appearing in NullFields will be sent to the server as
5387	// null. It is an error if a field in this list has a non-empty value.
5388	// This may be used to include null fields in Patch requests.
5389	NullFields []string `json:"-"`
5390}
5391
5392func (s *DeleteFilterViewRequest) MarshalJSON() ([]byte, error) {
5393	type NoMethod DeleteFilterViewRequest
5394	raw := NoMethod(*s)
5395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5396}
5397
5398// DeleteNamedRangeRequest: Removes the named range with the given ID
5399// from the spreadsheet.
5400type DeleteNamedRangeRequest struct {
5401	// NamedRangeId: The ID of the named range to delete.
5402	NamedRangeId string `json:"namedRangeId,omitempty"`
5403
5404	// ForceSendFields is a list of field names (e.g. "NamedRangeId") to
5405	// unconditionally include in API requests. By default, fields with
5406	// empty values are omitted from API requests. However, any non-pointer,
5407	// non-interface field appearing in ForceSendFields will be sent to the
5408	// server regardless of whether the field is empty or not. This may be
5409	// used to include empty fields in Patch requests.
5410	ForceSendFields []string `json:"-"`
5411
5412	// NullFields is a list of field names (e.g. "NamedRangeId") to include
5413	// in API requests with the JSON null value. By default, fields with
5414	// empty values are omitted from API requests. However, any field with
5415	// an empty value appearing in NullFields will be sent to the server as
5416	// null. It is an error if a field in this list has a non-empty value.
5417	// This may be used to include null fields in Patch requests.
5418	NullFields []string `json:"-"`
5419}
5420
5421func (s *DeleteNamedRangeRequest) MarshalJSON() ([]byte, error) {
5422	type NoMethod DeleteNamedRangeRequest
5423	raw := NoMethod(*s)
5424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5425}
5426
5427// DeleteProtectedRangeRequest: Deletes the protected range with the
5428// given ID.
5429type DeleteProtectedRangeRequest struct {
5430	// ProtectedRangeId: The ID of the protected range to delete.
5431	ProtectedRangeId int64 `json:"protectedRangeId,omitempty"`
5432
5433	// ForceSendFields is a list of field names (e.g. "ProtectedRangeId") to
5434	// unconditionally include in API requests. By default, fields with
5435	// empty values are omitted from API requests. However, any non-pointer,
5436	// non-interface field appearing in ForceSendFields will be sent to the
5437	// server regardless of whether the field is empty or not. This may be
5438	// used to include empty fields in Patch requests.
5439	ForceSendFields []string `json:"-"`
5440
5441	// NullFields is a list of field names (e.g. "ProtectedRangeId") to
5442	// include in API requests with the JSON null value. By default, fields
5443	// with empty values are omitted from API requests. However, any field
5444	// with an empty value appearing in NullFields will be sent to the
5445	// server as null. It is an error if a field in this list has a
5446	// non-empty value. This may be used to include null fields in Patch
5447	// requests.
5448	NullFields []string `json:"-"`
5449}
5450
5451func (s *DeleteProtectedRangeRequest) MarshalJSON() ([]byte, error) {
5452	type NoMethod DeleteProtectedRangeRequest
5453	raw := NoMethod(*s)
5454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5455}
5456
5457// DeleteRangeRequest: Deletes a range of cells, shifting other cells
5458// into the deleted area.
5459type DeleteRangeRequest struct {
5460	// Range: The range of cells to delete.
5461	Range *GridRange `json:"range,omitempty"`
5462
5463	// ShiftDimension: The dimension from which deleted cells will be
5464	// replaced with. If ROWS, existing cells will be shifted upward to
5465	// replace the deleted cells. If COLUMNS, existing cells will be shifted
5466	// left to replace the deleted cells.
5467	//
5468	// Possible values:
5469	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
5470	//   "ROWS" - Operates on the rows of a sheet.
5471	//   "COLUMNS" - Operates on the columns of a sheet.
5472	ShiftDimension string `json:"shiftDimension,omitempty"`
5473
5474	// ForceSendFields is a list of field names (e.g. "Range") to
5475	// unconditionally include in API requests. By default, fields with
5476	// empty values are omitted from API requests. However, any non-pointer,
5477	// non-interface field appearing in ForceSendFields will be sent to the
5478	// server regardless of whether the field is empty or not. This may be
5479	// used to include empty fields in Patch requests.
5480	ForceSendFields []string `json:"-"`
5481
5482	// NullFields is a list of field names (e.g. "Range") to include in API
5483	// requests with the JSON null value. By default, fields with empty
5484	// values are omitted from API requests. However, any field with an
5485	// empty value appearing in NullFields will be sent to the server as
5486	// null. It is an error if a field in this list has a non-empty value.
5487	// This may be used to include null fields in Patch requests.
5488	NullFields []string `json:"-"`
5489}
5490
5491func (s *DeleteRangeRequest) MarshalJSON() ([]byte, error) {
5492	type NoMethod DeleteRangeRequest
5493	raw := NoMethod(*s)
5494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5495}
5496
5497// DeleteSheetRequest: Deletes the requested sheet.
5498type DeleteSheetRequest struct {
5499	// SheetId: The ID of the sheet to delete. If the sheet is of
5500	// SheetType.DATA_SOURCE type, the associated DataSource is also
5501	// deleted.
5502	SheetId int64 `json:"sheetId,omitempty"`
5503
5504	// ForceSendFields is a list of field names (e.g. "SheetId") to
5505	// unconditionally include in API requests. By default, fields with
5506	// empty values are omitted from API requests. However, any non-pointer,
5507	// non-interface field appearing in ForceSendFields will be sent to the
5508	// server regardless of whether the field is empty or not. This may be
5509	// used to include empty fields in Patch requests.
5510	ForceSendFields []string `json:"-"`
5511
5512	// NullFields is a list of field names (e.g. "SheetId") to include in
5513	// API requests with the JSON null value. By default, fields with empty
5514	// values are omitted from API requests. However, any field with an
5515	// empty value appearing in NullFields will be sent to the server as
5516	// null. It is an error if a field in this list has a non-empty value.
5517	// This may be used to include null fields in Patch requests.
5518	NullFields []string `json:"-"`
5519}
5520
5521func (s *DeleteSheetRequest) MarshalJSON() ([]byte, error) {
5522	type NoMethod DeleteSheetRequest
5523	raw := NoMethod(*s)
5524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5525}
5526
5527// DeveloperMetadata: Developer metadata associated with a location or
5528// object in a spreadsheet. Developer metadata may be used to associate
5529// arbitrary data with various parts of a spreadsheet and will remain
5530// associated at those locations as they move around and the spreadsheet
5531// is edited. For example, if developer metadata is associated with row
5532// 5 and another row is then subsequently inserted above row 5, that
5533// original metadata will still be associated with the row it was first
5534// associated with (what is now row 6). If the associated object is
5535// deleted its metadata is deleted too.
5536type DeveloperMetadata struct {
5537	// Location: The location where the metadata is associated.
5538	Location *DeveloperMetadataLocation `json:"location,omitempty"`
5539
5540	// MetadataId: The spreadsheet-scoped unique ID that identifies the
5541	// metadata. IDs may be specified when metadata is created, otherwise
5542	// one will be randomly generated and assigned. Must be positive.
5543	MetadataId int64 `json:"metadataId,omitempty"`
5544
5545	// MetadataKey: The metadata key. There may be multiple metadata in a
5546	// spreadsheet with the same key. Developer metadata must always have a
5547	// key specified.
5548	MetadataKey string `json:"metadataKey,omitempty"`
5549
5550	// MetadataValue: Data associated with the metadata's key.
5551	MetadataValue string `json:"metadataValue,omitempty"`
5552
5553	// Visibility: The metadata visibility. Developer metadata must always
5554	// have a visibility specified.
5555	//
5556	// Possible values:
5557	//   "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED" - Default value.
5558	//   "DOCUMENT" - Document-visible metadata is accessible from any
5559	// developer project with access to the document.
5560	//   "PROJECT" - Project-visible metadata is only visible to and
5561	// accessible by the developer project that created the metadata.
5562	Visibility string `json:"visibility,omitempty"`
5563
5564	// ServerResponse contains the HTTP response code and headers from the
5565	// server.
5566	googleapi.ServerResponse `json:"-"`
5567
5568	// ForceSendFields is a list of field names (e.g. "Location") to
5569	// unconditionally include in API requests. By default, fields with
5570	// empty values are omitted from API requests. However, any non-pointer,
5571	// non-interface field appearing in ForceSendFields will be sent to the
5572	// server regardless of whether the field is empty or not. This may be
5573	// used to include empty fields in Patch requests.
5574	ForceSendFields []string `json:"-"`
5575
5576	// NullFields is a list of field names (e.g. "Location") to include in
5577	// API requests with the JSON null value. By default, fields with empty
5578	// values are omitted from API requests. However, any field with an
5579	// empty value appearing in NullFields will be sent to the server as
5580	// null. It is an error if a field in this list has a non-empty value.
5581	// This may be used to include null fields in Patch requests.
5582	NullFields []string `json:"-"`
5583}
5584
5585func (s *DeveloperMetadata) MarshalJSON() ([]byte, error) {
5586	type NoMethod DeveloperMetadata
5587	raw := NoMethod(*s)
5588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5589}
5590
5591// DeveloperMetadataLocation: A location where metadata may be
5592// associated in a spreadsheet.
5593type DeveloperMetadataLocation struct {
5594	// DimensionRange: Represents the row or column when metadata is
5595	// associated with a dimension. The specified DimensionRange must
5596	// represent a single row or column; it cannot be unbounded or span
5597	// multiple rows or columns.
5598	DimensionRange *DimensionRange `json:"dimensionRange,omitempty"`
5599
5600	// LocationType: The type of location this object represents. This field
5601	// is read-only.
5602	//
5603	// Possible values:
5604	//   "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED" - Default value.
5605	//   "ROW" - Developer metadata associated on an entire row dimension.
5606	//   "COLUMN" - Developer metadata associated on an entire column
5607	// dimension.
5608	//   "SHEET" - Developer metadata associated on an entire sheet.
5609	//   "SPREADSHEET" - Developer metadata associated on the entire
5610	// spreadsheet.
5611	LocationType string `json:"locationType,omitempty"`
5612
5613	// SheetId: The ID of the sheet when metadata is associated with an
5614	// entire sheet.
5615	SheetId int64 `json:"sheetId,omitempty"`
5616
5617	// Spreadsheet: True when metadata is associated with an entire
5618	// spreadsheet.
5619	Spreadsheet bool `json:"spreadsheet,omitempty"`
5620
5621	// ForceSendFields is a list of field names (e.g. "DimensionRange") to
5622	// unconditionally include in API requests. By default, fields with
5623	// empty values are omitted from API requests. However, any non-pointer,
5624	// non-interface field appearing in ForceSendFields will be sent to the
5625	// server regardless of whether the field is empty or not. This may be
5626	// used to include empty fields in Patch requests.
5627	ForceSendFields []string `json:"-"`
5628
5629	// NullFields is a list of field names (e.g. "DimensionRange") to
5630	// include in API requests with the JSON null value. By default, fields
5631	// with empty values are omitted from API requests. However, any field
5632	// with an empty value appearing in NullFields will be sent to the
5633	// server as null. It is an error if a field in this list has a
5634	// non-empty value. This may be used to include null fields in Patch
5635	// requests.
5636	NullFields []string `json:"-"`
5637}
5638
5639func (s *DeveloperMetadataLocation) MarshalJSON() ([]byte, error) {
5640	type NoMethod DeveloperMetadataLocation
5641	raw := NoMethod(*s)
5642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5643}
5644
5645// DeveloperMetadataLookup: Selects DeveloperMetadata that matches all
5646// of the specified fields. For example, if only a metadata ID is
5647// specified this considers the DeveloperMetadata with that particular
5648// unique ID. If a metadata key is specified, this considers all
5649// developer metadata with that key. If a key, visibility, and location
5650// type are all specified, this considers all developer metadata with
5651// that key and visibility that are associated with a location of that
5652// type. In general, this selects all DeveloperMetadata that matches the
5653// intersection of all the specified fields; any field or combination of
5654// fields may be specified.
5655type DeveloperMetadataLookup struct {
5656	// LocationMatchingStrategy: Determines how this lookup matches the
5657	// location. If this field is specified as EXACT, only developer
5658	// metadata associated on the exact location specified is matched. If
5659	// this field is specified to INTERSECTING, developer metadata
5660	// associated on intersecting locations is also matched. If left
5661	// unspecified, this field assumes a default value of INTERSECTING. If
5662	// this field is specified, a metadataLocation must also be specified.
5663	//
5664	// Possible values:
5665	//   "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED" -
5666	// Default value. This value must not be used.
5667	//   "EXACT_LOCATION" - Indicates that a specified location should be
5668	// matched exactly. For example, if row three were specified as a
5669	// location this matching strategy would only match developer metadata
5670	// also associated on row three. Metadata associated on other locations
5671	// would not be considered.
5672	//   "INTERSECTING_LOCATION" - Indicates that a specified location
5673	// should match that exact location as well as any intersecting
5674	// locations. For example, if row three were specified as a location
5675	// this matching strategy would match developer metadata associated on
5676	// row three as well as metadata associated on locations that intersect
5677	// row three. If, for instance, there was developer metadata associated
5678	// on column B, this matching strategy would also match that location
5679	// because column B intersects row three.
5680	LocationMatchingStrategy string `json:"locationMatchingStrategy,omitempty"`
5681
5682	// LocationType: Limits the selected developer metadata to those entries
5683	// which are associated with locations of the specified type. For
5684	// example, when this field is specified as ROW this lookup only
5685	// considers developer metadata associated on rows. If the field is left
5686	// unspecified, all location types are considered. This field cannot be
5687	// specified as SPREADSHEET when the locationMatchingStrategy is
5688	// specified as INTERSECTING or when the metadataLocation is specified
5689	// as a non-spreadsheet location: spreadsheet metadata cannot intersect
5690	// any other developer metadata location. This field also must be left
5691	// unspecified when the locationMatchingStrategy is specified as EXACT.
5692	//
5693	// Possible values:
5694	//   "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED" - Default value.
5695	//   "ROW" - Developer metadata associated on an entire row dimension.
5696	//   "COLUMN" - Developer metadata associated on an entire column
5697	// dimension.
5698	//   "SHEET" - Developer metadata associated on an entire sheet.
5699	//   "SPREADSHEET" - Developer metadata associated on the entire
5700	// spreadsheet.
5701	LocationType string `json:"locationType,omitempty"`
5702
5703	// MetadataId: Limits the selected developer metadata to that which has
5704	// a matching DeveloperMetadata.metadata_id.
5705	MetadataId int64 `json:"metadataId,omitempty"`
5706
5707	// MetadataKey: Limits the selected developer metadata to that which has
5708	// a matching DeveloperMetadata.metadata_key.
5709	MetadataKey string `json:"metadataKey,omitempty"`
5710
5711	// MetadataLocation: Limits the selected developer metadata to those
5712	// entries associated with the specified location. This field either
5713	// matches exact locations or all intersecting locations according the
5714	// specified locationMatchingStrategy.
5715	MetadataLocation *DeveloperMetadataLocation `json:"metadataLocation,omitempty"`
5716
5717	// MetadataValue: Limits the selected developer metadata to that which
5718	// has a matching DeveloperMetadata.metadata_value.
5719	MetadataValue string `json:"metadataValue,omitempty"`
5720
5721	// Visibility: Limits the selected developer metadata to that which has
5722	// a matching DeveloperMetadata.visibility. If left unspecified, all
5723	// developer metadata visibile to the requesting project is considered.
5724	//
5725	// Possible values:
5726	//   "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED" - Default value.
5727	//   "DOCUMENT" - Document-visible metadata is accessible from any
5728	// developer project with access to the document.
5729	//   "PROJECT" - Project-visible metadata is only visible to and
5730	// accessible by the developer project that created the metadata.
5731	Visibility string `json:"visibility,omitempty"`
5732
5733	// ForceSendFields is a list of field names (e.g.
5734	// "LocationMatchingStrategy") to unconditionally include in API
5735	// requests. By default, fields with empty values are omitted from API
5736	// requests. However, any non-pointer, non-interface field appearing in
5737	// ForceSendFields will be sent to the server regardless of whether the
5738	// field is empty or not. This may be used to include empty fields in
5739	// Patch requests.
5740	ForceSendFields []string `json:"-"`
5741
5742	// NullFields is a list of field names (e.g. "LocationMatchingStrategy")
5743	// to include in API requests with the JSON null value. By default,
5744	// fields with empty values are omitted from API requests. However, any
5745	// field with an empty value appearing in NullFields will be sent to the
5746	// server as null. It is an error if a field in this list has a
5747	// non-empty value. This may be used to include null fields in Patch
5748	// requests.
5749	NullFields []string `json:"-"`
5750}
5751
5752func (s *DeveloperMetadataLookup) MarshalJSON() ([]byte, error) {
5753	type NoMethod DeveloperMetadataLookup
5754	raw := NoMethod(*s)
5755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5756}
5757
5758// DimensionGroup: A group over an interval of rows or columns on a
5759// sheet, which can contain or be contained within other groups. A group
5760// can be collapsed or expanded as a unit on the sheet.
5761type DimensionGroup struct {
5762	// Collapsed: This field is true if this group is collapsed. A collapsed
5763	// group remains collapsed if an overlapping group at a shallower depth
5764	// is expanded. A true value does not imply that all dimensions within
5765	// the group are hidden, since a dimension's visibility can change
5766	// independently from this group property. However, when this property
5767	// is updated, all dimensions within it are set to hidden if this field
5768	// is true, or set to visible if this field is false.
5769	Collapsed bool `json:"collapsed,omitempty"`
5770
5771	// Depth: The depth of the group, representing how many groups have a
5772	// range that wholly contains the range of this group.
5773	Depth int64 `json:"depth,omitempty"`
5774
5775	// Range: The range over which this group exists.
5776	Range *DimensionRange `json:"range,omitempty"`
5777
5778	// ForceSendFields is a list of field names (e.g. "Collapsed") to
5779	// unconditionally include in API requests. By default, fields with
5780	// empty values are omitted from API requests. However, any non-pointer,
5781	// non-interface field appearing in ForceSendFields will be sent to the
5782	// server regardless of whether the field is empty or not. This may be
5783	// used to include empty fields in Patch requests.
5784	ForceSendFields []string `json:"-"`
5785
5786	// NullFields is a list of field names (e.g. "Collapsed") to include in
5787	// API requests with the JSON null value. By default, fields with empty
5788	// values are omitted from API requests. However, any field with an
5789	// empty value appearing in NullFields will be sent to the server as
5790	// null. It is an error if a field in this list has a non-empty value.
5791	// This may be used to include null fields in Patch requests.
5792	NullFields []string `json:"-"`
5793}
5794
5795func (s *DimensionGroup) MarshalJSON() ([]byte, error) {
5796	type NoMethod DimensionGroup
5797	raw := NoMethod(*s)
5798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5799}
5800
5801// DimensionProperties: Properties about a dimension.
5802type DimensionProperties struct {
5803	// DataSourceColumnReference: Output only. If set, this is a column in a
5804	// data source sheet.
5805	DataSourceColumnReference *DataSourceColumnReference `json:"dataSourceColumnReference,omitempty"`
5806
5807	// DeveloperMetadata: The developer metadata associated with a single
5808	// row or column.
5809	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
5810
5811	// HiddenByFilter: True if this dimension is being filtered. This field
5812	// is read-only.
5813	HiddenByFilter bool `json:"hiddenByFilter,omitempty"`
5814
5815	// HiddenByUser: True if this dimension is explicitly hidden.
5816	HiddenByUser bool `json:"hiddenByUser,omitempty"`
5817
5818	// PixelSize: The height (if a row) or width (if a column) of the
5819	// dimension in pixels.
5820	PixelSize int64 `json:"pixelSize,omitempty"`
5821
5822	// ForceSendFields is a list of field names (e.g.
5823	// "DataSourceColumnReference") to unconditionally include in API
5824	// requests. By default, fields with empty values are omitted from API
5825	// requests. However, any non-pointer, non-interface field appearing in
5826	// ForceSendFields will be sent to the server regardless of whether the
5827	// field is empty or not. This may be used to include empty fields in
5828	// Patch requests.
5829	ForceSendFields []string `json:"-"`
5830
5831	// NullFields is a list of field names (e.g.
5832	// "DataSourceColumnReference") to include in API requests with the JSON
5833	// null value. By default, fields with empty values are omitted from API
5834	// requests. However, any field with an empty value appearing in
5835	// NullFields will be sent to the server as null. It is an error if a
5836	// field in this list has a non-empty value. This may be used to include
5837	// null fields in Patch requests.
5838	NullFields []string `json:"-"`
5839}
5840
5841func (s *DimensionProperties) MarshalJSON() ([]byte, error) {
5842	type NoMethod DimensionProperties
5843	raw := NoMethod(*s)
5844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5845}
5846
5847// DimensionRange: A range along a single dimension on a sheet. All
5848// indexes are zero-based. Indexes are half open: the start index is
5849// inclusive and the end index is exclusive. Missing indexes indicate
5850// the range is unbounded on that side.
5851type DimensionRange struct {
5852	// Dimension: The dimension of the span.
5853	//
5854	// Possible values:
5855	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
5856	//   "ROWS" - Operates on the rows of a sheet.
5857	//   "COLUMNS" - Operates on the columns of a sheet.
5858	Dimension string `json:"dimension,omitempty"`
5859
5860	// EndIndex: The end (exclusive) of the span, or not set if unbounded.
5861	EndIndex int64 `json:"endIndex,omitempty"`
5862
5863	// SheetId: The sheet this span is on.
5864	SheetId int64 `json:"sheetId,omitempty"`
5865
5866	// StartIndex: The start (inclusive) of the span, or not set if
5867	// unbounded.
5868	StartIndex int64 `json:"startIndex,omitempty"`
5869
5870	// ForceSendFields is a list of field names (e.g. "Dimension") to
5871	// unconditionally include in API requests. By default, fields with
5872	// empty values are omitted from API requests. However, any non-pointer,
5873	// non-interface field appearing in ForceSendFields will be sent to the
5874	// server regardless of whether the field is empty or not. This may be
5875	// used to include empty fields in Patch requests.
5876	ForceSendFields []string `json:"-"`
5877
5878	// NullFields is a list of field names (e.g. "Dimension") to include in
5879	// API requests with the JSON null value. By default, fields with empty
5880	// values are omitted from API requests. However, any field with an
5881	// empty value appearing in NullFields will be sent to the server as
5882	// null. It is an error if a field in this list has a non-empty value.
5883	// This may be used to include null fields in Patch requests.
5884	NullFields []string `json:"-"`
5885}
5886
5887func (s *DimensionRange) MarshalJSON() ([]byte, error) {
5888	type NoMethod DimensionRange
5889	raw := NoMethod(*s)
5890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5891}
5892
5893// DuplicateFilterViewRequest: Duplicates a particular filter view.
5894type DuplicateFilterViewRequest struct {
5895	// FilterId: The ID of the filter being duplicated.
5896	FilterId int64 `json:"filterId,omitempty"`
5897
5898	// ForceSendFields is a list of field names (e.g. "FilterId") to
5899	// unconditionally include in API requests. By default, fields with
5900	// empty values are omitted from API requests. However, any non-pointer,
5901	// non-interface field appearing in ForceSendFields will be sent to the
5902	// server regardless of whether the field is empty or not. This may be
5903	// used to include empty fields in Patch requests.
5904	ForceSendFields []string `json:"-"`
5905
5906	// NullFields is a list of field names (e.g. "FilterId") to include in
5907	// API requests with the JSON null value. By default, fields with empty
5908	// values are omitted from API requests. However, any field with an
5909	// empty value appearing in NullFields will be sent to the server as
5910	// null. It is an error if a field in this list has a non-empty value.
5911	// This may be used to include null fields in Patch requests.
5912	NullFields []string `json:"-"`
5913}
5914
5915func (s *DuplicateFilterViewRequest) MarshalJSON() ([]byte, error) {
5916	type NoMethod DuplicateFilterViewRequest
5917	raw := NoMethod(*s)
5918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5919}
5920
5921// DuplicateFilterViewResponse: The result of a filter view being
5922// duplicated.
5923type DuplicateFilterViewResponse struct {
5924	// Filter: The newly created filter.
5925	Filter *FilterView `json:"filter,omitempty"`
5926
5927	// ForceSendFields is a list of field names (e.g. "Filter") to
5928	// unconditionally include in API requests. By default, fields with
5929	// empty values are omitted from API requests. However, any non-pointer,
5930	// non-interface field appearing in ForceSendFields will be sent to the
5931	// server regardless of whether the field is empty or not. This may be
5932	// used to include empty fields in Patch requests.
5933	ForceSendFields []string `json:"-"`
5934
5935	// NullFields is a list of field names (e.g. "Filter") to include in API
5936	// requests with the JSON null value. By default, fields with empty
5937	// values are omitted from API requests. However, any field with an
5938	// empty value appearing in NullFields will be sent to the server as
5939	// null. It is an error if a field in this list has a non-empty value.
5940	// This may be used to include null fields in Patch requests.
5941	NullFields []string `json:"-"`
5942}
5943
5944func (s *DuplicateFilterViewResponse) MarshalJSON() ([]byte, error) {
5945	type NoMethod DuplicateFilterViewResponse
5946	raw := NoMethod(*s)
5947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5948}
5949
5950// DuplicateSheetRequest: Duplicates the contents of a sheet.
5951type DuplicateSheetRequest struct {
5952	// InsertSheetIndex: The zero-based index where the new sheet should be
5953	// inserted. The index of all sheets after this are incremented.
5954	InsertSheetIndex int64 `json:"insertSheetIndex,omitempty"`
5955
5956	// NewSheetId: If set, the ID of the new sheet. If not set, an ID is
5957	// chosen. If set, the ID must not conflict with any existing sheet ID.
5958	// If set, it must be non-negative.
5959	NewSheetId int64 `json:"newSheetId,omitempty"`
5960
5961	// NewSheetName: The name of the new sheet. If empty, a new name is
5962	// chosen for you.
5963	NewSheetName string `json:"newSheetName,omitempty"`
5964
5965	// SourceSheetId: The sheet to duplicate. If the source sheet is of
5966	// DATA_SOURCE type, its backing DataSource is also duplicated and
5967	// associated with the new copy of the sheet. No data execution is
5968	// triggered, the grid data of this sheet is also copied over but only
5969	// available after the batch request completes.
5970	SourceSheetId int64 `json:"sourceSheetId,omitempty"`
5971
5972	// ForceSendFields is a list of field names (e.g. "InsertSheetIndex") to
5973	// unconditionally include in API requests. By default, fields with
5974	// empty values are omitted from API requests. However, any non-pointer,
5975	// non-interface field appearing in ForceSendFields will be sent to the
5976	// server regardless of whether the field is empty or not. This may be
5977	// used to include empty fields in Patch requests.
5978	ForceSendFields []string `json:"-"`
5979
5980	// NullFields is a list of field names (e.g. "InsertSheetIndex") to
5981	// include in API requests with the JSON null value. By default, fields
5982	// with empty values are omitted from API requests. However, any field
5983	// with an empty value appearing in NullFields will be sent to the
5984	// server as null. It is an error if a field in this list has a
5985	// non-empty value. This may be used to include null fields in Patch
5986	// requests.
5987	NullFields []string `json:"-"`
5988}
5989
5990func (s *DuplicateSheetRequest) MarshalJSON() ([]byte, error) {
5991	type NoMethod DuplicateSheetRequest
5992	raw := NoMethod(*s)
5993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5994}
5995
5996// DuplicateSheetResponse: The result of duplicating a sheet.
5997type DuplicateSheetResponse struct {
5998	// Properties: The properties of the duplicate sheet.
5999	Properties *SheetProperties `json:"properties,omitempty"`
6000
6001	// ForceSendFields is a list of field names (e.g. "Properties") to
6002	// unconditionally include in API requests. By default, fields with
6003	// empty values are omitted from API requests. However, any non-pointer,
6004	// non-interface field appearing in ForceSendFields will be sent to the
6005	// server regardless of whether the field is empty or not. This may be
6006	// used to include empty fields in Patch requests.
6007	ForceSendFields []string `json:"-"`
6008
6009	// NullFields is a list of field names (e.g. "Properties") to include in
6010	// API requests with the JSON null value. By default, fields with empty
6011	// values are omitted from API requests. However, any field with an
6012	// empty value appearing in NullFields will be sent to the server as
6013	// null. It is an error if a field in this list has a non-empty value.
6014	// This may be used to include null fields in Patch requests.
6015	NullFields []string `json:"-"`
6016}
6017
6018func (s *DuplicateSheetResponse) MarshalJSON() ([]byte, error) {
6019	type NoMethod DuplicateSheetResponse
6020	raw := NoMethod(*s)
6021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6022}
6023
6024// Editors: The editors of a protected range.
6025type Editors struct {
6026	// DomainUsersCanEdit: True if anyone in the document's domain has edit
6027	// access to the protected range. Domain protection is only supported on
6028	// documents within a domain.
6029	DomainUsersCanEdit bool `json:"domainUsersCanEdit,omitempty"`
6030
6031	// Groups: The email addresses of groups with edit access to the
6032	// protected range.
6033	Groups []string `json:"groups,omitempty"`
6034
6035	// Users: The email addresses of users with edit access to the protected
6036	// range.
6037	Users []string `json:"users,omitempty"`
6038
6039	// ForceSendFields is a list of field names (e.g. "DomainUsersCanEdit")
6040	// to unconditionally include in API requests. By default, fields with
6041	// empty values are omitted from API requests. However, any non-pointer,
6042	// non-interface field appearing in ForceSendFields will be sent to the
6043	// server regardless of whether the field is empty or not. This may be
6044	// used to include empty fields in Patch requests.
6045	ForceSendFields []string `json:"-"`
6046
6047	// NullFields is a list of field names (e.g. "DomainUsersCanEdit") to
6048	// include in API requests with the JSON null value. By default, fields
6049	// with empty values are omitted from API requests. However, any field
6050	// with an empty value appearing in NullFields will be sent to the
6051	// server as null. It is an error if a field in this list has a
6052	// non-empty value. This may be used to include null fields in Patch
6053	// requests.
6054	NullFields []string `json:"-"`
6055}
6056
6057func (s *Editors) MarshalJSON() ([]byte, error) {
6058	type NoMethod Editors
6059	raw := NoMethod(*s)
6060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6061}
6062
6063// EmbeddedChart: A chart embedded in a sheet.
6064type EmbeddedChart struct {
6065	// Border: The border of the chart.
6066	Border *EmbeddedObjectBorder `json:"border,omitempty"`
6067
6068	// ChartId: The ID of the chart.
6069	ChartId int64 `json:"chartId,omitempty"`
6070
6071	// Position: The position of the chart.
6072	Position *EmbeddedObjectPosition `json:"position,omitempty"`
6073
6074	// Spec: The specification of the chart.
6075	Spec *ChartSpec `json:"spec,omitempty"`
6076
6077	// ForceSendFields is a list of field names (e.g. "Border") to
6078	// unconditionally include in API requests. By default, fields with
6079	// empty values are omitted from API requests. However, any non-pointer,
6080	// non-interface field appearing in ForceSendFields will be sent to the
6081	// server regardless of whether the field is empty or not. This may be
6082	// used to include empty fields in Patch requests.
6083	ForceSendFields []string `json:"-"`
6084
6085	// NullFields is a list of field names (e.g. "Border") to include in API
6086	// requests with the JSON null value. By default, fields with empty
6087	// values are omitted from API requests. However, any field with an
6088	// empty value appearing in NullFields will be sent to the server as
6089	// null. It is an error if a field in this list has a non-empty value.
6090	// This may be used to include null fields in Patch requests.
6091	NullFields []string `json:"-"`
6092}
6093
6094func (s *EmbeddedChart) MarshalJSON() ([]byte, error) {
6095	type NoMethod EmbeddedChart
6096	raw := NoMethod(*s)
6097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6098}
6099
6100// EmbeddedObjectBorder: A border along an embedded object.
6101type EmbeddedObjectBorder struct {
6102	// Color: The color of the border.
6103	Color *Color `json:"color,omitempty"`
6104
6105	// ColorStyle: The color of the border. If color is also set, this field
6106	// takes precedence.
6107	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
6108
6109	// ForceSendFields is a list of field names (e.g. "Color") to
6110	// unconditionally include in API requests. By default, fields with
6111	// empty values are omitted from API requests. However, any non-pointer,
6112	// non-interface field appearing in ForceSendFields will be sent to the
6113	// server regardless of whether the field is empty or not. This may be
6114	// used to include empty fields in Patch requests.
6115	ForceSendFields []string `json:"-"`
6116
6117	// NullFields is a list of field names (e.g. "Color") to include in API
6118	// requests with the JSON null value. By default, fields with empty
6119	// values are omitted from API requests. However, any field with an
6120	// empty value appearing in NullFields will be sent to the server as
6121	// null. It is an error if a field in this list has a non-empty value.
6122	// This may be used to include null fields in Patch requests.
6123	NullFields []string `json:"-"`
6124}
6125
6126func (s *EmbeddedObjectBorder) MarshalJSON() ([]byte, error) {
6127	type NoMethod EmbeddedObjectBorder
6128	raw := NoMethod(*s)
6129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6130}
6131
6132// EmbeddedObjectPosition: The position of an embedded object such as a
6133// chart.
6134type EmbeddedObjectPosition struct {
6135	// NewSheet: If true, the embedded object is put on a new sheet whose ID
6136	// is chosen for you. Used only when writing.
6137	NewSheet bool `json:"newSheet,omitempty"`
6138
6139	// OverlayPosition: The position at which the object is overlaid on top
6140	// of a grid.
6141	OverlayPosition *OverlayPosition `json:"overlayPosition,omitempty"`
6142
6143	// SheetId: The sheet this is on. Set only if the embedded object is on
6144	// its own sheet. Must be non-negative.
6145	SheetId int64 `json:"sheetId,omitempty"`
6146
6147	// ForceSendFields is a list of field names (e.g. "NewSheet") to
6148	// unconditionally include in API requests. By default, fields with
6149	// empty values are omitted from API requests. However, any non-pointer,
6150	// non-interface field appearing in ForceSendFields will be sent to the
6151	// server regardless of whether the field is empty or not. This may be
6152	// used to include empty fields in Patch requests.
6153	ForceSendFields []string `json:"-"`
6154
6155	// NullFields is a list of field names (e.g. "NewSheet") to include in
6156	// API requests with the JSON null value. By default, fields with empty
6157	// values are omitted from API requests. However, any field with an
6158	// empty value appearing in NullFields will be sent to the server as
6159	// null. It is an error if a field in this list has a non-empty value.
6160	// This may be used to include null fields in Patch requests.
6161	NullFields []string `json:"-"`
6162}
6163
6164func (s *EmbeddedObjectPosition) MarshalJSON() ([]byte, error) {
6165	type NoMethod EmbeddedObjectPosition
6166	raw := NoMethod(*s)
6167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6168}
6169
6170// ErrorValue: An error in a cell.
6171type ErrorValue struct {
6172	// Message: A message with more information about the error (in the
6173	// spreadsheet's locale).
6174	Message string `json:"message,omitempty"`
6175
6176	// Type: The type of error.
6177	//
6178	// Possible values:
6179	//   "ERROR_TYPE_UNSPECIFIED" - The default error type, do not use this.
6180	//   "ERROR" - Corresponds to the `#ERROR!` error.
6181	//   "NULL_VALUE" - Corresponds to the `#NULL!` error.
6182	//   "DIVIDE_BY_ZERO" - Corresponds to the `#DIV/0` error.
6183	//   "VALUE" - Corresponds to the `#VALUE!` error.
6184	//   "REF" - Corresponds to the `#REF!` error.
6185	//   "NAME" - Corresponds to the `#NAME?` error.
6186	//   "NUM" - Corresponds to the `#NUM!` error.
6187	//   "N_A" - Corresponds to the `#N/A` error.
6188	//   "LOADING" - Corresponds to the `Loading...` state.
6189	Type string `json:"type,omitempty"`
6190
6191	// ForceSendFields is a list of field names (e.g. "Message") to
6192	// unconditionally include in API requests. By default, fields with
6193	// empty values are omitted from API requests. However, any non-pointer,
6194	// non-interface field appearing in ForceSendFields will be sent to the
6195	// server regardless of whether the field is empty or not. This may be
6196	// used to include empty fields in Patch requests.
6197	ForceSendFields []string `json:"-"`
6198
6199	// NullFields is a list of field names (e.g. "Message") to include in
6200	// API requests with the JSON null value. By default, fields with empty
6201	// values are omitted from API requests. However, any field with an
6202	// empty value appearing in NullFields will be sent to the server as
6203	// null. It is an error if a field in this list has a non-empty value.
6204	// This may be used to include null fields in Patch requests.
6205	NullFields []string `json:"-"`
6206}
6207
6208func (s *ErrorValue) MarshalJSON() ([]byte, error) {
6209	type NoMethod ErrorValue
6210	raw := NoMethod(*s)
6211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6212}
6213
6214// ExtendedValue: The kinds of value that a cell in a spreadsheet can
6215// have.
6216type ExtendedValue struct {
6217	// BoolValue: Represents a boolean value.
6218	BoolValue *bool `json:"boolValue,omitempty"`
6219
6220	// ErrorValue: Represents an error. This field is read-only.
6221	ErrorValue *ErrorValue `json:"errorValue,omitempty"`
6222
6223	// FormulaValue: Represents a formula.
6224	FormulaValue *string `json:"formulaValue,omitempty"`
6225
6226	// NumberValue: Represents a double value. Note: Dates, Times and
6227	// DateTimes are represented as doubles in "serial number" format.
6228	NumberValue *float64 `json:"numberValue,omitempty"`
6229
6230	// StringValue: Represents a string value. Leading single quotes are not
6231	// included. For example, if the user typed `'123` into the UI, this
6232	// would be represented as a `stringValue` of "123".
6233	StringValue *string `json:"stringValue,omitempty"`
6234
6235	// ForceSendFields is a list of field names (e.g. "BoolValue") to
6236	// unconditionally include in API requests. By default, fields with
6237	// empty values are omitted from API requests. However, any non-pointer,
6238	// non-interface field appearing in ForceSendFields will be sent to the
6239	// server regardless of whether the field is empty or not. This may be
6240	// used to include empty fields in Patch requests.
6241	ForceSendFields []string `json:"-"`
6242
6243	// NullFields is a list of field names (e.g. "BoolValue") to include in
6244	// API requests with the JSON null value. By default, fields with empty
6245	// values are omitted from API requests. However, any field with an
6246	// empty value appearing in NullFields will be sent to the server as
6247	// null. It is an error if a field in this list has a non-empty value.
6248	// This may be used to include null fields in Patch requests.
6249	NullFields []string `json:"-"`
6250}
6251
6252func (s *ExtendedValue) MarshalJSON() ([]byte, error) {
6253	type NoMethod ExtendedValue
6254	raw := NoMethod(*s)
6255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6256}
6257
6258func (s *ExtendedValue) UnmarshalJSON(data []byte) error {
6259	type NoMethod ExtendedValue
6260	var s1 struct {
6261		NumberValue *gensupport.JSONFloat64 `json:"numberValue"`
6262		*NoMethod
6263	}
6264	s1.NoMethod = (*NoMethod)(s)
6265	if err := json.Unmarshal(data, &s1); err != nil {
6266		return err
6267	}
6268	if s1.NumberValue != nil {
6269		s.NumberValue = (*float64)(s1.NumberValue)
6270	}
6271	return nil
6272}
6273
6274// FilterCriteria: Criteria for showing/hiding rows in a filter or
6275// filter view.
6276type FilterCriteria struct {
6277	// Condition: A condition that must be true for values to be shown.
6278	// (This does not override hidden_values -- if a value is listed there,
6279	// it will still be hidden.)
6280	Condition *BooleanCondition `json:"condition,omitempty"`
6281
6282	// HiddenValues: Values that should be hidden.
6283	HiddenValues []string `json:"hiddenValues,omitempty"`
6284
6285	// VisibleBackgroundColor: The background fill color to filter by; only
6286	// cells with this fill color are shown. Mutually exclusive with
6287	// visible_foreground_color.
6288	VisibleBackgroundColor *Color `json:"visibleBackgroundColor,omitempty"`
6289
6290	// VisibleBackgroundColorStyle: The background fill color to filter by;
6291	// only cells with this fill color are shown. This field is mutually
6292	// exclusive with visible_foreground_color, and must be set to an
6293	// RGB-type color. If visible_background_color is also set, this field
6294	// takes precedence.
6295	VisibleBackgroundColorStyle *ColorStyle `json:"visibleBackgroundColorStyle,omitempty"`
6296
6297	// VisibleForegroundColor: The foreground color to filter by; only cells
6298	// with this foreground color are shown. Mutually exclusive with
6299	// visible_background_color.
6300	VisibleForegroundColor *Color `json:"visibleForegroundColor,omitempty"`
6301
6302	// VisibleForegroundColorStyle: The foreground color to filter by; only
6303	// cells with this foreground color are shown. This field is mutually
6304	// exclusive with visible_background_color, and must be set to an
6305	// RGB-type color. If visible_foreground_color is also set, this field
6306	// takes precedence.
6307	VisibleForegroundColorStyle *ColorStyle `json:"visibleForegroundColorStyle,omitempty"`
6308
6309	// ForceSendFields is a list of field names (e.g. "Condition") to
6310	// unconditionally include in API requests. By default, fields with
6311	// empty values are omitted from API requests. However, any non-pointer,
6312	// non-interface field appearing in ForceSendFields will be sent to the
6313	// server regardless of whether the field is empty or not. This may be
6314	// used to include empty fields in Patch requests.
6315	ForceSendFields []string `json:"-"`
6316
6317	// NullFields is a list of field names (e.g. "Condition") to include in
6318	// API requests with the JSON null value. By default, fields with empty
6319	// values are omitted from API requests. However, any field with an
6320	// empty value appearing in NullFields will be sent to the server as
6321	// null. It is an error if a field in this list has a non-empty value.
6322	// This may be used to include null fields in Patch requests.
6323	NullFields []string `json:"-"`
6324}
6325
6326func (s *FilterCriteria) MarshalJSON() ([]byte, error) {
6327	type NoMethod FilterCriteria
6328	raw := NoMethod(*s)
6329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6330}
6331
6332// FilterSpec: The filter criteria associated with a specific column.
6333type FilterSpec struct {
6334	// ColumnIndex: The column index.
6335	ColumnIndex int64 `json:"columnIndex,omitempty"`
6336
6337	// DataSourceColumnReference: Reference to a data source column.
6338	DataSourceColumnReference *DataSourceColumnReference `json:"dataSourceColumnReference,omitempty"`
6339
6340	// FilterCriteria: The criteria for the column.
6341	FilterCriteria *FilterCriteria `json:"filterCriteria,omitempty"`
6342
6343	// ForceSendFields is a list of field names (e.g. "ColumnIndex") to
6344	// unconditionally include in API requests. By default, fields with
6345	// empty values are omitted from API requests. However, any non-pointer,
6346	// non-interface field appearing in ForceSendFields will be sent to the
6347	// server regardless of whether the field is empty or not. This may be
6348	// used to include empty fields in Patch requests.
6349	ForceSendFields []string `json:"-"`
6350
6351	// NullFields is a list of field names (e.g. "ColumnIndex") to include
6352	// in API requests with the JSON null value. By default, fields with
6353	// empty values are omitted from API requests. However, any field with
6354	// an empty value appearing in NullFields will be sent to the server as
6355	// null. It is an error if a field in this list has a non-empty value.
6356	// This may be used to include null fields in Patch requests.
6357	NullFields []string `json:"-"`
6358}
6359
6360func (s *FilterSpec) MarshalJSON() ([]byte, error) {
6361	type NoMethod FilterSpec
6362	raw := NoMethod(*s)
6363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6364}
6365
6366// FilterView: A filter view.
6367type FilterView struct {
6368	// Criteria: The criteria for showing/hiding values per column. The
6369	// map's key is the column index, and the value is the criteria for that
6370	// column. This field is deprecated in favor of filter_specs.
6371	Criteria map[string]FilterCriteria `json:"criteria,omitempty"`
6372
6373	// FilterSpecs: The filter criteria for showing/hiding values per
6374	// column. Both criteria and filter_specs are populated in responses. If
6375	// both fields are specified in an update request, this field takes
6376	// precedence.
6377	FilterSpecs []*FilterSpec `json:"filterSpecs,omitempty"`
6378
6379	// FilterViewId: The ID of the filter view.
6380	FilterViewId int64 `json:"filterViewId,omitempty"`
6381
6382	// NamedRangeId: The named range this filter view is backed by, if any.
6383	// When writing, only one of range or named_range_id may be set.
6384	NamedRangeId string `json:"namedRangeId,omitempty"`
6385
6386	// Range: The range this filter view covers. When writing, only one of
6387	// range or named_range_id may be set.
6388	Range *GridRange `json:"range,omitempty"`
6389
6390	// SortSpecs: The sort order per column. Later specifications are used
6391	// when values are equal in the earlier specifications.
6392	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
6393
6394	// Title: The name of the filter view.
6395	Title string `json:"title,omitempty"`
6396
6397	// ForceSendFields is a list of field names (e.g. "Criteria") to
6398	// unconditionally include in API requests. By default, fields with
6399	// empty values are omitted from API requests. However, any non-pointer,
6400	// non-interface field appearing in ForceSendFields will be sent to the
6401	// server regardless of whether the field is empty or not. This may be
6402	// used to include empty fields in Patch requests.
6403	ForceSendFields []string `json:"-"`
6404
6405	// NullFields is a list of field names (e.g. "Criteria") to include in
6406	// API requests with the JSON null value. By default, fields with empty
6407	// values are omitted from API requests. However, any field with an
6408	// empty value appearing in NullFields will be sent to the server as
6409	// null. It is an error if a field in this list has a non-empty value.
6410	// This may be used to include null fields in Patch requests.
6411	NullFields []string `json:"-"`
6412}
6413
6414func (s *FilterView) MarshalJSON() ([]byte, error) {
6415	type NoMethod FilterView
6416	raw := NoMethod(*s)
6417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6418}
6419
6420// FindReplaceRequest: Finds and replaces data in cells over a range,
6421// sheet, or all sheets.
6422type FindReplaceRequest struct {
6423	// AllSheets: True to find/replace over all sheets.
6424	AllSheets bool `json:"allSheets,omitempty"`
6425
6426	// Find: The value to search.
6427	Find string `json:"find,omitempty"`
6428
6429	// IncludeFormulas: True if the search should include cells with
6430	// formulas. False to skip cells with formulas.
6431	IncludeFormulas bool `json:"includeFormulas,omitempty"`
6432
6433	// MatchCase: True if the search is case sensitive.
6434	MatchCase bool `json:"matchCase,omitempty"`
6435
6436	// MatchEntireCell: True if the find value should match the entire cell.
6437	MatchEntireCell bool `json:"matchEntireCell,omitempty"`
6438
6439	// Range: The range to find/replace over.
6440	Range *GridRange `json:"range,omitempty"`
6441
6442	// Replacement: The value to use as the replacement.
6443	Replacement string `json:"replacement,omitempty"`
6444
6445	// SearchByRegex: True if the find value is a regex. The regular
6446	// expression and replacement should follow Java regex rules at
6447	// https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html. The replacement string is allowed to refer to capturing groups. For example, if one cell has the contents "Google Sheets" and another has "Google Docs", then searching for "o.* (.*)" with a replacement of "$1 Rocks" would change the contents of the cells to "GSheets Rocks" and "GDocs Rocks"
6448	// respectively.
6449	SearchByRegex bool `json:"searchByRegex,omitempty"`
6450
6451	// SheetId: The sheet to find/replace over.
6452	SheetId int64 `json:"sheetId,omitempty"`
6453
6454	// ForceSendFields is a list of field names (e.g. "AllSheets") to
6455	// unconditionally include in API requests. By default, fields with
6456	// empty values are omitted from API requests. However, any non-pointer,
6457	// non-interface field appearing in ForceSendFields will be sent to the
6458	// server regardless of whether the field is empty or not. This may be
6459	// used to include empty fields in Patch requests.
6460	ForceSendFields []string `json:"-"`
6461
6462	// NullFields is a list of field names (e.g. "AllSheets") to include in
6463	// API requests with the JSON null value. By default, fields with empty
6464	// values are omitted from API requests. However, any field with an
6465	// empty value appearing in NullFields will be sent to the server as
6466	// null. It is an error if a field in this list has a non-empty value.
6467	// This may be used to include null fields in Patch requests.
6468	NullFields []string `json:"-"`
6469}
6470
6471func (s *FindReplaceRequest) MarshalJSON() ([]byte, error) {
6472	type NoMethod FindReplaceRequest
6473	raw := NoMethod(*s)
6474	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6475}
6476
6477// FindReplaceResponse: The result of the find/replace.
6478type FindReplaceResponse struct {
6479	// FormulasChanged: The number of formula cells changed.
6480	FormulasChanged int64 `json:"formulasChanged,omitempty"`
6481
6482	// OccurrencesChanged: The number of occurrences (possibly multiple
6483	// within a cell) changed. For example, if replacing "e" with "o" in
6484	// "Google Sheets", this would be "3" because "Google Sheets" ->
6485	// "Googlo Shoots".
6486	OccurrencesChanged int64 `json:"occurrencesChanged,omitempty"`
6487
6488	// RowsChanged: The number of rows changed.
6489	RowsChanged int64 `json:"rowsChanged,omitempty"`
6490
6491	// SheetsChanged: The number of sheets changed.
6492	SheetsChanged int64 `json:"sheetsChanged,omitempty"`
6493
6494	// ValuesChanged: The number of non-formula cells changed.
6495	ValuesChanged int64 `json:"valuesChanged,omitempty"`
6496
6497	// ForceSendFields is a list of field names (e.g. "FormulasChanged") to
6498	// unconditionally include in API requests. By default, fields with
6499	// empty values are omitted from API requests. However, any non-pointer,
6500	// non-interface field appearing in ForceSendFields will be sent to the
6501	// server regardless of whether the field is empty or not. This may be
6502	// used to include empty fields in Patch requests.
6503	ForceSendFields []string `json:"-"`
6504
6505	// NullFields is a list of field names (e.g. "FormulasChanged") to
6506	// include in API requests with the JSON null value. By default, fields
6507	// with empty values are omitted from API requests. However, any field
6508	// with an empty value appearing in NullFields will be sent to the
6509	// server as null. It is an error if a field in this list has a
6510	// non-empty value. This may be used to include null fields in Patch
6511	// requests.
6512	NullFields []string `json:"-"`
6513}
6514
6515func (s *FindReplaceResponse) MarshalJSON() ([]byte, error) {
6516	type NoMethod FindReplaceResponse
6517	raw := NoMethod(*s)
6518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6519}
6520
6521// GetSpreadsheetByDataFilterRequest: The request for retrieving a
6522// Spreadsheet.
6523type GetSpreadsheetByDataFilterRequest struct {
6524	// DataFilters: The DataFilters used to select which ranges to retrieve
6525	// from the spreadsheet.
6526	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
6527
6528	// IncludeGridData: True if grid data should be returned. This parameter
6529	// is ignored if a field mask was set in the request.
6530	IncludeGridData bool `json:"includeGridData,omitempty"`
6531
6532	// ForceSendFields is a list of field names (e.g. "DataFilters") to
6533	// unconditionally include in API requests. By default, fields with
6534	// empty values are omitted from API requests. However, any non-pointer,
6535	// non-interface field appearing in ForceSendFields will be sent to the
6536	// server regardless of whether the field is empty or not. This may be
6537	// used to include empty fields in Patch requests.
6538	ForceSendFields []string `json:"-"`
6539
6540	// NullFields is a list of field names (e.g. "DataFilters") to include
6541	// in API requests with the JSON null value. By default, fields with
6542	// empty values are omitted from API requests. However, any field with
6543	// an empty value appearing in NullFields will be sent to the server as
6544	// null. It is an error if a field in this list has a non-empty value.
6545	// This may be used to include null fields in Patch requests.
6546	NullFields []string `json:"-"`
6547}
6548
6549func (s *GetSpreadsheetByDataFilterRequest) MarshalJSON() ([]byte, error) {
6550	type NoMethod GetSpreadsheetByDataFilterRequest
6551	raw := NoMethod(*s)
6552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6553}
6554
6555// GradientRule: A rule that applies a gradient color scale format,
6556// based on the interpolation points listed. The format of a cell will
6557// vary based on its contents as compared to the values of the
6558// interpolation points.
6559type GradientRule struct {
6560	// Maxpoint: The final interpolation point.
6561	Maxpoint *InterpolationPoint `json:"maxpoint,omitempty"`
6562
6563	// Midpoint: An optional midway interpolation point.
6564	Midpoint *InterpolationPoint `json:"midpoint,omitempty"`
6565
6566	// Minpoint: The starting interpolation point.
6567	Minpoint *InterpolationPoint `json:"minpoint,omitempty"`
6568
6569	// ForceSendFields is a list of field names (e.g. "Maxpoint") to
6570	// unconditionally include in API requests. By default, fields with
6571	// empty values are omitted from API requests. However, any non-pointer,
6572	// non-interface field appearing in ForceSendFields will be sent to the
6573	// server regardless of whether the field is empty or not. This may be
6574	// used to include empty fields in Patch requests.
6575	ForceSendFields []string `json:"-"`
6576
6577	// NullFields is a list of field names (e.g. "Maxpoint") to include in
6578	// API requests with the JSON null value. By default, fields with empty
6579	// values are omitted from API requests. However, any field with an
6580	// empty value appearing in NullFields will be sent to the server as
6581	// null. It is an error if a field in this list has a non-empty value.
6582	// This may be used to include null fields in Patch requests.
6583	NullFields []string `json:"-"`
6584}
6585
6586func (s *GradientRule) MarshalJSON() ([]byte, error) {
6587	type NoMethod GradientRule
6588	raw := NoMethod(*s)
6589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6590}
6591
6592// GridCoordinate: A coordinate in a sheet. All indexes are zero-based.
6593type GridCoordinate struct {
6594	// ColumnIndex: The column index of the coordinate.
6595	ColumnIndex int64 `json:"columnIndex,omitempty"`
6596
6597	// RowIndex: The row index of the coordinate.
6598	RowIndex int64 `json:"rowIndex,omitempty"`
6599
6600	// SheetId: The sheet this coordinate is on.
6601	SheetId int64 `json:"sheetId,omitempty"`
6602
6603	// ForceSendFields is a list of field names (e.g. "ColumnIndex") to
6604	// unconditionally include in API requests. By default, fields with
6605	// empty values are omitted from API requests. However, any non-pointer,
6606	// non-interface field appearing in ForceSendFields will be sent to the
6607	// server regardless of whether the field is empty or not. This may be
6608	// used to include empty fields in Patch requests.
6609	ForceSendFields []string `json:"-"`
6610
6611	// NullFields is a list of field names (e.g. "ColumnIndex") to include
6612	// in API requests with the JSON null value. By default, fields with
6613	// empty values are omitted from API requests. However, any field with
6614	// an empty value appearing in NullFields will be sent to the server as
6615	// null. It is an error if a field in this list has a non-empty value.
6616	// This may be used to include null fields in Patch requests.
6617	NullFields []string `json:"-"`
6618}
6619
6620func (s *GridCoordinate) MarshalJSON() ([]byte, error) {
6621	type NoMethod GridCoordinate
6622	raw := NoMethod(*s)
6623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6624}
6625
6626// GridData: Data in the grid, as well as metadata about the dimensions.
6627type GridData struct {
6628	// ColumnMetadata: Metadata about the requested columns in the grid,
6629	// starting with the column in start_column.
6630	ColumnMetadata []*DimensionProperties `json:"columnMetadata,omitempty"`
6631
6632	// RowData: The data in the grid, one entry per row, starting with the
6633	// row in startRow. The values in RowData will correspond to columns
6634	// starting at start_column.
6635	RowData []*RowData `json:"rowData,omitempty"`
6636
6637	// RowMetadata: Metadata about the requested rows in the grid, starting
6638	// with the row in start_row.
6639	RowMetadata []*DimensionProperties `json:"rowMetadata,omitempty"`
6640
6641	// StartColumn: The first column this GridData refers to, zero-based.
6642	StartColumn int64 `json:"startColumn,omitempty"`
6643
6644	// StartRow: The first row this GridData refers to, zero-based.
6645	StartRow int64 `json:"startRow,omitempty"`
6646
6647	// ForceSendFields is a list of field names (e.g. "ColumnMetadata") to
6648	// unconditionally include in API requests. By default, fields with
6649	// empty values are omitted from API requests. However, any non-pointer,
6650	// non-interface field appearing in ForceSendFields will be sent to the
6651	// server regardless of whether the field is empty or not. This may be
6652	// used to include empty fields in Patch requests.
6653	ForceSendFields []string `json:"-"`
6654
6655	// NullFields is a list of field names (e.g. "ColumnMetadata") to
6656	// include in API requests with the JSON null value. By default, fields
6657	// with empty values are omitted from API requests. However, any field
6658	// with an empty value appearing in NullFields will be sent to the
6659	// server as null. It is an error if a field in this list has a
6660	// non-empty value. This may be used to include null fields in Patch
6661	// requests.
6662	NullFields []string `json:"-"`
6663}
6664
6665func (s *GridData) MarshalJSON() ([]byte, error) {
6666	type NoMethod GridData
6667	raw := NoMethod(*s)
6668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6669}
6670
6671// GridProperties: Properties of a grid.
6672type GridProperties struct {
6673	// ColumnCount: The number of columns in the grid.
6674	ColumnCount int64 `json:"columnCount,omitempty"`
6675
6676	// ColumnGroupControlAfter: True if the column grouping control toggle
6677	// is shown after the group.
6678	ColumnGroupControlAfter bool `json:"columnGroupControlAfter,omitempty"`
6679
6680	// FrozenColumnCount: The number of columns that are frozen in the grid.
6681	FrozenColumnCount int64 `json:"frozenColumnCount,omitempty"`
6682
6683	// FrozenRowCount: The number of rows that are frozen in the grid.
6684	FrozenRowCount int64 `json:"frozenRowCount,omitempty"`
6685
6686	// HideGridlines: True if the grid isn't showing gridlines in the UI.
6687	HideGridlines bool `json:"hideGridlines,omitempty"`
6688
6689	// RowCount: The number of rows in the grid.
6690	RowCount int64 `json:"rowCount,omitempty"`
6691
6692	// RowGroupControlAfter: True if the row grouping control toggle is
6693	// shown after the group.
6694	RowGroupControlAfter bool `json:"rowGroupControlAfter,omitempty"`
6695
6696	// ForceSendFields is a list of field names (e.g. "ColumnCount") to
6697	// unconditionally include in API requests. By default, fields with
6698	// empty values are omitted from API requests. However, any non-pointer,
6699	// non-interface field appearing in ForceSendFields will be sent to the
6700	// server regardless of whether the field is empty or not. This may be
6701	// used to include empty fields in Patch requests.
6702	ForceSendFields []string `json:"-"`
6703
6704	// NullFields is a list of field names (e.g. "ColumnCount") to include
6705	// in API requests with the JSON null value. By default, fields with
6706	// empty values are omitted from API requests. However, any field with
6707	// an empty value appearing in NullFields will be sent to the server as
6708	// null. It is an error if a field in this list has a non-empty value.
6709	// This may be used to include null fields in Patch requests.
6710	NullFields []string `json:"-"`
6711}
6712
6713func (s *GridProperties) MarshalJSON() ([]byte, error) {
6714	type NoMethod GridProperties
6715	raw := NoMethod(*s)
6716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6717}
6718
6719// GridRange: A range on a sheet. All indexes are zero-based. Indexes
6720// are half open, i.e. the start index is inclusive and the end index is
6721// exclusive -- [start_index, end_index). Missing indexes indicate the
6722// range is unbounded on that side. For example, if "Sheet1" is sheet
6723// ID 0, then: `Sheet1!A1:A1 == sheet_id: 0, start_row_index: 0,
6724// end_row_index: 1, start_column_index: 0, end_column_index: 1`
6725// `Sheet1!A3:B4 == sheet_id: 0, start_row_index: 2, end_row_index: 4,
6726// start_column_index: 0, end_column_index: 2` `Sheet1!A:B == sheet_id:
6727// 0, start_column_index: 0, end_column_index: 2` `Sheet1!A5:B ==
6728// sheet_id: 0, start_row_index: 4, start_column_index: 0,
6729// end_column_index: 2` `Sheet1 == sheet_id:0` The start index must
6730// always be less than or equal to the end index. If the start index
6731// equals the end index, then the range is empty. Empty ranges are
6732// typically not meaningful and are usually rendered in the UI as
6733// `#REF!`.
6734type GridRange struct {
6735	// EndColumnIndex: The end column (exclusive) of the range, or not set
6736	// if unbounded.
6737	EndColumnIndex int64 `json:"endColumnIndex,omitempty"`
6738
6739	// EndRowIndex: The end row (exclusive) of the range, or not set if
6740	// unbounded.
6741	EndRowIndex int64 `json:"endRowIndex,omitempty"`
6742
6743	// SheetId: The sheet this range is on.
6744	SheetId int64 `json:"sheetId,omitempty"`
6745
6746	// StartColumnIndex: The start column (inclusive) of the range, or not
6747	// set if unbounded.
6748	StartColumnIndex int64 `json:"startColumnIndex,omitempty"`
6749
6750	// StartRowIndex: The start row (inclusive) of the range, or not set if
6751	// unbounded.
6752	StartRowIndex int64 `json:"startRowIndex,omitempty"`
6753
6754	// ForceSendFields is a list of field names (e.g. "EndColumnIndex") to
6755	// unconditionally include in API requests. By default, fields with
6756	// empty values are omitted from API requests. However, any non-pointer,
6757	// non-interface field appearing in ForceSendFields will be sent to the
6758	// server regardless of whether the field is empty or not. This may be
6759	// used to include empty fields in Patch requests.
6760	ForceSendFields []string `json:"-"`
6761
6762	// NullFields is a list of field names (e.g. "EndColumnIndex") to
6763	// include in API requests with the JSON null value. By default, fields
6764	// with empty values are omitted from API requests. However, any field
6765	// with an empty value appearing in NullFields will be sent to the
6766	// server as null. It is an error if a field in this list has a
6767	// non-empty value. This may be used to include null fields in Patch
6768	// requests.
6769	NullFields []string `json:"-"`
6770}
6771
6772func (s *GridRange) MarshalJSON() ([]byte, error) {
6773	type NoMethod GridRange
6774	raw := NoMethod(*s)
6775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6776}
6777
6778// HistogramChartSpec: A histogram chart. A histogram chart groups data
6779// items into bins, displaying each bin as a column of stacked items.
6780// Histograms are used to display the distribution of a dataset. Each
6781// column of items represents a range into which those items fall. The
6782// number of bins can be chosen automatically or specified explicitly.
6783type HistogramChartSpec struct {
6784	// BucketSize: By default the bucket size (the range of values stacked
6785	// in a single column) is chosen automatically, but it may be overridden
6786	// here. E.g., A bucket size of 1.5 results in buckets from 0 - 1.5, 1.5
6787	// - 3.0, etc. Cannot be negative. This field is optional.
6788	BucketSize float64 `json:"bucketSize,omitempty"`
6789
6790	// LegendPosition: The position of the chart legend.
6791	//
6792	// Possible values:
6793	//   "HISTOGRAM_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do
6794	// not use.
6795	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
6796	// chart.
6797	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
6798	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
6799	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
6800	//   "NO_LEGEND" - No legend is rendered.
6801	//   "INSIDE_LEGEND" - The legend is rendered inside the chart area.
6802	LegendPosition string `json:"legendPosition,omitempty"`
6803
6804	// OutlierPercentile: The outlier percentile is used to ensure that
6805	// outliers do not adversely affect the calculation of bucket sizes. For
6806	// example, setting an outlier percentile of 0.05 indicates that the top
6807	// and bottom 5% of values when calculating buckets. The values are
6808	// still included in the chart, they will be added to the first or last
6809	// buckets instead of their own buckets. Must be between 0.0 and 0.5.
6810	OutlierPercentile float64 `json:"outlierPercentile,omitempty"`
6811
6812	// Series: The series for a histogram may be either a single series of
6813	// values to be bucketed or multiple series, each of the same length,
6814	// containing the name of the series followed by the values to be
6815	// bucketed for that series.
6816	Series []*HistogramSeries `json:"series,omitempty"`
6817
6818	// ShowItemDividers: Whether horizontal divider lines should be
6819	// displayed between items in each column.
6820	ShowItemDividers bool `json:"showItemDividers,omitempty"`
6821
6822	// ForceSendFields is a list of field names (e.g. "BucketSize") to
6823	// unconditionally include in API requests. By default, fields with
6824	// empty values are omitted from API requests. However, any non-pointer,
6825	// non-interface field appearing in ForceSendFields will be sent to the
6826	// server regardless of whether the field is empty or not. This may be
6827	// used to include empty fields in Patch requests.
6828	ForceSendFields []string `json:"-"`
6829
6830	// NullFields is a list of field names (e.g. "BucketSize") to include in
6831	// API requests with the JSON null value. By default, fields with empty
6832	// values are omitted from API requests. However, any field with an
6833	// empty value appearing in NullFields will be sent to the server as
6834	// null. It is an error if a field in this list has a non-empty value.
6835	// This may be used to include null fields in Patch requests.
6836	NullFields []string `json:"-"`
6837}
6838
6839func (s *HistogramChartSpec) MarshalJSON() ([]byte, error) {
6840	type NoMethod HistogramChartSpec
6841	raw := NoMethod(*s)
6842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6843}
6844
6845func (s *HistogramChartSpec) UnmarshalJSON(data []byte) error {
6846	type NoMethod HistogramChartSpec
6847	var s1 struct {
6848		BucketSize        gensupport.JSONFloat64 `json:"bucketSize"`
6849		OutlierPercentile gensupport.JSONFloat64 `json:"outlierPercentile"`
6850		*NoMethod
6851	}
6852	s1.NoMethod = (*NoMethod)(s)
6853	if err := json.Unmarshal(data, &s1); err != nil {
6854		return err
6855	}
6856	s.BucketSize = float64(s1.BucketSize)
6857	s.OutlierPercentile = float64(s1.OutlierPercentile)
6858	return nil
6859}
6860
6861// HistogramRule: Allows you to organize the numeric values in a source
6862// data column into buckets of a constant size. All values from
6863// HistogramRule.start to HistogramRule.end are placed into groups of
6864// size HistogramRule.interval. In addition, all values below
6865// HistogramRule.start are placed in one group, and all values above
6866// HistogramRule.end are placed in another. Only HistogramRule.interval
6867// is required, though if HistogramRule.start and HistogramRule.end are
6868// both provided, HistogramRule.start must be less than
6869// HistogramRule.end. For example, a pivot table showing average
6870// purchase amount by age that has 50+ rows: +-----+-------------------+
6871// | Age | AVERAGE of Amount | +-----+-------------------+ | 16 | $27.13
6872// | | 17 | $5.24 | | 18 | $20.15 | ... +-----+-------------------+
6873// could be turned into a pivot table that looks like the one below by
6874// applying a histogram group rule with a HistogramRule.start of 25, an
6875// HistogramRule.interval of 20, and an HistogramRule.end of 65.
6876// +-------------+-------------------+ | Grouped Age | AVERAGE of Amount
6877// | +-------------+-------------------+ | < 25 | $19.34 | | 25-45 |
6878// $31.43 | | 45-65 | $35.87 | | > 65 | $27.55 |
6879// +-------------+-------------------+ | Grand Total | $29.12 |
6880// +-------------+-------------------+
6881type HistogramRule struct {
6882	// End: The maximum value at which items are placed into buckets of
6883	// constant size. Values above end are lumped into a single bucket. This
6884	// field is optional.
6885	End float64 `json:"end,omitempty"`
6886
6887	// Interval: The size of the buckets that are created. Must be positive.
6888	Interval float64 `json:"interval,omitempty"`
6889
6890	// Start: The minimum value at which items are placed into buckets of
6891	// constant size. Values below start are lumped into a single bucket.
6892	// This field is optional.
6893	Start float64 `json:"start,omitempty"`
6894
6895	// ForceSendFields is a list of field names (e.g. "End") to
6896	// unconditionally include in API requests. By default, fields with
6897	// empty values are omitted from API requests. However, any non-pointer,
6898	// non-interface field appearing in ForceSendFields will be sent to the
6899	// server regardless of whether the field is empty or not. This may be
6900	// used to include empty fields in Patch requests.
6901	ForceSendFields []string `json:"-"`
6902
6903	// NullFields is a list of field names (e.g. "End") to include in API
6904	// requests with the JSON null value. By default, fields with empty
6905	// values are omitted from API requests. However, any field with an
6906	// empty value appearing in NullFields will be sent to the server as
6907	// null. It is an error if a field in this list has a non-empty value.
6908	// This may be used to include null fields in Patch requests.
6909	NullFields []string `json:"-"`
6910}
6911
6912func (s *HistogramRule) MarshalJSON() ([]byte, error) {
6913	type NoMethod HistogramRule
6914	raw := NoMethod(*s)
6915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6916}
6917
6918func (s *HistogramRule) UnmarshalJSON(data []byte) error {
6919	type NoMethod HistogramRule
6920	var s1 struct {
6921		End      gensupport.JSONFloat64 `json:"end"`
6922		Interval gensupport.JSONFloat64 `json:"interval"`
6923		Start    gensupport.JSONFloat64 `json:"start"`
6924		*NoMethod
6925	}
6926	s1.NoMethod = (*NoMethod)(s)
6927	if err := json.Unmarshal(data, &s1); err != nil {
6928		return err
6929	}
6930	s.End = float64(s1.End)
6931	s.Interval = float64(s1.Interval)
6932	s.Start = float64(s1.Start)
6933	return nil
6934}
6935
6936// HistogramSeries: A histogram series containing the series color and
6937// data.
6938type HistogramSeries struct {
6939	// BarColor: The color of the column representing this series in each
6940	// bucket. This field is optional.
6941	BarColor *Color `json:"barColor,omitempty"`
6942
6943	// BarColorStyle: The color of the column representing this series in
6944	// each bucket. This field is optional. If bar_color is also set, this
6945	// field takes precedence.
6946	BarColorStyle *ColorStyle `json:"barColorStyle,omitempty"`
6947
6948	// Data: The data for this histogram series.
6949	Data *ChartData `json:"data,omitempty"`
6950
6951	// ForceSendFields is a list of field names (e.g. "BarColor") to
6952	// unconditionally include in API requests. By default, fields with
6953	// empty values are omitted from API requests. However, any non-pointer,
6954	// non-interface field appearing in ForceSendFields will be sent to the
6955	// server regardless of whether the field is empty or not. This may be
6956	// used to include empty fields in Patch requests.
6957	ForceSendFields []string `json:"-"`
6958
6959	// NullFields is a list of field names (e.g. "BarColor") to include in
6960	// API requests with the JSON null value. By default, fields with empty
6961	// values are omitted from API requests. However, any field with an
6962	// empty value appearing in NullFields will be sent to the server as
6963	// null. It is an error if a field in this list has a non-empty value.
6964	// This may be used to include null fields in Patch requests.
6965	NullFields []string `json:"-"`
6966}
6967
6968func (s *HistogramSeries) MarshalJSON() ([]byte, error) {
6969	type NoMethod HistogramSeries
6970	raw := NoMethod(*s)
6971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6972}
6973
6974// InsertDimensionRequest: Inserts rows or columns in a sheet at a
6975// particular index.
6976type InsertDimensionRequest struct {
6977	// InheritFromBefore: Whether dimension properties should be extended
6978	// from the dimensions before or after the newly inserted dimensions.
6979	// True to inherit from the dimensions before (in which case the start
6980	// index must be greater than 0), and false to inherit from the
6981	// dimensions after. For example, if row index 0 has red background and
6982	// row index 1 has a green background, then inserting 2 rows at index 1
6983	// can inherit either the green or red background. If
6984	// `inheritFromBefore` is true, the two new rows will be red (because
6985	// the row before the insertion point was red), whereas if
6986	// `inheritFromBefore` is false, the two new rows will be green (because
6987	// the row after the insertion point was green).
6988	InheritFromBefore bool `json:"inheritFromBefore,omitempty"`
6989
6990	// Range: The dimensions to insert. Both the start and end indexes must
6991	// be bounded.
6992	Range *DimensionRange `json:"range,omitempty"`
6993
6994	// ForceSendFields is a list of field names (e.g. "InheritFromBefore")
6995	// to unconditionally include in API requests. By default, fields with
6996	// empty values are omitted from API requests. However, any non-pointer,
6997	// non-interface field appearing in ForceSendFields will be sent to the
6998	// server regardless of whether the field is empty or not. This may be
6999	// used to include empty fields in Patch requests.
7000	ForceSendFields []string `json:"-"`
7001
7002	// NullFields is a list of field names (e.g. "InheritFromBefore") to
7003	// include in API requests with the JSON null value. By default, fields
7004	// with empty values are omitted from API requests. However, any field
7005	// with an empty value appearing in NullFields will be sent to the
7006	// server as null. It is an error if a field in this list has a
7007	// non-empty value. This may be used to include null fields in Patch
7008	// requests.
7009	NullFields []string `json:"-"`
7010}
7011
7012func (s *InsertDimensionRequest) MarshalJSON() ([]byte, error) {
7013	type NoMethod InsertDimensionRequest
7014	raw := NoMethod(*s)
7015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7016}
7017
7018// InsertRangeRequest: Inserts cells into a range, shifting the existing
7019// cells over or down.
7020type InsertRangeRequest struct {
7021	// Range: The range to insert new cells into.
7022	Range *GridRange `json:"range,omitempty"`
7023
7024	// ShiftDimension: The dimension which will be shifted when inserting
7025	// cells. If ROWS, existing cells will be shifted down. If COLUMNS,
7026	// existing cells will be shifted right.
7027	//
7028	// Possible values:
7029	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
7030	//   "ROWS" - Operates on the rows of a sheet.
7031	//   "COLUMNS" - Operates on the columns of a sheet.
7032	ShiftDimension string `json:"shiftDimension,omitempty"`
7033
7034	// ForceSendFields is a list of field names (e.g. "Range") to
7035	// unconditionally include in API requests. By default, fields with
7036	// empty values are omitted from API requests. However, any non-pointer,
7037	// non-interface field appearing in ForceSendFields will be sent to the
7038	// server regardless of whether the field is empty or not. This may be
7039	// used to include empty fields in Patch requests.
7040	ForceSendFields []string `json:"-"`
7041
7042	// NullFields is a list of field names (e.g. "Range") to include in API
7043	// requests with the JSON null value. By default, fields with empty
7044	// values are omitted from API requests. However, any field with an
7045	// empty value appearing in NullFields will be sent to the server as
7046	// null. It is an error if a field in this list has a non-empty value.
7047	// This may be used to include null fields in Patch requests.
7048	NullFields []string `json:"-"`
7049}
7050
7051func (s *InsertRangeRequest) MarshalJSON() ([]byte, error) {
7052	type NoMethod InsertRangeRequest
7053	raw := NoMethod(*s)
7054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7055}
7056
7057// InterpolationPoint: A single interpolation point on a gradient
7058// conditional format. These pin the gradient color scale according to
7059// the color, type and value chosen.
7060type InterpolationPoint struct {
7061	// Color: The color this interpolation point should use.
7062	Color *Color `json:"color,omitempty"`
7063
7064	// ColorStyle: The color this interpolation point should use. If color
7065	// is also set, this field takes precedence.
7066	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
7067
7068	// Type: How the value should be interpreted.
7069	//
7070	// Possible values:
7071	//   "INTERPOLATION_POINT_TYPE_UNSPECIFIED" - The default value, do not
7072	// use.
7073	//   "MIN" - The interpolation point uses the minimum value in the cells
7074	// over the range of the conditional format.
7075	//   "MAX" - The interpolation point uses the maximum value in the cells
7076	// over the range of the conditional format.
7077	//   "NUMBER" - The interpolation point uses exactly the value in
7078	// InterpolationPoint.value.
7079	//   "PERCENT" - The interpolation point is the given percentage over
7080	// all the cells in the range of the conditional format. This is
7081	// equivalent to NUMBER if the value was: `=(MAX(FLATTEN(range)) *
7082	// (value / 100)) + (MIN(FLATTEN(range)) * (1 - (value / 100)))` (where
7083	// errors in the range are ignored when flattening).
7084	//   "PERCENTILE" - The interpolation point is the given percentile over
7085	// all the cells in the range of the conditional format. This is
7086	// equivalent to NUMBER if the value was: `=PERCENTILE(FLATTEN(range),
7087	// value / 100)` (where errors in the range are ignored when
7088	// flattening).
7089	Type string `json:"type,omitempty"`
7090
7091	// Value: The value this interpolation point uses. May be a formula.
7092	// Unused if type is MIN or MAX.
7093	Value string `json:"value,omitempty"`
7094
7095	// ForceSendFields is a list of field names (e.g. "Color") to
7096	// unconditionally include in API requests. By default, fields with
7097	// empty values are omitted from API requests. However, any non-pointer,
7098	// non-interface field appearing in ForceSendFields will be sent to the
7099	// server regardless of whether the field is empty or not. This may be
7100	// used to include empty fields in Patch requests.
7101	ForceSendFields []string `json:"-"`
7102
7103	// NullFields is a list of field names (e.g. "Color") to include in API
7104	// requests with the JSON null value. By default, fields with empty
7105	// values are omitted from API requests. However, any field with an
7106	// empty value appearing in NullFields will be sent to the server as
7107	// null. It is an error if a field in this list has a non-empty value.
7108	// This may be used to include null fields in Patch requests.
7109	NullFields []string `json:"-"`
7110}
7111
7112func (s *InterpolationPoint) MarshalJSON() ([]byte, error) {
7113	type NoMethod InterpolationPoint
7114	raw := NoMethod(*s)
7115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7116}
7117
7118// Interval: Represents a time interval, encoded as a Timestamp start
7119// (inclusive) and a Timestamp end (exclusive). The start must be less
7120// than or equal to the end. When the start equals the end, the interval
7121// is empty (matches no time). When both start and end are unspecified,
7122// the interval matches any time.
7123type Interval struct {
7124	// EndTime: Optional. Exclusive end of the interval. If specified, a
7125	// Timestamp matching this interval will have to be before the end.
7126	EndTime string `json:"endTime,omitempty"`
7127
7128	// StartTime: Optional. Inclusive start of the interval. If specified, a
7129	// Timestamp matching this interval will have to be the same or after
7130	// the start.
7131	StartTime string `json:"startTime,omitempty"`
7132
7133	// ForceSendFields is a list of field names (e.g. "EndTime") to
7134	// unconditionally include in API requests. By default, fields with
7135	// empty values are omitted from API requests. However, any non-pointer,
7136	// non-interface field appearing in ForceSendFields will be sent to the
7137	// server regardless of whether the field is empty or not. This may be
7138	// used to include empty fields in Patch requests.
7139	ForceSendFields []string `json:"-"`
7140
7141	// NullFields is a list of field names (e.g. "EndTime") to include in
7142	// API requests with the JSON null value. By default, fields with empty
7143	// values are omitted from API requests. However, any field with an
7144	// empty value appearing in NullFields will be sent to the server as
7145	// null. It is an error if a field in this list has a non-empty value.
7146	// This may be used to include null fields in Patch requests.
7147	NullFields []string `json:"-"`
7148}
7149
7150func (s *Interval) MarshalJSON() ([]byte, error) {
7151	type NoMethod Interval
7152	raw := NoMethod(*s)
7153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7154}
7155
7156// IterativeCalculationSettings: Settings to control how circular
7157// dependencies are resolved with iterative calculation.
7158type IterativeCalculationSettings struct {
7159	// ConvergenceThreshold: When iterative calculation is enabled and
7160	// successive results differ by less than this threshold value, the
7161	// calculation rounds stop.
7162	ConvergenceThreshold float64 `json:"convergenceThreshold,omitempty"`
7163
7164	// MaxIterations: When iterative calculation is enabled, the maximum
7165	// number of calculation rounds to perform.
7166	MaxIterations int64 `json:"maxIterations,omitempty"`
7167
7168	// ForceSendFields is a list of field names (e.g.
7169	// "ConvergenceThreshold") to unconditionally include in API requests.
7170	// By default, fields with empty values are omitted from API requests.
7171	// However, any non-pointer, non-interface field appearing in
7172	// ForceSendFields will be sent to the server regardless of whether the
7173	// field is empty or not. This may be used to include empty fields in
7174	// Patch requests.
7175	ForceSendFields []string `json:"-"`
7176
7177	// NullFields is a list of field names (e.g. "ConvergenceThreshold") to
7178	// include in API requests with the JSON null value. By default, fields
7179	// with empty values are omitted from API requests. However, any field
7180	// with an empty value appearing in NullFields will be sent to the
7181	// server as null. It is an error if a field in this list has a
7182	// non-empty value. This may be used to include null fields in Patch
7183	// requests.
7184	NullFields []string `json:"-"`
7185}
7186
7187func (s *IterativeCalculationSettings) MarshalJSON() ([]byte, error) {
7188	type NoMethod IterativeCalculationSettings
7189	raw := NoMethod(*s)
7190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7191}
7192
7193func (s *IterativeCalculationSettings) UnmarshalJSON(data []byte) error {
7194	type NoMethod IterativeCalculationSettings
7195	var s1 struct {
7196		ConvergenceThreshold gensupport.JSONFloat64 `json:"convergenceThreshold"`
7197		*NoMethod
7198	}
7199	s1.NoMethod = (*NoMethod)(s)
7200	if err := json.Unmarshal(data, &s1); err != nil {
7201		return err
7202	}
7203	s.ConvergenceThreshold = float64(s1.ConvergenceThreshold)
7204	return nil
7205}
7206
7207// KeyValueFormat: Formatting options for key value.
7208type KeyValueFormat struct {
7209	// Position: Specifies the horizontal text positioning of key value.
7210	// This field is optional. If not specified, default positioning is
7211	// used.
7212	Position *TextPosition `json:"position,omitempty"`
7213
7214	// TextFormat: Text formatting options for key value.
7215	TextFormat *TextFormat `json:"textFormat,omitempty"`
7216
7217	// ForceSendFields is a list of field names (e.g. "Position") to
7218	// unconditionally include in API requests. By default, fields with
7219	// empty values are omitted from API requests. However, any non-pointer,
7220	// non-interface field appearing in ForceSendFields will be sent to the
7221	// server regardless of whether the field is empty or not. This may be
7222	// used to include empty fields in Patch requests.
7223	ForceSendFields []string `json:"-"`
7224
7225	// NullFields is a list of field names (e.g. "Position") to include in
7226	// API requests with the JSON null value. By default, fields with empty
7227	// values are omitted from API requests. However, any field with an
7228	// empty value appearing in NullFields will be sent to the server as
7229	// null. It is an error if a field in this list has a non-empty value.
7230	// This may be used to include null fields in Patch requests.
7231	NullFields []string `json:"-"`
7232}
7233
7234func (s *KeyValueFormat) MarshalJSON() ([]byte, error) {
7235	type NoMethod KeyValueFormat
7236	raw := NoMethod(*s)
7237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7238}
7239
7240// LineStyle: Properties that describe the style of a line.
7241type LineStyle struct {
7242	// Type: The dash type of the line.
7243	//
7244	// Possible values:
7245	//   "LINE_DASH_TYPE_UNSPECIFIED" - Default value, do not use.
7246	//   "INVISIBLE" - No dash type, which is equivalent to a non-visible
7247	// line.
7248	//   "CUSTOM" - A custom dash for a line. Modifying the exact custom
7249	// dash style is currently unsupported.
7250	//   "SOLID" - A solid line.
7251	//   "DOTTED" - A dotted line.
7252	//   "MEDIUM_DASHED" - A dashed line where the dashes have "medium"
7253	// length.
7254	//   "MEDIUM_DASHED_DOTTED" - A line that alternates between a "medium"
7255	// dash and a dot.
7256	//   "LONG_DASHED" - A dashed line where the dashes have "long" length.
7257	//   "LONG_DASHED_DOTTED" - A line that alternates between a "long" dash
7258	// and a dot.
7259	Type string `json:"type,omitempty"`
7260
7261	// Width: The thickness of the line, in px.
7262	Width int64 `json:"width,omitempty"`
7263
7264	// ForceSendFields is a list of field names (e.g. "Type") to
7265	// unconditionally include in API requests. By default, fields with
7266	// empty values are omitted from API requests. However, any non-pointer,
7267	// non-interface field appearing in ForceSendFields will be sent to the
7268	// server regardless of whether the field is empty or not. This may be
7269	// used to include empty fields in Patch requests.
7270	ForceSendFields []string `json:"-"`
7271
7272	// NullFields is a list of field names (e.g. "Type") to include in API
7273	// requests with the JSON null value. By default, fields with empty
7274	// values are omitted from API requests. However, any field with an
7275	// empty value appearing in NullFields will be sent to the server as
7276	// null. It is an error if a field in this list has a non-empty value.
7277	// This may be used to include null fields in Patch requests.
7278	NullFields []string `json:"-"`
7279}
7280
7281func (s *LineStyle) MarshalJSON() ([]byte, error) {
7282	type NoMethod LineStyle
7283	raw := NoMethod(*s)
7284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7285}
7286
7287// ManualRule: Allows you to manually organize the values in a source
7288// data column into buckets with names of your choosing. For example, a
7289// pivot table that aggregates population by state:
7290// +-------+-------------------+ | State | SUM of Population |
7291// +-------+-------------------+ | AK | 0.7 | | AL | 4.8 | | AR | 2.9 |
7292// ... +-------+-------------------+ could be turned into a pivot table
7293// that aggregates population by time zone by providing a list of groups
7294// (for example, groupName = 'Central', items = ['AL', 'AR', 'IA', ...])
7295// to a manual group rule. Note that a similar effect could be achieved
7296// by adding a time zone column to the source data and adjusting the
7297// pivot table. +-----------+-------------------+ | Time Zone | SUM of
7298// Population | +-----------+-------------------+ | Central | 106.3 | |
7299// Eastern | 151.9 | | Mountain | 17.4 | ...
7300// +-----------+-------------------+
7301type ManualRule struct {
7302	// Groups: The list of group names and the corresponding items from the
7303	// source data that map to each group name.
7304	Groups []*ManualRuleGroup `json:"groups,omitempty"`
7305
7306	// ForceSendFields is a list of field names (e.g. "Groups") to
7307	// unconditionally include in API requests. By default, fields with
7308	// empty values are omitted from API requests. However, any non-pointer,
7309	// non-interface field appearing in ForceSendFields will be sent to the
7310	// server regardless of whether the field is empty or not. This may be
7311	// used to include empty fields in Patch requests.
7312	ForceSendFields []string `json:"-"`
7313
7314	// NullFields is a list of field names (e.g. "Groups") to include in API
7315	// requests with the JSON null value. By default, fields with empty
7316	// values are omitted from API requests. However, any field with an
7317	// empty value appearing in NullFields will be sent to the server as
7318	// null. It is an error if a field in this list has a non-empty value.
7319	// This may be used to include null fields in Patch requests.
7320	NullFields []string `json:"-"`
7321}
7322
7323func (s *ManualRule) MarshalJSON() ([]byte, error) {
7324	type NoMethod ManualRule
7325	raw := NoMethod(*s)
7326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7327}
7328
7329// ManualRuleGroup: A group name and a list of items from the source
7330// data that should be placed in the group with this name.
7331type ManualRuleGroup struct {
7332	// GroupName: The group name, which must be a string. Each group in a
7333	// given ManualRule must have a unique group name.
7334	GroupName *ExtendedValue `json:"groupName,omitempty"`
7335
7336	// Items: The items in the source data that should be placed into this
7337	// group. Each item may be a string, number, or boolean. Items may
7338	// appear in at most one group within a given ManualRule. Items that do
7339	// not appear in any group will appear on their own.
7340	Items []*ExtendedValue `json:"items,omitempty"`
7341
7342	// ForceSendFields is a list of field names (e.g. "GroupName") to
7343	// unconditionally include in API requests. By default, fields with
7344	// empty values are omitted from API requests. However, any non-pointer,
7345	// non-interface field appearing in ForceSendFields will be sent to the
7346	// server regardless of whether the field is empty or not. This may be
7347	// used to include empty fields in Patch requests.
7348	ForceSendFields []string `json:"-"`
7349
7350	// NullFields is a list of field names (e.g. "GroupName") to include in
7351	// API requests with the JSON null value. By default, fields with empty
7352	// values are omitted from API requests. However, any field with an
7353	// empty value appearing in NullFields will be sent to the server as
7354	// null. It is an error if a field in this list has a non-empty value.
7355	// This may be used to include null fields in Patch requests.
7356	NullFields []string `json:"-"`
7357}
7358
7359func (s *ManualRuleGroup) MarshalJSON() ([]byte, error) {
7360	type NoMethod ManualRuleGroup
7361	raw := NoMethod(*s)
7362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7363}
7364
7365// MatchedDeveloperMetadata: A developer metadata entry and the data
7366// filters specified in the original request that matched it.
7367type MatchedDeveloperMetadata struct {
7368	// DataFilters: All filters matching the returned developer metadata.
7369	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
7370
7371	// DeveloperMetadata: The developer metadata matching the specified
7372	// filters.
7373	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
7374
7375	// ForceSendFields is a list of field names (e.g. "DataFilters") to
7376	// unconditionally include in API requests. By default, fields with
7377	// empty values are omitted from API requests. However, any non-pointer,
7378	// non-interface field appearing in ForceSendFields will be sent to the
7379	// server regardless of whether the field is empty or not. This may be
7380	// used to include empty fields in Patch requests.
7381	ForceSendFields []string `json:"-"`
7382
7383	// NullFields is a list of field names (e.g. "DataFilters") to include
7384	// in API requests with the JSON null value. By default, fields with
7385	// empty values are omitted from API requests. However, any field with
7386	// an empty value appearing in NullFields will be sent to the server as
7387	// null. It is an error if a field in this list has a non-empty value.
7388	// This may be used to include null fields in Patch requests.
7389	NullFields []string `json:"-"`
7390}
7391
7392func (s *MatchedDeveloperMetadata) MarshalJSON() ([]byte, error) {
7393	type NoMethod MatchedDeveloperMetadata
7394	raw := NoMethod(*s)
7395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7396}
7397
7398// MatchedValueRange: A value range that was matched by one or more data
7399// filers.
7400type MatchedValueRange struct {
7401	// DataFilters: The DataFilters from the request that matched the range
7402	// of values.
7403	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
7404
7405	// ValueRange: The values matched by the DataFilter.
7406	ValueRange *ValueRange `json:"valueRange,omitempty"`
7407
7408	// ForceSendFields is a list of field names (e.g. "DataFilters") to
7409	// unconditionally include in API requests. By default, fields with
7410	// empty values are omitted from API requests. However, any non-pointer,
7411	// non-interface field appearing in ForceSendFields will be sent to the
7412	// server regardless of whether the field is empty or not. This may be
7413	// used to include empty fields in Patch requests.
7414	ForceSendFields []string `json:"-"`
7415
7416	// NullFields is a list of field names (e.g. "DataFilters") to include
7417	// in API requests with the JSON null value. By default, fields with
7418	// empty values are omitted from API requests. However, any field with
7419	// an empty value appearing in NullFields will be sent to the server as
7420	// null. It is an error if a field in this list has a non-empty value.
7421	// This may be used to include null fields in Patch requests.
7422	NullFields []string `json:"-"`
7423}
7424
7425func (s *MatchedValueRange) MarshalJSON() ([]byte, error) {
7426	type NoMethod MatchedValueRange
7427	raw := NoMethod(*s)
7428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7429}
7430
7431// MergeCellsRequest: Merges all cells in the range.
7432type MergeCellsRequest struct {
7433	// MergeType: How the cells should be merged.
7434	//
7435	// Possible values:
7436	//   "MERGE_ALL" - Create a single merge from the range
7437	//   "MERGE_COLUMNS" - Create a merge for each column in the range
7438	//   "MERGE_ROWS" - Create a merge for each row in the range
7439	MergeType string `json:"mergeType,omitempty"`
7440
7441	// Range: The range of cells to merge.
7442	Range *GridRange `json:"range,omitempty"`
7443
7444	// ForceSendFields is a list of field names (e.g. "MergeType") to
7445	// unconditionally include in API requests. By default, fields with
7446	// empty values are omitted from API requests. However, any non-pointer,
7447	// non-interface field appearing in ForceSendFields will be sent to the
7448	// server regardless of whether the field is empty or not. This may be
7449	// used to include empty fields in Patch requests.
7450	ForceSendFields []string `json:"-"`
7451
7452	// NullFields is a list of field names (e.g. "MergeType") to include in
7453	// API requests with the JSON null value. By default, fields with empty
7454	// values are omitted from API requests. However, any field with an
7455	// empty value appearing in NullFields will be sent to the server as
7456	// null. It is an error if a field in this list has a non-empty value.
7457	// This may be used to include null fields in Patch requests.
7458	NullFields []string `json:"-"`
7459}
7460
7461func (s *MergeCellsRequest) MarshalJSON() ([]byte, error) {
7462	type NoMethod MergeCellsRequest
7463	raw := NoMethod(*s)
7464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7465}
7466
7467// MoveDimensionRequest: Moves one or more rows or columns.
7468type MoveDimensionRequest struct {
7469	// DestinationIndex: The zero-based start index of where to move the
7470	// source data to, based on the coordinates *before* the source data is
7471	// removed from the grid. Existing data will be shifted down or right
7472	// (depending on the dimension) to make room for the moved dimensions.
7473	// The source dimensions are removed from the grid, so the the data may
7474	// end up in a different index than specified. For example, given
7475	// `A1..A5` of `0, 1, 2, 3, 4` and wanting to move "1" and "2" to
7476	// between "3" and "4", the source would be `ROWS [1..3)`,and the
7477	// destination index would be "4" (the zero-based index of row 5). The
7478	// end result would be `A1..A5` of `0, 3, 1, 2, 4`.
7479	DestinationIndex int64 `json:"destinationIndex,omitempty"`
7480
7481	// Source: The source dimensions to move.
7482	Source *DimensionRange `json:"source,omitempty"`
7483
7484	// ForceSendFields is a list of field names (e.g. "DestinationIndex") to
7485	// unconditionally include in API requests. By default, fields with
7486	// empty values are omitted from API requests. However, any non-pointer,
7487	// non-interface field appearing in ForceSendFields will be sent to the
7488	// server regardless of whether the field is empty or not. This may be
7489	// used to include empty fields in Patch requests.
7490	ForceSendFields []string `json:"-"`
7491
7492	// NullFields is a list of field names (e.g. "DestinationIndex") to
7493	// include in API requests with the JSON null value. By default, fields
7494	// with empty values are omitted from API requests. However, any field
7495	// with an empty value appearing in NullFields will be sent to the
7496	// server as null. It is an error if a field in this list has a
7497	// non-empty value. This may be used to include null fields in Patch
7498	// requests.
7499	NullFields []string `json:"-"`
7500}
7501
7502func (s *MoveDimensionRequest) MarshalJSON() ([]byte, error) {
7503	type NoMethod MoveDimensionRequest
7504	raw := NoMethod(*s)
7505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7506}
7507
7508// NamedRange: A named range.
7509type NamedRange struct {
7510	// Name: The name of the named range.
7511	Name string `json:"name,omitempty"`
7512
7513	// NamedRangeId: The ID of the named range.
7514	NamedRangeId string `json:"namedRangeId,omitempty"`
7515
7516	// Range: The range this represents.
7517	Range *GridRange `json:"range,omitempty"`
7518
7519	// ForceSendFields is a list of field names (e.g. "Name") to
7520	// unconditionally include in API requests. By default, fields with
7521	// empty values are omitted from API requests. However, any non-pointer,
7522	// non-interface field appearing in ForceSendFields will be sent to the
7523	// server regardless of whether the field is empty or not. This may be
7524	// used to include empty fields in Patch requests.
7525	ForceSendFields []string `json:"-"`
7526
7527	// NullFields is a list of field names (e.g. "Name") to include in API
7528	// requests with the JSON null value. By default, fields with empty
7529	// values are omitted from API requests. However, any field with an
7530	// empty value appearing in NullFields will be sent to the server as
7531	// null. It is an error if a field in this list has a non-empty value.
7532	// This may be used to include null fields in Patch requests.
7533	NullFields []string `json:"-"`
7534}
7535
7536func (s *NamedRange) MarshalJSON() ([]byte, error) {
7537	type NoMethod NamedRange
7538	raw := NoMethod(*s)
7539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7540}
7541
7542// NumberFormat: The number format of a cell.
7543type NumberFormat struct {
7544	// Pattern: Pattern string used for formatting. If not set, a default
7545	// pattern based on the user's locale will be used if necessary for the
7546	// given type. See the [Date and Number Formats
7547	// guide](/sheets/api/guides/formats) for more information about the
7548	// supported patterns.
7549	Pattern string `json:"pattern,omitempty"`
7550
7551	// Type: The type of the number format. When writing, this field must be
7552	// set.
7553	//
7554	// Possible values:
7555	//   "NUMBER_FORMAT_TYPE_UNSPECIFIED" - The number format is not
7556	// specified and is based on the contents of the cell. Do not explicitly
7557	// use this.
7558	//   "TEXT" - Text formatting, e.g `1000.12`
7559	//   "NUMBER" - Number formatting, e.g, `1,000.12`
7560	//   "PERCENT" - Percent formatting, e.g `10.12%`
7561	//   "CURRENCY" - Currency formatting, e.g `$1,000.12`
7562	//   "DATE" - Date formatting, e.g `9/26/2008`
7563	//   "TIME" - Time formatting, e.g `3:59:00 PM`
7564	//   "DATE_TIME" - Date+Time formatting, e.g `9/26/08 15:59:00`
7565	//   "SCIENTIFIC" - Scientific number formatting, e.g `1.01E+03`
7566	Type string `json:"type,omitempty"`
7567
7568	// ForceSendFields is a list of field names (e.g. "Pattern") to
7569	// unconditionally include in API requests. By default, fields with
7570	// empty values are omitted from API requests. However, any non-pointer,
7571	// non-interface field appearing in ForceSendFields will be sent to the
7572	// server regardless of whether the field is empty or not. This may be
7573	// used to include empty fields in Patch requests.
7574	ForceSendFields []string `json:"-"`
7575
7576	// NullFields is a list of field names (e.g. "Pattern") to include in
7577	// API requests with the JSON null value. By default, fields with empty
7578	// values are omitted from API requests. However, any field with an
7579	// empty value appearing in NullFields will be sent to the server as
7580	// null. It is an error if a field in this list has a non-empty value.
7581	// This may be used to include null fields in Patch requests.
7582	NullFields []string `json:"-"`
7583}
7584
7585func (s *NumberFormat) MarshalJSON() ([]byte, error) {
7586	type NoMethod NumberFormat
7587	raw := NoMethod(*s)
7588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7589}
7590
7591// OrgChartSpec: An org chart. Org charts require a unique set of labels
7592// in labels and may optionally include parent_labels and tooltips.
7593// parent_labels contain, for each node, the label identifying the
7594// parent node. tooltips contain, for each node, an optional tooltip.
7595// For example, to describe an OrgChart with Alice as the CEO, Bob as
7596// the President (reporting to Alice) and Cathy as VP of Sales (also
7597// reporting to Alice), have labels contain "Alice", "Bob", "Cathy",
7598// parent_labels contain "", "Alice", "Alice" and tooltips contain
7599// "CEO", "President", "VP Sales".
7600type OrgChartSpec struct {
7601	// Labels: The data containing the labels for all the nodes in the
7602	// chart. Labels must be unique.
7603	Labels *ChartData `json:"labels,omitempty"`
7604
7605	// NodeColor: The color of the org chart nodes.
7606	NodeColor *Color `json:"nodeColor,omitempty"`
7607
7608	// NodeColorStyle: The color of the org chart nodes. If node_color is
7609	// also set, this field takes precedence.
7610	NodeColorStyle *ColorStyle `json:"nodeColorStyle,omitempty"`
7611
7612	// NodeSize: The size of the org chart nodes.
7613	//
7614	// Possible values:
7615	//   "ORG_CHART_LABEL_SIZE_UNSPECIFIED" - Default value, do not use.
7616	//   "SMALL" - The small org chart node size.
7617	//   "MEDIUM" - The medium org chart node size.
7618	//   "LARGE" - The large org chart node size.
7619	NodeSize string `json:"nodeSize,omitempty"`
7620
7621	// ParentLabels: The data containing the label of the parent for the
7622	// corresponding node. A blank value indicates that the node has no
7623	// parent and is a top-level node. This field is optional.
7624	ParentLabels *ChartData `json:"parentLabels,omitempty"`
7625
7626	// SelectedNodeColor: The color of the selected org chart nodes.
7627	SelectedNodeColor *Color `json:"selectedNodeColor,omitempty"`
7628
7629	// SelectedNodeColorStyle: The color of the selected org chart nodes. If
7630	// selected_node_color is also set, this field takes precedence.
7631	SelectedNodeColorStyle *ColorStyle `json:"selectedNodeColorStyle,omitempty"`
7632
7633	// Tooltips: The data containing the tooltip for the corresponding node.
7634	// A blank value results in no tooltip being displayed for the node.
7635	// This field is optional.
7636	Tooltips *ChartData `json:"tooltips,omitempty"`
7637
7638	// ForceSendFields is a list of field names (e.g. "Labels") to
7639	// unconditionally include in API requests. By default, fields with
7640	// empty values are omitted from API requests. However, any non-pointer,
7641	// non-interface field appearing in ForceSendFields will be sent to the
7642	// server regardless of whether the field is empty or not. This may be
7643	// used to include empty fields in Patch requests.
7644	ForceSendFields []string `json:"-"`
7645
7646	// NullFields is a list of field names (e.g. "Labels") to include in API
7647	// requests with the JSON null value. By default, fields with empty
7648	// values are omitted from API requests. However, any field with an
7649	// empty value appearing in NullFields will be sent to the server as
7650	// null. It is an error if a field in this list has a non-empty value.
7651	// This may be used to include null fields in Patch requests.
7652	NullFields []string `json:"-"`
7653}
7654
7655func (s *OrgChartSpec) MarshalJSON() ([]byte, error) {
7656	type NoMethod OrgChartSpec
7657	raw := NoMethod(*s)
7658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7659}
7660
7661// OverlayPosition: The location an object is overlaid on top of a grid.
7662type OverlayPosition struct {
7663	// AnchorCell: The cell the object is anchored to.
7664	AnchorCell *GridCoordinate `json:"anchorCell,omitempty"`
7665
7666	// HeightPixels: The height of the object, in pixels. Defaults to 371.
7667	HeightPixels int64 `json:"heightPixels,omitempty"`
7668
7669	// OffsetXPixels: The horizontal offset, in pixels, that the object is
7670	// offset from the anchor cell.
7671	OffsetXPixels int64 `json:"offsetXPixels,omitempty"`
7672
7673	// OffsetYPixels: The vertical offset, in pixels, that the object is
7674	// offset from the anchor cell.
7675	OffsetYPixels int64 `json:"offsetYPixels,omitempty"`
7676
7677	// WidthPixels: The width of the object, in pixels. Defaults to 600.
7678	WidthPixels int64 `json:"widthPixels,omitempty"`
7679
7680	// ForceSendFields is a list of field names (e.g. "AnchorCell") to
7681	// unconditionally include in API requests. By default, fields with
7682	// empty values are omitted from API requests. However, any non-pointer,
7683	// non-interface field appearing in ForceSendFields will be sent to the
7684	// server regardless of whether the field is empty or not. This may be
7685	// used to include empty fields in Patch requests.
7686	ForceSendFields []string `json:"-"`
7687
7688	// NullFields is a list of field names (e.g. "AnchorCell") to include in
7689	// API requests with the JSON null value. By default, fields with empty
7690	// values are omitted from API requests. However, any field with an
7691	// empty value appearing in NullFields will be sent to the server as
7692	// null. It is an error if a field in this list has a non-empty value.
7693	// This may be used to include null fields in Patch requests.
7694	NullFields []string `json:"-"`
7695}
7696
7697func (s *OverlayPosition) MarshalJSON() ([]byte, error) {
7698	type NoMethod OverlayPosition
7699	raw := NoMethod(*s)
7700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7701}
7702
7703// Padding: The amount of padding around the cell, in pixels. When
7704// updating padding, every field must be specified.
7705type Padding struct {
7706	// Bottom: The bottom padding of the cell.
7707	Bottom int64 `json:"bottom,omitempty"`
7708
7709	// Left: The left padding of the cell.
7710	Left int64 `json:"left,omitempty"`
7711
7712	// Right: The right padding of the cell.
7713	Right int64 `json:"right,omitempty"`
7714
7715	// Top: The top padding of the cell.
7716	Top int64 `json:"top,omitempty"`
7717
7718	// ForceSendFields is a list of field names (e.g. "Bottom") to
7719	// unconditionally include in API requests. By default, fields with
7720	// empty values are omitted from API requests. However, any non-pointer,
7721	// non-interface field appearing in ForceSendFields will be sent to the
7722	// server regardless of whether the field is empty or not. This may be
7723	// used to include empty fields in Patch requests.
7724	ForceSendFields []string `json:"-"`
7725
7726	// NullFields is a list of field names (e.g. "Bottom") to include in API
7727	// requests with the JSON null value. By default, fields with empty
7728	// values are omitted from API requests. However, any field with an
7729	// empty value appearing in NullFields will be sent to the server as
7730	// null. It is an error if a field in this list has a non-empty value.
7731	// This may be used to include null fields in Patch requests.
7732	NullFields []string `json:"-"`
7733}
7734
7735func (s *Padding) MarshalJSON() ([]byte, error) {
7736	type NoMethod Padding
7737	raw := NoMethod(*s)
7738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7739}
7740
7741// PasteDataRequest: Inserts data into the spreadsheet starting at the
7742// specified coordinate.
7743type PasteDataRequest struct {
7744	// Coordinate: The coordinate at which the data should start being
7745	// inserted.
7746	Coordinate *GridCoordinate `json:"coordinate,omitempty"`
7747
7748	// Data: The data to insert.
7749	Data string `json:"data,omitempty"`
7750
7751	// Delimiter: The delimiter in the data.
7752	Delimiter string `json:"delimiter,omitempty"`
7753
7754	// Html: True if the data is HTML.
7755	Html bool `json:"html,omitempty"`
7756
7757	// Type: How the data should be pasted.
7758	//
7759	// Possible values:
7760	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
7761	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
7762	// or merges.
7763	//   "PASTE_FORMAT" - Paste the format and data validation only.
7764	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
7765	//   "PASTE_FORMULA" - Paste the formulas only.
7766	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
7767	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
7768	// rules only.
7769	Type string `json:"type,omitempty"`
7770
7771	// ForceSendFields is a list of field names (e.g. "Coordinate") to
7772	// unconditionally include in API requests. By default, fields with
7773	// empty values are omitted from API requests. However, any non-pointer,
7774	// non-interface field appearing in ForceSendFields will be sent to the
7775	// server regardless of whether the field is empty or not. This may be
7776	// used to include empty fields in Patch requests.
7777	ForceSendFields []string `json:"-"`
7778
7779	// NullFields is a list of field names (e.g. "Coordinate") to include in
7780	// API requests with the JSON null value. By default, fields with empty
7781	// values are omitted from API requests. However, any field with an
7782	// empty value appearing in NullFields will be sent to the server as
7783	// null. It is an error if a field in this list has a non-empty value.
7784	// This may be used to include null fields in Patch requests.
7785	NullFields []string `json:"-"`
7786}
7787
7788func (s *PasteDataRequest) MarshalJSON() ([]byte, error) {
7789	type NoMethod PasteDataRequest
7790	raw := NoMethod(*s)
7791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7792}
7793
7794// PieChartSpec: A pie chart.
7795type PieChartSpec struct {
7796	// Domain: The data that covers the domain of the pie chart.
7797	Domain *ChartData `json:"domain,omitempty"`
7798
7799	// LegendPosition: Where the legend of the pie chart should be drawn.
7800	//
7801	// Possible values:
7802	//   "PIE_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
7803	// use.
7804	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
7805	// chart.
7806	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
7807	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
7808	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
7809	//   "NO_LEGEND" - No legend is rendered.
7810	//   "LABELED_LEGEND" - Each pie slice has a label attached to it.
7811	LegendPosition string `json:"legendPosition,omitempty"`
7812
7813	// PieHole: The size of the hole in the pie chart.
7814	PieHole float64 `json:"pieHole,omitempty"`
7815
7816	// Series: The data that covers the one and only series of the pie
7817	// chart.
7818	Series *ChartData `json:"series,omitempty"`
7819
7820	// ThreeDimensional: True if the pie is three dimensional.
7821	ThreeDimensional bool `json:"threeDimensional,omitempty"`
7822
7823	// ForceSendFields is a list of field names (e.g. "Domain") to
7824	// unconditionally include in API requests. By default, fields with
7825	// empty values are omitted from API requests. However, any non-pointer,
7826	// non-interface field appearing in ForceSendFields will be sent to the
7827	// server regardless of whether the field is empty or not. This may be
7828	// used to include empty fields in Patch requests.
7829	ForceSendFields []string `json:"-"`
7830
7831	// NullFields is a list of field names (e.g. "Domain") to include in API
7832	// requests with the JSON null value. By default, fields with empty
7833	// values are omitted from API requests. However, any field with an
7834	// empty value appearing in NullFields will be sent to the server as
7835	// null. It is an error if a field in this list has a non-empty value.
7836	// This may be used to include null fields in Patch requests.
7837	NullFields []string `json:"-"`
7838}
7839
7840func (s *PieChartSpec) MarshalJSON() ([]byte, error) {
7841	type NoMethod PieChartSpec
7842	raw := NoMethod(*s)
7843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7844}
7845
7846func (s *PieChartSpec) UnmarshalJSON(data []byte) error {
7847	type NoMethod PieChartSpec
7848	var s1 struct {
7849		PieHole gensupport.JSONFloat64 `json:"pieHole"`
7850		*NoMethod
7851	}
7852	s1.NoMethod = (*NoMethod)(s)
7853	if err := json.Unmarshal(data, &s1); err != nil {
7854		return err
7855	}
7856	s.PieHole = float64(s1.PieHole)
7857	return nil
7858}
7859
7860// PivotFilterCriteria: Criteria for showing/hiding rows in a pivot
7861// table.
7862type PivotFilterCriteria struct {
7863	// Condition: A condition that must be true for values to be shown.
7864	// (`visibleValues` does not override this -- even if a value is listed
7865	// there, it is still hidden if it does not meet the condition.)
7866	// Condition values that refer to ranges in A1-notation are evaluated
7867	// relative to the pivot table sheet. References are treated absolutely,
7868	// so are not filled down the pivot table. For example, a condition
7869	// value of `=A1` on "Pivot Table 1" is treated as `'Pivot Table
7870	// 1'!$A$1`. The source data of the pivot table can be referenced by
7871	// column header name. For example, if the source data has columns named
7872	// "Revenue" and "Cost" and a condition is applied to the "Revenue"
7873	// column with type `NUMBER_GREATER` and value `=Cost`, then only
7874	// columns where "Revenue" > "Cost" are included.
7875	Condition *BooleanCondition `json:"condition,omitempty"`
7876
7877	// VisibleByDefault: Whether values are visible by default. If true, the
7878	// visible_values are ignored, all values that meet condition (if
7879	// specified) are shown. If false, values that are both in
7880	// visible_values and meet condition are shown.
7881	VisibleByDefault bool `json:"visibleByDefault,omitempty"`
7882
7883	// VisibleValues: Values that should be included. Values not listed here
7884	// are excluded.
7885	VisibleValues []string `json:"visibleValues,omitempty"`
7886
7887	// ForceSendFields is a list of field names (e.g. "Condition") to
7888	// unconditionally include in API requests. By default, fields with
7889	// empty values are omitted from API requests. However, any non-pointer,
7890	// non-interface field appearing in ForceSendFields will be sent to the
7891	// server regardless of whether the field is empty or not. This may be
7892	// used to include empty fields in Patch requests.
7893	ForceSendFields []string `json:"-"`
7894
7895	// NullFields is a list of field names (e.g. "Condition") to include in
7896	// API requests with the JSON null value. By default, fields with empty
7897	// values are omitted from API requests. However, any field with an
7898	// empty value appearing in NullFields will be sent to the server as
7899	// null. It is an error if a field in this list has a non-empty value.
7900	// This may be used to include null fields in Patch requests.
7901	NullFields []string `json:"-"`
7902}
7903
7904func (s *PivotFilterCriteria) MarshalJSON() ([]byte, error) {
7905	type NoMethod PivotFilterCriteria
7906	raw := NoMethod(*s)
7907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7908}
7909
7910// PivotFilterSpec: The pivot table filter criteria associated with a
7911// specific source column offset.
7912type PivotFilterSpec struct {
7913	// ColumnOffsetIndex: The column offset of the source range.
7914	ColumnOffsetIndex int64 `json:"columnOffsetIndex,omitempty"`
7915
7916	// DataSourceColumnReference: The reference to the data source column.
7917	DataSourceColumnReference *DataSourceColumnReference `json:"dataSourceColumnReference,omitempty"`
7918
7919	// FilterCriteria: The criteria for the column.
7920	FilterCriteria *PivotFilterCriteria `json:"filterCriteria,omitempty"`
7921
7922	// ForceSendFields is a list of field names (e.g. "ColumnOffsetIndex")
7923	// to unconditionally include in API requests. By default, fields with
7924	// empty values are omitted from API requests. However, any non-pointer,
7925	// non-interface field appearing in ForceSendFields will be sent to the
7926	// server regardless of whether the field is empty or not. This may be
7927	// used to include empty fields in Patch requests.
7928	ForceSendFields []string `json:"-"`
7929
7930	// NullFields is a list of field names (e.g. "ColumnOffsetIndex") to
7931	// include in API requests with the JSON null value. By default, fields
7932	// with empty values are omitted from API requests. However, any field
7933	// with an empty value appearing in NullFields will be sent to the
7934	// server as null. It is an error if a field in this list has a
7935	// non-empty value. This may be used to include null fields in Patch
7936	// requests.
7937	NullFields []string `json:"-"`
7938}
7939
7940func (s *PivotFilterSpec) MarshalJSON() ([]byte, error) {
7941	type NoMethod PivotFilterSpec
7942	raw := NoMethod(*s)
7943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7944}
7945
7946// PivotGroup: A single grouping (either row or column) in a pivot
7947// table.
7948type PivotGroup struct {
7949	// DataSourceColumnReference: The reference to the data source column
7950	// this grouping is based on.
7951	DataSourceColumnReference *DataSourceColumnReference `json:"dataSourceColumnReference,omitempty"`
7952
7953	// GroupLimit: The count limit on rows or columns to apply to this pivot
7954	// group.
7955	GroupLimit *PivotGroupLimit `json:"groupLimit,omitempty"`
7956
7957	// GroupRule: The group rule to apply to this row/column group.
7958	GroupRule *PivotGroupRule `json:"groupRule,omitempty"`
7959
7960	// Label: The labels to use for the row/column groups which can be
7961	// customized. For example, in the following pivot table, the row label
7962	// is `Region` (which could be renamed to `State`) and the column label
7963	// is `Product` (which could be renamed `Item`). Pivot tables created
7964	// before December 2017 do not have header labels. If you'd like to add
7965	// header labels to an existing pivot table, please delete the existing
7966	// pivot table and then create a new pivot table with same parameters.
7967	// +--------------+---------+-------+ | SUM of Units | Product | | |
7968	// Region | Pen | Paper | +--------------+---------+-------+ | New York
7969	// | 345 | 98 | | Oregon | 234 | 123 | | Tennessee | 531 | 415 |
7970	// +--------------+---------+-------+ | Grand Total | 1110 | 636 |
7971	// +--------------+---------+-------+
7972	Label string `json:"label,omitempty"`
7973
7974	// RepeatHeadings: True if the headings in this pivot group should be
7975	// repeated. This is only valid for row groupings and is ignored by
7976	// columns. By default, we minimize repitition of headings by not
7977	// showing higher level headings where they are the same. For example,
7978	// even though the third row below corresponds to "Q1 Mar", "Q1" is not
7979	// shown because it is redundant with previous rows. Setting
7980	// repeat_headings to true would cause "Q1" to be repeated for "Feb" and
7981	// "Mar". +--------------+ | Q1 | Jan | | | Feb | | | Mar |
7982	// +--------+-----+ | Q1 Total | +--------------+
7983	RepeatHeadings bool `json:"repeatHeadings,omitempty"`
7984
7985	// ShowTotals: True if the pivot table should include the totals for
7986	// this grouping.
7987	ShowTotals bool `json:"showTotals,omitempty"`
7988
7989	// SortOrder: The order the values in this group should be sorted.
7990	//
7991	// Possible values:
7992	//   "SORT_ORDER_UNSPECIFIED" - Default value, do not use this.
7993	//   "ASCENDING" - Sort ascending.
7994	//   "DESCENDING" - Sort descending.
7995	SortOrder string `json:"sortOrder,omitempty"`
7996
7997	// SourceColumnOffset: The column offset of the source range that this
7998	// grouping is based on. For example, if the source was `C10:E15`, a
7999	// `sourceColumnOffset` of `0` means this group refers to column `C`,
8000	// whereas the offset `1` would refer to column `D`.
8001	SourceColumnOffset int64 `json:"sourceColumnOffset,omitempty"`
8002
8003	// ValueBucket: The bucket of the opposite pivot group to sort by. If
8004	// not specified, sorting is alphabetical by this group's values.
8005	ValueBucket *PivotGroupSortValueBucket `json:"valueBucket,omitempty"`
8006
8007	// ValueMetadata: Metadata about values in the grouping.
8008	ValueMetadata []*PivotGroupValueMetadata `json:"valueMetadata,omitempty"`
8009
8010	// ForceSendFields is a list of field names (e.g.
8011	// "DataSourceColumnReference") to unconditionally include in API
8012	// requests. By default, fields with empty values are omitted from API
8013	// requests. However, any non-pointer, non-interface field appearing in
8014	// ForceSendFields will be sent to the server regardless of whether the
8015	// field is empty or not. This may be used to include empty fields in
8016	// Patch requests.
8017	ForceSendFields []string `json:"-"`
8018
8019	// NullFields is a list of field names (e.g.
8020	// "DataSourceColumnReference") to include in API requests with the JSON
8021	// null value. By default, fields with empty values are omitted from API
8022	// requests. However, any field with an empty value appearing in
8023	// NullFields will be sent to the server as null. It is an error if a
8024	// field in this list has a non-empty value. This may be used to include
8025	// null fields in Patch requests.
8026	NullFields []string `json:"-"`
8027}
8028
8029func (s *PivotGroup) MarshalJSON() ([]byte, error) {
8030	type NoMethod PivotGroup
8031	raw := NoMethod(*s)
8032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8033}
8034
8035// PivotGroupLimit: The count limit on rows or columns in the pivot
8036// group.
8037type PivotGroupLimit struct {
8038	// ApplyOrder: The order in which the group limit is applied to the
8039	// pivot table. Pivot group limits are applied from lower to higher
8040	// order number. Order numbers are normalized to consecutive integers
8041	// from 0. For write request, to fully customize the applying orders,
8042	// all pivot group limits should have this field set with an unique
8043	// number. Otherwise, the order is determined by the index in the
8044	// PivotTable.rows list and then the PivotTable.columns list.
8045	ApplyOrder int64 `json:"applyOrder,omitempty"`
8046
8047	// CountLimit: The count limit.
8048	CountLimit int64 `json:"countLimit,omitempty"`
8049
8050	// ForceSendFields is a list of field names (e.g. "ApplyOrder") to
8051	// unconditionally include in API requests. By default, fields with
8052	// empty values are omitted from API requests. However, any non-pointer,
8053	// non-interface field appearing in ForceSendFields will be sent to the
8054	// server regardless of whether the field is empty or not. This may be
8055	// used to include empty fields in Patch requests.
8056	ForceSendFields []string `json:"-"`
8057
8058	// NullFields is a list of field names (e.g. "ApplyOrder") to include in
8059	// API requests with the JSON null value. By default, fields with empty
8060	// values are omitted from API requests. However, any field with an
8061	// empty value appearing in NullFields will be sent to the server as
8062	// null. It is an error if a field in this list has a non-empty value.
8063	// This may be used to include null fields in Patch requests.
8064	NullFields []string `json:"-"`
8065}
8066
8067func (s *PivotGroupLimit) MarshalJSON() ([]byte, error) {
8068	type NoMethod PivotGroupLimit
8069	raw := NoMethod(*s)
8070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8071}
8072
8073// PivotGroupRule: An optional setting on a PivotGroup that defines
8074// buckets for the values in the source data column rather than breaking
8075// out each individual value. Only one PivotGroup with a group rule may
8076// be added for each column in the source data, though on any given
8077// column you may add both a PivotGroup that has a rule and a PivotGroup
8078// that does not.
8079type PivotGroupRule struct {
8080	// DateTimeRule: A DateTimeRule.
8081	DateTimeRule *DateTimeRule `json:"dateTimeRule,omitempty"`
8082
8083	// HistogramRule: A HistogramRule.
8084	HistogramRule *HistogramRule `json:"histogramRule,omitempty"`
8085
8086	// ManualRule: A ManualRule.
8087	ManualRule *ManualRule `json:"manualRule,omitempty"`
8088
8089	// ForceSendFields is a list of field names (e.g. "DateTimeRule") to
8090	// unconditionally include in API requests. By default, fields with
8091	// empty values are omitted from API requests. However, any non-pointer,
8092	// non-interface field appearing in ForceSendFields will be sent to the
8093	// server regardless of whether the field is empty or not. This may be
8094	// used to include empty fields in Patch requests.
8095	ForceSendFields []string `json:"-"`
8096
8097	// NullFields is a list of field names (e.g. "DateTimeRule") to include
8098	// in API requests with the JSON null value. By default, fields with
8099	// empty values are omitted from API requests. However, any field with
8100	// an empty value appearing in NullFields will be sent to the server as
8101	// null. It is an error if a field in this list has a non-empty value.
8102	// This may be used to include null fields in Patch requests.
8103	NullFields []string `json:"-"`
8104}
8105
8106func (s *PivotGroupRule) MarshalJSON() ([]byte, error) {
8107	type NoMethod PivotGroupRule
8108	raw := NoMethod(*s)
8109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8110}
8111
8112// PivotGroupSortValueBucket: Information about which values in a pivot
8113// group should be used for sorting.
8114type PivotGroupSortValueBucket struct {
8115	// Buckets: Determines the bucket from which values are chosen to sort.
8116	// For example, in a pivot table with one row group & two column groups,
8117	// the row group can list up to two values. The first value corresponds
8118	// to a value within the first column group, and the second value
8119	// corresponds to a value in the second column group. If no values are
8120	// listed, this would indicate that the row should be sorted according
8121	// to the "Grand Total" over the column groups. If a single value is
8122	// listed, this would correspond to using the "Total" of that bucket.
8123	Buckets []*ExtendedValue `json:"buckets,omitempty"`
8124
8125	// ValuesIndex: The offset in the PivotTable.values list which the
8126	// values in this grouping should be sorted by.
8127	ValuesIndex int64 `json:"valuesIndex,omitempty"`
8128
8129	// ForceSendFields is a list of field names (e.g. "Buckets") to
8130	// unconditionally include in API requests. By default, fields with
8131	// empty values are omitted from API requests. However, any non-pointer,
8132	// non-interface field appearing in ForceSendFields will be sent to the
8133	// server regardless of whether the field is empty or not. This may be
8134	// used to include empty fields in Patch requests.
8135	ForceSendFields []string `json:"-"`
8136
8137	// NullFields is a list of field names (e.g. "Buckets") to include in
8138	// API requests with the JSON null value. By default, fields with empty
8139	// values are omitted from API requests. However, any field with an
8140	// empty value appearing in NullFields will be sent to the server as
8141	// null. It is an error if a field in this list has a non-empty value.
8142	// This may be used to include null fields in Patch requests.
8143	NullFields []string `json:"-"`
8144}
8145
8146func (s *PivotGroupSortValueBucket) MarshalJSON() ([]byte, error) {
8147	type NoMethod PivotGroupSortValueBucket
8148	raw := NoMethod(*s)
8149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8150}
8151
8152// PivotGroupValueMetadata: Metadata about a value in a pivot grouping.
8153type PivotGroupValueMetadata struct {
8154	// Collapsed: True if the data corresponding to the value is collapsed.
8155	Collapsed bool `json:"collapsed,omitempty"`
8156
8157	// Value: The calculated value the metadata corresponds to. (Note that
8158	// formulaValue is not valid, because the values will be calculated.)
8159	Value *ExtendedValue `json:"value,omitempty"`
8160
8161	// ForceSendFields is a list of field names (e.g. "Collapsed") to
8162	// unconditionally include in API requests. By default, fields with
8163	// empty values are omitted from API requests. However, any non-pointer,
8164	// non-interface field appearing in ForceSendFields will be sent to the
8165	// server regardless of whether the field is empty or not. This may be
8166	// used to include empty fields in Patch requests.
8167	ForceSendFields []string `json:"-"`
8168
8169	// NullFields is a list of field names (e.g. "Collapsed") to include in
8170	// API requests with the JSON null value. By default, fields with empty
8171	// values are omitted from API requests. However, any field with an
8172	// empty value appearing in NullFields will be sent to the server as
8173	// null. It is an error if a field in this list has a non-empty value.
8174	// This may be used to include null fields in Patch requests.
8175	NullFields []string `json:"-"`
8176}
8177
8178func (s *PivotGroupValueMetadata) MarshalJSON() ([]byte, error) {
8179	type NoMethod PivotGroupValueMetadata
8180	raw := NoMethod(*s)
8181	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8182}
8183
8184// PivotTable: A pivot table.
8185type PivotTable struct {
8186	// Columns: Each column grouping in the pivot table.
8187	Columns []*PivotGroup `json:"columns,omitempty"`
8188
8189	// Criteria: An optional mapping of filters per source column offset.
8190	// The filters are applied before aggregating data into the pivot table.
8191	// The map's key is the column offset of the source range that you want
8192	// to filter, and the value is the criteria for that column. For
8193	// example, if the source was `C10:E15`, a key of `0` will have the
8194	// filter for column `C`, whereas the key `1` is for column `D`. This
8195	// field is deprecated in favor of filter_specs.
8196	Criteria map[string]PivotFilterCriteria `json:"criteria,omitempty"`
8197
8198	// DataExecutionStatus: Output only. The data execution status for data
8199	// source pivot tables.
8200	DataExecutionStatus *DataExecutionStatus `json:"dataExecutionStatus,omitempty"`
8201
8202	// DataSourceId: The ID of the data source the pivot table is reading
8203	// data from.
8204	DataSourceId string `json:"dataSourceId,omitempty"`
8205
8206	// FilterSpecs: The filters applied to the source columns before
8207	// aggregating data for the pivot table. Both criteria and filter_specs
8208	// are populated in responses. If both fields are specified in an update
8209	// request, this field takes precedence.
8210	FilterSpecs []*PivotFilterSpec `json:"filterSpecs,omitempty"`
8211
8212	// Rows: Each row grouping in the pivot table.
8213	Rows []*PivotGroup `json:"rows,omitempty"`
8214
8215	// Source: The range the pivot table is reading data from.
8216	Source *GridRange `json:"source,omitempty"`
8217
8218	// ValueLayout: Whether values should be listed horizontally (as
8219	// columns) or vertically (as rows).
8220	//
8221	// Possible values:
8222	//   "HORIZONTAL" - Values are laid out horizontally (as columns).
8223	//   "VERTICAL" - Values are laid out vertically (as rows).
8224	ValueLayout string `json:"valueLayout,omitempty"`
8225
8226	// Values: A list of values to include in the pivot table.
8227	Values []*PivotValue `json:"values,omitempty"`
8228
8229	// ForceSendFields is a list of field names (e.g. "Columns") to
8230	// unconditionally include in API requests. By default, fields with
8231	// empty values are omitted from API requests. However, any non-pointer,
8232	// non-interface field appearing in ForceSendFields will be sent to the
8233	// server regardless of whether the field is empty or not. This may be
8234	// used to include empty fields in Patch requests.
8235	ForceSendFields []string `json:"-"`
8236
8237	// NullFields is a list of field names (e.g. "Columns") to include in
8238	// API requests with the JSON null value. By default, fields with empty
8239	// values are omitted from API requests. However, any field with an
8240	// empty value appearing in NullFields will be sent to the server as
8241	// null. It is an error if a field in this list has a non-empty value.
8242	// This may be used to include null fields in Patch requests.
8243	NullFields []string `json:"-"`
8244}
8245
8246func (s *PivotTable) MarshalJSON() ([]byte, error) {
8247	type NoMethod PivotTable
8248	raw := NoMethod(*s)
8249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8250}
8251
8252// PivotValue: The definition of how a value in a pivot table should be
8253// calculated.
8254type PivotValue struct {
8255	// CalculatedDisplayType: If specified, indicates that pivot values
8256	// should be displayed as the result of a calculation with another pivot
8257	// value. For example, if calculated_display_type is specified as
8258	// PERCENT_OF_GRAND_TOTAL, all the pivot values are displayed as the
8259	// percentage of the grand total. In the Sheets editor, this is referred
8260	// to as "Show As" in the value section of a pivot table.
8261	//
8262	// Possible values:
8263	//   "PIVOT_VALUE_CALCULATED_DISPLAY_TYPE_UNSPECIFIED" - Default value,
8264	// do not use.
8265	//   "PERCENT_OF_ROW_TOTAL" - Shows the pivot values as percentage of
8266	// the row total values.
8267	//   "PERCENT_OF_COLUMN_TOTAL" - Shows the pivot values as percentage of
8268	// the column total values.
8269	//   "PERCENT_OF_GRAND_TOTAL" - Shows the pivot values as percentage of
8270	// the grand total values.
8271	CalculatedDisplayType string `json:"calculatedDisplayType,omitempty"`
8272
8273	// DataSourceColumnReference: The reference to the data source column
8274	// that this value reads from.
8275	DataSourceColumnReference *DataSourceColumnReference `json:"dataSourceColumnReference,omitempty"`
8276
8277	// Formula: A custom formula to calculate the value. The formula must
8278	// start with an `=` character.
8279	Formula string `json:"formula,omitempty"`
8280
8281	// Name: A name to use for the value.
8282	Name string `json:"name,omitempty"`
8283
8284	// SourceColumnOffset: The column offset of the source range that this
8285	// value reads from. For example, if the source was `C10:E15`, a
8286	// `sourceColumnOffset` of `0` means this value refers to column `C`,
8287	// whereas the offset `1` would refer to column `D`.
8288	SourceColumnOffset int64 `json:"sourceColumnOffset,omitempty"`
8289
8290	// SummarizeFunction: A function to summarize the value. If formula is
8291	// set, the only supported values are SUM and CUSTOM. If
8292	// sourceColumnOffset is set, then `CUSTOM` is not supported.
8293	//
8294	// Possible values:
8295	//   "PIVOT_STANDARD_VALUE_FUNCTION_UNSPECIFIED" - The default, do not
8296	// use.
8297	//   "SUM" - Corresponds to the `SUM` function.
8298	//   "COUNTA" - Corresponds to the `COUNTA` function.
8299	//   "COUNT" - Corresponds to the `COUNT` function.
8300	//   "COUNTUNIQUE" - Corresponds to the `COUNTUNIQUE` function.
8301	//   "AVERAGE" - Corresponds to the `AVERAGE` function.
8302	//   "MAX" - Corresponds to the `MAX` function.
8303	//   "MIN" - Corresponds to the `MIN` function.
8304	//   "MEDIAN" - Corresponds to the `MEDIAN` function.
8305	//   "PRODUCT" - Corresponds to the `PRODUCT` function.
8306	//   "STDEV" - Corresponds to the `STDEV` function.
8307	//   "STDEVP" - Corresponds to the `STDEVP` function.
8308	//   "VAR" - Corresponds to the `VAR` function.
8309	//   "VARP" - Corresponds to the `VARP` function.
8310	//   "CUSTOM" - Indicates the formula should be used as-is. Only valid
8311	// if PivotValue.formula was set.
8312	SummarizeFunction string `json:"summarizeFunction,omitempty"`
8313
8314	// ForceSendFields is a list of field names (e.g.
8315	// "CalculatedDisplayType") to unconditionally include in API requests.
8316	// By default, fields with empty values are omitted from API requests.
8317	// However, any non-pointer, non-interface field appearing in
8318	// ForceSendFields will be sent to the server regardless of whether the
8319	// field is empty or not. This may be used to include empty fields in
8320	// Patch requests.
8321	ForceSendFields []string `json:"-"`
8322
8323	// NullFields is a list of field names (e.g. "CalculatedDisplayType") to
8324	// include in API requests with the JSON null value. By default, fields
8325	// with empty values are omitted from API requests. However, any field
8326	// with an empty value appearing in NullFields will be sent to the
8327	// server as null. It is an error if a field in this list has a
8328	// non-empty value. This may be used to include null fields in Patch
8329	// requests.
8330	NullFields []string `json:"-"`
8331}
8332
8333func (s *PivotValue) MarshalJSON() ([]byte, error) {
8334	type NoMethod PivotValue
8335	raw := NoMethod(*s)
8336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8337}
8338
8339// PointStyle: The style of a point on the chart.
8340type PointStyle struct {
8341	// Shape: The point shape. If empty or unspecified, a default shape is
8342	// used.
8343	//
8344	// Possible values:
8345	//   "POINT_SHAPE_UNSPECIFIED" - Default value.
8346	//   "CIRCLE" - A circle shape.
8347	//   "DIAMOND" - A diamond shape.
8348	//   "HEXAGON" - A hexagon shape.
8349	//   "PENTAGON" - A pentagon shape.
8350	//   "SQUARE" - A square shape.
8351	//   "STAR" - A star shape.
8352	//   "TRIANGLE" - A triangle shape.
8353	//   "X_MARK" - An x-mark shape.
8354	Shape string `json:"shape,omitempty"`
8355
8356	// Size: The point size. If empty, a default size is used.
8357	Size float64 `json:"size,omitempty"`
8358
8359	// ForceSendFields is a list of field names (e.g. "Shape") to
8360	// unconditionally include in API requests. By default, fields with
8361	// empty values are omitted from API requests. However, any non-pointer,
8362	// non-interface field appearing in ForceSendFields will be sent to the
8363	// server regardless of whether the field is empty or not. This may be
8364	// used to include empty fields in Patch requests.
8365	ForceSendFields []string `json:"-"`
8366
8367	// NullFields is a list of field names (e.g. "Shape") to include in API
8368	// requests with the JSON null value. By default, fields with empty
8369	// values are omitted from API requests. However, any field with an
8370	// empty value appearing in NullFields will be sent to the server as
8371	// null. It is an error if a field in this list has a non-empty value.
8372	// This may be used to include null fields in Patch requests.
8373	NullFields []string `json:"-"`
8374}
8375
8376func (s *PointStyle) MarshalJSON() ([]byte, error) {
8377	type NoMethod PointStyle
8378	raw := NoMethod(*s)
8379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8380}
8381
8382func (s *PointStyle) UnmarshalJSON(data []byte) error {
8383	type NoMethod PointStyle
8384	var s1 struct {
8385		Size gensupport.JSONFloat64 `json:"size"`
8386		*NoMethod
8387	}
8388	s1.NoMethod = (*NoMethod)(s)
8389	if err := json.Unmarshal(data, &s1); err != nil {
8390		return err
8391	}
8392	s.Size = float64(s1.Size)
8393	return nil
8394}
8395
8396// ProtectedRange: A protected range.
8397type ProtectedRange struct {
8398	// Description: The description of this protected range.
8399	Description string `json:"description,omitempty"`
8400
8401	// Editors: The users and groups with edit access to the protected
8402	// range. This field is only visible to users with edit access to the
8403	// protected range and the document. Editors are not supported with
8404	// warning_only protection.
8405	Editors *Editors `json:"editors,omitempty"`
8406
8407	// NamedRangeId: The named range this protected range is backed by, if
8408	// any. When writing, only one of range or named_range_id may be set.
8409	NamedRangeId string `json:"namedRangeId,omitempty"`
8410
8411	// ProtectedRangeId: The ID of the protected range. This field is
8412	// read-only.
8413	ProtectedRangeId int64 `json:"protectedRangeId,omitempty"`
8414
8415	// Range: The range that is being protected. The range may be fully
8416	// unbounded, in which case this is considered a protected sheet. When
8417	// writing, only one of range or named_range_id may be set.
8418	Range *GridRange `json:"range,omitempty"`
8419
8420	// RequestingUserCanEdit: True if the user who requested this protected
8421	// range can edit the protected area. This field is read-only.
8422	RequestingUserCanEdit bool `json:"requestingUserCanEdit,omitempty"`
8423
8424	// UnprotectedRanges: The list of unprotected ranges within a protected
8425	// sheet. Unprotected ranges are only supported on protected sheets.
8426	UnprotectedRanges []*GridRange `json:"unprotectedRanges,omitempty"`
8427
8428	// WarningOnly: True if this protected range will show a warning when
8429	// editing. Warning-based protection means that every user can edit data
8430	// in the protected range, except editing will prompt a warning asking
8431	// the user to confirm the edit. When writing: if this field is true,
8432	// then editors is ignored. Additionally, if this field is changed from
8433	// true to false and the `editors` field is not set (nor included in the
8434	// field mask), then the editors will be set to all the editors in the
8435	// document.
8436	WarningOnly bool `json:"warningOnly,omitempty"`
8437
8438	// ForceSendFields is a list of field names (e.g. "Description") to
8439	// unconditionally include in API requests. By default, fields with
8440	// empty values are omitted from API requests. However, any non-pointer,
8441	// non-interface field appearing in ForceSendFields will be sent to the
8442	// server regardless of whether the field is empty or not. This may be
8443	// used to include empty fields in Patch requests.
8444	ForceSendFields []string `json:"-"`
8445
8446	// NullFields is a list of field names (e.g. "Description") to include
8447	// in API requests with the JSON null value. By default, fields with
8448	// empty values are omitted from API requests. However, any field with
8449	// an empty value appearing in NullFields will be sent to the server as
8450	// null. It is an error if a field in this list has a non-empty value.
8451	// This may be used to include null fields in Patch requests.
8452	NullFields []string `json:"-"`
8453}
8454
8455func (s *ProtectedRange) MarshalJSON() ([]byte, error) {
8456	type NoMethod ProtectedRange
8457	raw := NoMethod(*s)
8458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8459}
8460
8461// RandomizeRangeRequest: Randomizes the order of the rows in a range.
8462type RandomizeRangeRequest struct {
8463	// Range: The range to randomize.
8464	Range *GridRange `json:"range,omitempty"`
8465
8466	// ForceSendFields is a list of field names (e.g. "Range") to
8467	// unconditionally include in API requests. By default, fields with
8468	// empty values are omitted from API requests. However, any non-pointer,
8469	// non-interface field appearing in ForceSendFields will be sent to the
8470	// server regardless of whether the field is empty or not. This may be
8471	// used to include empty fields in Patch requests.
8472	ForceSendFields []string `json:"-"`
8473
8474	// NullFields is a list of field names (e.g. "Range") to include in API
8475	// requests with the JSON null value. By default, fields with empty
8476	// values are omitted from API requests. However, any field with an
8477	// empty value appearing in NullFields will be sent to the server as
8478	// null. It is an error if a field in this list has a non-empty value.
8479	// This may be used to include null fields in Patch requests.
8480	NullFields []string `json:"-"`
8481}
8482
8483func (s *RandomizeRangeRequest) MarshalJSON() ([]byte, error) {
8484	type NoMethod RandomizeRangeRequest
8485	raw := NoMethod(*s)
8486	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8487}
8488
8489// RefreshDataSourceObjectExecutionStatus: The execution status of
8490// refreshing one data source object.
8491type RefreshDataSourceObjectExecutionStatus struct {
8492	// DataExecutionStatus: The data execution status.
8493	DataExecutionStatus *DataExecutionStatus `json:"dataExecutionStatus,omitempty"`
8494
8495	// Reference: Reference to a data source object being refreshed.
8496	Reference *DataSourceObjectReference `json:"reference,omitempty"`
8497
8498	// ForceSendFields is a list of field names (e.g. "DataExecutionStatus")
8499	// to unconditionally include in API requests. By default, fields with
8500	// empty values are omitted from API requests. However, any non-pointer,
8501	// non-interface field appearing in ForceSendFields will be sent to the
8502	// server regardless of whether the field is empty or not. This may be
8503	// used to include empty fields in Patch requests.
8504	ForceSendFields []string `json:"-"`
8505
8506	// NullFields is a list of field names (e.g. "DataExecutionStatus") to
8507	// include in API requests with the JSON null value. By default, fields
8508	// with empty values are omitted from API requests. However, any field
8509	// with an empty value appearing in NullFields will be sent to the
8510	// server as null. It is an error if a field in this list has a
8511	// non-empty value. This may be used to include null fields in Patch
8512	// requests.
8513	NullFields []string `json:"-"`
8514}
8515
8516func (s *RefreshDataSourceObjectExecutionStatus) MarshalJSON() ([]byte, error) {
8517	type NoMethod RefreshDataSourceObjectExecutionStatus
8518	raw := NoMethod(*s)
8519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8520}
8521
8522// RefreshDataSourceRequest: Refreshes one or multiple data source
8523// objects in the spreadsheet by the specified references. The request
8524// requires an additional `bigquery.readonly` OAuth scope. If there are
8525// multiple refresh requests referencing the same data source objects in
8526// one batch, only the last refresh request is processed, and all those
8527// requests will have the same response accordingly.
8528type RefreshDataSourceRequest struct {
8529	// DataSourceId: Reference to a DataSource. If specified, refreshes all
8530	// associated data source objects for the data source.
8531	DataSourceId string `json:"dataSourceId,omitempty"`
8532
8533	// Force: Refreshes the data source objects regardless of the current
8534	// state. If not set and a referenced data source object was in error
8535	// state, the refresh will fail immediately.
8536	Force bool `json:"force,omitempty"`
8537
8538	// IsAll: Refreshes all existing data source objects in the spreadsheet.
8539	IsAll bool `json:"isAll,omitempty"`
8540
8541	// References: References to data source objects to refresh.
8542	References *DataSourceObjectReferences `json:"references,omitempty"`
8543
8544	// ForceSendFields is a list of field names (e.g. "DataSourceId") to
8545	// unconditionally include in API requests. By default, fields with
8546	// empty values are omitted from API requests. However, any non-pointer,
8547	// non-interface field appearing in ForceSendFields will be sent to the
8548	// server regardless of whether the field is empty or not. This may be
8549	// used to include empty fields in Patch requests.
8550	ForceSendFields []string `json:"-"`
8551
8552	// NullFields is a list of field names (e.g. "DataSourceId") to include
8553	// in API requests with the JSON null value. By default, fields with
8554	// empty values are omitted from API requests. However, any field with
8555	// an empty value appearing in NullFields will be sent to the server as
8556	// null. It is an error if a field in this list has a non-empty value.
8557	// This may be used to include null fields in Patch requests.
8558	NullFields []string `json:"-"`
8559}
8560
8561func (s *RefreshDataSourceRequest) MarshalJSON() ([]byte, error) {
8562	type NoMethod RefreshDataSourceRequest
8563	raw := NoMethod(*s)
8564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8565}
8566
8567// RefreshDataSourceResponse: The response from refreshing one or
8568// multiple data source objects.
8569type RefreshDataSourceResponse struct {
8570	// Statuses: All the refresh status for the data source object
8571	// references specified in the request. If is_all is specified, the
8572	// field contains only those in failure status.
8573	Statuses []*RefreshDataSourceObjectExecutionStatus `json:"statuses,omitempty"`
8574
8575	// ForceSendFields is a list of field names (e.g. "Statuses") to
8576	// unconditionally include in API requests. By default, fields with
8577	// empty values are omitted from API requests. However, any non-pointer,
8578	// non-interface field appearing in ForceSendFields will be sent to the
8579	// server regardless of whether the field is empty or not. This may be
8580	// used to include empty fields in Patch requests.
8581	ForceSendFields []string `json:"-"`
8582
8583	// NullFields is a list of field names (e.g. "Statuses") to include in
8584	// API requests with the JSON null value. By default, fields with empty
8585	// values are omitted from API requests. However, any field with an
8586	// empty value appearing in NullFields will be sent to the server as
8587	// null. It is an error if a field in this list has a non-empty value.
8588	// This may be used to include null fields in Patch requests.
8589	NullFields []string `json:"-"`
8590}
8591
8592func (s *RefreshDataSourceResponse) MarshalJSON() ([]byte, error) {
8593	type NoMethod RefreshDataSourceResponse
8594	raw := NoMethod(*s)
8595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8596}
8597
8598// RepeatCellRequest: Updates all cells in the range to the values in
8599// the given Cell object. Only the fields listed in the fields field are
8600// updated; others are unchanged. If writing a cell with a formula, the
8601// formula's ranges will automatically increment for each field in the
8602// range. For example, if writing a cell with formula `=A1` into range
8603// B2:C4, B2 would be `=A1`, B3 would be `=A2`, B4 would be `=A3`, C2
8604// would be `=B1`, C3 would be `=B2`, C4 would be `=B3`. To keep the
8605// formula's ranges static, use the `$` indicator. For example, use the
8606// formula `=$A$1` to prevent both the row and the column from
8607// incrementing.
8608type RepeatCellRequest struct {
8609	// Cell: The data to write.
8610	Cell *CellData `json:"cell,omitempty"`
8611
8612	// Fields: The fields that should be updated. At least one field must be
8613	// specified. The root `cell` is implied and should not be specified. A
8614	// single "*" can be used as short-hand for listing every field.
8615	Fields string `json:"fields,omitempty"`
8616
8617	// Range: The range to repeat the cell in.
8618	Range *GridRange `json:"range,omitempty"`
8619
8620	// ForceSendFields is a list of field names (e.g. "Cell") to
8621	// unconditionally include in API requests. By default, fields with
8622	// empty values are omitted from API requests. However, any non-pointer,
8623	// non-interface field appearing in ForceSendFields will be sent to the
8624	// server regardless of whether the field is empty or not. This may be
8625	// used to include empty fields in Patch requests.
8626	ForceSendFields []string `json:"-"`
8627
8628	// NullFields is a list of field names (e.g. "Cell") to include in API
8629	// requests with the JSON null value. By default, fields with empty
8630	// values are omitted from API requests. However, any field with an
8631	// empty value appearing in NullFields will be sent to the server as
8632	// null. It is an error if a field in this list has a non-empty value.
8633	// This may be used to include null fields in Patch requests.
8634	NullFields []string `json:"-"`
8635}
8636
8637func (s *RepeatCellRequest) MarshalJSON() ([]byte, error) {
8638	type NoMethod RepeatCellRequest
8639	raw := NoMethod(*s)
8640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8641}
8642
8643// Request: A single kind of update to apply to a spreadsheet.
8644type Request struct {
8645	// AddBanding: Adds a new banded range
8646	AddBanding *AddBandingRequest `json:"addBanding,omitempty"`
8647
8648	// AddChart: Adds a chart.
8649	AddChart *AddChartRequest `json:"addChart,omitempty"`
8650
8651	// AddConditionalFormatRule: Adds a new conditional format rule.
8652	AddConditionalFormatRule *AddConditionalFormatRuleRequest `json:"addConditionalFormatRule,omitempty"`
8653
8654	// AddDataSource: Adds a data source.
8655	AddDataSource *AddDataSourceRequest `json:"addDataSource,omitempty"`
8656
8657	// AddDimensionGroup: Creates a group over the specified range.
8658	AddDimensionGroup *AddDimensionGroupRequest `json:"addDimensionGroup,omitempty"`
8659
8660	// AddFilterView: Adds a filter view.
8661	AddFilterView *AddFilterViewRequest `json:"addFilterView,omitempty"`
8662
8663	// AddNamedRange: Adds a named range.
8664	AddNamedRange *AddNamedRangeRequest `json:"addNamedRange,omitempty"`
8665
8666	// AddProtectedRange: Adds a protected range.
8667	AddProtectedRange *AddProtectedRangeRequest `json:"addProtectedRange,omitempty"`
8668
8669	// AddSheet: Adds a sheet.
8670	AddSheet *AddSheetRequest `json:"addSheet,omitempty"`
8671
8672	// AddSlicer: Adds a slicer.
8673	AddSlicer *AddSlicerRequest `json:"addSlicer,omitempty"`
8674
8675	// AppendCells: Appends cells after the last row with data in a sheet.
8676	AppendCells *AppendCellsRequest `json:"appendCells,omitempty"`
8677
8678	// AppendDimension: Appends dimensions to the end of a sheet.
8679	AppendDimension *AppendDimensionRequest `json:"appendDimension,omitempty"`
8680
8681	// AutoFill: Automatically fills in more data based on existing data.
8682	AutoFill *AutoFillRequest `json:"autoFill,omitempty"`
8683
8684	// AutoResizeDimensions: Automatically resizes one or more dimensions
8685	// based on the contents of the cells in that dimension.
8686	AutoResizeDimensions *AutoResizeDimensionsRequest `json:"autoResizeDimensions,omitempty"`
8687
8688	// ClearBasicFilter: Clears the basic filter on a sheet.
8689	ClearBasicFilter *ClearBasicFilterRequest `json:"clearBasicFilter,omitempty"`
8690
8691	// CopyPaste: Copies data from one area and pastes it to another.
8692	CopyPaste *CopyPasteRequest `json:"copyPaste,omitempty"`
8693
8694	// CreateDeveloperMetadata: Creates new developer metadata
8695	CreateDeveloperMetadata *CreateDeveloperMetadataRequest `json:"createDeveloperMetadata,omitempty"`
8696
8697	// CutPaste: Cuts data from one area and pastes it to another.
8698	CutPaste *CutPasteRequest `json:"cutPaste,omitempty"`
8699
8700	// DeleteBanding: Removes a banded range
8701	DeleteBanding *DeleteBandingRequest `json:"deleteBanding,omitempty"`
8702
8703	// DeleteConditionalFormatRule: Deletes an existing conditional format
8704	// rule.
8705	DeleteConditionalFormatRule *DeleteConditionalFormatRuleRequest `json:"deleteConditionalFormatRule,omitempty"`
8706
8707	// DeleteDataSource: Deletes a data source.
8708	DeleteDataSource *DeleteDataSourceRequest `json:"deleteDataSource,omitempty"`
8709
8710	// DeleteDeveloperMetadata: Deletes developer metadata
8711	DeleteDeveloperMetadata *DeleteDeveloperMetadataRequest `json:"deleteDeveloperMetadata,omitempty"`
8712
8713	// DeleteDimension: Deletes rows or columns in a sheet.
8714	DeleteDimension *DeleteDimensionRequest `json:"deleteDimension,omitempty"`
8715
8716	// DeleteDimensionGroup: Deletes a group over the specified range.
8717	DeleteDimensionGroup *DeleteDimensionGroupRequest `json:"deleteDimensionGroup,omitempty"`
8718
8719	// DeleteDuplicates: Removes rows containing duplicate values in
8720	// specified columns of a cell range.
8721	DeleteDuplicates *DeleteDuplicatesRequest `json:"deleteDuplicates,omitempty"`
8722
8723	// DeleteEmbeddedObject: Deletes an embedded object (e.g, chart, image)
8724	// in a sheet.
8725	DeleteEmbeddedObject *DeleteEmbeddedObjectRequest `json:"deleteEmbeddedObject,omitempty"`
8726
8727	// DeleteFilterView: Deletes a filter view from a sheet.
8728	DeleteFilterView *DeleteFilterViewRequest `json:"deleteFilterView,omitempty"`
8729
8730	// DeleteNamedRange: Deletes a named range.
8731	DeleteNamedRange *DeleteNamedRangeRequest `json:"deleteNamedRange,omitempty"`
8732
8733	// DeleteProtectedRange: Deletes a protected range.
8734	DeleteProtectedRange *DeleteProtectedRangeRequest `json:"deleteProtectedRange,omitempty"`
8735
8736	// DeleteRange: Deletes a range of cells from a sheet, shifting the
8737	// remaining cells.
8738	DeleteRange *DeleteRangeRequest `json:"deleteRange,omitempty"`
8739
8740	// DeleteSheet: Deletes a sheet.
8741	DeleteSheet *DeleteSheetRequest `json:"deleteSheet,omitempty"`
8742
8743	// DuplicateFilterView: Duplicates a filter view.
8744	DuplicateFilterView *DuplicateFilterViewRequest `json:"duplicateFilterView,omitempty"`
8745
8746	// DuplicateSheet: Duplicates a sheet.
8747	DuplicateSheet *DuplicateSheetRequest `json:"duplicateSheet,omitempty"`
8748
8749	// FindReplace: Finds and replaces occurrences of some text with other
8750	// text.
8751	FindReplace *FindReplaceRequest `json:"findReplace,omitempty"`
8752
8753	// InsertDimension: Inserts new rows or columns in a sheet.
8754	InsertDimension *InsertDimensionRequest `json:"insertDimension,omitempty"`
8755
8756	// InsertRange: Inserts new cells in a sheet, shifting the existing
8757	// cells.
8758	InsertRange *InsertRangeRequest `json:"insertRange,omitempty"`
8759
8760	// MergeCells: Merges cells together.
8761	MergeCells *MergeCellsRequest `json:"mergeCells,omitempty"`
8762
8763	// MoveDimension: Moves rows or columns to another location in a sheet.
8764	MoveDimension *MoveDimensionRequest `json:"moveDimension,omitempty"`
8765
8766	// PasteData: Pastes data (HTML or delimited) into a sheet.
8767	PasteData *PasteDataRequest `json:"pasteData,omitempty"`
8768
8769	// RandomizeRange: Randomizes the order of the rows in a range.
8770	RandomizeRange *RandomizeRangeRequest `json:"randomizeRange,omitempty"`
8771
8772	// RefreshDataSource: Refreshs one or multiple data sources and
8773	// associated dbobjects.
8774	RefreshDataSource *RefreshDataSourceRequest `json:"refreshDataSource,omitempty"`
8775
8776	// RepeatCell: Repeats a single cell across a range.
8777	RepeatCell *RepeatCellRequest `json:"repeatCell,omitempty"`
8778
8779	// SetBasicFilter: Sets the basic filter on a sheet.
8780	SetBasicFilter *SetBasicFilterRequest `json:"setBasicFilter,omitempty"`
8781
8782	// SetDataValidation: Sets data validation for one or more cells.
8783	SetDataValidation *SetDataValidationRequest `json:"setDataValidation,omitempty"`
8784
8785	// SortRange: Sorts data in a range.
8786	SortRange *SortRangeRequest `json:"sortRange,omitempty"`
8787
8788	// TextToColumns: Converts a column of text into many columns of text.
8789	TextToColumns *TextToColumnsRequest `json:"textToColumns,omitempty"`
8790
8791	// TrimWhitespace: Trims cells of whitespace (such as spaces, tabs, or
8792	// new lines).
8793	TrimWhitespace *TrimWhitespaceRequest `json:"trimWhitespace,omitempty"`
8794
8795	// UnmergeCells: Unmerges merged cells.
8796	UnmergeCells *UnmergeCellsRequest `json:"unmergeCells,omitempty"`
8797
8798	// UpdateBanding: Updates a banded range
8799	UpdateBanding *UpdateBandingRequest `json:"updateBanding,omitempty"`
8800
8801	// UpdateBorders: Updates the borders in a range of cells.
8802	UpdateBorders *UpdateBordersRequest `json:"updateBorders,omitempty"`
8803
8804	// UpdateCells: Updates many cells at once.
8805	UpdateCells *UpdateCellsRequest `json:"updateCells,omitempty"`
8806
8807	// UpdateChartSpec: Updates a chart's specifications.
8808	UpdateChartSpec *UpdateChartSpecRequest `json:"updateChartSpec,omitempty"`
8809
8810	// UpdateConditionalFormatRule: Updates an existing conditional format
8811	// rule.
8812	UpdateConditionalFormatRule *UpdateConditionalFormatRuleRequest `json:"updateConditionalFormatRule,omitempty"`
8813
8814	// UpdateDataSource: Updates a data source.
8815	UpdateDataSource *UpdateDataSourceRequest `json:"updateDataSource,omitempty"`
8816
8817	// UpdateDeveloperMetadata: Updates an existing developer metadata entry
8818	UpdateDeveloperMetadata *UpdateDeveloperMetadataRequest `json:"updateDeveloperMetadata,omitempty"`
8819
8820	// UpdateDimensionGroup: Updates the state of the specified group.
8821	UpdateDimensionGroup *UpdateDimensionGroupRequest `json:"updateDimensionGroup,omitempty"`
8822
8823	// UpdateDimensionProperties: Updates dimensions' properties.
8824	UpdateDimensionProperties *UpdateDimensionPropertiesRequest `json:"updateDimensionProperties,omitempty"`
8825
8826	// UpdateEmbeddedObjectBorder: Updates an embedded object's border.
8827	UpdateEmbeddedObjectBorder *UpdateEmbeddedObjectBorderRequest `json:"updateEmbeddedObjectBorder,omitempty"`
8828
8829	// UpdateEmbeddedObjectPosition: Updates an embedded object's (e.g.
8830	// chart, image) position.
8831	UpdateEmbeddedObjectPosition *UpdateEmbeddedObjectPositionRequest `json:"updateEmbeddedObjectPosition,omitempty"`
8832
8833	// UpdateFilterView: Updates the properties of a filter view.
8834	UpdateFilterView *UpdateFilterViewRequest `json:"updateFilterView,omitempty"`
8835
8836	// UpdateNamedRange: Updates a named range.
8837	UpdateNamedRange *UpdateNamedRangeRequest `json:"updateNamedRange,omitempty"`
8838
8839	// UpdateProtectedRange: Updates a protected range.
8840	UpdateProtectedRange *UpdateProtectedRangeRequest `json:"updateProtectedRange,omitempty"`
8841
8842	// UpdateSheetProperties: Updates a sheet's properties.
8843	UpdateSheetProperties *UpdateSheetPropertiesRequest `json:"updateSheetProperties,omitempty"`
8844
8845	// UpdateSlicerSpec: Updates a slicer's specifications.
8846	UpdateSlicerSpec *UpdateSlicerSpecRequest `json:"updateSlicerSpec,omitempty"`
8847
8848	// UpdateSpreadsheetProperties: Updates the spreadsheet's properties.
8849	UpdateSpreadsheetProperties *UpdateSpreadsheetPropertiesRequest `json:"updateSpreadsheetProperties,omitempty"`
8850
8851	// ForceSendFields is a list of field names (e.g. "AddBanding") to
8852	// unconditionally include in API requests. By default, fields with
8853	// empty values are omitted from API requests. However, any non-pointer,
8854	// non-interface field appearing in ForceSendFields will be sent to the
8855	// server regardless of whether the field is empty or not. This may be
8856	// used to include empty fields in Patch requests.
8857	ForceSendFields []string `json:"-"`
8858
8859	// NullFields is a list of field names (e.g. "AddBanding") to include in
8860	// API requests with the JSON null value. By default, fields with empty
8861	// values are omitted from API requests. However, any field with an
8862	// empty value appearing in NullFields will be sent to the server as
8863	// null. It is an error if a field in this list has a non-empty value.
8864	// This may be used to include null fields in Patch requests.
8865	NullFields []string `json:"-"`
8866}
8867
8868func (s *Request) MarshalJSON() ([]byte, error) {
8869	type NoMethod Request
8870	raw := NoMethod(*s)
8871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8872}
8873
8874// Response: A single response from an update.
8875type Response struct {
8876	// AddBanding: A reply from adding a banded range.
8877	AddBanding *AddBandingResponse `json:"addBanding,omitempty"`
8878
8879	// AddChart: A reply from adding a chart.
8880	AddChart *AddChartResponse `json:"addChart,omitempty"`
8881
8882	// AddDataSource: A reply from adding a data source.
8883	AddDataSource *AddDataSourceResponse `json:"addDataSource,omitempty"`
8884
8885	// AddDimensionGroup: A reply from adding a dimension group.
8886	AddDimensionGroup *AddDimensionGroupResponse `json:"addDimensionGroup,omitempty"`
8887
8888	// AddFilterView: A reply from adding a filter view.
8889	AddFilterView *AddFilterViewResponse `json:"addFilterView,omitempty"`
8890
8891	// AddNamedRange: A reply from adding a named range.
8892	AddNamedRange *AddNamedRangeResponse `json:"addNamedRange,omitempty"`
8893
8894	// AddProtectedRange: A reply from adding a protected range.
8895	AddProtectedRange *AddProtectedRangeResponse `json:"addProtectedRange,omitempty"`
8896
8897	// AddSheet: A reply from adding a sheet.
8898	AddSheet *AddSheetResponse `json:"addSheet,omitempty"`
8899
8900	// AddSlicer: A reply from adding a slicer.
8901	AddSlicer *AddSlicerResponse `json:"addSlicer,omitempty"`
8902
8903	// CreateDeveloperMetadata: A reply from creating a developer metadata
8904	// entry.
8905	CreateDeveloperMetadata *CreateDeveloperMetadataResponse `json:"createDeveloperMetadata,omitempty"`
8906
8907	// DeleteConditionalFormatRule: A reply from deleting a conditional
8908	// format rule.
8909	DeleteConditionalFormatRule *DeleteConditionalFormatRuleResponse `json:"deleteConditionalFormatRule,omitempty"`
8910
8911	// DeleteDeveloperMetadata: A reply from deleting a developer metadata
8912	// entry.
8913	DeleteDeveloperMetadata *DeleteDeveloperMetadataResponse `json:"deleteDeveloperMetadata,omitempty"`
8914
8915	// DeleteDimensionGroup: A reply from deleting a dimension group.
8916	DeleteDimensionGroup *DeleteDimensionGroupResponse `json:"deleteDimensionGroup,omitempty"`
8917
8918	// DeleteDuplicates: A reply from removing rows containing duplicate
8919	// values.
8920	DeleteDuplicates *DeleteDuplicatesResponse `json:"deleteDuplicates,omitempty"`
8921
8922	// DuplicateFilterView: A reply from duplicating a filter view.
8923	DuplicateFilterView *DuplicateFilterViewResponse `json:"duplicateFilterView,omitempty"`
8924
8925	// DuplicateSheet: A reply from duplicating a sheet.
8926	DuplicateSheet *DuplicateSheetResponse `json:"duplicateSheet,omitempty"`
8927
8928	// FindReplace: A reply from doing a find/replace.
8929	FindReplace *FindReplaceResponse `json:"findReplace,omitempty"`
8930
8931	// RefreshDataSource: A reply from refreshing data source objects.
8932	RefreshDataSource *RefreshDataSourceResponse `json:"refreshDataSource,omitempty"`
8933
8934	// TrimWhitespace: A reply from trimming whitespace.
8935	TrimWhitespace *TrimWhitespaceResponse `json:"trimWhitespace,omitempty"`
8936
8937	// UpdateConditionalFormatRule: A reply from updating a conditional
8938	// format rule.
8939	UpdateConditionalFormatRule *UpdateConditionalFormatRuleResponse `json:"updateConditionalFormatRule,omitempty"`
8940
8941	// UpdateDataSource: A reply from updating a data source.
8942	UpdateDataSource *UpdateDataSourceResponse `json:"updateDataSource,omitempty"`
8943
8944	// UpdateDeveloperMetadata: A reply from updating a developer metadata
8945	// entry.
8946	UpdateDeveloperMetadata *UpdateDeveloperMetadataResponse `json:"updateDeveloperMetadata,omitempty"`
8947
8948	// UpdateEmbeddedObjectPosition: A reply from updating an embedded
8949	// object's position.
8950	UpdateEmbeddedObjectPosition *UpdateEmbeddedObjectPositionResponse `json:"updateEmbeddedObjectPosition,omitempty"`
8951
8952	// ForceSendFields is a list of field names (e.g. "AddBanding") to
8953	// unconditionally include in API requests. By default, fields with
8954	// empty values are omitted from API requests. However, any non-pointer,
8955	// non-interface field appearing in ForceSendFields will be sent to the
8956	// server regardless of whether the field is empty or not. This may be
8957	// used to include empty fields in Patch requests.
8958	ForceSendFields []string `json:"-"`
8959
8960	// NullFields is a list of field names (e.g. "AddBanding") to include in
8961	// API requests with the JSON null value. By default, fields with empty
8962	// values are omitted from API requests. However, any field with an
8963	// empty value appearing in NullFields will be sent to the server as
8964	// null. It is an error if a field in this list has a non-empty value.
8965	// This may be used to include null fields in Patch requests.
8966	NullFields []string `json:"-"`
8967}
8968
8969func (s *Response) MarshalJSON() ([]byte, error) {
8970	type NoMethod Response
8971	raw := NoMethod(*s)
8972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8973}
8974
8975// RowData: Data about each cell in a row.
8976type RowData struct {
8977	// Values: The values in the row, one per column.
8978	Values []*CellData `json:"values,omitempty"`
8979
8980	// ForceSendFields is a list of field names (e.g. "Values") to
8981	// unconditionally include in API requests. By default, fields with
8982	// empty values are omitted from API requests. However, any non-pointer,
8983	// non-interface field appearing in ForceSendFields will be sent to the
8984	// server regardless of whether the field is empty or not. This may be
8985	// used to include empty fields in Patch requests.
8986	ForceSendFields []string `json:"-"`
8987
8988	// NullFields is a list of field names (e.g. "Values") to include in API
8989	// requests with the JSON null value. By default, fields with empty
8990	// values are omitted from API requests. However, any field with an
8991	// empty value appearing in NullFields will be sent to the server as
8992	// null. It is an error if a field in this list has a non-empty value.
8993	// This may be used to include null fields in Patch requests.
8994	NullFields []string `json:"-"`
8995}
8996
8997func (s *RowData) MarshalJSON() ([]byte, error) {
8998	type NoMethod RowData
8999	raw := NoMethod(*s)
9000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9001}
9002
9003// ScorecardChartSpec: A scorecard chart. Scorecard charts are used to
9004// highlight key performance indicators, known as KPIs, on the
9005// spreadsheet. A scorecard chart can represent things like total sales,
9006// average cost, or a top selling item. You can specify a single data
9007// value, or aggregate over a range of data. Percentage or absolute
9008// difference from a baseline value can be highlighted, like changes
9009// over time.
9010type ScorecardChartSpec struct {
9011	// AggregateType: The aggregation type for key and baseline chart data
9012	// in scorecard chart. This field is not supported for data source
9013	// charts. Use the ChartData.aggregateType field of the key_value_data
9014	// or baseline_value_data instead for data source charts. This field is
9015	// optional.
9016	//
9017	// Possible values:
9018	//   "CHART_AGGREGATE_TYPE_UNSPECIFIED" - Default value, do not use.
9019	//   "AVERAGE" - Average aggregate function.
9020	//   "COUNT" - Count aggregate function.
9021	//   "MAX" - Maximum aggregate function.
9022	//   "MEDIAN" - Median aggregate function.
9023	//   "MIN" - Minimum aggregate function.
9024	//   "SUM" - Sum aggregate function.
9025	AggregateType string `json:"aggregateType,omitempty"`
9026
9027	// BaselineValueData: The data for scorecard baseline value. This field
9028	// is optional.
9029	BaselineValueData *ChartData `json:"baselineValueData,omitempty"`
9030
9031	// BaselineValueFormat: Formatting options for baseline value. This
9032	// field is needed only if baseline_value_data is specified.
9033	BaselineValueFormat *BaselineValueFormat `json:"baselineValueFormat,omitempty"`
9034
9035	// CustomFormatOptions: Custom formatting options for numeric
9036	// key/baseline values in scorecard chart. This field is used only when
9037	// number_format_source is set to CUSTOM. This field is optional.
9038	CustomFormatOptions *ChartCustomNumberFormatOptions `json:"customFormatOptions,omitempty"`
9039
9040	// KeyValueData: The data for scorecard key value.
9041	KeyValueData *ChartData `json:"keyValueData,omitempty"`
9042
9043	// KeyValueFormat: Formatting options for key value.
9044	KeyValueFormat *KeyValueFormat `json:"keyValueFormat,omitempty"`
9045
9046	// NumberFormatSource: The number format source used in the scorecard
9047	// chart. This field is optional.
9048	//
9049	// Possible values:
9050	//   "CHART_NUMBER_FORMAT_SOURCE_UNDEFINED" - Default value, do not use.
9051	//   "FROM_DATA" - Inherit number formatting from data.
9052	//   "CUSTOM" - Apply custom formatting as specified by
9053	// ChartCustomNumberFormatOptions.
9054	NumberFormatSource string `json:"numberFormatSource,omitempty"`
9055
9056	// ScaleFactor: Value to scale scorecard key and baseline value. For
9057	// example, a factor of 10 can be used to divide all values in the chart
9058	// by 10. This field is optional.
9059	ScaleFactor float64 `json:"scaleFactor,omitempty"`
9060
9061	// ForceSendFields is a list of field names (e.g. "AggregateType") to
9062	// unconditionally include in API requests. By default, fields with
9063	// empty values are omitted from API requests. However, any non-pointer,
9064	// non-interface field appearing in ForceSendFields will be sent to the
9065	// server regardless of whether the field is empty or not. This may be
9066	// used to include empty fields in Patch requests.
9067	ForceSendFields []string `json:"-"`
9068
9069	// NullFields is a list of field names (e.g. "AggregateType") to include
9070	// in API requests with the JSON null value. By default, fields with
9071	// empty values are omitted from API requests. However, any field with
9072	// an empty value appearing in NullFields will be sent to the server as
9073	// null. It is an error if a field in this list has a non-empty value.
9074	// This may be used to include null fields in Patch requests.
9075	NullFields []string `json:"-"`
9076}
9077
9078func (s *ScorecardChartSpec) MarshalJSON() ([]byte, error) {
9079	type NoMethod ScorecardChartSpec
9080	raw := NoMethod(*s)
9081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9082}
9083
9084func (s *ScorecardChartSpec) UnmarshalJSON(data []byte) error {
9085	type NoMethod ScorecardChartSpec
9086	var s1 struct {
9087		ScaleFactor gensupport.JSONFloat64 `json:"scaleFactor"`
9088		*NoMethod
9089	}
9090	s1.NoMethod = (*NoMethod)(s)
9091	if err := json.Unmarshal(data, &s1); err != nil {
9092		return err
9093	}
9094	s.ScaleFactor = float64(s1.ScaleFactor)
9095	return nil
9096}
9097
9098// SearchDeveloperMetadataRequest: A request to retrieve all developer
9099// metadata matching the set of specified criteria.
9100type SearchDeveloperMetadataRequest struct {
9101	// DataFilters: The data filters describing the criteria used to
9102	// determine which DeveloperMetadata entries to return.
9103	// DeveloperMetadata matching any of the specified filters are included
9104	// in the response.
9105	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
9106
9107	// ForceSendFields is a list of field names (e.g. "DataFilters") to
9108	// unconditionally include in API requests. By default, fields with
9109	// empty values are omitted from API requests. However, any non-pointer,
9110	// non-interface field appearing in ForceSendFields will be sent to the
9111	// server regardless of whether the field is empty or not. This may be
9112	// used to include empty fields in Patch requests.
9113	ForceSendFields []string `json:"-"`
9114
9115	// NullFields is a list of field names (e.g. "DataFilters") to include
9116	// in API requests with the JSON null value. By default, fields with
9117	// empty values are omitted from API requests. However, any field with
9118	// an empty value appearing in NullFields will be sent to the server as
9119	// null. It is an error if a field in this list has a non-empty value.
9120	// This may be used to include null fields in Patch requests.
9121	NullFields []string `json:"-"`
9122}
9123
9124func (s *SearchDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
9125	type NoMethod SearchDeveloperMetadataRequest
9126	raw := NoMethod(*s)
9127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9128}
9129
9130// SearchDeveloperMetadataResponse: A reply to a developer metadata
9131// search request.
9132type SearchDeveloperMetadataResponse struct {
9133	// MatchedDeveloperMetadata: The metadata matching the criteria of the
9134	// search request.
9135	MatchedDeveloperMetadata []*MatchedDeveloperMetadata `json:"matchedDeveloperMetadata,omitempty"`
9136
9137	// ServerResponse contains the HTTP response code and headers from the
9138	// server.
9139	googleapi.ServerResponse `json:"-"`
9140
9141	// ForceSendFields is a list of field names (e.g.
9142	// "MatchedDeveloperMetadata") to unconditionally include in API
9143	// requests. By default, fields with empty values are omitted from API
9144	// requests. However, any non-pointer, non-interface field appearing in
9145	// ForceSendFields will be sent to the server regardless of whether the
9146	// field is empty or not. This may be used to include empty fields in
9147	// Patch requests.
9148	ForceSendFields []string `json:"-"`
9149
9150	// NullFields is a list of field names (e.g. "MatchedDeveloperMetadata")
9151	// to include in API requests with the JSON null value. By default,
9152	// fields with empty values are omitted from API requests. However, any
9153	// field with an empty value appearing in NullFields will be sent to the
9154	// server as null. It is an error if a field in this list has a
9155	// non-empty value. This may be used to include null fields in Patch
9156	// requests.
9157	NullFields []string `json:"-"`
9158}
9159
9160func (s *SearchDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
9161	type NoMethod SearchDeveloperMetadataResponse
9162	raw := NoMethod(*s)
9163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9164}
9165
9166// SetBasicFilterRequest: Sets the basic filter associated with a sheet.
9167type SetBasicFilterRequest struct {
9168	// Filter: The filter to set.
9169	Filter *BasicFilter `json:"filter,omitempty"`
9170
9171	// ForceSendFields is a list of field names (e.g. "Filter") to
9172	// unconditionally include in API requests. By default, fields with
9173	// empty values are omitted from API requests. However, any non-pointer,
9174	// non-interface field appearing in ForceSendFields will be sent to the
9175	// server regardless of whether the field is empty or not. This may be
9176	// used to include empty fields in Patch requests.
9177	ForceSendFields []string `json:"-"`
9178
9179	// NullFields is a list of field names (e.g. "Filter") to include in API
9180	// requests with the JSON null value. By default, fields with empty
9181	// values are omitted from API requests. However, any field with an
9182	// empty value appearing in NullFields will be sent to the server as
9183	// null. It is an error if a field in this list has a non-empty value.
9184	// This may be used to include null fields in Patch requests.
9185	NullFields []string `json:"-"`
9186}
9187
9188func (s *SetBasicFilterRequest) MarshalJSON() ([]byte, error) {
9189	type NoMethod SetBasicFilterRequest
9190	raw := NoMethod(*s)
9191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9192}
9193
9194// SetDataValidationRequest: Sets a data validation rule to every cell
9195// in the range. To clear validation in a range, call this with no rule
9196// specified.
9197type SetDataValidationRequest struct {
9198	// Range: The range the data validation rule should apply to.
9199	Range *GridRange `json:"range,omitempty"`
9200
9201	// Rule: The data validation rule to set on each cell in the range, or
9202	// empty to clear the data validation in the range.
9203	Rule *DataValidationRule `json:"rule,omitempty"`
9204
9205	// ForceSendFields is a list of field names (e.g. "Range") to
9206	// unconditionally include in API requests. By default, fields with
9207	// empty values are omitted from API requests. However, any non-pointer,
9208	// non-interface field appearing in ForceSendFields will be sent to the
9209	// server regardless of whether the field is empty or not. This may be
9210	// used to include empty fields in Patch requests.
9211	ForceSendFields []string `json:"-"`
9212
9213	// NullFields is a list of field names (e.g. "Range") to include in API
9214	// requests with the JSON null value. By default, fields with empty
9215	// values are omitted from API requests. However, any field with an
9216	// empty value appearing in NullFields will be sent to the server as
9217	// null. It is an error if a field in this list has a non-empty value.
9218	// This may be used to include null fields in Patch requests.
9219	NullFields []string `json:"-"`
9220}
9221
9222func (s *SetDataValidationRequest) MarshalJSON() ([]byte, error) {
9223	type NoMethod SetDataValidationRequest
9224	raw := NoMethod(*s)
9225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9226}
9227
9228// Sheet: A sheet in a spreadsheet.
9229type Sheet struct {
9230	// BandedRanges: The banded (alternating colors) ranges on this sheet.
9231	BandedRanges []*BandedRange `json:"bandedRanges,omitempty"`
9232
9233	// BasicFilter: The filter on this sheet, if any.
9234	BasicFilter *BasicFilter `json:"basicFilter,omitempty"`
9235
9236	// Charts: The specifications of every chart on this sheet.
9237	Charts []*EmbeddedChart `json:"charts,omitempty"`
9238
9239	// ColumnGroups: All column groups on this sheet, ordered by increasing
9240	// range start index, then by group depth.
9241	ColumnGroups []*DimensionGroup `json:"columnGroups,omitempty"`
9242
9243	// ConditionalFormats: The conditional format rules in this sheet.
9244	ConditionalFormats []*ConditionalFormatRule `json:"conditionalFormats,omitempty"`
9245
9246	// Data: Data in the grid, if this is a grid sheet. The number of
9247	// GridData objects returned is dependent on the number of ranges
9248	// requested on this sheet. For example, if this is representing
9249	// `Sheet1`, and the spreadsheet was requested with ranges
9250	// `Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will
9251	// have a startRow/startColumn of `0`, while the second one will have
9252	// `startRow 14` (zero-based row 15), and `startColumn 3` (zero-based
9253	// column D). For a DATA_SOURCE sheet, you can not request a specific
9254	// range, the GridData contains all the values.
9255	Data []*GridData `json:"data,omitempty"`
9256
9257	// DeveloperMetadata: The developer metadata associated with a sheet.
9258	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
9259
9260	// FilterViews: The filter views in this sheet.
9261	FilterViews []*FilterView `json:"filterViews,omitempty"`
9262
9263	// Merges: The ranges that are merged together.
9264	Merges []*GridRange `json:"merges,omitempty"`
9265
9266	// Properties: The properties of the sheet.
9267	Properties *SheetProperties `json:"properties,omitempty"`
9268
9269	// ProtectedRanges: The protected ranges in this sheet.
9270	ProtectedRanges []*ProtectedRange `json:"protectedRanges,omitempty"`
9271
9272	// RowGroups: All row groups on this sheet, ordered by increasing range
9273	// start index, then by group depth.
9274	RowGroups []*DimensionGroup `json:"rowGroups,omitempty"`
9275
9276	// Slicers: The slicers on this sheet.
9277	Slicers []*Slicer `json:"slicers,omitempty"`
9278
9279	// ForceSendFields is a list of field names (e.g. "BandedRanges") to
9280	// unconditionally include in API requests. By default, fields with
9281	// empty values are omitted from API requests. However, any non-pointer,
9282	// non-interface field appearing in ForceSendFields will be sent to the
9283	// server regardless of whether the field is empty or not. This may be
9284	// used to include empty fields in Patch requests.
9285	ForceSendFields []string `json:"-"`
9286
9287	// NullFields is a list of field names (e.g. "BandedRanges") to include
9288	// in API requests with the JSON null value. By default, fields with
9289	// empty values are omitted from API requests. However, any field with
9290	// an empty value appearing in NullFields will be sent to the server as
9291	// null. It is an error if a field in this list has a non-empty value.
9292	// This may be used to include null fields in Patch requests.
9293	NullFields []string `json:"-"`
9294}
9295
9296func (s *Sheet) MarshalJSON() ([]byte, error) {
9297	type NoMethod Sheet
9298	raw := NoMethod(*s)
9299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9300}
9301
9302// SheetProperties: Properties of a sheet.
9303type SheetProperties struct {
9304	// DataSourceSheetProperties: Output only. If present, the field
9305	// contains DATA_SOURCE sheet specific properties.
9306	DataSourceSheetProperties *DataSourceSheetProperties `json:"dataSourceSheetProperties,omitempty"`
9307
9308	// GridProperties: Additional properties of the sheet if this sheet is a
9309	// grid. (If the sheet is an object sheet, containing a chart or image,
9310	// then this field will be absent.) When writing it is an error to set
9311	// any grid properties on non-grid sheets. If this sheet is a
9312	// DATA_SOURCE sheet, this field is output only but contains the
9313	// properties that reflect how a data source sheet is rendered in the
9314	// UI, e.g. row_count.
9315	GridProperties *GridProperties `json:"gridProperties,omitempty"`
9316
9317	// Hidden: True if the sheet is hidden in the UI, false if it's visible.
9318	Hidden bool `json:"hidden,omitempty"`
9319
9320	// Index: The index of the sheet within the spreadsheet. When adding or
9321	// updating sheet properties, if this field is excluded then the sheet
9322	// is added or moved to the end of the sheet list. When updating sheet
9323	// indices or inserting sheets, movement is considered in "before the
9324	// move" indexes. For example, if there were 3 sheets (S1, S2, S3) in
9325	// order to move S1 ahead of S2 the index would have to be set to 2. A
9326	// sheet index update request is ignored if the requested index is
9327	// identical to the sheets current index or if the requested new index
9328	// is equal to the current sheet index + 1.
9329	Index int64 `json:"index,omitempty"`
9330
9331	// RightToLeft: True if the sheet is an RTL sheet instead of an LTR
9332	// sheet.
9333	RightToLeft bool `json:"rightToLeft,omitempty"`
9334
9335	// SheetId: The ID of the sheet. Must be non-negative. This field cannot
9336	// be changed once set.
9337	SheetId int64 `json:"sheetId,omitempty"`
9338
9339	// SheetType: The type of sheet. Defaults to GRID. This field cannot be
9340	// changed once set.
9341	//
9342	// Possible values:
9343	//   "SHEET_TYPE_UNSPECIFIED" - Default value, do not use.
9344	//   "GRID" - The sheet is a grid.
9345	//   "OBJECT" - The sheet has no grid and instead has an object like a
9346	// chart or image.
9347	//   "DATA_SOURCE" - The sheet connects with an external DataSource and
9348	// shows the preview of data.
9349	SheetType string `json:"sheetType,omitempty"`
9350
9351	// TabColor: The color of the tab in the UI.
9352	TabColor *Color `json:"tabColor,omitempty"`
9353
9354	// TabColorStyle: The color of the tab in the UI. If tab_color is also
9355	// set, this field takes precedence.
9356	TabColorStyle *ColorStyle `json:"tabColorStyle,omitempty"`
9357
9358	// Title: The name of the sheet.
9359	Title string `json:"title,omitempty"`
9360
9361	// ServerResponse contains the HTTP response code and headers from the
9362	// server.
9363	googleapi.ServerResponse `json:"-"`
9364
9365	// ForceSendFields is a list of field names (e.g.
9366	// "DataSourceSheetProperties") to unconditionally include in API
9367	// requests. By default, fields with empty values are omitted from API
9368	// requests. However, any non-pointer, non-interface field appearing in
9369	// ForceSendFields will be sent to the server regardless of whether the
9370	// field is empty or not. This may be used to include empty fields in
9371	// Patch requests.
9372	ForceSendFields []string `json:"-"`
9373
9374	// NullFields is a list of field names (e.g.
9375	// "DataSourceSheetProperties") to include in API requests with the JSON
9376	// null value. By default, fields with empty values are omitted from API
9377	// requests. However, any field with an empty value appearing in
9378	// NullFields will be sent to the server as null. It is an error if a
9379	// field in this list has a non-empty value. This may be used to include
9380	// null fields in Patch requests.
9381	NullFields []string `json:"-"`
9382}
9383
9384func (s *SheetProperties) MarshalJSON() ([]byte, error) {
9385	type NoMethod SheetProperties
9386	raw := NoMethod(*s)
9387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9388}
9389
9390// Slicer: A slicer in a sheet.
9391type Slicer struct {
9392	// Position: The position of the slicer. Note that slicer can be
9393	// positioned only on existing sheet. Also, width and height of slicer
9394	// can be automatically adjusted to keep it within permitted limits.
9395	Position *EmbeddedObjectPosition `json:"position,omitempty"`
9396
9397	// SlicerId: The ID of the slicer.
9398	SlicerId int64 `json:"slicerId,omitempty"`
9399
9400	// Spec: The specification of the slicer.
9401	Spec *SlicerSpec `json:"spec,omitempty"`
9402
9403	// ForceSendFields is a list of field names (e.g. "Position") to
9404	// unconditionally include in API requests. By default, fields with
9405	// empty values are omitted from API requests. However, any non-pointer,
9406	// non-interface field appearing in ForceSendFields will be sent to the
9407	// server regardless of whether the field is empty or not. This may be
9408	// used to include empty fields in Patch requests.
9409	ForceSendFields []string `json:"-"`
9410
9411	// NullFields is a list of field names (e.g. "Position") to include in
9412	// API requests with the JSON null value. By default, fields with empty
9413	// values are omitted from API requests. However, any field with an
9414	// empty value appearing in NullFields will be sent to the server as
9415	// null. It is an error if a field in this list has a non-empty value.
9416	// This may be used to include null fields in Patch requests.
9417	NullFields []string `json:"-"`
9418}
9419
9420func (s *Slicer) MarshalJSON() ([]byte, error) {
9421	type NoMethod Slicer
9422	raw := NoMethod(*s)
9423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9424}
9425
9426// SlicerSpec: The specifications of a slicer.
9427type SlicerSpec struct {
9428	// ApplyToPivotTables: True if the filter should apply to pivot tables.
9429	// If not set, default to `True`.
9430	ApplyToPivotTables bool `json:"applyToPivotTables,omitempty"`
9431
9432	// BackgroundColor: The background color of the slicer.
9433	BackgroundColor *Color `json:"backgroundColor,omitempty"`
9434
9435	// BackgroundColorStyle: The background color of the slicer. If
9436	// background_color is also set, this field takes precedence.
9437	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
9438
9439	// ColumnIndex: The column index in the data table on which the filter
9440	// is applied to.
9441	ColumnIndex int64 `json:"columnIndex,omitempty"`
9442
9443	// DataRange: The data range of the slicer.
9444	DataRange *GridRange `json:"dataRange,omitempty"`
9445
9446	// FilterCriteria: The filtering criteria of the slicer.
9447	FilterCriteria *FilterCriteria `json:"filterCriteria,omitempty"`
9448
9449	// HorizontalAlignment: The horizontal alignment of title in the slicer.
9450	// If unspecified, defaults to `LEFT`
9451	//
9452	// Possible values:
9453	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
9454	// specified. Do not use this.
9455	//   "LEFT" - The text is explicitly aligned to the left of the cell.
9456	//   "CENTER" - The text is explicitly aligned to the center of the
9457	// cell.
9458	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
9459	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
9460
9461	// TextFormat: The text format of title in the slicer.
9462	TextFormat *TextFormat `json:"textFormat,omitempty"`
9463
9464	// Title: The title of the slicer.
9465	Title string `json:"title,omitempty"`
9466
9467	// ForceSendFields is a list of field names (e.g. "ApplyToPivotTables")
9468	// to unconditionally include in API requests. By default, fields with
9469	// empty values are omitted from API requests. However, any non-pointer,
9470	// non-interface field appearing in ForceSendFields will be sent to the
9471	// server regardless of whether the field is empty or not. This may be
9472	// used to include empty fields in Patch requests.
9473	ForceSendFields []string `json:"-"`
9474
9475	// NullFields is a list of field names (e.g. "ApplyToPivotTables") to
9476	// include in API requests with the JSON null value. By default, fields
9477	// with empty values are omitted from API requests. However, any field
9478	// with an empty value appearing in NullFields will be sent to the
9479	// server as null. It is an error if a field in this list has a
9480	// non-empty value. This may be used to include null fields in Patch
9481	// requests.
9482	NullFields []string `json:"-"`
9483}
9484
9485func (s *SlicerSpec) MarshalJSON() ([]byte, error) {
9486	type NoMethod SlicerSpec
9487	raw := NoMethod(*s)
9488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9489}
9490
9491// SortRangeRequest: Sorts data in rows based on a sort order per
9492// column.
9493type SortRangeRequest struct {
9494	// Range: The range to sort.
9495	Range *GridRange `json:"range,omitempty"`
9496
9497	// SortSpecs: The sort order per column. Later specifications are used
9498	// when values are equal in the earlier specifications.
9499	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
9500
9501	// ForceSendFields is a list of field names (e.g. "Range") to
9502	// unconditionally include in API requests. By default, fields with
9503	// empty values are omitted from API requests. However, any non-pointer,
9504	// non-interface field appearing in ForceSendFields will be sent to the
9505	// server regardless of whether the field is empty or not. This may be
9506	// used to include empty fields in Patch requests.
9507	ForceSendFields []string `json:"-"`
9508
9509	// NullFields is a list of field names (e.g. "Range") to include in API
9510	// requests with the JSON null value. By default, fields with empty
9511	// values are omitted from API requests. However, any field with an
9512	// empty value appearing in NullFields will be sent to the server as
9513	// null. It is an error if a field in this list has a non-empty value.
9514	// This may be used to include null fields in Patch requests.
9515	NullFields []string `json:"-"`
9516}
9517
9518func (s *SortRangeRequest) MarshalJSON() ([]byte, error) {
9519	type NoMethod SortRangeRequest
9520	raw := NoMethod(*s)
9521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9522}
9523
9524// SortSpec: A sort order associated with a specific column or row.
9525type SortSpec struct {
9526	// BackgroundColor: The background fill color to sort by; cells with
9527	// this fill color are sorted to the top. Mutually exclusive with
9528	// foreground_color.
9529	BackgroundColor *Color `json:"backgroundColor,omitempty"`
9530
9531	// BackgroundColorStyle: The background fill color to sort by; cells
9532	// with this fill color are sorted to the top. Mutually exclusive with
9533	// foreground_color, and must be an RGB-type color. If background_color
9534	// is also set, this field takes precedence.
9535	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
9536
9537	// DataSourceColumnReference: Reference to a data source column.
9538	DataSourceColumnReference *DataSourceColumnReference `json:"dataSourceColumnReference,omitempty"`
9539
9540	// DimensionIndex: The dimension the sort should be applied to.
9541	DimensionIndex int64 `json:"dimensionIndex,omitempty"`
9542
9543	// ForegroundColor: The foreground color to sort by; cells with this
9544	// foreground color are sorted to the top. Mutually exclusive with
9545	// background_color.
9546	ForegroundColor *Color `json:"foregroundColor,omitempty"`
9547
9548	// ForegroundColorStyle: The foreground color to sort by; cells with
9549	// this foreground color are sorted to the top. Mutually exclusive with
9550	// background_color, and must be an RGB-type color. If foreground_color
9551	// is also set, this field takes precedence.
9552	ForegroundColorStyle *ColorStyle `json:"foregroundColorStyle,omitempty"`
9553
9554	// SortOrder: The order data should be sorted.
9555	//
9556	// Possible values:
9557	//   "SORT_ORDER_UNSPECIFIED" - Default value, do not use this.
9558	//   "ASCENDING" - Sort ascending.
9559	//   "DESCENDING" - Sort descending.
9560	SortOrder string `json:"sortOrder,omitempty"`
9561
9562	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
9563	// unconditionally include in API requests. By default, fields with
9564	// empty values are omitted from API requests. However, any non-pointer,
9565	// non-interface field appearing in ForceSendFields will be sent to the
9566	// server regardless of whether the field is empty or not. This may be
9567	// used to include empty fields in Patch requests.
9568	ForceSendFields []string `json:"-"`
9569
9570	// NullFields is a list of field names (e.g. "BackgroundColor") to
9571	// include in API requests with the JSON null value. By default, fields
9572	// with empty values are omitted from API requests. However, any field
9573	// with an empty value appearing in NullFields will be sent to the
9574	// server as null. It is an error if a field in this list has a
9575	// non-empty value. This may be used to include null fields in Patch
9576	// requests.
9577	NullFields []string `json:"-"`
9578}
9579
9580func (s *SortSpec) MarshalJSON() ([]byte, error) {
9581	type NoMethod SortSpec
9582	raw := NoMethod(*s)
9583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9584}
9585
9586// SourceAndDestination: A combination of a source range and how to
9587// extend that source.
9588type SourceAndDestination struct {
9589	// Dimension: The dimension that data should be filled into.
9590	//
9591	// Possible values:
9592	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
9593	//   "ROWS" - Operates on the rows of a sheet.
9594	//   "COLUMNS" - Operates on the columns of a sheet.
9595	Dimension string `json:"dimension,omitempty"`
9596
9597	// FillLength: The number of rows or columns that data should be filled
9598	// into. Positive numbers expand beyond the last row or last column of
9599	// the source. Negative numbers expand before the first row or first
9600	// column of the source.
9601	FillLength int64 `json:"fillLength,omitempty"`
9602
9603	// Source: The location of the data to use as the source of the
9604	// autofill.
9605	Source *GridRange `json:"source,omitempty"`
9606
9607	// ForceSendFields is a list of field names (e.g. "Dimension") to
9608	// unconditionally include in API requests. By default, fields with
9609	// empty values are omitted from API requests. However, any non-pointer,
9610	// non-interface field appearing in ForceSendFields will be sent to the
9611	// server regardless of whether the field is empty or not. This may be
9612	// used to include empty fields in Patch requests.
9613	ForceSendFields []string `json:"-"`
9614
9615	// NullFields is a list of field names (e.g. "Dimension") to include in
9616	// API requests with the JSON null value. By default, fields with empty
9617	// values are omitted from API requests. However, any field with an
9618	// empty value appearing in NullFields will be sent to the server as
9619	// null. It is an error if a field in this list has a non-empty value.
9620	// This may be used to include null fields in Patch requests.
9621	NullFields []string `json:"-"`
9622}
9623
9624func (s *SourceAndDestination) MarshalJSON() ([]byte, error) {
9625	type NoMethod SourceAndDestination
9626	raw := NoMethod(*s)
9627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9628}
9629
9630// Spreadsheet: Resource that represents a spreadsheet.
9631type Spreadsheet struct {
9632	// DataSourceSchedules: Output only. A list of data source refresh
9633	// schedules.
9634	DataSourceSchedules []*DataSourceRefreshSchedule `json:"dataSourceSchedules,omitempty"`
9635
9636	// DataSources: A list of external data sources connected with the
9637	// spreadsheet.
9638	DataSources []*DataSource `json:"dataSources,omitempty"`
9639
9640	// DeveloperMetadata: The developer metadata associated with a
9641	// spreadsheet.
9642	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
9643
9644	// NamedRanges: The named ranges defined in a spreadsheet.
9645	NamedRanges []*NamedRange `json:"namedRanges,omitempty"`
9646
9647	// Properties: Overall properties of a spreadsheet.
9648	Properties *SpreadsheetProperties `json:"properties,omitempty"`
9649
9650	// Sheets: The sheets that are part of a spreadsheet.
9651	Sheets []*Sheet `json:"sheets,omitempty"`
9652
9653	// SpreadsheetId: The ID of the spreadsheet. This field is read-only.
9654	SpreadsheetId string `json:"spreadsheetId,omitempty"`
9655
9656	// SpreadsheetUrl: The url of the spreadsheet. This field is read-only.
9657	SpreadsheetUrl string `json:"spreadsheetUrl,omitempty"`
9658
9659	// ServerResponse contains the HTTP response code and headers from the
9660	// server.
9661	googleapi.ServerResponse `json:"-"`
9662
9663	// ForceSendFields is a list of field names (e.g. "DataSourceSchedules")
9664	// to unconditionally include in API requests. By default, fields with
9665	// empty values are omitted from API requests. However, any non-pointer,
9666	// non-interface field appearing in ForceSendFields will be sent to the
9667	// server regardless of whether the field is empty or not. This may be
9668	// used to include empty fields in Patch requests.
9669	ForceSendFields []string `json:"-"`
9670
9671	// NullFields is a list of field names (e.g. "DataSourceSchedules") to
9672	// include in API requests with the JSON null value. By default, fields
9673	// with empty values are omitted from API requests. However, any field
9674	// with an empty value appearing in NullFields will be sent to the
9675	// server as null. It is an error if a field in this list has a
9676	// non-empty value. This may be used to include null fields in Patch
9677	// requests.
9678	NullFields []string `json:"-"`
9679}
9680
9681func (s *Spreadsheet) MarshalJSON() ([]byte, error) {
9682	type NoMethod Spreadsheet
9683	raw := NoMethod(*s)
9684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9685}
9686
9687// SpreadsheetProperties: Properties of a spreadsheet.
9688type SpreadsheetProperties struct {
9689	// AutoRecalc: The amount of time to wait before volatile functions are
9690	// recalculated.
9691	//
9692	// Possible values:
9693	//   "RECALCULATION_INTERVAL_UNSPECIFIED" - Default value. This value
9694	// must not be used.
9695	//   "ON_CHANGE" - Volatile functions are updated on every change.
9696	//   "MINUTE" - Volatile functions are updated on every change and every
9697	// minute.
9698	//   "HOUR" - Volatile functions are updated on every change and hourly.
9699	AutoRecalc string `json:"autoRecalc,omitempty"`
9700
9701	// DefaultFormat: The default format of all cells in the spreadsheet.
9702	// CellData.effectiveFormat will not be set if the cell's format is
9703	// equal to this default format. This field is read-only.
9704	DefaultFormat *CellFormat `json:"defaultFormat,omitempty"`
9705
9706	// IterativeCalculationSettings: Determines whether and how circular
9707	// references are resolved with iterative calculation. Absence of this
9708	// field means that circular references result in calculation errors.
9709	IterativeCalculationSettings *IterativeCalculationSettings `json:"iterativeCalculationSettings,omitempty"`
9710
9711	// Locale: The locale of the spreadsheet in one of the following
9712	// formats: * an ISO 639-1 language code such as `en` * an ISO 639-2
9713	// language code such as `fil`, if no 639-1 code exists * a combination
9714	// of the ISO language code and country code, such as `en_US` Note: when
9715	// updating this field, not all locales/languages are supported.
9716	Locale string `json:"locale,omitempty"`
9717
9718	// SpreadsheetTheme: Theme applied to the spreadsheet.
9719	SpreadsheetTheme *SpreadsheetTheme `json:"spreadsheetTheme,omitempty"`
9720
9721	// TimeZone: The time zone of the spreadsheet, in CLDR format such as
9722	// `America/New_York`. If the time zone isn't recognized, this may be a
9723	// custom time zone such as `GMT-07:00`.
9724	TimeZone string `json:"timeZone,omitempty"`
9725
9726	// Title: The title of the spreadsheet.
9727	Title string `json:"title,omitempty"`
9728
9729	// ForceSendFields is a list of field names (e.g. "AutoRecalc") to
9730	// unconditionally include in API requests. By default, fields with
9731	// empty values are omitted from API requests. However, any non-pointer,
9732	// non-interface field appearing in ForceSendFields will be sent to the
9733	// server regardless of whether the field is empty or not. This may be
9734	// used to include empty fields in Patch requests.
9735	ForceSendFields []string `json:"-"`
9736
9737	// NullFields is a list of field names (e.g. "AutoRecalc") to include in
9738	// API requests with the JSON null value. By default, fields with empty
9739	// values are omitted from API requests. However, any field with an
9740	// empty value appearing in NullFields will be sent to the server as
9741	// null. It is an error if a field in this list has a non-empty value.
9742	// This may be used to include null fields in Patch requests.
9743	NullFields []string `json:"-"`
9744}
9745
9746func (s *SpreadsheetProperties) MarshalJSON() ([]byte, error) {
9747	type NoMethod SpreadsheetProperties
9748	raw := NoMethod(*s)
9749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9750}
9751
9752// SpreadsheetTheme: Represents spreadsheet theme
9753type SpreadsheetTheme struct {
9754	// PrimaryFontFamily: Name of the primary font family.
9755	PrimaryFontFamily string `json:"primaryFontFamily,omitempty"`
9756
9757	// ThemeColors: The spreadsheet theme color pairs. To update you must
9758	// provide all theme color pairs.
9759	ThemeColors []*ThemeColorPair `json:"themeColors,omitempty"`
9760
9761	// ForceSendFields is a list of field names (e.g. "PrimaryFontFamily")
9762	// to unconditionally include in API requests. By default, fields with
9763	// empty values are omitted from API requests. However, any non-pointer,
9764	// non-interface field appearing in ForceSendFields will be sent to the
9765	// server regardless of whether the field is empty or not. This may be
9766	// used to include empty fields in Patch requests.
9767	ForceSendFields []string `json:"-"`
9768
9769	// NullFields is a list of field names (e.g. "PrimaryFontFamily") to
9770	// include in API requests with the JSON null value. By default, fields
9771	// with empty values are omitted from API requests. However, any field
9772	// with an empty value appearing in NullFields will be sent to the
9773	// server as null. It is an error if a field in this list has a
9774	// non-empty value. This may be used to include null fields in Patch
9775	// requests.
9776	NullFields []string `json:"-"`
9777}
9778
9779func (s *SpreadsheetTheme) MarshalJSON() ([]byte, error) {
9780	type NoMethod SpreadsheetTheme
9781	raw := NoMethod(*s)
9782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9783}
9784
9785// TextFormat: The format of a run of text in a cell. Absent values
9786// indicate that the field isn't specified.
9787type TextFormat struct {
9788	// Bold: True if the text is bold.
9789	Bold bool `json:"bold,omitempty"`
9790
9791	// FontFamily: The font family.
9792	FontFamily string `json:"fontFamily,omitempty"`
9793
9794	// FontSize: The size of the font.
9795	FontSize int64 `json:"fontSize,omitempty"`
9796
9797	// ForegroundColor: The foreground color of the text.
9798	ForegroundColor *Color `json:"foregroundColor,omitempty"`
9799
9800	// ForegroundColorStyle: The foreground color of the text. If
9801	// foreground_color is also set, this field takes precedence.
9802	ForegroundColorStyle *ColorStyle `json:"foregroundColorStyle,omitempty"`
9803
9804	// Italic: True if the text is italicized.
9805	Italic bool `json:"italic,omitempty"`
9806
9807	// Strikethrough: True if the text has a strikethrough.
9808	Strikethrough bool `json:"strikethrough,omitempty"`
9809
9810	// Underline: True if the text is underlined.
9811	Underline bool `json:"underline,omitempty"`
9812
9813	// ForceSendFields is a list of field names (e.g. "Bold") to
9814	// unconditionally include in API requests. By default, fields with
9815	// empty values are omitted from API requests. However, any non-pointer,
9816	// non-interface field appearing in ForceSendFields will be sent to the
9817	// server regardless of whether the field is empty or not. This may be
9818	// used to include empty fields in Patch requests.
9819	ForceSendFields []string `json:"-"`
9820
9821	// NullFields is a list of field names (e.g. "Bold") to include in API
9822	// requests with the JSON null value. By default, fields with empty
9823	// values are omitted from API requests. However, any field with an
9824	// empty value appearing in NullFields will be sent to the server as
9825	// null. It is an error if a field in this list has a non-empty value.
9826	// This may be used to include null fields in Patch requests.
9827	NullFields []string `json:"-"`
9828}
9829
9830func (s *TextFormat) MarshalJSON() ([]byte, error) {
9831	type NoMethod TextFormat
9832	raw := NoMethod(*s)
9833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9834}
9835
9836// TextFormatRun: A run of a text format. The format of this run
9837// continues until the start index of the next run. When updating, all
9838// fields must be set.
9839type TextFormatRun struct {
9840	// Format: The format of this run. Absent values inherit the cell's
9841	// format.
9842	Format *TextFormat `json:"format,omitempty"`
9843
9844	// StartIndex: The character index where this run starts.
9845	StartIndex int64 `json:"startIndex,omitempty"`
9846
9847	// ForceSendFields is a list of field names (e.g. "Format") to
9848	// unconditionally include in API requests. By default, fields with
9849	// empty values are omitted from API requests. However, any non-pointer,
9850	// non-interface field appearing in ForceSendFields will be sent to the
9851	// server regardless of whether the field is empty or not. This may be
9852	// used to include empty fields in Patch requests.
9853	ForceSendFields []string `json:"-"`
9854
9855	// NullFields is a list of field names (e.g. "Format") to include in API
9856	// requests with the JSON null value. By default, fields with empty
9857	// values are omitted from API requests. However, any field with an
9858	// empty value appearing in NullFields will be sent to the server as
9859	// null. It is an error if a field in this list has a non-empty value.
9860	// This may be used to include null fields in Patch requests.
9861	NullFields []string `json:"-"`
9862}
9863
9864func (s *TextFormatRun) MarshalJSON() ([]byte, error) {
9865	type NoMethod TextFormatRun
9866	raw := NoMethod(*s)
9867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9868}
9869
9870// TextPosition: Position settings for text.
9871type TextPosition struct {
9872	// HorizontalAlignment: Horizontal alignment setting for the piece of
9873	// text.
9874	//
9875	// Possible values:
9876	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
9877	// specified. Do not use this.
9878	//   "LEFT" - The text is explicitly aligned to the left of the cell.
9879	//   "CENTER" - The text is explicitly aligned to the center of the
9880	// cell.
9881	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
9882	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
9883
9884	// ForceSendFields is a list of field names (e.g. "HorizontalAlignment")
9885	// to unconditionally include in API requests. By default, fields with
9886	// empty values are omitted from API requests. However, any non-pointer,
9887	// non-interface field appearing in ForceSendFields will be sent to the
9888	// server regardless of whether the field is empty or not. This may be
9889	// used to include empty fields in Patch requests.
9890	ForceSendFields []string `json:"-"`
9891
9892	// NullFields is a list of field names (e.g. "HorizontalAlignment") to
9893	// include in API requests with the JSON null value. By default, fields
9894	// with empty values are omitted from API requests. However, any field
9895	// with an empty value appearing in NullFields will be sent to the
9896	// server as null. It is an error if a field in this list has a
9897	// non-empty value. This may be used to include null fields in Patch
9898	// requests.
9899	NullFields []string `json:"-"`
9900}
9901
9902func (s *TextPosition) MarshalJSON() ([]byte, error) {
9903	type NoMethod TextPosition
9904	raw := NoMethod(*s)
9905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9906}
9907
9908// TextRotation: The rotation applied to text in a cell.
9909type TextRotation struct {
9910	// Angle: The angle between the standard orientation and the desired
9911	// orientation. Measured in degrees. Valid values are between -90 and
9912	// 90. Positive angles are angled upwards, negative are angled
9913	// downwards. Note: For LTR text direction positive angles are in the
9914	// counterclockwise direction, whereas for RTL they are in the clockwise
9915	// direction
9916	Angle int64 `json:"angle,omitempty"`
9917
9918	// Vertical: If true, text reads top to bottom, but the orientation of
9919	// individual characters is unchanged. For example: | V | | e | | r | |
9920	// t | | i | | c | | a | | l |
9921	Vertical bool `json:"vertical,omitempty"`
9922
9923	// ForceSendFields is a list of field names (e.g. "Angle") to
9924	// unconditionally include in API requests. By default, fields with
9925	// empty values are omitted from API requests. However, any non-pointer,
9926	// non-interface field appearing in ForceSendFields will be sent to the
9927	// server regardless of whether the field is empty or not. This may be
9928	// used to include empty fields in Patch requests.
9929	ForceSendFields []string `json:"-"`
9930
9931	// NullFields is a list of field names (e.g. "Angle") to include in API
9932	// requests with the JSON null value. By default, fields with empty
9933	// values are omitted from API requests. However, any field with an
9934	// empty value appearing in NullFields will be sent to the server as
9935	// null. It is an error if a field in this list has a non-empty value.
9936	// This may be used to include null fields in Patch requests.
9937	NullFields []string `json:"-"`
9938}
9939
9940func (s *TextRotation) MarshalJSON() ([]byte, error) {
9941	type NoMethod TextRotation
9942	raw := NoMethod(*s)
9943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9944}
9945
9946// TextToColumnsRequest: Splits a column of text into multiple columns,
9947// based on a delimiter in each cell.
9948type TextToColumnsRequest struct {
9949	// Delimiter: The delimiter to use. Used only if delimiterType is
9950	// CUSTOM.
9951	Delimiter string `json:"delimiter,omitempty"`
9952
9953	// DelimiterType: The delimiter type to use.
9954	//
9955	// Possible values:
9956	//   "DELIMITER_TYPE_UNSPECIFIED" - Default value. This value must not
9957	// be used.
9958	//   "COMMA" - ","
9959	//   "SEMICOLON" - ";"
9960	//   "PERIOD" - "."
9961	//   "SPACE" - " "
9962	//   "CUSTOM" - A custom value as defined in delimiter.
9963	//   "AUTODETECT" - Automatically detect columns.
9964	DelimiterType string `json:"delimiterType,omitempty"`
9965
9966	// Source: The source data range. This must span exactly one column.
9967	Source *GridRange `json:"source,omitempty"`
9968
9969	// ForceSendFields is a list of field names (e.g. "Delimiter") to
9970	// unconditionally include in API requests. By default, fields with
9971	// empty values are omitted from API requests. However, any non-pointer,
9972	// non-interface field appearing in ForceSendFields will be sent to the
9973	// server regardless of whether the field is empty or not. This may be
9974	// used to include empty fields in Patch requests.
9975	ForceSendFields []string `json:"-"`
9976
9977	// NullFields is a list of field names (e.g. "Delimiter") to include in
9978	// API requests with the JSON null value. By default, fields with empty
9979	// values are omitted from API requests. However, any field with an
9980	// empty value appearing in NullFields will be sent to the server as
9981	// null. It is an error if a field in this list has a non-empty value.
9982	// This may be used to include null fields in Patch requests.
9983	NullFields []string `json:"-"`
9984}
9985
9986func (s *TextToColumnsRequest) MarshalJSON() ([]byte, error) {
9987	type NoMethod TextToColumnsRequest
9988	raw := NoMethod(*s)
9989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9990}
9991
9992// ThemeColorPair: A pair mapping a spreadsheet theme color type to the
9993// concrete color it represents.
9994type ThemeColorPair struct {
9995	// Color: The concrete color corresponding to the theme color type.
9996	Color *ColorStyle `json:"color,omitempty"`
9997
9998	// ColorType: The type of the spreadsheet theme color.
9999	//
10000	// Possible values:
10001	//   "THEME_COLOR_TYPE_UNSPECIFIED" - Unspecified theme color
10002	//   "TEXT" - Represents the primary text color
10003	//   "BACKGROUND" - Represents the primary background color
10004	//   "ACCENT1" - Represents the first accent color
10005	//   "ACCENT2" - Represents the second accent color
10006	//   "ACCENT3" - Represents the third accent color
10007	//   "ACCENT4" - Represents the fourth accent color
10008	//   "ACCENT5" - Represents the fifth accent color
10009	//   "ACCENT6" - Represents the sixth accent color
10010	//   "LINK" - Represents the color to use for hyperlinks
10011	ColorType string `json:"colorType,omitempty"`
10012
10013	// ForceSendFields is a list of field names (e.g. "Color") to
10014	// unconditionally include in API requests. By default, fields with
10015	// empty values are omitted from API requests. However, any non-pointer,
10016	// non-interface field appearing in ForceSendFields will be sent to the
10017	// server regardless of whether the field is empty or not. This may be
10018	// used to include empty fields in Patch requests.
10019	ForceSendFields []string `json:"-"`
10020
10021	// NullFields is a list of field names (e.g. "Color") to include in API
10022	// requests with the JSON null value. By default, fields with empty
10023	// values are omitted from API requests. However, any field with an
10024	// empty value appearing in NullFields will be sent to the server as
10025	// null. It is an error if a field in this list has a non-empty value.
10026	// This may be used to include null fields in Patch requests.
10027	NullFields []string `json:"-"`
10028}
10029
10030func (s *ThemeColorPair) MarshalJSON() ([]byte, error) {
10031	type NoMethod ThemeColorPair
10032	raw := NoMethod(*s)
10033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10034}
10035
10036// TimeOfDay: Represents a time of day. The date and time zone are
10037// either not significant or are specified elsewhere. An API may choose
10038// to allow leap seconds. Related types are google.type.Date and
10039// `google.protobuf.Timestamp`.
10040type TimeOfDay struct {
10041	// Hours: Hours of day in 24 hour format. Should be from 0 to 23. An API
10042	// may choose to allow the value "24:00:00" for scenarios like business
10043	// closing time.
10044	Hours int64 `json:"hours,omitempty"`
10045
10046	// Minutes: Minutes of hour of day. Must be from 0 to 59.
10047	Minutes int64 `json:"minutes,omitempty"`
10048
10049	// Nanos: Fractions of seconds in nanoseconds. Must be from 0 to
10050	// 999,999,999.
10051	Nanos int64 `json:"nanos,omitempty"`
10052
10053	// Seconds: Seconds of minutes of the time. Must normally be from 0 to
10054	// 59. An API may allow the value 60 if it allows leap-seconds.
10055	Seconds int64 `json:"seconds,omitempty"`
10056
10057	// ForceSendFields is a list of field names (e.g. "Hours") to
10058	// unconditionally include in API requests. By default, fields with
10059	// empty values are omitted from API requests. However, any non-pointer,
10060	// non-interface field appearing in ForceSendFields will be sent to the
10061	// server regardless of whether the field is empty or not. This may be
10062	// used to include empty fields in Patch requests.
10063	ForceSendFields []string `json:"-"`
10064
10065	// NullFields is a list of field names (e.g. "Hours") to include in API
10066	// requests with the JSON null value. By default, fields with empty
10067	// values are omitted from API requests. However, any field with an
10068	// empty value appearing in NullFields will be sent to the server as
10069	// null. It is an error if a field in this list has a non-empty value.
10070	// This may be used to include null fields in Patch requests.
10071	NullFields []string `json:"-"`
10072}
10073
10074func (s *TimeOfDay) MarshalJSON() ([]byte, error) {
10075	type NoMethod TimeOfDay
10076	raw := NoMethod(*s)
10077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10078}
10079
10080// TreemapChartColorScale: A color scale for a treemap chart.
10081type TreemapChartColorScale struct {
10082	// MaxValueColor: The background color for cells with a color value
10083	// greater than or equal to maxValue. Defaults to #109618 if not
10084	// specified.
10085	MaxValueColor *Color `json:"maxValueColor,omitempty"`
10086
10087	// MaxValueColorStyle: The background color for cells with a color value
10088	// greater than or equal to maxValue. Defaults to #109618 if not
10089	// specified. If max_value_color is also set, this field takes
10090	// precedence.
10091	MaxValueColorStyle *ColorStyle `json:"maxValueColorStyle,omitempty"`
10092
10093	// MidValueColor: The background color for cells with a color value at
10094	// the midpoint between minValue and maxValue. Defaults to #efe6dc if
10095	// not specified.
10096	MidValueColor *Color `json:"midValueColor,omitempty"`
10097
10098	// MidValueColorStyle: The background color for cells with a color value
10099	// at the midpoint between minValue and maxValue. Defaults to #efe6dc if
10100	// not specified. If mid_value_color is also set, this field takes
10101	// precedence.
10102	MidValueColorStyle *ColorStyle `json:"midValueColorStyle,omitempty"`
10103
10104	// MinValueColor: The background color for cells with a color value less
10105	// than or equal to minValue. Defaults to #dc3912 if not specified.
10106	MinValueColor *Color `json:"minValueColor,omitempty"`
10107
10108	// MinValueColorStyle: The background color for cells with a color value
10109	// less than or equal to minValue. Defaults to #dc3912 if not specified.
10110	// If min_value_color is also set, this field takes precedence.
10111	MinValueColorStyle *ColorStyle `json:"minValueColorStyle,omitempty"`
10112
10113	// NoDataColor: The background color for cells that have no color data
10114	// associated with them. Defaults to #000000 if not specified.
10115	NoDataColor *Color `json:"noDataColor,omitempty"`
10116
10117	// NoDataColorStyle: The background color for cells that have no color
10118	// data associated with them. Defaults to #000000 if not specified. If
10119	// no_data_color is also set, this field takes precedence.
10120	NoDataColorStyle *ColorStyle `json:"noDataColorStyle,omitempty"`
10121
10122	// ForceSendFields is a list of field names (e.g. "MaxValueColor") to
10123	// unconditionally include in API requests. By default, fields with
10124	// empty values are omitted from API requests. However, any non-pointer,
10125	// non-interface field appearing in ForceSendFields will be sent to the
10126	// server regardless of whether the field is empty or not. This may be
10127	// used to include empty fields in Patch requests.
10128	ForceSendFields []string `json:"-"`
10129
10130	// NullFields is a list of field names (e.g. "MaxValueColor") to include
10131	// in API requests with the JSON null value. By default, fields with
10132	// empty values are omitted from API requests. However, any field with
10133	// an empty value appearing in NullFields will be sent to the server as
10134	// null. It is an error if a field in this list has a non-empty value.
10135	// This may be used to include null fields in Patch requests.
10136	NullFields []string `json:"-"`
10137}
10138
10139func (s *TreemapChartColorScale) MarshalJSON() ([]byte, error) {
10140	type NoMethod TreemapChartColorScale
10141	raw := NoMethod(*s)
10142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10143}
10144
10145// TreemapChartSpec: A Treemap chart.
10146type TreemapChartSpec struct {
10147	// ColorData: The data that determines the background color of each
10148	// treemap data cell. This field is optional. If not specified,
10149	// size_data is used to determine background colors. If specified, the
10150	// data is expected to be numeric. color_scale will determine how the
10151	// values in this data map to data cell background colors.
10152	ColorData *ChartData `json:"colorData,omitempty"`
10153
10154	// ColorScale: The color scale for data cells in the treemap chart. Data
10155	// cells are assigned colors based on their color values. These color
10156	// values come from color_data, or from size_data if color_data is not
10157	// specified. Cells with color values less than or equal to min_value
10158	// will have minValueColor as their background color. Cells with color
10159	// values greater than or equal to max_value will have maxValueColor as
10160	// their background color. Cells with color values between min_value and
10161	// max_value will have background colors on a gradient between
10162	// minValueColor and maxValueColor, the midpoint of the gradient being
10163	// midValueColor. Cells with missing or non-numeric color values will
10164	// have noDataColor as their background color.
10165	ColorScale *TreemapChartColorScale `json:"colorScale,omitempty"`
10166
10167	// HeaderColor: The background color for header cells.
10168	HeaderColor *Color `json:"headerColor,omitempty"`
10169
10170	// HeaderColorStyle: The background color for header cells. If
10171	// header_color is also set, this field takes precedence.
10172	HeaderColorStyle *ColorStyle `json:"headerColorStyle,omitempty"`
10173
10174	// HideTooltips: True to hide tooltips.
10175	HideTooltips bool `json:"hideTooltips,omitempty"`
10176
10177	// HintedLevels: The number of additional data levels beyond the labeled
10178	// levels to be shown on the treemap chart. These levels are not
10179	// interactive and are shown without their labels. Defaults to 0 if not
10180	// specified.
10181	HintedLevels int64 `json:"hintedLevels,omitempty"`
10182
10183	// Labels: The data that contains the treemap cell labels.
10184	Labels *ChartData `json:"labels,omitempty"`
10185
10186	// Levels: The number of data levels to show on the treemap chart. These
10187	// levels are interactive and are shown with their labels. Defaults to 2
10188	// if not specified.
10189	Levels int64 `json:"levels,omitempty"`
10190
10191	// MaxValue: The maximum possible data value. Cells with values greater
10192	// than this will have the same color as cells with this value. If not
10193	// specified, defaults to the actual maximum value from color_data, or
10194	// the maximum value from size_data if color_data is not specified.
10195	MaxValue float64 `json:"maxValue,omitempty"`
10196
10197	// MinValue: The minimum possible data value. Cells with values less
10198	// than this will have the same color as cells with this value. If not
10199	// specified, defaults to the actual minimum value from color_data, or
10200	// the minimum value from size_data if color_data is not specified.
10201	MinValue float64 `json:"minValue,omitempty"`
10202
10203	// ParentLabels: The data the contains the treemap cells' parent labels.
10204	ParentLabels *ChartData `json:"parentLabels,omitempty"`
10205
10206	// SizeData: The data that determines the size of each treemap data
10207	// cell. This data is expected to be numeric. The cells corresponding to
10208	// non-numeric or missing data will not be rendered. If color_data is
10209	// not specified, this data is used to determine data cell background
10210	// colors as well.
10211	SizeData *ChartData `json:"sizeData,omitempty"`
10212
10213	// TextFormat: The text format for all labels on the chart.
10214	TextFormat *TextFormat `json:"textFormat,omitempty"`
10215
10216	// ForceSendFields is a list of field names (e.g. "ColorData") to
10217	// unconditionally include in API requests. By default, fields with
10218	// empty values are omitted from API requests. However, any non-pointer,
10219	// non-interface field appearing in ForceSendFields will be sent to the
10220	// server regardless of whether the field is empty or not. This may be
10221	// used to include empty fields in Patch requests.
10222	ForceSendFields []string `json:"-"`
10223
10224	// NullFields is a list of field names (e.g. "ColorData") to include in
10225	// API requests with the JSON null value. By default, fields with empty
10226	// values are omitted from API requests. However, any field with an
10227	// empty value appearing in NullFields will be sent to the server as
10228	// null. It is an error if a field in this list has a non-empty value.
10229	// This may be used to include null fields in Patch requests.
10230	NullFields []string `json:"-"`
10231}
10232
10233func (s *TreemapChartSpec) MarshalJSON() ([]byte, error) {
10234	type NoMethod TreemapChartSpec
10235	raw := NoMethod(*s)
10236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10237}
10238
10239func (s *TreemapChartSpec) UnmarshalJSON(data []byte) error {
10240	type NoMethod TreemapChartSpec
10241	var s1 struct {
10242		MaxValue gensupport.JSONFloat64 `json:"maxValue"`
10243		MinValue gensupport.JSONFloat64 `json:"minValue"`
10244		*NoMethod
10245	}
10246	s1.NoMethod = (*NoMethod)(s)
10247	if err := json.Unmarshal(data, &s1); err != nil {
10248		return err
10249	}
10250	s.MaxValue = float64(s1.MaxValue)
10251	s.MinValue = float64(s1.MinValue)
10252	return nil
10253}
10254
10255// TrimWhitespaceRequest: Trims the whitespace (such as spaces, tabs, or
10256// new lines) in every cell in the specified range. This request removes
10257// all whitespace from the start and end of each cell's text, and
10258// reduces any subsequence of remaining whitespace characters to a
10259// single space. If the resulting trimmed text starts with a '+' or '='
10260// character, the text remains as a string value and isn't interpreted
10261// as a formula.
10262type TrimWhitespaceRequest struct {
10263	// Range: The range whose cells to trim.
10264	Range *GridRange `json:"range,omitempty"`
10265
10266	// ForceSendFields is a list of field names (e.g. "Range") to
10267	// unconditionally include in API requests. By default, fields with
10268	// empty values are omitted from API requests. However, any non-pointer,
10269	// non-interface field appearing in ForceSendFields will be sent to the
10270	// server regardless of whether the field is empty or not. This may be
10271	// used to include empty fields in Patch requests.
10272	ForceSendFields []string `json:"-"`
10273
10274	// NullFields is a list of field names (e.g. "Range") to include in API
10275	// requests with the JSON null value. By default, fields with empty
10276	// values are omitted from API requests. However, any field with an
10277	// empty value appearing in NullFields will be sent to the server as
10278	// null. It is an error if a field in this list has a non-empty value.
10279	// This may be used to include null fields in Patch requests.
10280	NullFields []string `json:"-"`
10281}
10282
10283func (s *TrimWhitespaceRequest) MarshalJSON() ([]byte, error) {
10284	type NoMethod TrimWhitespaceRequest
10285	raw := NoMethod(*s)
10286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10287}
10288
10289// TrimWhitespaceResponse: The result of trimming whitespace in cells.
10290type TrimWhitespaceResponse struct {
10291	// CellsChangedCount: The number of cells that were trimmed of
10292	// whitespace.
10293	CellsChangedCount int64 `json:"cellsChangedCount,omitempty"`
10294
10295	// ForceSendFields is a list of field names (e.g. "CellsChangedCount")
10296	// to unconditionally include in API requests. By default, fields with
10297	// empty values are omitted from API requests. However, any non-pointer,
10298	// non-interface field appearing in ForceSendFields will be sent to the
10299	// server regardless of whether the field is empty or not. This may be
10300	// used to include empty fields in Patch requests.
10301	ForceSendFields []string `json:"-"`
10302
10303	// NullFields is a list of field names (e.g. "CellsChangedCount") to
10304	// include in API requests with the JSON null value. By default, fields
10305	// with empty values are omitted from API requests. However, any field
10306	// with an empty value appearing in NullFields will be sent to the
10307	// server as null. It is an error if a field in this list has a
10308	// non-empty value. This may be used to include null fields in Patch
10309	// requests.
10310	NullFields []string `json:"-"`
10311}
10312
10313func (s *TrimWhitespaceResponse) MarshalJSON() ([]byte, error) {
10314	type NoMethod TrimWhitespaceResponse
10315	raw := NoMethod(*s)
10316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10317}
10318
10319// UnmergeCellsRequest: Unmerges cells in the given range.
10320type UnmergeCellsRequest struct {
10321	// Range: The range within which all cells should be unmerged. If the
10322	// range spans multiple merges, all will be unmerged. The range must not
10323	// partially span any merge.
10324	Range *GridRange `json:"range,omitempty"`
10325
10326	// ForceSendFields is a list of field names (e.g. "Range") to
10327	// unconditionally include in API requests. By default, fields with
10328	// empty values are omitted from API requests. However, any non-pointer,
10329	// non-interface field appearing in ForceSendFields will be sent to the
10330	// server regardless of whether the field is empty or not. This may be
10331	// used to include empty fields in Patch requests.
10332	ForceSendFields []string `json:"-"`
10333
10334	// NullFields is a list of field names (e.g. "Range") to include in API
10335	// requests with the JSON null value. By default, fields with empty
10336	// values are omitted from API requests. However, any field with an
10337	// empty value appearing in NullFields will be sent to the server as
10338	// null. It is an error if a field in this list has a non-empty value.
10339	// This may be used to include null fields in Patch requests.
10340	NullFields []string `json:"-"`
10341}
10342
10343func (s *UnmergeCellsRequest) MarshalJSON() ([]byte, error) {
10344	type NoMethod UnmergeCellsRequest
10345	raw := NoMethod(*s)
10346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10347}
10348
10349// UpdateBandingRequest: Updates properties of the supplied banded
10350// range.
10351type UpdateBandingRequest struct {
10352	// BandedRange: The banded range to update with the new properties.
10353	BandedRange *BandedRange `json:"bandedRange,omitempty"`
10354
10355	// Fields: The fields that should be updated. At least one field must be
10356	// specified. The root `bandedRange` is implied and should not be
10357	// specified. A single "*" can be used as short-hand for listing every
10358	// field.
10359	Fields string `json:"fields,omitempty"`
10360
10361	// ForceSendFields is a list of field names (e.g. "BandedRange") to
10362	// unconditionally include in API requests. By default, fields with
10363	// empty values are omitted from API requests. However, any non-pointer,
10364	// non-interface field appearing in ForceSendFields will be sent to the
10365	// server regardless of whether the field is empty or not. This may be
10366	// used to include empty fields in Patch requests.
10367	ForceSendFields []string `json:"-"`
10368
10369	// NullFields is a list of field names (e.g. "BandedRange") to include
10370	// in API requests with the JSON null value. By default, fields with
10371	// empty values are omitted from API requests. However, any field with
10372	// an empty value appearing in NullFields will be sent to the server as
10373	// null. It is an error if a field in this list has a non-empty value.
10374	// This may be used to include null fields in Patch requests.
10375	NullFields []string `json:"-"`
10376}
10377
10378func (s *UpdateBandingRequest) MarshalJSON() ([]byte, error) {
10379	type NoMethod UpdateBandingRequest
10380	raw := NoMethod(*s)
10381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10382}
10383
10384// UpdateBordersRequest: Updates the borders of a range. If a field is
10385// not set in the request, that means the border remains as-is. For
10386// example, with two subsequent UpdateBordersRequest: 1. range: A1:A5 `{
10387// top: RED, bottom: WHITE }` 2. range: A1:A5 `{ left: BLUE }` That
10388// would result in A1:A5 having a borders of `{ top: RED, bottom: WHITE,
10389// left: BLUE }`. If you want to clear a border, explicitly set the
10390// style to NONE.
10391type UpdateBordersRequest struct {
10392	// Bottom: The border to put at the bottom of the range.
10393	Bottom *Border `json:"bottom,omitempty"`
10394
10395	// InnerHorizontal: The horizontal border to put within the range.
10396	InnerHorizontal *Border `json:"innerHorizontal,omitempty"`
10397
10398	// InnerVertical: The vertical border to put within the range.
10399	InnerVertical *Border `json:"innerVertical,omitempty"`
10400
10401	// Left: The border to put at the left of the range.
10402	Left *Border `json:"left,omitempty"`
10403
10404	// Range: The range whose borders should be updated.
10405	Range *GridRange `json:"range,omitempty"`
10406
10407	// Right: The border to put at the right of the range.
10408	Right *Border `json:"right,omitempty"`
10409
10410	// Top: The border to put at the top of the range.
10411	Top *Border `json:"top,omitempty"`
10412
10413	// ForceSendFields is a list of field names (e.g. "Bottom") to
10414	// unconditionally include in API requests. By default, fields with
10415	// empty values are omitted from API requests. However, any non-pointer,
10416	// non-interface field appearing in ForceSendFields will be sent to the
10417	// server regardless of whether the field is empty or not. This may be
10418	// used to include empty fields in Patch requests.
10419	ForceSendFields []string `json:"-"`
10420
10421	// NullFields is a list of field names (e.g. "Bottom") to include in API
10422	// requests with the JSON null value. By default, fields with empty
10423	// values are omitted from API requests. However, any field with an
10424	// empty value appearing in NullFields will be sent to the server as
10425	// null. It is an error if a field in this list has a non-empty value.
10426	// This may be used to include null fields in Patch requests.
10427	NullFields []string `json:"-"`
10428}
10429
10430func (s *UpdateBordersRequest) MarshalJSON() ([]byte, error) {
10431	type NoMethod UpdateBordersRequest
10432	raw := NoMethod(*s)
10433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10434}
10435
10436// UpdateCellsRequest: Updates all cells in a range with new data.
10437type UpdateCellsRequest struct {
10438	// Fields: The fields of CellData that should be updated. At least one
10439	// field must be specified. The root is the CellData; 'row.values.'
10440	// should not be specified. A single "*" can be used as short-hand for
10441	// listing every field.
10442	Fields string `json:"fields,omitempty"`
10443
10444	// Range: The range to write data to. If the data in rows does not cover
10445	// the entire requested range, the fields matching those set in fields
10446	// will be cleared.
10447	Range *GridRange `json:"range,omitempty"`
10448
10449	// Rows: The data to write.
10450	Rows []*RowData `json:"rows,omitempty"`
10451
10452	// Start: The coordinate to start writing data at. Any number of rows
10453	// and columns (including a different number of columns per row) may be
10454	// written.
10455	Start *GridCoordinate `json:"start,omitempty"`
10456
10457	// ForceSendFields is a list of field names (e.g. "Fields") to
10458	// unconditionally include in API requests. By default, fields with
10459	// empty values are omitted from API requests. However, any non-pointer,
10460	// non-interface field appearing in ForceSendFields will be sent to the
10461	// server regardless of whether the field is empty or not. This may be
10462	// used to include empty fields in Patch requests.
10463	ForceSendFields []string `json:"-"`
10464
10465	// NullFields is a list of field names (e.g. "Fields") to include in API
10466	// requests with the JSON null value. By default, fields with empty
10467	// values are omitted from API requests. However, any field with an
10468	// empty value appearing in NullFields will be sent to the server as
10469	// null. It is an error if a field in this list has a non-empty value.
10470	// This may be used to include null fields in Patch requests.
10471	NullFields []string `json:"-"`
10472}
10473
10474func (s *UpdateCellsRequest) MarshalJSON() ([]byte, error) {
10475	type NoMethod UpdateCellsRequest
10476	raw := NoMethod(*s)
10477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10478}
10479
10480// UpdateChartSpecRequest: Updates a chart's specifications. (This does
10481// not move or resize a chart. To move or resize a chart, use
10482// UpdateEmbeddedObjectPositionRequest.)
10483type UpdateChartSpecRequest struct {
10484	// ChartId: The ID of the chart to update.
10485	ChartId int64 `json:"chartId,omitempty"`
10486
10487	// Spec: The specification to apply to the chart.
10488	Spec *ChartSpec `json:"spec,omitempty"`
10489
10490	// ForceSendFields is a list of field names (e.g. "ChartId") to
10491	// unconditionally include in API requests. By default, fields with
10492	// empty values are omitted from API requests. However, any non-pointer,
10493	// non-interface field appearing in ForceSendFields will be sent to the
10494	// server regardless of whether the field is empty or not. This may be
10495	// used to include empty fields in Patch requests.
10496	ForceSendFields []string `json:"-"`
10497
10498	// NullFields is a list of field names (e.g. "ChartId") to include in
10499	// API requests with the JSON null value. By default, fields with empty
10500	// values are omitted from API requests. However, any field with an
10501	// empty value appearing in NullFields will be sent to the server as
10502	// null. It is an error if a field in this list has a non-empty value.
10503	// This may be used to include null fields in Patch requests.
10504	NullFields []string `json:"-"`
10505}
10506
10507func (s *UpdateChartSpecRequest) MarshalJSON() ([]byte, error) {
10508	type NoMethod UpdateChartSpecRequest
10509	raw := NoMethod(*s)
10510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10511}
10512
10513// UpdateConditionalFormatRuleRequest: Updates a conditional format rule
10514// at the given index, or moves a conditional format rule to another
10515// index.
10516type UpdateConditionalFormatRuleRequest struct {
10517	// Index: The zero-based index of the rule that should be replaced or
10518	// moved.
10519	Index int64 `json:"index,omitempty"`
10520
10521	// NewIndex: The zero-based new index the rule should end up at.
10522	NewIndex int64 `json:"newIndex,omitempty"`
10523
10524	// Rule: The rule that should replace the rule at the given index.
10525	Rule *ConditionalFormatRule `json:"rule,omitempty"`
10526
10527	// SheetId: The sheet of the rule to move. Required if new_index is set,
10528	// unused otherwise.
10529	SheetId int64 `json:"sheetId,omitempty"`
10530
10531	// ForceSendFields is a list of field names (e.g. "Index") to
10532	// unconditionally include in API requests. By default, fields with
10533	// empty values are omitted from API requests. However, any non-pointer,
10534	// non-interface field appearing in ForceSendFields will be sent to the
10535	// server regardless of whether the field is empty or not. This may be
10536	// used to include empty fields in Patch requests.
10537	ForceSendFields []string `json:"-"`
10538
10539	// NullFields is a list of field names (e.g. "Index") to include in API
10540	// requests with the JSON null value. By default, fields with empty
10541	// values are omitted from API requests. However, any field with an
10542	// empty value appearing in NullFields will be sent to the server as
10543	// null. It is an error if a field in this list has a non-empty value.
10544	// This may be used to include null fields in Patch requests.
10545	NullFields []string `json:"-"`
10546}
10547
10548func (s *UpdateConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
10549	type NoMethod UpdateConditionalFormatRuleRequest
10550	raw := NoMethod(*s)
10551	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10552}
10553
10554// UpdateConditionalFormatRuleResponse: The result of updating a
10555// conditional format rule.
10556type UpdateConditionalFormatRuleResponse struct {
10557	// NewIndex: The index of the new rule.
10558	NewIndex int64 `json:"newIndex,omitempty"`
10559
10560	// NewRule: The new rule that replaced the old rule (if replacing), or
10561	// the rule that was moved (if moved)
10562	NewRule *ConditionalFormatRule `json:"newRule,omitempty"`
10563
10564	// OldIndex: The old index of the rule. Not set if a rule was replaced
10565	// (because it is the same as new_index).
10566	OldIndex int64 `json:"oldIndex,omitempty"`
10567
10568	// OldRule: The old (deleted) rule. Not set if a rule was moved (because
10569	// it is the same as new_rule).
10570	OldRule *ConditionalFormatRule `json:"oldRule,omitempty"`
10571
10572	// ForceSendFields is a list of field names (e.g. "NewIndex") to
10573	// unconditionally include in API requests. By default, fields with
10574	// empty values are omitted from API requests. However, any non-pointer,
10575	// non-interface field appearing in ForceSendFields will be sent to the
10576	// server regardless of whether the field is empty or not. This may be
10577	// used to include empty fields in Patch requests.
10578	ForceSendFields []string `json:"-"`
10579
10580	// NullFields is a list of field names (e.g. "NewIndex") to include in
10581	// API requests with the JSON null value. By default, fields with empty
10582	// values are omitted from API requests. However, any field with an
10583	// empty value appearing in NullFields will be sent to the server as
10584	// null. It is an error if a field in this list has a non-empty value.
10585	// This may be used to include null fields in Patch requests.
10586	NullFields []string `json:"-"`
10587}
10588
10589func (s *UpdateConditionalFormatRuleResponse) MarshalJSON() ([]byte, error) {
10590	type NoMethod UpdateConditionalFormatRuleResponse
10591	raw := NoMethod(*s)
10592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10593}
10594
10595// UpdateDataSourceRequest: Updates a data source. After the data source
10596// is updated successfully, an execution is triggered to refresh the
10597// associated DATA_SOURCE sheet to read data from the updated data
10598// source. The request requires an additional `bigquery.readonly` OAuth
10599// scope.
10600type UpdateDataSourceRequest struct {
10601	// DataSource: The data source to update.
10602	DataSource *DataSource `json:"dataSource,omitempty"`
10603
10604	// Fields: The fields that should be updated. At least one field must be
10605	// specified. The root `dataSource` is implied and should not be
10606	// specified. A single "*" can be used as short-hand for listing every
10607	// field.
10608	Fields string `json:"fields,omitempty"`
10609
10610	// ForceSendFields is a list of field names (e.g. "DataSource") to
10611	// unconditionally include in API requests. By default, fields with
10612	// empty values are omitted from API requests. However, any non-pointer,
10613	// non-interface field appearing in ForceSendFields will be sent to the
10614	// server regardless of whether the field is empty or not. This may be
10615	// used to include empty fields in Patch requests.
10616	ForceSendFields []string `json:"-"`
10617
10618	// NullFields is a list of field names (e.g. "DataSource") to include in
10619	// API requests with the JSON null value. By default, fields with empty
10620	// values are omitted from API requests. However, any field with an
10621	// empty value appearing in NullFields will be sent to the server as
10622	// null. It is an error if a field in this list has a non-empty value.
10623	// This may be used to include null fields in Patch requests.
10624	NullFields []string `json:"-"`
10625}
10626
10627func (s *UpdateDataSourceRequest) MarshalJSON() ([]byte, error) {
10628	type NoMethod UpdateDataSourceRequest
10629	raw := NoMethod(*s)
10630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10631}
10632
10633// UpdateDataSourceResponse: The response from updating data source.
10634type UpdateDataSourceResponse struct {
10635	// DataExecutionStatus: The data execution status.
10636	DataExecutionStatus *DataExecutionStatus `json:"dataExecutionStatus,omitempty"`
10637
10638	// DataSource: The updated data source.
10639	DataSource *DataSource `json:"dataSource,omitempty"`
10640
10641	// ForceSendFields is a list of field names (e.g. "DataExecutionStatus")
10642	// to unconditionally include in API requests. By default, fields with
10643	// empty values are omitted from API requests. However, any non-pointer,
10644	// non-interface field appearing in ForceSendFields will be sent to the
10645	// server regardless of whether the field is empty or not. This may be
10646	// used to include empty fields in Patch requests.
10647	ForceSendFields []string `json:"-"`
10648
10649	// NullFields is a list of field names (e.g. "DataExecutionStatus") to
10650	// include in API requests with the JSON null value. By default, fields
10651	// with empty values are omitted from API requests. However, any field
10652	// with an empty value appearing in NullFields will be sent to the
10653	// server as null. It is an error if a field in this list has a
10654	// non-empty value. This may be used to include null fields in Patch
10655	// requests.
10656	NullFields []string `json:"-"`
10657}
10658
10659func (s *UpdateDataSourceResponse) MarshalJSON() ([]byte, error) {
10660	type NoMethod UpdateDataSourceResponse
10661	raw := NoMethod(*s)
10662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10663}
10664
10665// UpdateDeveloperMetadataRequest: A request to update properties of
10666// developer metadata. Updates the properties of the developer metadata
10667// selected by the filters to the values provided in the
10668// DeveloperMetadata resource. Callers must specify the properties they
10669// wish to update in the fields parameter, as well as specify at least
10670// one DataFilter matching the metadata they wish to update.
10671type UpdateDeveloperMetadataRequest struct {
10672	// DataFilters: The filters matching the developer metadata entries to
10673	// update.
10674	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
10675
10676	// DeveloperMetadata: The value that all metadata matched by the data
10677	// filters will be updated to.
10678	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
10679
10680	// Fields: The fields that should be updated. At least one field must be
10681	// specified. The root `developerMetadata` is implied and should not be
10682	// specified. A single "*" can be used as short-hand for listing every
10683	// field.
10684	Fields string `json:"fields,omitempty"`
10685
10686	// ForceSendFields is a list of field names (e.g. "DataFilters") to
10687	// unconditionally include in API requests. By default, fields with
10688	// empty values are omitted from API requests. However, any non-pointer,
10689	// non-interface field appearing in ForceSendFields will be sent to the
10690	// server regardless of whether the field is empty or not. This may be
10691	// used to include empty fields in Patch requests.
10692	ForceSendFields []string `json:"-"`
10693
10694	// NullFields is a list of field names (e.g. "DataFilters") to include
10695	// in API requests with the JSON null value. By default, fields with
10696	// empty values are omitted from API requests. However, any field with
10697	// an empty value appearing in NullFields will be sent to the server as
10698	// null. It is an error if a field in this list has a non-empty value.
10699	// This may be used to include null fields in Patch requests.
10700	NullFields []string `json:"-"`
10701}
10702
10703func (s *UpdateDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
10704	type NoMethod UpdateDeveloperMetadataRequest
10705	raw := NoMethod(*s)
10706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10707}
10708
10709// UpdateDeveloperMetadataResponse: The response from updating developer
10710// metadata.
10711type UpdateDeveloperMetadataResponse struct {
10712	// DeveloperMetadata: The updated developer metadata.
10713	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
10714
10715	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
10716	// to unconditionally include in API requests. By default, fields with
10717	// empty values are omitted from API requests. However, any non-pointer,
10718	// non-interface field appearing in ForceSendFields will be sent to the
10719	// server regardless of whether the field is empty or not. This may be
10720	// used to include empty fields in Patch requests.
10721	ForceSendFields []string `json:"-"`
10722
10723	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
10724	// include in API requests with the JSON null value. By default, fields
10725	// with empty values are omitted from API requests. However, any field
10726	// with an empty value appearing in NullFields will be sent to the
10727	// server as null. It is an error if a field in this list has a
10728	// non-empty value. This may be used to include null fields in Patch
10729	// requests.
10730	NullFields []string `json:"-"`
10731}
10732
10733func (s *UpdateDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
10734	type NoMethod UpdateDeveloperMetadataResponse
10735	raw := NoMethod(*s)
10736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10737}
10738
10739// UpdateDimensionGroupRequest: Updates the state of the specified
10740// group.
10741type UpdateDimensionGroupRequest struct {
10742	// DimensionGroup: The group whose state should be updated. The range
10743	// and depth of the group should specify a valid group on the sheet, and
10744	// all other fields updated.
10745	DimensionGroup *DimensionGroup `json:"dimensionGroup,omitempty"`
10746
10747	// Fields: The fields that should be updated. At least one field must be
10748	// specified. The root `dimensionGroup` is implied and should not be
10749	// specified. A single "*" can be used as short-hand for listing every
10750	// field.
10751	Fields string `json:"fields,omitempty"`
10752
10753	// ForceSendFields is a list of field names (e.g. "DimensionGroup") to
10754	// unconditionally include in API requests. By default, fields with
10755	// empty values are omitted from API requests. However, any non-pointer,
10756	// non-interface field appearing in ForceSendFields will be sent to the
10757	// server regardless of whether the field is empty or not. This may be
10758	// used to include empty fields in Patch requests.
10759	ForceSendFields []string `json:"-"`
10760
10761	// NullFields is a list of field names (e.g. "DimensionGroup") to
10762	// include in API requests with the JSON null value. By default, fields
10763	// with empty values are omitted from API requests. However, any field
10764	// with an empty value appearing in NullFields will be sent to the
10765	// server as null. It is an error if a field in this list has a
10766	// non-empty value. This may be used to include null fields in Patch
10767	// requests.
10768	NullFields []string `json:"-"`
10769}
10770
10771func (s *UpdateDimensionGroupRequest) MarshalJSON() ([]byte, error) {
10772	type NoMethod UpdateDimensionGroupRequest
10773	raw := NoMethod(*s)
10774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10775}
10776
10777// UpdateDimensionPropertiesRequest: Updates properties of dimensions
10778// within the specified range.
10779type UpdateDimensionPropertiesRequest struct {
10780	// DataSourceSheetRange: The columns on a data source sheet to update.
10781	DataSourceSheetRange *DataSourceSheetDimensionRange `json:"dataSourceSheetRange,omitempty"`
10782
10783	// Fields: The fields that should be updated. At least one field must be
10784	// specified. The root `properties` is implied and should not be
10785	// specified. A single "*" can be used as short-hand for listing every
10786	// field.
10787	Fields string `json:"fields,omitempty"`
10788
10789	// Properties: Properties to update.
10790	Properties *DimensionProperties `json:"properties,omitempty"`
10791
10792	// Range: The rows or columns to update.
10793	Range *DimensionRange `json:"range,omitempty"`
10794
10795	// ForceSendFields is a list of field names (e.g.
10796	// "DataSourceSheetRange") to unconditionally include in API requests.
10797	// By default, fields with empty values are omitted from API requests.
10798	// However, any non-pointer, non-interface field appearing in
10799	// ForceSendFields will be sent to the server regardless of whether the
10800	// field is empty or not. This may be used to include empty fields in
10801	// Patch requests.
10802	ForceSendFields []string `json:"-"`
10803
10804	// NullFields is a list of field names (e.g. "DataSourceSheetRange") to
10805	// include in API requests with the JSON null value. By default, fields
10806	// with empty values are omitted from API requests. However, any field
10807	// with an empty value appearing in NullFields will be sent to the
10808	// server as null. It is an error if a field in this list has a
10809	// non-empty value. This may be used to include null fields in Patch
10810	// requests.
10811	NullFields []string `json:"-"`
10812}
10813
10814func (s *UpdateDimensionPropertiesRequest) MarshalJSON() ([]byte, error) {
10815	type NoMethod UpdateDimensionPropertiesRequest
10816	raw := NoMethod(*s)
10817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10818}
10819
10820// UpdateEmbeddedObjectBorderRequest: Updates an embedded object's
10821// border property.
10822type UpdateEmbeddedObjectBorderRequest struct {
10823	// Border: The border that applies to the embedded object.
10824	Border *EmbeddedObjectBorder `json:"border,omitempty"`
10825
10826	// Fields: The fields that should be updated. At least one field must be
10827	// specified. The root `border` is implied and should not be specified.
10828	// A single "*" can be used as short-hand for listing every field.
10829	Fields string `json:"fields,omitempty"`
10830
10831	// ObjectId: The ID of the embedded object to update.
10832	ObjectId int64 `json:"objectId,omitempty"`
10833
10834	// ForceSendFields is a list of field names (e.g. "Border") to
10835	// unconditionally include in API requests. By default, fields with
10836	// empty values are omitted from API requests. However, any non-pointer,
10837	// non-interface field appearing in ForceSendFields will be sent to the
10838	// server regardless of whether the field is empty or not. This may be
10839	// used to include empty fields in Patch requests.
10840	ForceSendFields []string `json:"-"`
10841
10842	// NullFields is a list of field names (e.g. "Border") to include in API
10843	// requests with the JSON null value. By default, fields with empty
10844	// values are omitted from API requests. However, any field with an
10845	// empty value appearing in NullFields will be sent to the server as
10846	// null. It is an error if a field in this list has a non-empty value.
10847	// This may be used to include null fields in Patch requests.
10848	NullFields []string `json:"-"`
10849}
10850
10851func (s *UpdateEmbeddedObjectBorderRequest) MarshalJSON() ([]byte, error) {
10852	type NoMethod UpdateEmbeddedObjectBorderRequest
10853	raw := NoMethod(*s)
10854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10855}
10856
10857// UpdateEmbeddedObjectPositionRequest: Update an embedded object's
10858// position (such as a moving or resizing a chart or image).
10859type UpdateEmbeddedObjectPositionRequest struct {
10860	// Fields: The fields of OverlayPosition that should be updated when
10861	// setting a new position. Used only if newPosition.overlayPosition is
10862	// set, in which case at least one field must be specified. The root
10863	// `newPosition.overlayPosition` is implied and should not be specified.
10864	// A single "*" can be used as short-hand for listing every field.
10865	Fields string `json:"fields,omitempty"`
10866
10867	// NewPosition: An explicit position to move the embedded object to. If
10868	// newPosition.sheetId is set, a new sheet with that ID will be created.
10869	// If newPosition.newSheet is set to true, a new sheet will be created
10870	// with an ID that will be chosen for you.
10871	NewPosition *EmbeddedObjectPosition `json:"newPosition,omitempty"`
10872
10873	// ObjectId: The ID of the object to moved.
10874	ObjectId int64 `json:"objectId,omitempty"`
10875
10876	// ForceSendFields is a list of field names (e.g. "Fields") to
10877	// unconditionally include in API requests. By default, fields with
10878	// empty values are omitted from API requests. However, any non-pointer,
10879	// non-interface field appearing in ForceSendFields will be sent to the
10880	// server regardless of whether the field is empty or not. This may be
10881	// used to include empty fields in Patch requests.
10882	ForceSendFields []string `json:"-"`
10883
10884	// NullFields is a list of field names (e.g. "Fields") to include in API
10885	// requests with the JSON null value. By default, fields with empty
10886	// values are omitted from API requests. However, any field with an
10887	// empty value appearing in NullFields will be sent to the server as
10888	// null. It is an error if a field in this list has a non-empty value.
10889	// This may be used to include null fields in Patch requests.
10890	NullFields []string `json:"-"`
10891}
10892
10893func (s *UpdateEmbeddedObjectPositionRequest) MarshalJSON() ([]byte, error) {
10894	type NoMethod UpdateEmbeddedObjectPositionRequest
10895	raw := NoMethod(*s)
10896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10897}
10898
10899// UpdateEmbeddedObjectPositionResponse: The result of updating an
10900// embedded object's position.
10901type UpdateEmbeddedObjectPositionResponse struct {
10902	// Position: The new position of the embedded object.
10903	Position *EmbeddedObjectPosition `json:"position,omitempty"`
10904
10905	// ForceSendFields is a list of field names (e.g. "Position") to
10906	// unconditionally include in API requests. By default, fields with
10907	// empty values are omitted from API requests. However, any non-pointer,
10908	// non-interface field appearing in ForceSendFields will be sent to the
10909	// server regardless of whether the field is empty or not. This may be
10910	// used to include empty fields in Patch requests.
10911	ForceSendFields []string `json:"-"`
10912
10913	// NullFields is a list of field names (e.g. "Position") to include in
10914	// API requests with the JSON null value. By default, fields with empty
10915	// values are omitted from API requests. However, any field with an
10916	// empty value appearing in NullFields will be sent to the server as
10917	// null. It is an error if a field in this list has a non-empty value.
10918	// This may be used to include null fields in Patch requests.
10919	NullFields []string `json:"-"`
10920}
10921
10922func (s *UpdateEmbeddedObjectPositionResponse) MarshalJSON() ([]byte, error) {
10923	type NoMethod UpdateEmbeddedObjectPositionResponse
10924	raw := NoMethod(*s)
10925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10926}
10927
10928// UpdateFilterViewRequest: Updates properties of the filter view.
10929type UpdateFilterViewRequest struct {
10930	// Fields: The fields that should be updated. At least one field must be
10931	// specified. The root `filter` is implied and should not be specified.
10932	// A single "*" can be used as short-hand for listing every field.
10933	Fields string `json:"fields,omitempty"`
10934
10935	// Filter: The new properties of the filter view.
10936	Filter *FilterView `json:"filter,omitempty"`
10937
10938	// ForceSendFields is a list of field names (e.g. "Fields") to
10939	// unconditionally include in API requests. By default, fields with
10940	// empty values are omitted from API requests. However, any non-pointer,
10941	// non-interface field appearing in ForceSendFields will be sent to the
10942	// server regardless of whether the field is empty or not. This may be
10943	// used to include empty fields in Patch requests.
10944	ForceSendFields []string `json:"-"`
10945
10946	// NullFields is a list of field names (e.g. "Fields") to include in API
10947	// requests with the JSON null value. By default, fields with empty
10948	// values are omitted from API requests. However, any field with an
10949	// empty value appearing in NullFields will be sent to the server as
10950	// null. It is an error if a field in this list has a non-empty value.
10951	// This may be used to include null fields in Patch requests.
10952	NullFields []string `json:"-"`
10953}
10954
10955func (s *UpdateFilterViewRequest) MarshalJSON() ([]byte, error) {
10956	type NoMethod UpdateFilterViewRequest
10957	raw := NoMethod(*s)
10958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10959}
10960
10961// UpdateNamedRangeRequest: Updates properties of the named range with
10962// the specified namedRangeId.
10963type UpdateNamedRangeRequest struct {
10964	// Fields: The fields that should be updated. At least one field must be
10965	// specified. The root `namedRange` is implied and should not be
10966	// specified. A single "*" can be used as short-hand for listing every
10967	// field.
10968	Fields string `json:"fields,omitempty"`
10969
10970	// NamedRange: The named range to update with the new properties.
10971	NamedRange *NamedRange `json:"namedRange,omitempty"`
10972
10973	// ForceSendFields is a list of field names (e.g. "Fields") to
10974	// unconditionally include in API requests. By default, fields with
10975	// empty values are omitted from API requests. However, any non-pointer,
10976	// non-interface field appearing in ForceSendFields will be sent to the
10977	// server regardless of whether the field is empty or not. This may be
10978	// used to include empty fields in Patch requests.
10979	ForceSendFields []string `json:"-"`
10980
10981	// NullFields is a list of field names (e.g. "Fields") to include in API
10982	// requests with the JSON null value. By default, fields with empty
10983	// values are omitted from API requests. However, any field with an
10984	// empty value appearing in NullFields will be sent to the server as
10985	// null. It is an error if a field in this list has a non-empty value.
10986	// This may be used to include null fields in Patch requests.
10987	NullFields []string `json:"-"`
10988}
10989
10990func (s *UpdateNamedRangeRequest) MarshalJSON() ([]byte, error) {
10991	type NoMethod UpdateNamedRangeRequest
10992	raw := NoMethod(*s)
10993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10994}
10995
10996// UpdateProtectedRangeRequest: Updates an existing protected range with
10997// the specified protectedRangeId.
10998type UpdateProtectedRangeRequest struct {
10999	// Fields: The fields that should be updated. At least one field must be
11000	// specified. The root `protectedRange` is implied and should not be
11001	// specified. A single "*" can be used as short-hand for listing every
11002	// field.
11003	Fields string `json:"fields,omitempty"`
11004
11005	// ProtectedRange: The protected range to update with the new
11006	// properties.
11007	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
11008
11009	// ForceSendFields is a list of field names (e.g. "Fields") to
11010	// unconditionally include in API requests. By default, fields with
11011	// empty values are omitted from API requests. However, any non-pointer,
11012	// non-interface field appearing in ForceSendFields will be sent to the
11013	// server regardless of whether the field is empty or not. This may be
11014	// used to include empty fields in Patch requests.
11015	ForceSendFields []string `json:"-"`
11016
11017	// NullFields is a list of field names (e.g. "Fields") to include in API
11018	// requests with the JSON null value. By default, fields with empty
11019	// values are omitted from API requests. However, any field with an
11020	// empty value appearing in NullFields will be sent to the server as
11021	// null. It is an error if a field in this list has a non-empty value.
11022	// This may be used to include null fields in Patch requests.
11023	NullFields []string `json:"-"`
11024}
11025
11026func (s *UpdateProtectedRangeRequest) MarshalJSON() ([]byte, error) {
11027	type NoMethod UpdateProtectedRangeRequest
11028	raw := NoMethod(*s)
11029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11030}
11031
11032// UpdateSheetPropertiesRequest: Updates properties of the sheet with
11033// the specified sheetId.
11034type UpdateSheetPropertiesRequest struct {
11035	// Fields: The fields that should be updated. At least one field must be
11036	// specified. The root `properties` is implied and should not be
11037	// specified. A single "*" can be used as short-hand for listing every
11038	// field.
11039	Fields string `json:"fields,omitempty"`
11040
11041	// Properties: The properties to update.
11042	Properties *SheetProperties `json:"properties,omitempty"`
11043
11044	// ForceSendFields is a list of field names (e.g. "Fields") to
11045	// unconditionally include in API requests. By default, fields with
11046	// empty values are omitted from API requests. However, any non-pointer,
11047	// non-interface field appearing in ForceSendFields will be sent to the
11048	// server regardless of whether the field is empty or not. This may be
11049	// used to include empty fields in Patch requests.
11050	ForceSendFields []string `json:"-"`
11051
11052	// NullFields is a list of field names (e.g. "Fields") to include in API
11053	// requests with the JSON null value. By default, fields with empty
11054	// values are omitted from API requests. However, any field with an
11055	// empty value appearing in NullFields will be sent to the server as
11056	// null. It is an error if a field in this list has a non-empty value.
11057	// This may be used to include null fields in Patch requests.
11058	NullFields []string `json:"-"`
11059}
11060
11061func (s *UpdateSheetPropertiesRequest) MarshalJSON() ([]byte, error) {
11062	type NoMethod UpdateSheetPropertiesRequest
11063	raw := NoMethod(*s)
11064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11065}
11066
11067// UpdateSlicerSpecRequest: Updates a slicer's specifications. (This
11068// does not move or resize a slicer. To move or resize a slicer use
11069// UpdateEmbeddedObjectPositionRequest.
11070type UpdateSlicerSpecRequest struct {
11071	// Fields: The fields that should be updated. At least one field must be
11072	// specified. The root `SlicerSpec` is implied and should not be
11073	// specified. A single "*" can be used as short-hand for listing every
11074	// field.
11075	Fields string `json:"fields,omitempty"`
11076
11077	// SlicerId: The id of the slicer to update.
11078	SlicerId int64 `json:"slicerId,omitempty"`
11079
11080	// Spec: The specification to apply to the slicer.
11081	Spec *SlicerSpec `json:"spec,omitempty"`
11082
11083	// ForceSendFields is a list of field names (e.g. "Fields") to
11084	// unconditionally include in API requests. By default, fields with
11085	// empty values are omitted from API requests. However, any non-pointer,
11086	// non-interface field appearing in ForceSendFields will be sent to the
11087	// server regardless of whether the field is empty or not. This may be
11088	// used to include empty fields in Patch requests.
11089	ForceSendFields []string `json:"-"`
11090
11091	// NullFields is a list of field names (e.g. "Fields") to include in API
11092	// requests with the JSON null value. By default, fields with empty
11093	// values are omitted from API requests. However, any field with an
11094	// empty value appearing in NullFields will be sent to the server as
11095	// null. It is an error if a field in this list has a non-empty value.
11096	// This may be used to include null fields in Patch requests.
11097	NullFields []string `json:"-"`
11098}
11099
11100func (s *UpdateSlicerSpecRequest) MarshalJSON() ([]byte, error) {
11101	type NoMethod UpdateSlicerSpecRequest
11102	raw := NoMethod(*s)
11103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11104}
11105
11106// UpdateSpreadsheetPropertiesRequest: Updates properties of a
11107// spreadsheet.
11108type UpdateSpreadsheetPropertiesRequest struct {
11109	// Fields: The fields that should be updated. At least one field must be
11110	// specified. The root 'properties' is implied and should not be
11111	// specified. A single "*" can be used as short-hand for listing every
11112	// field.
11113	Fields string `json:"fields,omitempty"`
11114
11115	// Properties: The properties to update.
11116	Properties *SpreadsheetProperties `json:"properties,omitempty"`
11117
11118	// ForceSendFields is a list of field names (e.g. "Fields") to
11119	// unconditionally include in API requests. By default, fields with
11120	// empty values are omitted from API requests. However, any non-pointer,
11121	// non-interface field appearing in ForceSendFields will be sent to the
11122	// server regardless of whether the field is empty or not. This may be
11123	// used to include empty fields in Patch requests.
11124	ForceSendFields []string `json:"-"`
11125
11126	// NullFields is a list of field names (e.g. "Fields") to include in API
11127	// requests with the JSON null value. By default, fields with empty
11128	// values are omitted from API requests. However, any field with an
11129	// empty value appearing in NullFields will be sent to the server as
11130	// null. It is an error if a field in this list has a non-empty value.
11131	// This may be used to include null fields in Patch requests.
11132	NullFields []string `json:"-"`
11133}
11134
11135func (s *UpdateSpreadsheetPropertiesRequest) MarshalJSON() ([]byte, error) {
11136	type NoMethod UpdateSpreadsheetPropertiesRequest
11137	raw := NoMethod(*s)
11138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11139}
11140
11141// UpdateValuesByDataFilterResponse: The response when updating a range
11142// of values by a data filter in a spreadsheet.
11143type UpdateValuesByDataFilterResponse struct {
11144	// DataFilter: The data filter that selected the range that was updated.
11145	DataFilter *DataFilter `json:"dataFilter,omitempty"`
11146
11147	// UpdatedCells: The number of cells updated.
11148	UpdatedCells int64 `json:"updatedCells,omitempty"`
11149
11150	// UpdatedColumns: The number of columns where at least one cell in the
11151	// column was updated.
11152	UpdatedColumns int64 `json:"updatedColumns,omitempty"`
11153
11154	// UpdatedData: The values of the cells in the range matched by the
11155	// dataFilter after all updates were applied. This is only included if
11156	// the request's `includeValuesInResponse` field was `true`.
11157	UpdatedData *ValueRange `json:"updatedData,omitempty"`
11158
11159	// UpdatedRange: The range (in A1 notation) that updates were applied
11160	// to.
11161	UpdatedRange string `json:"updatedRange,omitempty"`
11162
11163	// UpdatedRows: The number of rows where at least one cell in the row
11164	// was updated.
11165	UpdatedRows int64 `json:"updatedRows,omitempty"`
11166
11167	// ForceSendFields is a list of field names (e.g. "DataFilter") to
11168	// unconditionally include in API requests. By default, fields with
11169	// empty values are omitted from API requests. However, any non-pointer,
11170	// non-interface field appearing in ForceSendFields will be sent to the
11171	// server regardless of whether the field is empty or not. This may be
11172	// used to include empty fields in Patch requests.
11173	ForceSendFields []string `json:"-"`
11174
11175	// NullFields is a list of field names (e.g. "DataFilter") to include in
11176	// API requests with the JSON null value. By default, fields with empty
11177	// values are omitted from API requests. However, any field with an
11178	// empty value appearing in NullFields will be sent to the server as
11179	// null. It is an error if a field in this list has a non-empty value.
11180	// This may be used to include null fields in Patch requests.
11181	NullFields []string `json:"-"`
11182}
11183
11184func (s *UpdateValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
11185	type NoMethod UpdateValuesByDataFilterResponse
11186	raw := NoMethod(*s)
11187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11188}
11189
11190// UpdateValuesResponse: The response when updating a range of values in
11191// a spreadsheet.
11192type UpdateValuesResponse struct {
11193	// SpreadsheetId: The spreadsheet the updates were applied to.
11194	SpreadsheetId string `json:"spreadsheetId,omitempty"`
11195
11196	// UpdatedCells: The number of cells updated.
11197	UpdatedCells int64 `json:"updatedCells,omitempty"`
11198
11199	// UpdatedColumns: The number of columns where at least one cell in the
11200	// column was updated.
11201	UpdatedColumns int64 `json:"updatedColumns,omitempty"`
11202
11203	// UpdatedData: The values of the cells after updates were applied. This
11204	// is only included if the request's `includeValuesInResponse` field was
11205	// `true`.
11206	UpdatedData *ValueRange `json:"updatedData,omitempty"`
11207
11208	// UpdatedRange: The range (in A1 notation) that updates were applied
11209	// to.
11210	UpdatedRange string `json:"updatedRange,omitempty"`
11211
11212	// UpdatedRows: The number of rows where at least one cell in the row
11213	// was updated.
11214	UpdatedRows int64 `json:"updatedRows,omitempty"`
11215
11216	// ServerResponse contains the HTTP response code and headers from the
11217	// server.
11218	googleapi.ServerResponse `json:"-"`
11219
11220	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
11221	// unconditionally include in API requests. By default, fields with
11222	// empty values are omitted from API requests. However, any non-pointer,
11223	// non-interface field appearing in ForceSendFields will be sent to the
11224	// server regardless of whether the field is empty or not. This may be
11225	// used to include empty fields in Patch requests.
11226	ForceSendFields []string `json:"-"`
11227
11228	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
11229	// in API requests with the JSON null value. By default, fields with
11230	// empty values are omitted from API requests. However, any field with
11231	// an empty value appearing in NullFields will be sent to the server as
11232	// null. It is an error if a field in this list has a non-empty value.
11233	// This may be used to include null fields in Patch requests.
11234	NullFields []string `json:"-"`
11235}
11236
11237func (s *UpdateValuesResponse) MarshalJSON() ([]byte, error) {
11238	type NoMethod UpdateValuesResponse
11239	raw := NoMethod(*s)
11240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11241}
11242
11243// ValueRange: Data within a range of the spreadsheet.
11244type ValueRange struct {
11245	// MajorDimension: The major dimension of the values. For output, if the
11246	// spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting
11247	// `range=A1:B2,majorDimension=ROWS` will return `[[1,2],[3,4]]`,
11248	// whereas requesting `range=A1:B2,majorDimension=COLUMNS` will return
11249	// `[[1,3],[2,4]]`. For input, with `range=A1:B2,majorDimension=ROWS`
11250	// then `[[1,2],[3,4]]` will set `A1=1,B1=2,A2=3,B2=4`. With
11251	// `range=A1:B2,majorDimension=COLUMNS` then `[[1,2],[3,4]]` will set
11252	// `A1=1,B1=3,A2=2,B2=4`. When writing, if this field is not set, it
11253	// defaults to ROWS.
11254	//
11255	// Possible values:
11256	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
11257	//   "ROWS" - Operates on the rows of a sheet.
11258	//   "COLUMNS" - Operates on the columns of a sheet.
11259	MajorDimension string `json:"majorDimension,omitempty"`
11260
11261	// Range: The range the values cover, in A1 notation. For output, this
11262	// range indicates the entire requested range, even though the values
11263	// will exclude trailing rows and columns. When appending values, this
11264	// field represents the range to search for a table, after which values
11265	// will be appended.
11266	Range string `json:"range,omitempty"`
11267
11268	// Values: The data that was read or to be written. This is an array of
11269	// arrays, the outer array representing all the data and each inner
11270	// array representing a major dimension. Each item in the inner array
11271	// corresponds with one cell. For output, empty trailing rows and
11272	// columns will not be included. For input, supported value types are:
11273	// bool, string, and double. Null values will be skipped. To set a cell
11274	// to an empty value, set the string value to an empty string.
11275	Values [][]interface{} `json:"values,omitempty"`
11276
11277	// ServerResponse contains the HTTP response code and headers from the
11278	// server.
11279	googleapi.ServerResponse `json:"-"`
11280
11281	// ForceSendFields is a list of field names (e.g. "MajorDimension") to
11282	// unconditionally include in API requests. By default, fields with
11283	// empty values are omitted from API requests. However, any non-pointer,
11284	// non-interface field appearing in ForceSendFields will be sent to the
11285	// server regardless of whether the field is empty or not. This may be
11286	// used to include empty fields in Patch requests.
11287	ForceSendFields []string `json:"-"`
11288
11289	// NullFields is a list of field names (e.g. "MajorDimension") to
11290	// include in API requests with the JSON null value. By default, fields
11291	// with empty values are omitted from API requests. However, any field
11292	// with an empty value appearing in NullFields will be sent to the
11293	// server as null. It is an error if a field in this list has a
11294	// non-empty value. This may be used to include null fields in Patch
11295	// requests.
11296	NullFields []string `json:"-"`
11297}
11298
11299func (s *ValueRange) MarshalJSON() ([]byte, error) {
11300	type NoMethod ValueRange
11301	raw := NoMethod(*s)
11302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11303}
11304
11305// WaterfallChartColumnStyle: Styles for a waterfall chart column.
11306type WaterfallChartColumnStyle struct {
11307	// Color: The color of the column.
11308	Color *Color `json:"color,omitempty"`
11309
11310	// ColorStyle: The color of the column. If color is also set, this field
11311	// takes precedence.
11312	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
11313
11314	// Label: The label of the column's legend.
11315	Label string `json:"label,omitempty"`
11316
11317	// ForceSendFields is a list of field names (e.g. "Color") to
11318	// unconditionally include in API requests. By default, fields with
11319	// empty values are omitted from API requests. However, any non-pointer,
11320	// non-interface field appearing in ForceSendFields will be sent to the
11321	// server regardless of whether the field is empty or not. This may be
11322	// used to include empty fields in Patch requests.
11323	ForceSendFields []string `json:"-"`
11324
11325	// NullFields is a list of field names (e.g. "Color") to include in API
11326	// requests with the JSON null value. By default, fields with empty
11327	// values are omitted from API requests. However, any field with an
11328	// empty value appearing in NullFields will be sent to the server as
11329	// null. It is an error if a field in this list has a non-empty value.
11330	// This may be used to include null fields in Patch requests.
11331	NullFields []string `json:"-"`
11332}
11333
11334func (s *WaterfallChartColumnStyle) MarshalJSON() ([]byte, error) {
11335	type NoMethod WaterfallChartColumnStyle
11336	raw := NoMethod(*s)
11337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11338}
11339
11340// WaterfallChartCustomSubtotal: A custom subtotal column for a
11341// waterfall chart series.
11342type WaterfallChartCustomSubtotal struct {
11343	// DataIsSubtotal: True if the data point at subtotal_index is the
11344	// subtotal. If false, the subtotal will be computed and appear after
11345	// the data point.
11346	DataIsSubtotal bool `json:"dataIsSubtotal,omitempty"`
11347
11348	// Label: A label for the subtotal column.
11349	Label string `json:"label,omitempty"`
11350
11351	// SubtotalIndex: The 0-based index of a data point within the series.
11352	// If data_is_subtotal is true, the data point at this index is the
11353	// subtotal. Otherwise, the subtotal appears after the data point with
11354	// this index. A series can have multiple subtotals at arbitrary
11355	// indices, but subtotals do not affect the indices of the data points.
11356	// For example, if a series has three data points, their indices will
11357	// always be 0, 1, and 2, regardless of how many subtotals exist on the
11358	// series or what data points they are associated with.
11359	SubtotalIndex int64 `json:"subtotalIndex,omitempty"`
11360
11361	// ForceSendFields is a list of field names (e.g. "DataIsSubtotal") to
11362	// unconditionally include in API requests. By default, fields with
11363	// empty values are omitted from API requests. However, any non-pointer,
11364	// non-interface field appearing in ForceSendFields will be sent to the
11365	// server regardless of whether the field is empty or not. This may be
11366	// used to include empty fields in Patch requests.
11367	ForceSendFields []string `json:"-"`
11368
11369	// NullFields is a list of field names (e.g. "DataIsSubtotal") to
11370	// include in API requests with the JSON null value. By default, fields
11371	// with empty values are omitted from API requests. However, any field
11372	// with an empty value appearing in NullFields will be sent to the
11373	// server as null. It is an error if a field in this list has a
11374	// non-empty value. This may be used to include null fields in Patch
11375	// requests.
11376	NullFields []string `json:"-"`
11377}
11378
11379func (s *WaterfallChartCustomSubtotal) MarshalJSON() ([]byte, error) {
11380	type NoMethod WaterfallChartCustomSubtotal
11381	raw := NoMethod(*s)
11382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11383}
11384
11385// WaterfallChartDomain: The domain of a waterfall chart.
11386type WaterfallChartDomain struct {
11387	// Data: The data of the WaterfallChartDomain.
11388	Data *ChartData `json:"data,omitempty"`
11389
11390	// Reversed: True to reverse the order of the domain values (horizontal
11391	// axis).
11392	Reversed bool `json:"reversed,omitempty"`
11393
11394	// ForceSendFields is a list of field names (e.g. "Data") to
11395	// unconditionally include in API requests. By default, fields with
11396	// empty values are omitted from API requests. However, any non-pointer,
11397	// non-interface field appearing in ForceSendFields will be sent to the
11398	// server regardless of whether the field is empty or not. This may be
11399	// used to include empty fields in Patch requests.
11400	ForceSendFields []string `json:"-"`
11401
11402	// NullFields is a list of field names (e.g. "Data") to include in API
11403	// requests with the JSON null value. By default, fields with empty
11404	// values are omitted from API requests. However, any field with an
11405	// empty value appearing in NullFields will be sent to the server as
11406	// null. It is an error if a field in this list has a non-empty value.
11407	// This may be used to include null fields in Patch requests.
11408	NullFields []string `json:"-"`
11409}
11410
11411func (s *WaterfallChartDomain) MarshalJSON() ([]byte, error) {
11412	type NoMethod WaterfallChartDomain
11413	raw := NoMethod(*s)
11414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11415}
11416
11417// WaterfallChartSeries: A single series of data for a waterfall chart.
11418type WaterfallChartSeries struct {
11419	// CustomSubtotals: Custom subtotal columns appearing in this series.
11420	// The order in which subtotals are defined is not significant. Only one
11421	// subtotal may be defined for each data point.
11422	CustomSubtotals []*WaterfallChartCustomSubtotal `json:"customSubtotals,omitempty"`
11423
11424	// Data: The data being visualized in this series.
11425	Data *ChartData `json:"data,omitempty"`
11426
11427	// DataLabel: Information about the data labels for this series.
11428	DataLabel *DataLabel `json:"dataLabel,omitempty"`
11429
11430	// HideTrailingSubtotal: True to hide the subtotal column from the end
11431	// of the series. By default, a subtotal column will appear at the end
11432	// of each series. Setting this field to true will hide that subtotal
11433	// column for this series.
11434	HideTrailingSubtotal bool `json:"hideTrailingSubtotal,omitempty"`
11435
11436	// NegativeColumnsStyle: Styles for all columns in this series with
11437	// negative values.
11438	NegativeColumnsStyle *WaterfallChartColumnStyle `json:"negativeColumnsStyle,omitempty"`
11439
11440	// PositiveColumnsStyle: Styles for all columns in this series with
11441	// positive values.
11442	PositiveColumnsStyle *WaterfallChartColumnStyle `json:"positiveColumnsStyle,omitempty"`
11443
11444	// SubtotalColumnsStyle: Styles for all subtotal columns in this series.
11445	SubtotalColumnsStyle *WaterfallChartColumnStyle `json:"subtotalColumnsStyle,omitempty"`
11446
11447	// ForceSendFields is a list of field names (e.g. "CustomSubtotals") to
11448	// unconditionally include in API requests. By default, fields with
11449	// empty values are omitted from API requests. However, any non-pointer,
11450	// non-interface field appearing in ForceSendFields will be sent to the
11451	// server regardless of whether the field is empty or not. This may be
11452	// used to include empty fields in Patch requests.
11453	ForceSendFields []string `json:"-"`
11454
11455	// NullFields is a list of field names (e.g. "CustomSubtotals") to
11456	// include in API requests with the JSON null value. By default, fields
11457	// with empty values are omitted from API requests. However, any field
11458	// with an empty value appearing in NullFields will be sent to the
11459	// server as null. It is an error if a field in this list has a
11460	// non-empty value. This may be used to include null fields in Patch
11461	// requests.
11462	NullFields []string `json:"-"`
11463}
11464
11465func (s *WaterfallChartSeries) MarshalJSON() ([]byte, error) {
11466	type NoMethod WaterfallChartSeries
11467	raw := NoMethod(*s)
11468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11469}
11470
11471// WaterfallChartSpec: A waterfall chart.
11472type WaterfallChartSpec struct {
11473	// ConnectorLineStyle: The line style for the connector lines.
11474	ConnectorLineStyle *LineStyle `json:"connectorLineStyle,omitempty"`
11475
11476	// Domain: The domain data (horizontal axis) for the waterfall chart.
11477	Domain *WaterfallChartDomain `json:"domain,omitempty"`
11478
11479	// FirstValueIsTotal: True to interpret the first value as a total.
11480	FirstValueIsTotal bool `json:"firstValueIsTotal,omitempty"`
11481
11482	// HideConnectorLines: True to hide connector lines between columns.
11483	HideConnectorLines bool `json:"hideConnectorLines,omitempty"`
11484
11485	// Series: The data this waterfall chart is visualizing.
11486	Series []*WaterfallChartSeries `json:"series,omitempty"`
11487
11488	// StackedType: The stacked type.
11489	//
11490	// Possible values:
11491	//   "WATERFALL_STACKED_TYPE_UNSPECIFIED" - Default value, do not use.
11492	//   "STACKED" - Values corresponding to the same domain (horizontal
11493	// axis) value will be stacked vertically.
11494	//   "SEQUENTIAL" - Series will spread out along the horizontal axis.
11495	StackedType string `json:"stackedType,omitempty"`
11496
11497	// TotalDataLabel: Controls whether to display additional data labels on
11498	// stacked charts which sum the total value of all stacked values at
11499	// each value along the domain axis. stacked_type must be STACKED and
11500	// neither CUSTOM nor placement can be set on the total_data_label.
11501	TotalDataLabel *DataLabel `json:"totalDataLabel,omitempty"`
11502
11503	// ForceSendFields is a list of field names (e.g. "ConnectorLineStyle")
11504	// to unconditionally include in API requests. By default, fields with
11505	// empty values are omitted from API requests. However, any non-pointer,
11506	// non-interface field appearing in ForceSendFields will be sent to the
11507	// server regardless of whether the field is empty or not. This may be
11508	// used to include empty fields in Patch requests.
11509	ForceSendFields []string `json:"-"`
11510
11511	// NullFields is a list of field names (e.g. "ConnectorLineStyle") to
11512	// include in API requests with the JSON null value. By default, fields
11513	// with empty values are omitted from API requests. However, any field
11514	// with an empty value appearing in NullFields will be sent to the
11515	// server as null. It is an error if a field in this list has a
11516	// non-empty value. This may be used to include null fields in Patch
11517	// requests.
11518	NullFields []string `json:"-"`
11519}
11520
11521func (s *WaterfallChartSpec) MarshalJSON() ([]byte, error) {
11522	type NoMethod WaterfallChartSpec
11523	raw := NoMethod(*s)
11524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11525}
11526
11527// method id "sheets.spreadsheets.batchUpdate":
11528
11529type SpreadsheetsBatchUpdateCall struct {
11530	s                             *Service
11531	spreadsheetId                 string
11532	batchupdatespreadsheetrequest *BatchUpdateSpreadsheetRequest
11533	urlParams_                    gensupport.URLParams
11534	ctx_                          context.Context
11535	header_                       http.Header
11536}
11537
11538// BatchUpdate: Applies one or more updates to the spreadsheet. Each
11539// request is validated before being applied. If any request is not
11540// valid then the entire request will fail and nothing will be applied.
11541// Some requests have replies to give you some information about how
11542// they are applied. The replies will mirror the requests. For example,
11543// if you applied 4 updates and the 3rd one had a reply, then the
11544// response will have 2 empty replies, the actual reply, and another
11545// empty reply, in that order. Due to the collaborative nature of
11546// spreadsheets, it is not guaranteed that the spreadsheet will reflect
11547// exactly your changes after this completes, however it is guaranteed
11548// that the updates in the request will be applied together atomically.
11549// Your changes may be altered with respect to collaborator changes. If
11550// there are no collaborators, the spreadsheet should reflect your
11551// changes.
11552func (r *SpreadsheetsService) BatchUpdate(spreadsheetId string, batchupdatespreadsheetrequest *BatchUpdateSpreadsheetRequest) *SpreadsheetsBatchUpdateCall {
11553	c := &SpreadsheetsBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11554	c.spreadsheetId = spreadsheetId
11555	c.batchupdatespreadsheetrequest = batchupdatespreadsheetrequest
11556	return c
11557}
11558
11559// Fields allows partial responses to be retrieved. See
11560// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11561// for more information.
11562func (c *SpreadsheetsBatchUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsBatchUpdateCall {
11563	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11564	return c
11565}
11566
11567// Context sets the context to be used in this call's Do method. Any
11568// pending HTTP request will be aborted if the provided context is
11569// canceled.
11570func (c *SpreadsheetsBatchUpdateCall) Context(ctx context.Context) *SpreadsheetsBatchUpdateCall {
11571	c.ctx_ = ctx
11572	return c
11573}
11574
11575// Header returns an http.Header that can be modified by the caller to
11576// add HTTP headers to the request.
11577func (c *SpreadsheetsBatchUpdateCall) Header() http.Header {
11578	if c.header_ == nil {
11579		c.header_ = make(http.Header)
11580	}
11581	return c.header_
11582}
11583
11584func (c *SpreadsheetsBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
11585	reqHeaders := make(http.Header)
11586	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
11587	for k, v := range c.header_ {
11588		reqHeaders[k] = v
11589	}
11590	reqHeaders.Set("User-Agent", c.s.userAgent())
11591	var body io.Reader = nil
11592	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatespreadsheetrequest)
11593	if err != nil {
11594		return nil, err
11595	}
11596	reqHeaders.Set("Content-Type", "application/json")
11597	c.urlParams_.Set("alt", alt)
11598	c.urlParams_.Set("prettyPrint", "false")
11599	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}:batchUpdate")
11600	urls += "?" + c.urlParams_.Encode()
11601	req, err := http.NewRequest("POST", urls, body)
11602	if err != nil {
11603		return nil, err
11604	}
11605	req.Header = reqHeaders
11606	googleapi.Expand(req.URL, map[string]string{
11607		"spreadsheetId": c.spreadsheetId,
11608	})
11609	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11610}
11611
11612// Do executes the "sheets.spreadsheets.batchUpdate" call.
11613// Exactly one of *BatchUpdateSpreadsheetResponse or error will be
11614// non-nil. Any non-2xx status code is an error. Response headers are in
11615// either *BatchUpdateSpreadsheetResponse.ServerResponse.Header or (if a
11616// response was returned at all) in error.(*googleapi.Error).Header. Use
11617// googleapi.IsNotModified to check whether the returned error was
11618// because http.StatusNotModified was returned.
11619func (c *SpreadsheetsBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdateSpreadsheetResponse, error) {
11620	gensupport.SetOptions(c.urlParams_, opts...)
11621	res, err := c.doRequest("json")
11622	if res != nil && res.StatusCode == http.StatusNotModified {
11623		if res.Body != nil {
11624			res.Body.Close()
11625		}
11626		return nil, &googleapi.Error{
11627			Code:   res.StatusCode,
11628			Header: res.Header,
11629		}
11630	}
11631	if err != nil {
11632		return nil, err
11633	}
11634	defer googleapi.CloseBody(res)
11635	if err := googleapi.CheckResponse(res); err != nil {
11636		return nil, err
11637	}
11638	ret := &BatchUpdateSpreadsheetResponse{
11639		ServerResponse: googleapi.ServerResponse{
11640			Header:         res.Header,
11641			HTTPStatusCode: res.StatusCode,
11642		},
11643	}
11644	target := &ret
11645	if err := gensupport.DecodeResponse(target, res); err != nil {
11646		return nil, err
11647	}
11648	return ret, nil
11649	// {
11650	//   "description": "Applies one or more updates to the spreadsheet. Each request is validated before being applied. If any request is not valid then the entire request will fail and nothing will be applied. Some requests have replies to give you some information about how they are applied. The replies will mirror the requests. For example, if you applied 4 updates and the 3rd one had a reply, then the response will have 2 empty replies, the actual reply, and another empty reply, in that order. Due to the collaborative nature of spreadsheets, it is not guaranteed that the spreadsheet will reflect exactly your changes after this completes, however it is guaranteed that the updates in the request will be applied together atomically. Your changes may be altered with respect to collaborator changes. If there are no collaborators, the spreadsheet should reflect your changes.",
11651	//   "flatPath": "v4/spreadsheets/{spreadsheetId}:batchUpdate",
11652	//   "httpMethod": "POST",
11653	//   "id": "sheets.spreadsheets.batchUpdate",
11654	//   "parameterOrder": [
11655	//     "spreadsheetId"
11656	//   ],
11657	//   "parameters": {
11658	//     "spreadsheetId": {
11659	//       "description": "The spreadsheet to apply the updates to.",
11660	//       "location": "path",
11661	//       "required": true,
11662	//       "type": "string"
11663	//     }
11664	//   },
11665	//   "path": "v4/spreadsheets/{spreadsheetId}:batchUpdate",
11666	//   "request": {
11667	//     "$ref": "BatchUpdateSpreadsheetRequest"
11668	//   },
11669	//   "response": {
11670	//     "$ref": "BatchUpdateSpreadsheetResponse"
11671	//   },
11672	//   "scopes": [
11673	//     "https://www.googleapis.com/auth/drive",
11674	//     "https://www.googleapis.com/auth/drive.file",
11675	//     "https://www.googleapis.com/auth/spreadsheets"
11676	//   ]
11677	// }
11678
11679}
11680
11681// method id "sheets.spreadsheets.create":
11682
11683type SpreadsheetsCreateCall struct {
11684	s           *Service
11685	spreadsheet *Spreadsheet
11686	urlParams_  gensupport.URLParams
11687	ctx_        context.Context
11688	header_     http.Header
11689}
11690
11691// Create: Creates a spreadsheet, returning the newly created
11692// spreadsheet.
11693func (r *SpreadsheetsService) Create(spreadsheet *Spreadsheet) *SpreadsheetsCreateCall {
11694	c := &SpreadsheetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11695	c.spreadsheet = spreadsheet
11696	return c
11697}
11698
11699// Fields allows partial responses to be retrieved. See
11700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11701// for more information.
11702func (c *SpreadsheetsCreateCall) Fields(s ...googleapi.Field) *SpreadsheetsCreateCall {
11703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11704	return c
11705}
11706
11707// Context sets the context to be used in this call's Do method. Any
11708// pending HTTP request will be aborted if the provided context is
11709// canceled.
11710func (c *SpreadsheetsCreateCall) Context(ctx context.Context) *SpreadsheetsCreateCall {
11711	c.ctx_ = ctx
11712	return c
11713}
11714
11715// Header returns an http.Header that can be modified by the caller to
11716// add HTTP headers to the request.
11717func (c *SpreadsheetsCreateCall) Header() http.Header {
11718	if c.header_ == nil {
11719		c.header_ = make(http.Header)
11720	}
11721	return c.header_
11722}
11723
11724func (c *SpreadsheetsCreateCall) doRequest(alt string) (*http.Response, error) {
11725	reqHeaders := make(http.Header)
11726	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
11727	for k, v := range c.header_ {
11728		reqHeaders[k] = v
11729	}
11730	reqHeaders.Set("User-Agent", c.s.userAgent())
11731	var body io.Reader = nil
11732	body, err := googleapi.WithoutDataWrapper.JSONReader(c.spreadsheet)
11733	if err != nil {
11734		return nil, err
11735	}
11736	reqHeaders.Set("Content-Type", "application/json")
11737	c.urlParams_.Set("alt", alt)
11738	c.urlParams_.Set("prettyPrint", "false")
11739	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets")
11740	urls += "?" + c.urlParams_.Encode()
11741	req, err := http.NewRequest("POST", urls, body)
11742	if err != nil {
11743		return nil, err
11744	}
11745	req.Header = reqHeaders
11746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11747}
11748
11749// Do executes the "sheets.spreadsheets.create" call.
11750// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
11751// status code is an error. Response headers are in either
11752// *Spreadsheet.ServerResponse.Header or (if a response was returned at
11753// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11754// to check whether the returned error was because
11755// http.StatusNotModified was returned.
11756func (c *SpreadsheetsCreateCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
11757	gensupport.SetOptions(c.urlParams_, opts...)
11758	res, err := c.doRequest("json")
11759	if res != nil && res.StatusCode == http.StatusNotModified {
11760		if res.Body != nil {
11761			res.Body.Close()
11762		}
11763		return nil, &googleapi.Error{
11764			Code:   res.StatusCode,
11765			Header: res.Header,
11766		}
11767	}
11768	if err != nil {
11769		return nil, err
11770	}
11771	defer googleapi.CloseBody(res)
11772	if err := googleapi.CheckResponse(res); err != nil {
11773		return nil, err
11774	}
11775	ret := &Spreadsheet{
11776		ServerResponse: googleapi.ServerResponse{
11777			Header:         res.Header,
11778			HTTPStatusCode: res.StatusCode,
11779		},
11780	}
11781	target := &ret
11782	if err := gensupport.DecodeResponse(target, res); err != nil {
11783		return nil, err
11784	}
11785	return ret, nil
11786	// {
11787	//   "description": "Creates a spreadsheet, returning the newly created spreadsheet.",
11788	//   "flatPath": "v4/spreadsheets",
11789	//   "httpMethod": "POST",
11790	//   "id": "sheets.spreadsheets.create",
11791	//   "parameterOrder": [],
11792	//   "parameters": {},
11793	//   "path": "v4/spreadsheets",
11794	//   "request": {
11795	//     "$ref": "Spreadsheet"
11796	//   },
11797	//   "response": {
11798	//     "$ref": "Spreadsheet"
11799	//   },
11800	//   "scopes": [
11801	//     "https://www.googleapis.com/auth/drive",
11802	//     "https://www.googleapis.com/auth/drive.file",
11803	//     "https://www.googleapis.com/auth/spreadsheets"
11804	//   ]
11805	// }
11806
11807}
11808
11809// method id "sheets.spreadsheets.get":
11810
11811type SpreadsheetsGetCall struct {
11812	s             *Service
11813	spreadsheetId string
11814	urlParams_    gensupport.URLParams
11815	ifNoneMatch_  string
11816	ctx_          context.Context
11817	header_       http.Header
11818}
11819
11820// Get: Returns the spreadsheet at the given ID. The caller must specify
11821// the spreadsheet ID. By default, data within grids will not be
11822// returned. You can include grid data one of two ways: * Specify a
11823// field mask listing your desired fields using the `fields` URL
11824// parameter in HTTP * Set the includeGridData URL parameter to true. If
11825// a field mask is set, the `includeGridData` parameter is ignored For
11826// large spreadsheets, it is recommended to retrieve only the specific
11827// fields of the spreadsheet that you want. To retrieve only subsets of
11828// the spreadsheet, use the ranges URL parameter. Multiple ranges can be
11829// specified. Limiting the range will return only the portions of the
11830// spreadsheet that intersect the requested ranges. Ranges are specified
11831// using A1 notation.
11832func (r *SpreadsheetsService) Get(spreadsheetId string) *SpreadsheetsGetCall {
11833	c := &SpreadsheetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11834	c.spreadsheetId = spreadsheetId
11835	return c
11836}
11837
11838// IncludeGridData sets the optional parameter "includeGridData": True
11839// if grid data should be returned. This parameter is ignored if a field
11840// mask was set in the request.
11841func (c *SpreadsheetsGetCall) IncludeGridData(includeGridData bool) *SpreadsheetsGetCall {
11842	c.urlParams_.Set("includeGridData", fmt.Sprint(includeGridData))
11843	return c
11844}
11845
11846// Ranges sets the optional parameter "ranges": The ranges to retrieve
11847// from the spreadsheet.
11848func (c *SpreadsheetsGetCall) Ranges(ranges ...string) *SpreadsheetsGetCall {
11849	c.urlParams_.SetMulti("ranges", append([]string{}, ranges...))
11850	return c
11851}
11852
11853// Fields allows partial responses to be retrieved. See
11854// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11855// for more information.
11856func (c *SpreadsheetsGetCall) Fields(s ...googleapi.Field) *SpreadsheetsGetCall {
11857	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11858	return c
11859}
11860
11861// IfNoneMatch sets the optional parameter which makes the operation
11862// fail if the object's ETag matches the given value. This is useful for
11863// getting updates only after the object has changed since the last
11864// request. Use googleapi.IsNotModified to check whether the response
11865// error from Do is the result of In-None-Match.
11866func (c *SpreadsheetsGetCall) IfNoneMatch(entityTag string) *SpreadsheetsGetCall {
11867	c.ifNoneMatch_ = entityTag
11868	return c
11869}
11870
11871// Context sets the context to be used in this call's Do method. Any
11872// pending HTTP request will be aborted if the provided context is
11873// canceled.
11874func (c *SpreadsheetsGetCall) Context(ctx context.Context) *SpreadsheetsGetCall {
11875	c.ctx_ = ctx
11876	return c
11877}
11878
11879// Header returns an http.Header that can be modified by the caller to
11880// add HTTP headers to the request.
11881func (c *SpreadsheetsGetCall) Header() http.Header {
11882	if c.header_ == nil {
11883		c.header_ = make(http.Header)
11884	}
11885	return c.header_
11886}
11887
11888func (c *SpreadsheetsGetCall) doRequest(alt string) (*http.Response, error) {
11889	reqHeaders := make(http.Header)
11890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
11891	for k, v := range c.header_ {
11892		reqHeaders[k] = v
11893	}
11894	reqHeaders.Set("User-Agent", c.s.userAgent())
11895	if c.ifNoneMatch_ != "" {
11896		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11897	}
11898	var body io.Reader = nil
11899	c.urlParams_.Set("alt", alt)
11900	c.urlParams_.Set("prettyPrint", "false")
11901	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}")
11902	urls += "?" + c.urlParams_.Encode()
11903	req, err := http.NewRequest("GET", urls, body)
11904	if err != nil {
11905		return nil, err
11906	}
11907	req.Header = reqHeaders
11908	googleapi.Expand(req.URL, map[string]string{
11909		"spreadsheetId": c.spreadsheetId,
11910	})
11911	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11912}
11913
11914// Do executes the "sheets.spreadsheets.get" call.
11915// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
11916// status code is an error. Response headers are in either
11917// *Spreadsheet.ServerResponse.Header or (if a response was returned at
11918// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11919// to check whether the returned error was because
11920// http.StatusNotModified was returned.
11921func (c *SpreadsheetsGetCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
11922	gensupport.SetOptions(c.urlParams_, opts...)
11923	res, err := c.doRequest("json")
11924	if res != nil && res.StatusCode == http.StatusNotModified {
11925		if res.Body != nil {
11926			res.Body.Close()
11927		}
11928		return nil, &googleapi.Error{
11929			Code:   res.StatusCode,
11930			Header: res.Header,
11931		}
11932	}
11933	if err != nil {
11934		return nil, err
11935	}
11936	defer googleapi.CloseBody(res)
11937	if err := googleapi.CheckResponse(res); err != nil {
11938		return nil, err
11939	}
11940	ret := &Spreadsheet{
11941		ServerResponse: googleapi.ServerResponse{
11942			Header:         res.Header,
11943			HTTPStatusCode: res.StatusCode,
11944		},
11945	}
11946	target := &ret
11947	if err := gensupport.DecodeResponse(target, res); err != nil {
11948		return nil, err
11949	}
11950	return ret, nil
11951	// {
11952	//   "description": "Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. By default, data within grids will not be returned. You can include grid data one of two ways: * Specify a field mask listing your desired fields using the `fields` URL parameter in HTTP * Set the includeGridData URL parameter to true. If a field mask is set, the `includeGridData` parameter is ignored For large spreadsheets, it is recommended to retrieve only the specific fields of the spreadsheet that you want. To retrieve only subsets of the spreadsheet, use the ranges URL parameter. Multiple ranges can be specified. Limiting the range will return only the portions of the spreadsheet that intersect the requested ranges. Ranges are specified using A1 notation.",
11953	//   "flatPath": "v4/spreadsheets/{spreadsheetId}",
11954	//   "httpMethod": "GET",
11955	//   "id": "sheets.spreadsheets.get",
11956	//   "parameterOrder": [
11957	//     "spreadsheetId"
11958	//   ],
11959	//   "parameters": {
11960	//     "includeGridData": {
11961	//       "description": "True if grid data should be returned. This parameter is ignored if a field mask was set in the request.",
11962	//       "location": "query",
11963	//       "type": "boolean"
11964	//     },
11965	//     "ranges": {
11966	//       "description": "The ranges to retrieve from the spreadsheet.",
11967	//       "location": "query",
11968	//       "repeated": true,
11969	//       "type": "string"
11970	//     },
11971	//     "spreadsheetId": {
11972	//       "description": "The spreadsheet to request.",
11973	//       "location": "path",
11974	//       "required": true,
11975	//       "type": "string"
11976	//     }
11977	//   },
11978	//   "path": "v4/spreadsheets/{spreadsheetId}",
11979	//   "response": {
11980	//     "$ref": "Spreadsheet"
11981	//   },
11982	//   "scopes": [
11983	//     "https://www.googleapis.com/auth/drive",
11984	//     "https://www.googleapis.com/auth/drive.file",
11985	//     "https://www.googleapis.com/auth/drive.readonly",
11986	//     "https://www.googleapis.com/auth/spreadsheets",
11987	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
11988	//   ]
11989	// }
11990
11991}
11992
11993// method id "sheets.spreadsheets.getByDataFilter":
11994
11995type SpreadsheetsGetByDataFilterCall struct {
11996	s                                 *Service
11997	spreadsheetId                     string
11998	getspreadsheetbydatafilterrequest *GetSpreadsheetByDataFilterRequest
11999	urlParams_                        gensupport.URLParams
12000	ctx_                              context.Context
12001	header_                           http.Header
12002}
12003
12004// GetByDataFilter: Returns the spreadsheet at the given ID. The caller
12005// must specify the spreadsheet ID. This method differs from
12006// GetSpreadsheet in that it allows selecting which subsets of
12007// spreadsheet data to return by specifying a dataFilters parameter.
12008// Multiple DataFilters can be specified. Specifying one or more data
12009// filters will return the portions of the spreadsheet that intersect
12010// ranges matched by any of the filters. By default, data within grids
12011// will not be returned. You can include grid data one of two ways: *
12012// Specify a field mask listing your desired fields using the `fields`
12013// URL parameter in HTTP * Set the includeGridData parameter to true. If
12014// a field mask is set, the `includeGridData` parameter is ignored For
12015// large spreadsheets, it is recommended to retrieve only the specific
12016// fields of the spreadsheet that you want.
12017func (r *SpreadsheetsService) GetByDataFilter(spreadsheetId string, getspreadsheetbydatafilterrequest *GetSpreadsheetByDataFilterRequest) *SpreadsheetsGetByDataFilterCall {
12018	c := &SpreadsheetsGetByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12019	c.spreadsheetId = spreadsheetId
12020	c.getspreadsheetbydatafilterrequest = getspreadsheetbydatafilterrequest
12021	return c
12022}
12023
12024// Fields allows partial responses to be retrieved. See
12025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12026// for more information.
12027func (c *SpreadsheetsGetByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsGetByDataFilterCall {
12028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12029	return c
12030}
12031
12032// Context sets the context to be used in this call's Do method. Any
12033// pending HTTP request will be aborted if the provided context is
12034// canceled.
12035func (c *SpreadsheetsGetByDataFilterCall) Context(ctx context.Context) *SpreadsheetsGetByDataFilterCall {
12036	c.ctx_ = ctx
12037	return c
12038}
12039
12040// Header returns an http.Header that can be modified by the caller to
12041// add HTTP headers to the request.
12042func (c *SpreadsheetsGetByDataFilterCall) Header() http.Header {
12043	if c.header_ == nil {
12044		c.header_ = make(http.Header)
12045	}
12046	return c.header_
12047}
12048
12049func (c *SpreadsheetsGetByDataFilterCall) doRequest(alt string) (*http.Response, error) {
12050	reqHeaders := make(http.Header)
12051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12052	for k, v := range c.header_ {
12053		reqHeaders[k] = v
12054	}
12055	reqHeaders.Set("User-Agent", c.s.userAgent())
12056	var body io.Reader = nil
12057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getspreadsheetbydatafilterrequest)
12058	if err != nil {
12059		return nil, err
12060	}
12061	reqHeaders.Set("Content-Type", "application/json")
12062	c.urlParams_.Set("alt", alt)
12063	c.urlParams_.Set("prettyPrint", "false")
12064	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}:getByDataFilter")
12065	urls += "?" + c.urlParams_.Encode()
12066	req, err := http.NewRequest("POST", urls, body)
12067	if err != nil {
12068		return nil, err
12069	}
12070	req.Header = reqHeaders
12071	googleapi.Expand(req.URL, map[string]string{
12072		"spreadsheetId": c.spreadsheetId,
12073	})
12074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12075}
12076
12077// Do executes the "sheets.spreadsheets.getByDataFilter" call.
12078// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
12079// status code is an error. Response headers are in either
12080// *Spreadsheet.ServerResponse.Header or (if a response was returned at
12081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
12082// to check whether the returned error was because
12083// http.StatusNotModified was returned.
12084func (c *SpreadsheetsGetByDataFilterCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
12085	gensupport.SetOptions(c.urlParams_, opts...)
12086	res, err := c.doRequest("json")
12087	if res != nil && res.StatusCode == http.StatusNotModified {
12088		if res.Body != nil {
12089			res.Body.Close()
12090		}
12091		return nil, &googleapi.Error{
12092			Code:   res.StatusCode,
12093			Header: res.Header,
12094		}
12095	}
12096	if err != nil {
12097		return nil, err
12098	}
12099	defer googleapi.CloseBody(res)
12100	if err := googleapi.CheckResponse(res); err != nil {
12101		return nil, err
12102	}
12103	ret := &Spreadsheet{
12104		ServerResponse: googleapi.ServerResponse{
12105			Header:         res.Header,
12106			HTTPStatusCode: res.StatusCode,
12107		},
12108	}
12109	target := &ret
12110	if err := gensupport.DecodeResponse(target, res); err != nil {
12111		return nil, err
12112	}
12113	return ret, nil
12114	// {
12115	//   "description": "Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. This method differs from GetSpreadsheet in that it allows selecting which subsets of spreadsheet data to return by specifying a dataFilters parameter. Multiple DataFilters can be specified. Specifying one or more data filters will return the portions of the spreadsheet that intersect ranges matched by any of the filters. By default, data within grids will not be returned. You can include grid data one of two ways: * Specify a field mask listing your desired fields using the `fields` URL parameter in HTTP * Set the includeGridData parameter to true. If a field mask is set, the `includeGridData` parameter is ignored For large spreadsheets, it is recommended to retrieve only the specific fields of the spreadsheet that you want.",
12116	//   "flatPath": "v4/spreadsheets/{spreadsheetId}:getByDataFilter",
12117	//   "httpMethod": "POST",
12118	//   "id": "sheets.spreadsheets.getByDataFilter",
12119	//   "parameterOrder": [
12120	//     "spreadsheetId"
12121	//   ],
12122	//   "parameters": {
12123	//     "spreadsheetId": {
12124	//       "description": "The spreadsheet to request.",
12125	//       "location": "path",
12126	//       "required": true,
12127	//       "type": "string"
12128	//     }
12129	//   },
12130	//   "path": "v4/spreadsheets/{spreadsheetId}:getByDataFilter",
12131	//   "request": {
12132	//     "$ref": "GetSpreadsheetByDataFilterRequest"
12133	//   },
12134	//   "response": {
12135	//     "$ref": "Spreadsheet"
12136	//   },
12137	//   "scopes": [
12138	//     "https://www.googleapis.com/auth/drive",
12139	//     "https://www.googleapis.com/auth/drive.file",
12140	//     "https://www.googleapis.com/auth/spreadsheets"
12141	//   ]
12142	// }
12143
12144}
12145
12146// method id "sheets.spreadsheets.developerMetadata.get":
12147
12148type SpreadsheetsDeveloperMetadataGetCall struct {
12149	s             *Service
12150	spreadsheetId string
12151	metadataId    int64
12152	urlParams_    gensupport.URLParams
12153	ifNoneMatch_  string
12154	ctx_          context.Context
12155	header_       http.Header
12156}
12157
12158// Get: Returns the developer metadata with the specified ID. The caller
12159// must specify the spreadsheet ID and the developer metadata's unique
12160// metadataId.
12161func (r *SpreadsheetsDeveloperMetadataService) Get(spreadsheetId string, metadataId int64) *SpreadsheetsDeveloperMetadataGetCall {
12162	c := &SpreadsheetsDeveloperMetadataGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12163	c.spreadsheetId = spreadsheetId
12164	c.metadataId = metadataId
12165	return c
12166}
12167
12168// Fields allows partial responses to be retrieved. See
12169// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12170// for more information.
12171func (c *SpreadsheetsDeveloperMetadataGetCall) Fields(s ...googleapi.Field) *SpreadsheetsDeveloperMetadataGetCall {
12172	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12173	return c
12174}
12175
12176// IfNoneMatch sets the optional parameter which makes the operation
12177// fail if the object's ETag matches the given value. This is useful for
12178// getting updates only after the object has changed since the last
12179// request. Use googleapi.IsNotModified to check whether the response
12180// error from Do is the result of In-None-Match.
12181func (c *SpreadsheetsDeveloperMetadataGetCall) IfNoneMatch(entityTag string) *SpreadsheetsDeveloperMetadataGetCall {
12182	c.ifNoneMatch_ = entityTag
12183	return c
12184}
12185
12186// Context sets the context to be used in this call's Do method. Any
12187// pending HTTP request will be aborted if the provided context is
12188// canceled.
12189func (c *SpreadsheetsDeveloperMetadataGetCall) Context(ctx context.Context) *SpreadsheetsDeveloperMetadataGetCall {
12190	c.ctx_ = ctx
12191	return c
12192}
12193
12194// Header returns an http.Header that can be modified by the caller to
12195// add HTTP headers to the request.
12196func (c *SpreadsheetsDeveloperMetadataGetCall) Header() http.Header {
12197	if c.header_ == nil {
12198		c.header_ = make(http.Header)
12199	}
12200	return c.header_
12201}
12202
12203func (c *SpreadsheetsDeveloperMetadataGetCall) doRequest(alt string) (*http.Response, error) {
12204	reqHeaders := make(http.Header)
12205	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12206	for k, v := range c.header_ {
12207		reqHeaders[k] = v
12208	}
12209	reqHeaders.Set("User-Agent", c.s.userAgent())
12210	if c.ifNoneMatch_ != "" {
12211		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12212	}
12213	var body io.Reader = nil
12214	c.urlParams_.Set("alt", alt)
12215	c.urlParams_.Set("prettyPrint", "false")
12216	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}")
12217	urls += "?" + c.urlParams_.Encode()
12218	req, err := http.NewRequest("GET", urls, body)
12219	if err != nil {
12220		return nil, err
12221	}
12222	req.Header = reqHeaders
12223	googleapi.Expand(req.URL, map[string]string{
12224		"spreadsheetId": c.spreadsheetId,
12225		"metadataId":    strconv.FormatInt(c.metadataId, 10),
12226	})
12227	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12228}
12229
12230// Do executes the "sheets.spreadsheets.developerMetadata.get" call.
12231// Exactly one of *DeveloperMetadata or error will be non-nil. Any
12232// non-2xx status code is an error. Response headers are in either
12233// *DeveloperMetadata.ServerResponse.Header or (if a response was
12234// returned at all) in error.(*googleapi.Error).Header. Use
12235// googleapi.IsNotModified to check whether the returned error was
12236// because http.StatusNotModified was returned.
12237func (c *SpreadsheetsDeveloperMetadataGetCall) Do(opts ...googleapi.CallOption) (*DeveloperMetadata, error) {
12238	gensupport.SetOptions(c.urlParams_, opts...)
12239	res, err := c.doRequest("json")
12240	if res != nil && res.StatusCode == http.StatusNotModified {
12241		if res.Body != nil {
12242			res.Body.Close()
12243		}
12244		return nil, &googleapi.Error{
12245			Code:   res.StatusCode,
12246			Header: res.Header,
12247		}
12248	}
12249	if err != nil {
12250		return nil, err
12251	}
12252	defer googleapi.CloseBody(res)
12253	if err := googleapi.CheckResponse(res); err != nil {
12254		return nil, err
12255	}
12256	ret := &DeveloperMetadata{
12257		ServerResponse: googleapi.ServerResponse{
12258			Header:         res.Header,
12259			HTTPStatusCode: res.StatusCode,
12260		},
12261	}
12262	target := &ret
12263	if err := gensupport.DecodeResponse(target, res); err != nil {
12264		return nil, err
12265	}
12266	return ret, nil
12267	// {
12268	//   "description": "Returns the developer metadata with the specified ID. The caller must specify the spreadsheet ID and the developer metadata's unique metadataId.",
12269	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}",
12270	//   "httpMethod": "GET",
12271	//   "id": "sheets.spreadsheets.developerMetadata.get",
12272	//   "parameterOrder": [
12273	//     "spreadsheetId",
12274	//     "metadataId"
12275	//   ],
12276	//   "parameters": {
12277	//     "metadataId": {
12278	//       "description": "The ID of the developer metadata to retrieve.",
12279	//       "format": "int32",
12280	//       "location": "path",
12281	//       "required": true,
12282	//       "type": "integer"
12283	//     },
12284	//     "spreadsheetId": {
12285	//       "description": "The ID of the spreadsheet to retrieve metadata from.",
12286	//       "location": "path",
12287	//       "required": true,
12288	//       "type": "string"
12289	//     }
12290	//   },
12291	//   "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}",
12292	//   "response": {
12293	//     "$ref": "DeveloperMetadata"
12294	//   },
12295	//   "scopes": [
12296	//     "https://www.googleapis.com/auth/drive",
12297	//     "https://www.googleapis.com/auth/drive.file",
12298	//     "https://www.googleapis.com/auth/spreadsheets"
12299	//   ]
12300	// }
12301
12302}
12303
12304// method id "sheets.spreadsheets.developerMetadata.search":
12305
12306type SpreadsheetsDeveloperMetadataSearchCall struct {
12307	s                              *Service
12308	spreadsheetId                  string
12309	searchdevelopermetadatarequest *SearchDeveloperMetadataRequest
12310	urlParams_                     gensupport.URLParams
12311	ctx_                           context.Context
12312	header_                        http.Header
12313}
12314
12315// Search: Returns all developer metadata matching the specified
12316// DataFilter. If the provided DataFilter represents a
12317// DeveloperMetadataLookup object, this will return all
12318// DeveloperMetadata entries selected by it. If the DataFilter
12319// represents a location in a spreadsheet, this will return all
12320// developer metadata associated with locations intersecting that
12321// region.
12322func (r *SpreadsheetsDeveloperMetadataService) Search(spreadsheetId string, searchdevelopermetadatarequest *SearchDeveloperMetadataRequest) *SpreadsheetsDeveloperMetadataSearchCall {
12323	c := &SpreadsheetsDeveloperMetadataSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12324	c.spreadsheetId = spreadsheetId
12325	c.searchdevelopermetadatarequest = searchdevelopermetadatarequest
12326	return c
12327}
12328
12329// Fields allows partial responses to be retrieved. See
12330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12331// for more information.
12332func (c *SpreadsheetsDeveloperMetadataSearchCall) Fields(s ...googleapi.Field) *SpreadsheetsDeveloperMetadataSearchCall {
12333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12334	return c
12335}
12336
12337// Context sets the context to be used in this call's Do method. Any
12338// pending HTTP request will be aborted if the provided context is
12339// canceled.
12340func (c *SpreadsheetsDeveloperMetadataSearchCall) Context(ctx context.Context) *SpreadsheetsDeveloperMetadataSearchCall {
12341	c.ctx_ = ctx
12342	return c
12343}
12344
12345// Header returns an http.Header that can be modified by the caller to
12346// add HTTP headers to the request.
12347func (c *SpreadsheetsDeveloperMetadataSearchCall) Header() http.Header {
12348	if c.header_ == nil {
12349		c.header_ = make(http.Header)
12350	}
12351	return c.header_
12352}
12353
12354func (c *SpreadsheetsDeveloperMetadataSearchCall) doRequest(alt string) (*http.Response, error) {
12355	reqHeaders := make(http.Header)
12356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12357	for k, v := range c.header_ {
12358		reqHeaders[k] = v
12359	}
12360	reqHeaders.Set("User-Agent", c.s.userAgent())
12361	var body io.Reader = nil
12362	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchdevelopermetadatarequest)
12363	if err != nil {
12364		return nil, err
12365	}
12366	reqHeaders.Set("Content-Type", "application/json")
12367	c.urlParams_.Set("alt", alt)
12368	c.urlParams_.Set("prettyPrint", "false")
12369	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/developerMetadata:search")
12370	urls += "?" + c.urlParams_.Encode()
12371	req, err := http.NewRequest("POST", urls, body)
12372	if err != nil {
12373		return nil, err
12374	}
12375	req.Header = reqHeaders
12376	googleapi.Expand(req.URL, map[string]string{
12377		"spreadsheetId": c.spreadsheetId,
12378	})
12379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12380}
12381
12382// Do executes the "sheets.spreadsheets.developerMetadata.search" call.
12383// Exactly one of *SearchDeveloperMetadataResponse or error will be
12384// non-nil. Any non-2xx status code is an error. Response headers are in
12385// either *SearchDeveloperMetadataResponse.ServerResponse.Header or (if
12386// a response was returned at all) in error.(*googleapi.Error).Header.
12387// Use googleapi.IsNotModified to check whether the returned error was
12388// because http.StatusNotModified was returned.
12389func (c *SpreadsheetsDeveloperMetadataSearchCall) Do(opts ...googleapi.CallOption) (*SearchDeveloperMetadataResponse, error) {
12390	gensupport.SetOptions(c.urlParams_, opts...)
12391	res, err := c.doRequest("json")
12392	if res != nil && res.StatusCode == http.StatusNotModified {
12393		if res.Body != nil {
12394			res.Body.Close()
12395		}
12396		return nil, &googleapi.Error{
12397			Code:   res.StatusCode,
12398			Header: res.Header,
12399		}
12400	}
12401	if err != nil {
12402		return nil, err
12403	}
12404	defer googleapi.CloseBody(res)
12405	if err := googleapi.CheckResponse(res); err != nil {
12406		return nil, err
12407	}
12408	ret := &SearchDeveloperMetadataResponse{
12409		ServerResponse: googleapi.ServerResponse{
12410			Header:         res.Header,
12411			HTTPStatusCode: res.StatusCode,
12412		},
12413	}
12414	target := &ret
12415	if err := gensupport.DecodeResponse(target, res); err != nil {
12416		return nil, err
12417	}
12418	return ret, nil
12419	// {
12420	//   "description": "Returns all developer metadata matching the specified DataFilter. If the provided DataFilter represents a DeveloperMetadataLookup object, this will return all DeveloperMetadata entries selected by it. If the DataFilter represents a location in a spreadsheet, this will return all developer metadata associated with locations intersecting that region.",
12421	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search",
12422	//   "httpMethod": "POST",
12423	//   "id": "sheets.spreadsheets.developerMetadata.search",
12424	//   "parameterOrder": [
12425	//     "spreadsheetId"
12426	//   ],
12427	//   "parameters": {
12428	//     "spreadsheetId": {
12429	//       "description": "The ID of the spreadsheet to retrieve metadata from.",
12430	//       "location": "path",
12431	//       "required": true,
12432	//       "type": "string"
12433	//     }
12434	//   },
12435	//   "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search",
12436	//   "request": {
12437	//     "$ref": "SearchDeveloperMetadataRequest"
12438	//   },
12439	//   "response": {
12440	//     "$ref": "SearchDeveloperMetadataResponse"
12441	//   },
12442	//   "scopes": [
12443	//     "https://www.googleapis.com/auth/drive",
12444	//     "https://www.googleapis.com/auth/drive.file",
12445	//     "https://www.googleapis.com/auth/spreadsheets"
12446	//   ]
12447	// }
12448
12449}
12450
12451// method id "sheets.spreadsheets.sheets.copyTo":
12452
12453type SpreadsheetsSheetsCopyToCall struct {
12454	s                                    *Service
12455	spreadsheetId                        string
12456	sheetId                              int64
12457	copysheettoanotherspreadsheetrequest *CopySheetToAnotherSpreadsheetRequest
12458	urlParams_                           gensupport.URLParams
12459	ctx_                                 context.Context
12460	header_                              http.Header
12461}
12462
12463// CopyTo: Copies a single sheet from a spreadsheet to another
12464// spreadsheet. Returns the properties of the newly created sheet.
12465func (r *SpreadsheetsSheetsService) CopyTo(spreadsheetId string, sheetId int64, copysheettoanotherspreadsheetrequest *CopySheetToAnotherSpreadsheetRequest) *SpreadsheetsSheetsCopyToCall {
12466	c := &SpreadsheetsSheetsCopyToCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12467	c.spreadsheetId = spreadsheetId
12468	c.sheetId = sheetId
12469	c.copysheettoanotherspreadsheetrequest = copysheettoanotherspreadsheetrequest
12470	return c
12471}
12472
12473// Fields allows partial responses to be retrieved. See
12474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12475// for more information.
12476func (c *SpreadsheetsSheetsCopyToCall) Fields(s ...googleapi.Field) *SpreadsheetsSheetsCopyToCall {
12477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12478	return c
12479}
12480
12481// Context sets the context to be used in this call's Do method. Any
12482// pending HTTP request will be aborted if the provided context is
12483// canceled.
12484func (c *SpreadsheetsSheetsCopyToCall) Context(ctx context.Context) *SpreadsheetsSheetsCopyToCall {
12485	c.ctx_ = ctx
12486	return c
12487}
12488
12489// Header returns an http.Header that can be modified by the caller to
12490// add HTTP headers to the request.
12491func (c *SpreadsheetsSheetsCopyToCall) Header() http.Header {
12492	if c.header_ == nil {
12493		c.header_ = make(http.Header)
12494	}
12495	return c.header_
12496}
12497
12498func (c *SpreadsheetsSheetsCopyToCall) doRequest(alt string) (*http.Response, error) {
12499	reqHeaders := make(http.Header)
12500	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12501	for k, v := range c.header_ {
12502		reqHeaders[k] = v
12503	}
12504	reqHeaders.Set("User-Agent", c.s.userAgent())
12505	var body io.Reader = nil
12506	body, err := googleapi.WithoutDataWrapper.JSONReader(c.copysheettoanotherspreadsheetrequest)
12507	if err != nil {
12508		return nil, err
12509	}
12510	reqHeaders.Set("Content-Type", "application/json")
12511	c.urlParams_.Set("alt", alt)
12512	c.urlParams_.Set("prettyPrint", "false")
12513	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo")
12514	urls += "?" + c.urlParams_.Encode()
12515	req, err := http.NewRequest("POST", urls, body)
12516	if err != nil {
12517		return nil, err
12518	}
12519	req.Header = reqHeaders
12520	googleapi.Expand(req.URL, map[string]string{
12521		"spreadsheetId": c.spreadsheetId,
12522		"sheetId":       strconv.FormatInt(c.sheetId, 10),
12523	})
12524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12525}
12526
12527// Do executes the "sheets.spreadsheets.sheets.copyTo" call.
12528// Exactly one of *SheetProperties or error will be non-nil. Any non-2xx
12529// status code is an error. Response headers are in either
12530// *SheetProperties.ServerResponse.Header or (if a response was returned
12531// at all) in error.(*googleapi.Error).Header. Use
12532// googleapi.IsNotModified to check whether the returned error was
12533// because http.StatusNotModified was returned.
12534func (c *SpreadsheetsSheetsCopyToCall) Do(opts ...googleapi.CallOption) (*SheetProperties, error) {
12535	gensupport.SetOptions(c.urlParams_, opts...)
12536	res, err := c.doRequest("json")
12537	if res != nil && res.StatusCode == http.StatusNotModified {
12538		if res.Body != nil {
12539			res.Body.Close()
12540		}
12541		return nil, &googleapi.Error{
12542			Code:   res.StatusCode,
12543			Header: res.Header,
12544		}
12545	}
12546	if err != nil {
12547		return nil, err
12548	}
12549	defer googleapi.CloseBody(res)
12550	if err := googleapi.CheckResponse(res); err != nil {
12551		return nil, err
12552	}
12553	ret := &SheetProperties{
12554		ServerResponse: googleapi.ServerResponse{
12555			Header:         res.Header,
12556			HTTPStatusCode: res.StatusCode,
12557		},
12558	}
12559	target := &ret
12560	if err := gensupport.DecodeResponse(target, res); err != nil {
12561		return nil, err
12562	}
12563	return ret, nil
12564	// {
12565	//   "description": "Copies a single sheet from a spreadsheet to another spreadsheet. Returns the properties of the newly created sheet.",
12566	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo",
12567	//   "httpMethod": "POST",
12568	//   "id": "sheets.spreadsheets.sheets.copyTo",
12569	//   "parameterOrder": [
12570	//     "spreadsheetId",
12571	//     "sheetId"
12572	//   ],
12573	//   "parameters": {
12574	//     "sheetId": {
12575	//       "description": "The ID of the sheet to copy.",
12576	//       "format": "int32",
12577	//       "location": "path",
12578	//       "required": true,
12579	//       "type": "integer"
12580	//     },
12581	//     "spreadsheetId": {
12582	//       "description": "The ID of the spreadsheet containing the sheet to copy.",
12583	//       "location": "path",
12584	//       "required": true,
12585	//       "type": "string"
12586	//     }
12587	//   },
12588	//   "path": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo",
12589	//   "request": {
12590	//     "$ref": "CopySheetToAnotherSpreadsheetRequest"
12591	//   },
12592	//   "response": {
12593	//     "$ref": "SheetProperties"
12594	//   },
12595	//   "scopes": [
12596	//     "https://www.googleapis.com/auth/drive",
12597	//     "https://www.googleapis.com/auth/drive.file",
12598	//     "https://www.googleapis.com/auth/spreadsheets"
12599	//   ]
12600	// }
12601
12602}
12603
12604// method id "sheets.spreadsheets.values.append":
12605
12606type SpreadsheetsValuesAppendCall struct {
12607	s             *Service
12608	spreadsheetId string
12609	range_        string
12610	valuerange    *ValueRange
12611	urlParams_    gensupport.URLParams
12612	ctx_          context.Context
12613	header_       http.Header
12614}
12615
12616// Append: Appends values to a spreadsheet. The input range is used to
12617// search for existing data and find a "table" within that range. Values
12618// will be appended to the next row of the table, starting with the
12619// first column of the table. See the
12620// [guide](/sheets/api/guides/values#appending_values) and [sample
12621// code](/sheets/api/samples/writing#append_values) for specific details
12622// of how tables are detected and data is appended. The caller must
12623// specify the spreadsheet ID, range, and a valueInputOption. The
12624// `valueInputOption` only controls how the input data will be added to
12625// the sheet (column-wise or row-wise), it does not influence what cell
12626// the data starts being written to.
12627func (r *SpreadsheetsValuesService) Append(spreadsheetId string, range_ string, valuerange *ValueRange) *SpreadsheetsValuesAppendCall {
12628	c := &SpreadsheetsValuesAppendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12629	c.spreadsheetId = spreadsheetId
12630	c.range_ = range_
12631	c.valuerange = valuerange
12632	return c
12633}
12634
12635// IncludeValuesInResponse sets the optional parameter
12636// "includeValuesInResponse": Determines if the update response should
12637// include the values of the cells that were appended. By default,
12638// responses do not include the updated values.
12639func (c *SpreadsheetsValuesAppendCall) IncludeValuesInResponse(includeValuesInResponse bool) *SpreadsheetsValuesAppendCall {
12640	c.urlParams_.Set("includeValuesInResponse", fmt.Sprint(includeValuesInResponse))
12641	return c
12642}
12643
12644// InsertDataOption sets the optional parameter "insertDataOption": How
12645// the input data should be inserted.
12646//
12647// Possible values:
12648//   "OVERWRITE" - The new data overwrites existing data in the areas it
12649// is written. (Note: adding data to the end of the sheet will still
12650// insert new rows or columns so the data can be written.)
12651//   "INSERT_ROWS" - Rows are inserted for the new data.
12652func (c *SpreadsheetsValuesAppendCall) InsertDataOption(insertDataOption string) *SpreadsheetsValuesAppendCall {
12653	c.urlParams_.Set("insertDataOption", insertDataOption)
12654	return c
12655}
12656
12657// ResponseDateTimeRenderOption sets the optional parameter
12658// "responseDateTimeRenderOption": Determines how dates, times, and
12659// durations in the response should be rendered. This is ignored if
12660// response_value_render_option is FORMATTED_VALUE. The default dateTime
12661// render option is [DateTimeRenderOption.SERIAL_NUMBER].
12662//
12663// Possible values:
12664//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
12665// fields to be output as doubles in "serial number" format, as
12666// popularized by Lotus 1-2-3. The whole number portion of the value
12667// (left of the decimal) counts the days since December 30th 1899. The
12668// fractional portion (right of the decimal) counts the time as a
12669// fraction of the day. For example, January 1st 1900 at noon would be
12670// 2.5, 2 because it's 2 days after December 30st 1899, and .5 because
12671// noon is half a day. February 1st 1900 at 3pm would be 33.625. This
12672// correctly treats the year 1900 as not a leap year.
12673//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
12674// fields to be output as strings in their given number format (which is
12675// dependent on the spreadsheet locale).
12676func (c *SpreadsheetsValuesAppendCall) ResponseDateTimeRenderOption(responseDateTimeRenderOption string) *SpreadsheetsValuesAppendCall {
12677	c.urlParams_.Set("responseDateTimeRenderOption", responseDateTimeRenderOption)
12678	return c
12679}
12680
12681// ResponseValueRenderOption sets the optional parameter
12682// "responseValueRenderOption": Determines how values in the response
12683// should be rendered. The default render option is
12684// ValueRenderOption.FORMATTED_VALUE.
12685//
12686// Possible values:
12687//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
12688// reply according to the cell's formatting. Formatting is based on the
12689// spreadsheet's locale, not the requesting user's locale. For example,
12690// if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then
12691// `A2` would return "$1.23".
12692//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
12693// in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and
12694// formatted as currency, then `A2` would return the number `1.23`.
12695//   "FORMULA" - Values will not be calculated. The reply will include
12696// the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and
12697// formatted as currency, then A2 would return "=A1".
12698func (c *SpreadsheetsValuesAppendCall) ResponseValueRenderOption(responseValueRenderOption string) *SpreadsheetsValuesAppendCall {
12699	c.urlParams_.Set("responseValueRenderOption", responseValueRenderOption)
12700	return c
12701}
12702
12703// ValueInputOption sets the optional parameter "valueInputOption": How
12704// the input data should be interpreted.
12705//
12706// Possible values:
12707//   "INPUT_VALUE_OPTION_UNSPECIFIED" - Default input value. This value
12708// must not be used.
12709//   "RAW" - The values the user has entered will not be parsed and will
12710// be stored as-is.
12711//   "USER_ENTERED" - The values will be parsed as if the user typed
12712// them into the UI. Numbers will stay as numbers, but strings may be
12713// converted to numbers, dates, etc. following the same rules that are
12714// applied when entering text into a cell via the Google Sheets UI.
12715func (c *SpreadsheetsValuesAppendCall) ValueInputOption(valueInputOption string) *SpreadsheetsValuesAppendCall {
12716	c.urlParams_.Set("valueInputOption", valueInputOption)
12717	return c
12718}
12719
12720// Fields allows partial responses to be retrieved. See
12721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12722// for more information.
12723func (c *SpreadsheetsValuesAppendCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesAppendCall {
12724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12725	return c
12726}
12727
12728// Context sets the context to be used in this call's Do method. Any
12729// pending HTTP request will be aborted if the provided context is
12730// canceled.
12731func (c *SpreadsheetsValuesAppendCall) Context(ctx context.Context) *SpreadsheetsValuesAppendCall {
12732	c.ctx_ = ctx
12733	return c
12734}
12735
12736// Header returns an http.Header that can be modified by the caller to
12737// add HTTP headers to the request.
12738func (c *SpreadsheetsValuesAppendCall) Header() http.Header {
12739	if c.header_ == nil {
12740		c.header_ = make(http.Header)
12741	}
12742	return c.header_
12743}
12744
12745func (c *SpreadsheetsValuesAppendCall) doRequest(alt string) (*http.Response, error) {
12746	reqHeaders := make(http.Header)
12747	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12748	for k, v := range c.header_ {
12749		reqHeaders[k] = v
12750	}
12751	reqHeaders.Set("User-Agent", c.s.userAgent())
12752	var body io.Reader = nil
12753	body, err := googleapi.WithoutDataWrapper.JSONReader(c.valuerange)
12754	if err != nil {
12755		return nil, err
12756	}
12757	reqHeaders.Set("Content-Type", "application/json")
12758	c.urlParams_.Set("alt", alt)
12759	c.urlParams_.Set("prettyPrint", "false")
12760	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}:append")
12761	urls += "?" + c.urlParams_.Encode()
12762	req, err := http.NewRequest("POST", urls, body)
12763	if err != nil {
12764		return nil, err
12765	}
12766	req.Header = reqHeaders
12767	googleapi.Expand(req.URL, map[string]string{
12768		"spreadsheetId": c.spreadsheetId,
12769		"range":         c.range_,
12770	})
12771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12772}
12773
12774// Do executes the "sheets.spreadsheets.values.append" call.
12775// Exactly one of *AppendValuesResponse or error will be non-nil. Any
12776// non-2xx status code is an error. Response headers are in either
12777// *AppendValuesResponse.ServerResponse.Header or (if a response was
12778// returned at all) in error.(*googleapi.Error).Header. Use
12779// googleapi.IsNotModified to check whether the returned error was
12780// because http.StatusNotModified was returned.
12781func (c *SpreadsheetsValuesAppendCall) Do(opts ...googleapi.CallOption) (*AppendValuesResponse, error) {
12782	gensupport.SetOptions(c.urlParams_, opts...)
12783	res, err := c.doRequest("json")
12784	if res != nil && res.StatusCode == http.StatusNotModified {
12785		if res.Body != nil {
12786			res.Body.Close()
12787		}
12788		return nil, &googleapi.Error{
12789			Code:   res.StatusCode,
12790			Header: res.Header,
12791		}
12792	}
12793	if err != nil {
12794		return nil, err
12795	}
12796	defer googleapi.CloseBody(res)
12797	if err := googleapi.CheckResponse(res); err != nil {
12798		return nil, err
12799	}
12800	ret := &AppendValuesResponse{
12801		ServerResponse: googleapi.ServerResponse{
12802			Header:         res.Header,
12803			HTTPStatusCode: res.StatusCode,
12804		},
12805	}
12806	target := &ret
12807	if err := gensupport.DecodeResponse(target, res); err != nil {
12808		return nil, err
12809	}
12810	return ret, nil
12811	// {
12812	//   "description": "Appends values to a spreadsheet. The input range is used to search for existing data and find a \"table\" within that range. Values will be appended to the next row of the table, starting with the first column of the table. See the [guide](/sheets/api/guides/values#appending_values) and [sample code](/sheets/api/samples/writing#append_values) for specific details of how tables are detected and data is appended. The caller must specify the spreadsheet ID, range, and a valueInputOption. The `valueInputOption` only controls how the input data will be added to the sheet (column-wise or row-wise), it does not influence what cell the data starts being written to.",
12813	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:append",
12814	//   "httpMethod": "POST",
12815	//   "id": "sheets.spreadsheets.values.append",
12816	//   "parameterOrder": [
12817	//     "spreadsheetId",
12818	//     "range"
12819	//   ],
12820	//   "parameters": {
12821	//     "includeValuesInResponse": {
12822	//       "description": "Determines if the update response should include the values of the cells that were appended. By default, responses do not include the updated values.",
12823	//       "location": "query",
12824	//       "type": "boolean"
12825	//     },
12826	//     "insertDataOption": {
12827	//       "description": "How the input data should be inserted.",
12828	//       "enum": [
12829	//         "OVERWRITE",
12830	//         "INSERT_ROWS"
12831	//       ],
12832	//       "enumDescriptions": [
12833	//         "The new data overwrites existing data in the areas it is written. (Note: adding data to the end of the sheet will still insert new rows or columns so the data can be written.)",
12834	//         "Rows are inserted for the new data."
12835	//       ],
12836	//       "location": "query",
12837	//       "type": "string"
12838	//     },
12839	//     "range": {
12840	//       "description": "The A1 notation of a range to search for a logical table of data. Values are appended after the last row of the table.",
12841	//       "location": "path",
12842	//       "required": true,
12843	//       "type": "string"
12844	//     },
12845	//     "responseDateTimeRenderOption": {
12846	//       "description": "Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].",
12847	//       "enum": [
12848	//         "SERIAL_NUMBER",
12849	//         "FORMATTED_STRING"
12850	//       ],
12851	//       "enumDescriptions": [
12852	//         "Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30st 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.",
12853	//         "Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which is dependent on the spreadsheet locale)."
12854	//       ],
12855	//       "location": "query",
12856	//       "type": "string"
12857	//     },
12858	//     "responseValueRenderOption": {
12859	//       "description": "Determines how values in the response should be rendered. The default render option is ValueRenderOption.FORMATTED_VALUE.",
12860	//       "enum": [
12861	//         "FORMATTED_VALUE",
12862	//         "UNFORMATTED_VALUE",
12863	//         "FORMULA"
12864	//       ],
12865	//       "enumDescriptions": [
12866	//         "Values will be calculated \u0026 formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.",
12867	//         "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.",
12868	//         "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`."
12869	//       ],
12870	//       "location": "query",
12871	//       "type": "string"
12872	//     },
12873	//     "spreadsheetId": {
12874	//       "description": "The ID of the spreadsheet to update.",
12875	//       "location": "path",
12876	//       "required": true,
12877	//       "type": "string"
12878	//     },
12879	//     "valueInputOption": {
12880	//       "description": "How the input data should be interpreted.",
12881	//       "enum": [
12882	//         "INPUT_VALUE_OPTION_UNSPECIFIED",
12883	//         "RAW",
12884	//         "USER_ENTERED"
12885	//       ],
12886	//       "enumDescriptions": [
12887	//         "Default input value. This value must not be used.",
12888	//         "The values the user has entered will not be parsed and will be stored as-is.",
12889	//         "The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI."
12890	//       ],
12891	//       "location": "query",
12892	//       "type": "string"
12893	//     }
12894	//   },
12895	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:append",
12896	//   "request": {
12897	//     "$ref": "ValueRange"
12898	//   },
12899	//   "response": {
12900	//     "$ref": "AppendValuesResponse"
12901	//   },
12902	//   "scopes": [
12903	//     "https://www.googleapis.com/auth/drive",
12904	//     "https://www.googleapis.com/auth/drive.file",
12905	//     "https://www.googleapis.com/auth/spreadsheets"
12906	//   ]
12907	// }
12908
12909}
12910
12911// method id "sheets.spreadsheets.values.batchClear":
12912
12913type SpreadsheetsValuesBatchClearCall struct {
12914	s                       *Service
12915	spreadsheetId           string
12916	batchclearvaluesrequest *BatchClearValuesRequest
12917	urlParams_              gensupport.URLParams
12918	ctx_                    context.Context
12919	header_                 http.Header
12920}
12921
12922// BatchClear: Clears one or more ranges of values from a spreadsheet.
12923// The caller must specify the spreadsheet ID and one or more ranges.
12924// Only values are cleared -- all other properties of the cell (such as
12925// formatting, data validation, etc..) are kept.
12926func (r *SpreadsheetsValuesService) BatchClear(spreadsheetId string, batchclearvaluesrequest *BatchClearValuesRequest) *SpreadsheetsValuesBatchClearCall {
12927	c := &SpreadsheetsValuesBatchClearCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12928	c.spreadsheetId = spreadsheetId
12929	c.batchclearvaluesrequest = batchclearvaluesrequest
12930	return c
12931}
12932
12933// Fields allows partial responses to be retrieved. See
12934// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12935// for more information.
12936func (c *SpreadsheetsValuesBatchClearCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchClearCall {
12937	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12938	return c
12939}
12940
12941// Context sets the context to be used in this call's Do method. Any
12942// pending HTTP request will be aborted if the provided context is
12943// canceled.
12944func (c *SpreadsheetsValuesBatchClearCall) Context(ctx context.Context) *SpreadsheetsValuesBatchClearCall {
12945	c.ctx_ = ctx
12946	return c
12947}
12948
12949// Header returns an http.Header that can be modified by the caller to
12950// add HTTP headers to the request.
12951func (c *SpreadsheetsValuesBatchClearCall) Header() http.Header {
12952	if c.header_ == nil {
12953		c.header_ = make(http.Header)
12954	}
12955	return c.header_
12956}
12957
12958func (c *SpreadsheetsValuesBatchClearCall) doRequest(alt string) (*http.Response, error) {
12959	reqHeaders := make(http.Header)
12960	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
12961	for k, v := range c.header_ {
12962		reqHeaders[k] = v
12963	}
12964	reqHeaders.Set("User-Agent", c.s.userAgent())
12965	var body io.Reader = nil
12966	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchclearvaluesrequest)
12967	if err != nil {
12968		return nil, err
12969	}
12970	reqHeaders.Set("Content-Type", "application/json")
12971	c.urlParams_.Set("alt", alt)
12972	c.urlParams_.Set("prettyPrint", "false")
12973	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchClear")
12974	urls += "?" + c.urlParams_.Encode()
12975	req, err := http.NewRequest("POST", urls, body)
12976	if err != nil {
12977		return nil, err
12978	}
12979	req.Header = reqHeaders
12980	googleapi.Expand(req.URL, map[string]string{
12981		"spreadsheetId": c.spreadsheetId,
12982	})
12983	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12984}
12985
12986// Do executes the "sheets.spreadsheets.values.batchClear" call.
12987// Exactly one of *BatchClearValuesResponse or error will be non-nil.
12988// Any non-2xx status code is an error. Response headers are in either
12989// *BatchClearValuesResponse.ServerResponse.Header or (if a response was
12990// returned at all) in error.(*googleapi.Error).Header. Use
12991// googleapi.IsNotModified to check whether the returned error was
12992// because http.StatusNotModified was returned.
12993func (c *SpreadsheetsValuesBatchClearCall) Do(opts ...googleapi.CallOption) (*BatchClearValuesResponse, error) {
12994	gensupport.SetOptions(c.urlParams_, opts...)
12995	res, err := c.doRequest("json")
12996	if res != nil && res.StatusCode == http.StatusNotModified {
12997		if res.Body != nil {
12998			res.Body.Close()
12999		}
13000		return nil, &googleapi.Error{
13001			Code:   res.StatusCode,
13002			Header: res.Header,
13003		}
13004	}
13005	if err != nil {
13006		return nil, err
13007	}
13008	defer googleapi.CloseBody(res)
13009	if err := googleapi.CheckResponse(res); err != nil {
13010		return nil, err
13011	}
13012	ret := &BatchClearValuesResponse{
13013		ServerResponse: googleapi.ServerResponse{
13014			Header:         res.Header,
13015			HTTPStatusCode: res.StatusCode,
13016		},
13017	}
13018	target := &ret
13019	if err := gensupport.DecodeResponse(target, res); err != nil {
13020		return nil, err
13021	}
13022	return ret, nil
13023	// {
13024	//   "description": "Clears one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more ranges. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.",
13025	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClear",
13026	//   "httpMethod": "POST",
13027	//   "id": "sheets.spreadsheets.values.batchClear",
13028	//   "parameterOrder": [
13029	//     "spreadsheetId"
13030	//   ],
13031	//   "parameters": {
13032	//     "spreadsheetId": {
13033	//       "description": "The ID of the spreadsheet to update.",
13034	//       "location": "path",
13035	//       "required": true,
13036	//       "type": "string"
13037	//     }
13038	//   },
13039	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchClear",
13040	//   "request": {
13041	//     "$ref": "BatchClearValuesRequest"
13042	//   },
13043	//   "response": {
13044	//     "$ref": "BatchClearValuesResponse"
13045	//   },
13046	//   "scopes": [
13047	//     "https://www.googleapis.com/auth/drive",
13048	//     "https://www.googleapis.com/auth/drive.file",
13049	//     "https://www.googleapis.com/auth/spreadsheets"
13050	//   ]
13051	// }
13052
13053}
13054
13055// method id "sheets.spreadsheets.values.batchClearByDataFilter":
13056
13057type SpreadsheetsValuesBatchClearByDataFilterCall struct {
13058	s                                   *Service
13059	spreadsheetId                       string
13060	batchclearvaluesbydatafilterrequest *BatchClearValuesByDataFilterRequest
13061	urlParams_                          gensupport.URLParams
13062	ctx_                                context.Context
13063	header_                             http.Header
13064}
13065
13066// BatchClearByDataFilter: Clears one or more ranges of values from a
13067// spreadsheet. The caller must specify the spreadsheet ID and one or
13068// more DataFilters. Ranges matching any of the specified data filters
13069// will be cleared. Only values are cleared -- all other properties of
13070// the cell (such as formatting, data validation, etc..) are kept.
13071func (r *SpreadsheetsValuesService) BatchClearByDataFilter(spreadsheetId string, batchclearvaluesbydatafilterrequest *BatchClearValuesByDataFilterRequest) *SpreadsheetsValuesBatchClearByDataFilterCall {
13072	c := &SpreadsheetsValuesBatchClearByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13073	c.spreadsheetId = spreadsheetId
13074	c.batchclearvaluesbydatafilterrequest = batchclearvaluesbydatafilterrequest
13075	return c
13076}
13077
13078// Fields allows partial responses to be retrieved. See
13079// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13080// for more information.
13081func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchClearByDataFilterCall {
13082	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13083	return c
13084}
13085
13086// Context sets the context to be used in this call's Do method. Any
13087// pending HTTP request will be aborted if the provided context is
13088// canceled.
13089func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchClearByDataFilterCall {
13090	c.ctx_ = ctx
13091	return c
13092}
13093
13094// Header returns an http.Header that can be modified by the caller to
13095// add HTTP headers to the request.
13096func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Header() http.Header {
13097	if c.header_ == nil {
13098		c.header_ = make(http.Header)
13099	}
13100	return c.header_
13101}
13102
13103func (c *SpreadsheetsValuesBatchClearByDataFilterCall) doRequest(alt string) (*http.Response, error) {
13104	reqHeaders := make(http.Header)
13105	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
13106	for k, v := range c.header_ {
13107		reqHeaders[k] = v
13108	}
13109	reqHeaders.Set("User-Agent", c.s.userAgent())
13110	var body io.Reader = nil
13111	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchclearvaluesbydatafilterrequest)
13112	if err != nil {
13113		return nil, err
13114	}
13115	reqHeaders.Set("Content-Type", "application/json")
13116	c.urlParams_.Set("alt", alt)
13117	c.urlParams_.Set("prettyPrint", "false")
13118	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter")
13119	urls += "?" + c.urlParams_.Encode()
13120	req, err := http.NewRequest("POST", urls, body)
13121	if err != nil {
13122		return nil, err
13123	}
13124	req.Header = reqHeaders
13125	googleapi.Expand(req.URL, map[string]string{
13126		"spreadsheetId": c.spreadsheetId,
13127	})
13128	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13129}
13130
13131// Do executes the "sheets.spreadsheets.values.batchClearByDataFilter" call.
13132// Exactly one of *BatchClearValuesByDataFilterResponse or error will be
13133// non-nil. Any non-2xx status code is an error. Response headers are in
13134// either *BatchClearValuesByDataFilterResponse.ServerResponse.Header or
13135// (if a response was returned at all) in
13136// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
13137// whether the returned error was because http.StatusNotModified was
13138// returned.
13139func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchClearValuesByDataFilterResponse, error) {
13140	gensupport.SetOptions(c.urlParams_, opts...)
13141	res, err := c.doRequest("json")
13142	if res != nil && res.StatusCode == http.StatusNotModified {
13143		if res.Body != nil {
13144			res.Body.Close()
13145		}
13146		return nil, &googleapi.Error{
13147			Code:   res.StatusCode,
13148			Header: res.Header,
13149		}
13150	}
13151	if err != nil {
13152		return nil, err
13153	}
13154	defer googleapi.CloseBody(res)
13155	if err := googleapi.CheckResponse(res); err != nil {
13156		return nil, err
13157	}
13158	ret := &BatchClearValuesByDataFilterResponse{
13159		ServerResponse: googleapi.ServerResponse{
13160			Header:         res.Header,
13161			HTTPStatusCode: res.StatusCode,
13162		},
13163	}
13164	target := &ret
13165	if err := gensupport.DecodeResponse(target, res); err != nil {
13166		return nil, err
13167	}
13168	return ret, nil
13169	// {
13170	//   "description": "Clears one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges matching any of the specified data filters will be cleared. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.",
13171	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter",
13172	//   "httpMethod": "POST",
13173	//   "id": "sheets.spreadsheets.values.batchClearByDataFilter",
13174	//   "parameterOrder": [
13175	//     "spreadsheetId"
13176	//   ],
13177	//   "parameters": {
13178	//     "spreadsheetId": {
13179	//       "description": "The ID of the spreadsheet to update.",
13180	//       "location": "path",
13181	//       "required": true,
13182	//       "type": "string"
13183	//     }
13184	//   },
13185	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter",
13186	//   "request": {
13187	//     "$ref": "BatchClearValuesByDataFilterRequest"
13188	//   },
13189	//   "response": {
13190	//     "$ref": "BatchClearValuesByDataFilterResponse"
13191	//   },
13192	//   "scopes": [
13193	//     "https://www.googleapis.com/auth/drive",
13194	//     "https://www.googleapis.com/auth/drive.file",
13195	//     "https://www.googleapis.com/auth/spreadsheets"
13196	//   ]
13197	// }
13198
13199}
13200
13201// method id "sheets.spreadsheets.values.batchGet":
13202
13203type SpreadsheetsValuesBatchGetCall struct {
13204	s             *Service
13205	spreadsheetId string
13206	urlParams_    gensupport.URLParams
13207	ifNoneMatch_  string
13208	ctx_          context.Context
13209	header_       http.Header
13210}
13211
13212// BatchGet: Returns one or more ranges of values from a spreadsheet.
13213// The caller must specify the spreadsheet ID and one or more ranges.
13214func (r *SpreadsheetsValuesService) BatchGet(spreadsheetId string) *SpreadsheetsValuesBatchGetCall {
13215	c := &SpreadsheetsValuesBatchGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13216	c.spreadsheetId = spreadsheetId
13217	return c
13218}
13219
13220// DateTimeRenderOption sets the optional parameter
13221// "dateTimeRenderOption": How dates, times, and durations should be
13222// represented in the output. This is ignored if value_render_option is
13223// FORMATTED_VALUE. The default dateTime render option is
13224// [DateTimeRenderOption.SERIAL_NUMBER].
13225//
13226// Possible values:
13227//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
13228// fields to be output as doubles in "serial number" format, as
13229// popularized by Lotus 1-2-3. The whole number portion of the value
13230// (left of the decimal) counts the days since December 30th 1899. The
13231// fractional portion (right of the decimal) counts the time as a
13232// fraction of the day. For example, January 1st 1900 at noon would be
13233// 2.5, 2 because it's 2 days after December 30st 1899, and .5 because
13234// noon is half a day. February 1st 1900 at 3pm would be 33.625. This
13235// correctly treats the year 1900 as not a leap year.
13236//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
13237// fields to be output as strings in their given number format (which is
13238// dependent on the spreadsheet locale).
13239func (c *SpreadsheetsValuesBatchGetCall) DateTimeRenderOption(dateTimeRenderOption string) *SpreadsheetsValuesBatchGetCall {
13240	c.urlParams_.Set("dateTimeRenderOption", dateTimeRenderOption)
13241	return c
13242}
13243
13244// MajorDimension sets the optional parameter "majorDimension": The
13245// major dimension that results should use. For example, if the
13246// spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting
13247// `range=A1:B2,majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas
13248// requesting `range=A1:B2,majorDimension=COLUMNS` returns
13249// `[[1,3],[2,4]]`.
13250//
13251// Possible values:
13252//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
13253//   "ROWS" - Operates on the rows of a sheet.
13254//   "COLUMNS" - Operates on the columns of a sheet.
13255func (c *SpreadsheetsValuesBatchGetCall) MajorDimension(majorDimension string) *SpreadsheetsValuesBatchGetCall {
13256	c.urlParams_.Set("majorDimension", majorDimension)
13257	return c
13258}
13259
13260// Ranges sets the optional parameter "ranges": The A1 notation of the
13261// values to retrieve.
13262func (c *SpreadsheetsValuesBatchGetCall) Ranges(ranges ...string) *SpreadsheetsValuesBatchGetCall {
13263	c.urlParams_.SetMulti("ranges", append([]string{}, ranges...))
13264	return c
13265}
13266
13267// ValueRenderOption sets the optional parameter "valueRenderOption":
13268// How values should be represented in the output. The default render
13269// option is ValueRenderOption.FORMATTED_VALUE.
13270//
13271// Possible values:
13272//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
13273// reply according to the cell's formatting. Formatting is based on the
13274// spreadsheet's locale, not the requesting user's locale. For example,
13275// if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then
13276// `A2` would return "$1.23".
13277//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
13278// in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and
13279// formatted as currency, then `A2` would return the number `1.23`.
13280//   "FORMULA" - Values will not be calculated. The reply will include
13281// the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and
13282// formatted as currency, then A2 would return "=A1".
13283func (c *SpreadsheetsValuesBatchGetCall) ValueRenderOption(valueRenderOption string) *SpreadsheetsValuesBatchGetCall {
13284	c.urlParams_.Set("valueRenderOption", valueRenderOption)
13285	return c
13286}
13287
13288// Fields allows partial responses to be retrieved. See
13289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13290// for more information.
13291func (c *SpreadsheetsValuesBatchGetCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchGetCall {
13292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13293	return c
13294}
13295
13296// IfNoneMatch sets the optional parameter which makes the operation
13297// fail if the object's ETag matches the given value. This is useful for
13298// getting updates only after the object has changed since the last
13299// request. Use googleapi.IsNotModified to check whether the response
13300// error from Do is the result of In-None-Match.
13301func (c *SpreadsheetsValuesBatchGetCall) IfNoneMatch(entityTag string) *SpreadsheetsValuesBatchGetCall {
13302	c.ifNoneMatch_ = entityTag
13303	return c
13304}
13305
13306// Context sets the context to be used in this call's Do method. Any
13307// pending HTTP request will be aborted if the provided context is
13308// canceled.
13309func (c *SpreadsheetsValuesBatchGetCall) Context(ctx context.Context) *SpreadsheetsValuesBatchGetCall {
13310	c.ctx_ = ctx
13311	return c
13312}
13313
13314// Header returns an http.Header that can be modified by the caller to
13315// add HTTP headers to the request.
13316func (c *SpreadsheetsValuesBatchGetCall) Header() http.Header {
13317	if c.header_ == nil {
13318		c.header_ = make(http.Header)
13319	}
13320	return c.header_
13321}
13322
13323func (c *SpreadsheetsValuesBatchGetCall) doRequest(alt string) (*http.Response, error) {
13324	reqHeaders := make(http.Header)
13325	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
13326	for k, v := range c.header_ {
13327		reqHeaders[k] = v
13328	}
13329	reqHeaders.Set("User-Agent", c.s.userAgent())
13330	if c.ifNoneMatch_ != "" {
13331		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13332	}
13333	var body io.Reader = nil
13334	c.urlParams_.Set("alt", alt)
13335	c.urlParams_.Set("prettyPrint", "false")
13336	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchGet")
13337	urls += "?" + c.urlParams_.Encode()
13338	req, err := http.NewRequest("GET", urls, body)
13339	if err != nil {
13340		return nil, err
13341	}
13342	req.Header = reqHeaders
13343	googleapi.Expand(req.URL, map[string]string{
13344		"spreadsheetId": c.spreadsheetId,
13345	})
13346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13347}
13348
13349// Do executes the "sheets.spreadsheets.values.batchGet" call.
13350// Exactly one of *BatchGetValuesResponse or error will be non-nil. Any
13351// non-2xx status code is an error. Response headers are in either
13352// *BatchGetValuesResponse.ServerResponse.Header or (if a response was
13353// returned at all) in error.(*googleapi.Error).Header. Use
13354// googleapi.IsNotModified to check whether the returned error was
13355// because http.StatusNotModified was returned.
13356func (c *SpreadsheetsValuesBatchGetCall) Do(opts ...googleapi.CallOption) (*BatchGetValuesResponse, error) {
13357	gensupport.SetOptions(c.urlParams_, opts...)
13358	res, err := c.doRequest("json")
13359	if res != nil && res.StatusCode == http.StatusNotModified {
13360		if res.Body != nil {
13361			res.Body.Close()
13362		}
13363		return nil, &googleapi.Error{
13364			Code:   res.StatusCode,
13365			Header: res.Header,
13366		}
13367	}
13368	if err != nil {
13369		return nil, err
13370	}
13371	defer googleapi.CloseBody(res)
13372	if err := googleapi.CheckResponse(res); err != nil {
13373		return nil, err
13374	}
13375	ret := &BatchGetValuesResponse{
13376		ServerResponse: googleapi.ServerResponse{
13377			Header:         res.Header,
13378			HTTPStatusCode: res.StatusCode,
13379		},
13380	}
13381	target := &ret
13382	if err := gensupport.DecodeResponse(target, res); err != nil {
13383		return nil, err
13384	}
13385	return ret, nil
13386	// {
13387	//   "description": "Returns one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more ranges.",
13388	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGet",
13389	//   "httpMethod": "GET",
13390	//   "id": "sheets.spreadsheets.values.batchGet",
13391	//   "parameterOrder": [
13392	//     "spreadsheetId"
13393	//   ],
13394	//   "parameters": {
13395	//     "dateTimeRenderOption": {
13396	//       "description": "How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].",
13397	//       "enum": [
13398	//         "SERIAL_NUMBER",
13399	//         "FORMATTED_STRING"
13400	//       ],
13401	//       "enumDescriptions": [
13402	//         "Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30st 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.",
13403	//         "Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which is dependent on the spreadsheet locale)."
13404	//       ],
13405	//       "location": "query",
13406	//       "type": "string"
13407	//     },
13408	//     "majorDimension": {
13409	//       "description": "The major dimension that results should use. For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=A1:B2,majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas requesting `range=A1:B2,majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.",
13410	//       "enum": [
13411	//         "DIMENSION_UNSPECIFIED",
13412	//         "ROWS",
13413	//         "COLUMNS"
13414	//       ],
13415	//       "enumDescriptions": [
13416	//         "The default value, do not use.",
13417	//         "Operates on the rows of a sheet.",
13418	//         "Operates on the columns of a sheet."
13419	//       ],
13420	//       "location": "query",
13421	//       "type": "string"
13422	//     },
13423	//     "ranges": {
13424	//       "description": "The A1 notation of the values to retrieve.",
13425	//       "location": "query",
13426	//       "repeated": true,
13427	//       "type": "string"
13428	//     },
13429	//     "spreadsheetId": {
13430	//       "description": "The ID of the spreadsheet to retrieve data from.",
13431	//       "location": "path",
13432	//       "required": true,
13433	//       "type": "string"
13434	//     },
13435	//     "valueRenderOption": {
13436	//       "description": "How values should be represented in the output. The default render option is ValueRenderOption.FORMATTED_VALUE.",
13437	//       "enum": [
13438	//         "FORMATTED_VALUE",
13439	//         "UNFORMATTED_VALUE",
13440	//         "FORMULA"
13441	//       ],
13442	//       "enumDescriptions": [
13443	//         "Values will be calculated \u0026 formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.",
13444	//         "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.",
13445	//         "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`."
13446	//       ],
13447	//       "location": "query",
13448	//       "type": "string"
13449	//     }
13450	//   },
13451	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchGet",
13452	//   "response": {
13453	//     "$ref": "BatchGetValuesResponse"
13454	//   },
13455	//   "scopes": [
13456	//     "https://www.googleapis.com/auth/drive",
13457	//     "https://www.googleapis.com/auth/drive.file",
13458	//     "https://www.googleapis.com/auth/drive.readonly",
13459	//     "https://www.googleapis.com/auth/spreadsheets",
13460	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
13461	//   ]
13462	// }
13463
13464}
13465
13466// method id "sheets.spreadsheets.values.batchGetByDataFilter":
13467
13468type SpreadsheetsValuesBatchGetByDataFilterCall struct {
13469	s                                 *Service
13470	spreadsheetId                     string
13471	batchgetvaluesbydatafilterrequest *BatchGetValuesByDataFilterRequest
13472	urlParams_                        gensupport.URLParams
13473	ctx_                              context.Context
13474	header_                           http.Header
13475}
13476
13477// BatchGetByDataFilter: Returns one or more ranges of values that match
13478// the specified data filters. The caller must specify the spreadsheet
13479// ID and one or more DataFilters. Ranges that match any of the data
13480// filters in the request will be returned.
13481func (r *SpreadsheetsValuesService) BatchGetByDataFilter(spreadsheetId string, batchgetvaluesbydatafilterrequest *BatchGetValuesByDataFilterRequest) *SpreadsheetsValuesBatchGetByDataFilterCall {
13482	c := &SpreadsheetsValuesBatchGetByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13483	c.spreadsheetId = spreadsheetId
13484	c.batchgetvaluesbydatafilterrequest = batchgetvaluesbydatafilterrequest
13485	return c
13486}
13487
13488// Fields allows partial responses to be retrieved. See
13489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13490// for more information.
13491func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchGetByDataFilterCall {
13492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13493	return c
13494}
13495
13496// Context sets the context to be used in this call's Do method. Any
13497// pending HTTP request will be aborted if the provided context is
13498// canceled.
13499func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchGetByDataFilterCall {
13500	c.ctx_ = ctx
13501	return c
13502}
13503
13504// Header returns an http.Header that can be modified by the caller to
13505// add HTTP headers to the request.
13506func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Header() http.Header {
13507	if c.header_ == nil {
13508		c.header_ = make(http.Header)
13509	}
13510	return c.header_
13511}
13512
13513func (c *SpreadsheetsValuesBatchGetByDataFilterCall) doRequest(alt string) (*http.Response, error) {
13514	reqHeaders := make(http.Header)
13515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
13516	for k, v := range c.header_ {
13517		reqHeaders[k] = v
13518	}
13519	reqHeaders.Set("User-Agent", c.s.userAgent())
13520	var body io.Reader = nil
13521	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchgetvaluesbydatafilterrequest)
13522	if err != nil {
13523		return nil, err
13524	}
13525	reqHeaders.Set("Content-Type", "application/json")
13526	c.urlParams_.Set("alt", alt)
13527	c.urlParams_.Set("prettyPrint", "false")
13528	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter")
13529	urls += "?" + c.urlParams_.Encode()
13530	req, err := http.NewRequest("POST", urls, body)
13531	if err != nil {
13532		return nil, err
13533	}
13534	req.Header = reqHeaders
13535	googleapi.Expand(req.URL, map[string]string{
13536		"spreadsheetId": c.spreadsheetId,
13537	})
13538	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13539}
13540
13541// Do executes the "sheets.spreadsheets.values.batchGetByDataFilter" call.
13542// Exactly one of *BatchGetValuesByDataFilterResponse or error will be
13543// non-nil. Any non-2xx status code is an error. Response headers are in
13544// either *BatchGetValuesByDataFilterResponse.ServerResponse.Header or
13545// (if a response was returned at all) in
13546// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
13547// whether the returned error was because http.StatusNotModified was
13548// returned.
13549func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchGetValuesByDataFilterResponse, error) {
13550	gensupport.SetOptions(c.urlParams_, opts...)
13551	res, err := c.doRequest("json")
13552	if res != nil && res.StatusCode == http.StatusNotModified {
13553		if res.Body != nil {
13554			res.Body.Close()
13555		}
13556		return nil, &googleapi.Error{
13557			Code:   res.StatusCode,
13558			Header: res.Header,
13559		}
13560	}
13561	if err != nil {
13562		return nil, err
13563	}
13564	defer googleapi.CloseBody(res)
13565	if err := googleapi.CheckResponse(res); err != nil {
13566		return nil, err
13567	}
13568	ret := &BatchGetValuesByDataFilterResponse{
13569		ServerResponse: googleapi.ServerResponse{
13570			Header:         res.Header,
13571			HTTPStatusCode: res.StatusCode,
13572		},
13573	}
13574	target := &ret
13575	if err := gensupport.DecodeResponse(target, res); err != nil {
13576		return nil, err
13577	}
13578	return ret, nil
13579	// {
13580	//   "description": "Returns one or more ranges of values that match the specified data filters. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges that match any of the data filters in the request will be returned.",
13581	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter",
13582	//   "httpMethod": "POST",
13583	//   "id": "sheets.spreadsheets.values.batchGetByDataFilter",
13584	//   "parameterOrder": [
13585	//     "spreadsheetId"
13586	//   ],
13587	//   "parameters": {
13588	//     "spreadsheetId": {
13589	//       "description": "The ID of the spreadsheet to retrieve data from.",
13590	//       "location": "path",
13591	//       "required": true,
13592	//       "type": "string"
13593	//     }
13594	//   },
13595	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter",
13596	//   "request": {
13597	//     "$ref": "BatchGetValuesByDataFilterRequest"
13598	//   },
13599	//   "response": {
13600	//     "$ref": "BatchGetValuesByDataFilterResponse"
13601	//   },
13602	//   "scopes": [
13603	//     "https://www.googleapis.com/auth/drive",
13604	//     "https://www.googleapis.com/auth/drive.file",
13605	//     "https://www.googleapis.com/auth/spreadsheets"
13606	//   ]
13607	// }
13608
13609}
13610
13611// method id "sheets.spreadsheets.values.batchUpdate":
13612
13613type SpreadsheetsValuesBatchUpdateCall struct {
13614	s                        *Service
13615	spreadsheetId            string
13616	batchupdatevaluesrequest *BatchUpdateValuesRequest
13617	urlParams_               gensupport.URLParams
13618	ctx_                     context.Context
13619	header_                  http.Header
13620}
13621
13622// BatchUpdate: Sets values in one or more ranges of a spreadsheet. The
13623// caller must specify the spreadsheet ID, a valueInputOption, and one
13624// or more ValueRanges.
13625func (r *SpreadsheetsValuesService) BatchUpdate(spreadsheetId string, batchupdatevaluesrequest *BatchUpdateValuesRequest) *SpreadsheetsValuesBatchUpdateCall {
13626	c := &SpreadsheetsValuesBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13627	c.spreadsheetId = spreadsheetId
13628	c.batchupdatevaluesrequest = batchupdatevaluesrequest
13629	return c
13630}
13631
13632// Fields allows partial responses to be retrieved. See
13633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13634// for more information.
13635func (c *SpreadsheetsValuesBatchUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchUpdateCall {
13636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13637	return c
13638}
13639
13640// Context sets the context to be used in this call's Do method. Any
13641// pending HTTP request will be aborted if the provided context is
13642// canceled.
13643func (c *SpreadsheetsValuesBatchUpdateCall) Context(ctx context.Context) *SpreadsheetsValuesBatchUpdateCall {
13644	c.ctx_ = ctx
13645	return c
13646}
13647
13648// Header returns an http.Header that can be modified by the caller to
13649// add HTTP headers to the request.
13650func (c *SpreadsheetsValuesBatchUpdateCall) Header() http.Header {
13651	if c.header_ == nil {
13652		c.header_ = make(http.Header)
13653	}
13654	return c.header_
13655}
13656
13657func (c *SpreadsheetsValuesBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
13658	reqHeaders := make(http.Header)
13659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
13660	for k, v := range c.header_ {
13661		reqHeaders[k] = v
13662	}
13663	reqHeaders.Set("User-Agent", c.s.userAgent())
13664	var body io.Reader = nil
13665	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatevaluesrequest)
13666	if err != nil {
13667		return nil, err
13668	}
13669	reqHeaders.Set("Content-Type", "application/json")
13670	c.urlParams_.Set("alt", alt)
13671	c.urlParams_.Set("prettyPrint", "false")
13672	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchUpdate")
13673	urls += "?" + c.urlParams_.Encode()
13674	req, err := http.NewRequest("POST", urls, body)
13675	if err != nil {
13676		return nil, err
13677	}
13678	req.Header = reqHeaders
13679	googleapi.Expand(req.URL, map[string]string{
13680		"spreadsheetId": c.spreadsheetId,
13681	})
13682	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13683}
13684
13685// Do executes the "sheets.spreadsheets.values.batchUpdate" call.
13686// Exactly one of *BatchUpdateValuesResponse or error will be non-nil.
13687// Any non-2xx status code is an error. Response headers are in either
13688// *BatchUpdateValuesResponse.ServerResponse.Header or (if a response
13689// was returned at all) in error.(*googleapi.Error).Header. Use
13690// googleapi.IsNotModified to check whether the returned error was
13691// because http.StatusNotModified was returned.
13692func (c *SpreadsheetsValuesBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdateValuesResponse, error) {
13693	gensupport.SetOptions(c.urlParams_, opts...)
13694	res, err := c.doRequest("json")
13695	if res != nil && res.StatusCode == http.StatusNotModified {
13696		if res.Body != nil {
13697			res.Body.Close()
13698		}
13699		return nil, &googleapi.Error{
13700			Code:   res.StatusCode,
13701			Header: res.Header,
13702		}
13703	}
13704	if err != nil {
13705		return nil, err
13706	}
13707	defer googleapi.CloseBody(res)
13708	if err := googleapi.CheckResponse(res); err != nil {
13709		return nil, err
13710	}
13711	ret := &BatchUpdateValuesResponse{
13712		ServerResponse: googleapi.ServerResponse{
13713			Header:         res.Header,
13714			HTTPStatusCode: res.StatusCode,
13715		},
13716	}
13717	target := &ret
13718	if err := gensupport.DecodeResponse(target, res); err != nil {
13719		return nil, err
13720	}
13721	return ret, nil
13722	// {
13723	//   "description": "Sets values in one or more ranges of a spreadsheet. The caller must specify the spreadsheet ID, a valueInputOption, and one or more ValueRanges.",
13724	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate",
13725	//   "httpMethod": "POST",
13726	//   "id": "sheets.spreadsheets.values.batchUpdate",
13727	//   "parameterOrder": [
13728	//     "spreadsheetId"
13729	//   ],
13730	//   "parameters": {
13731	//     "spreadsheetId": {
13732	//       "description": "The ID of the spreadsheet to update.",
13733	//       "location": "path",
13734	//       "required": true,
13735	//       "type": "string"
13736	//     }
13737	//   },
13738	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate",
13739	//   "request": {
13740	//     "$ref": "BatchUpdateValuesRequest"
13741	//   },
13742	//   "response": {
13743	//     "$ref": "BatchUpdateValuesResponse"
13744	//   },
13745	//   "scopes": [
13746	//     "https://www.googleapis.com/auth/drive",
13747	//     "https://www.googleapis.com/auth/drive.file",
13748	//     "https://www.googleapis.com/auth/spreadsheets"
13749	//   ]
13750	// }
13751
13752}
13753
13754// method id "sheets.spreadsheets.values.batchUpdateByDataFilter":
13755
13756type SpreadsheetsValuesBatchUpdateByDataFilterCall struct {
13757	s                                    *Service
13758	spreadsheetId                        string
13759	batchupdatevaluesbydatafilterrequest *BatchUpdateValuesByDataFilterRequest
13760	urlParams_                           gensupport.URLParams
13761	ctx_                                 context.Context
13762	header_                              http.Header
13763}
13764
13765// BatchUpdateByDataFilter: Sets values in one or more ranges of a
13766// spreadsheet. The caller must specify the spreadsheet ID, a
13767// valueInputOption, and one or more DataFilterValueRanges.
13768func (r *SpreadsheetsValuesService) BatchUpdateByDataFilter(spreadsheetId string, batchupdatevaluesbydatafilterrequest *BatchUpdateValuesByDataFilterRequest) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
13769	c := &SpreadsheetsValuesBatchUpdateByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13770	c.spreadsheetId = spreadsheetId
13771	c.batchupdatevaluesbydatafilterrequest = batchupdatevaluesbydatafilterrequest
13772	return c
13773}
13774
13775// Fields allows partial responses to be retrieved. See
13776// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13777// for more information.
13778func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
13779	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13780	return c
13781}
13782
13783// Context sets the context to be used in this call's Do method. Any
13784// pending HTTP request will be aborted if the provided context is
13785// canceled.
13786func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
13787	c.ctx_ = ctx
13788	return c
13789}
13790
13791// Header returns an http.Header that can be modified by the caller to
13792// add HTTP headers to the request.
13793func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Header() http.Header {
13794	if c.header_ == nil {
13795		c.header_ = make(http.Header)
13796	}
13797	return c.header_
13798}
13799
13800func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) doRequest(alt string) (*http.Response, error) {
13801	reqHeaders := make(http.Header)
13802	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
13803	for k, v := range c.header_ {
13804		reqHeaders[k] = v
13805	}
13806	reqHeaders.Set("User-Agent", c.s.userAgent())
13807	var body io.Reader = nil
13808	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatevaluesbydatafilterrequest)
13809	if err != nil {
13810		return nil, err
13811	}
13812	reqHeaders.Set("Content-Type", "application/json")
13813	c.urlParams_.Set("alt", alt)
13814	c.urlParams_.Set("prettyPrint", "false")
13815	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter")
13816	urls += "?" + c.urlParams_.Encode()
13817	req, err := http.NewRequest("POST", urls, body)
13818	if err != nil {
13819		return nil, err
13820	}
13821	req.Header = reqHeaders
13822	googleapi.Expand(req.URL, map[string]string{
13823		"spreadsheetId": c.spreadsheetId,
13824	})
13825	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13826}
13827
13828// Do executes the "sheets.spreadsheets.values.batchUpdateByDataFilter" call.
13829// Exactly one of *BatchUpdateValuesByDataFilterResponse or error will
13830// be non-nil. Any non-2xx status code is an error. Response headers are
13831// in either
13832// *BatchUpdateValuesByDataFilterResponse.ServerResponse.Header or (if a
13833// response was returned at all) in error.(*googleapi.Error).Header. Use
13834// googleapi.IsNotModified to check whether the returned error was
13835// because http.StatusNotModified was returned.
13836func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchUpdateValuesByDataFilterResponse, error) {
13837	gensupport.SetOptions(c.urlParams_, opts...)
13838	res, err := c.doRequest("json")
13839	if res != nil && res.StatusCode == http.StatusNotModified {
13840		if res.Body != nil {
13841			res.Body.Close()
13842		}
13843		return nil, &googleapi.Error{
13844			Code:   res.StatusCode,
13845			Header: res.Header,
13846		}
13847	}
13848	if err != nil {
13849		return nil, err
13850	}
13851	defer googleapi.CloseBody(res)
13852	if err := googleapi.CheckResponse(res); err != nil {
13853		return nil, err
13854	}
13855	ret := &BatchUpdateValuesByDataFilterResponse{
13856		ServerResponse: googleapi.ServerResponse{
13857			Header:         res.Header,
13858			HTTPStatusCode: res.StatusCode,
13859		},
13860	}
13861	target := &ret
13862	if err := gensupport.DecodeResponse(target, res); err != nil {
13863		return nil, err
13864	}
13865	return ret, nil
13866	// {
13867	//   "description": "Sets values in one or more ranges of a spreadsheet. The caller must specify the spreadsheet ID, a valueInputOption, and one or more DataFilterValueRanges.",
13868	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter",
13869	//   "httpMethod": "POST",
13870	//   "id": "sheets.spreadsheets.values.batchUpdateByDataFilter",
13871	//   "parameterOrder": [
13872	//     "spreadsheetId"
13873	//   ],
13874	//   "parameters": {
13875	//     "spreadsheetId": {
13876	//       "description": "The ID of the spreadsheet to update.",
13877	//       "location": "path",
13878	//       "required": true,
13879	//       "type": "string"
13880	//     }
13881	//   },
13882	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter",
13883	//   "request": {
13884	//     "$ref": "BatchUpdateValuesByDataFilterRequest"
13885	//   },
13886	//   "response": {
13887	//     "$ref": "BatchUpdateValuesByDataFilterResponse"
13888	//   },
13889	//   "scopes": [
13890	//     "https://www.googleapis.com/auth/drive",
13891	//     "https://www.googleapis.com/auth/drive.file",
13892	//     "https://www.googleapis.com/auth/spreadsheets"
13893	//   ]
13894	// }
13895
13896}
13897
13898// method id "sheets.spreadsheets.values.clear":
13899
13900type SpreadsheetsValuesClearCall struct {
13901	s                  *Service
13902	spreadsheetId      string
13903	range_             string
13904	clearvaluesrequest *ClearValuesRequest
13905	urlParams_         gensupport.URLParams
13906	ctx_               context.Context
13907	header_            http.Header
13908}
13909
13910// Clear: Clears values from a spreadsheet. The caller must specify the
13911// spreadsheet ID and range. Only values are cleared -- all other
13912// properties of the cell (such as formatting, data validation, etc..)
13913// are kept.
13914func (r *SpreadsheetsValuesService) Clear(spreadsheetId string, range_ string, clearvaluesrequest *ClearValuesRequest) *SpreadsheetsValuesClearCall {
13915	c := &SpreadsheetsValuesClearCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13916	c.spreadsheetId = spreadsheetId
13917	c.range_ = range_
13918	c.clearvaluesrequest = clearvaluesrequest
13919	return c
13920}
13921
13922// Fields allows partial responses to be retrieved. See
13923// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13924// for more information.
13925func (c *SpreadsheetsValuesClearCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesClearCall {
13926	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13927	return c
13928}
13929
13930// Context sets the context to be used in this call's Do method. Any
13931// pending HTTP request will be aborted if the provided context is
13932// canceled.
13933func (c *SpreadsheetsValuesClearCall) Context(ctx context.Context) *SpreadsheetsValuesClearCall {
13934	c.ctx_ = ctx
13935	return c
13936}
13937
13938// Header returns an http.Header that can be modified by the caller to
13939// add HTTP headers to the request.
13940func (c *SpreadsheetsValuesClearCall) Header() http.Header {
13941	if c.header_ == nil {
13942		c.header_ = make(http.Header)
13943	}
13944	return c.header_
13945}
13946
13947func (c *SpreadsheetsValuesClearCall) doRequest(alt string) (*http.Response, error) {
13948	reqHeaders := make(http.Header)
13949	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
13950	for k, v := range c.header_ {
13951		reqHeaders[k] = v
13952	}
13953	reqHeaders.Set("User-Agent", c.s.userAgent())
13954	var body io.Reader = nil
13955	body, err := googleapi.WithoutDataWrapper.JSONReader(c.clearvaluesrequest)
13956	if err != nil {
13957		return nil, err
13958	}
13959	reqHeaders.Set("Content-Type", "application/json")
13960	c.urlParams_.Set("alt", alt)
13961	c.urlParams_.Set("prettyPrint", "false")
13962	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}:clear")
13963	urls += "?" + c.urlParams_.Encode()
13964	req, err := http.NewRequest("POST", urls, body)
13965	if err != nil {
13966		return nil, err
13967	}
13968	req.Header = reqHeaders
13969	googleapi.Expand(req.URL, map[string]string{
13970		"spreadsheetId": c.spreadsheetId,
13971		"range":         c.range_,
13972	})
13973	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13974}
13975
13976// Do executes the "sheets.spreadsheets.values.clear" call.
13977// Exactly one of *ClearValuesResponse or error will be non-nil. Any
13978// non-2xx status code is an error. Response headers are in either
13979// *ClearValuesResponse.ServerResponse.Header or (if a response was
13980// returned at all) in error.(*googleapi.Error).Header. Use
13981// googleapi.IsNotModified to check whether the returned error was
13982// because http.StatusNotModified was returned.
13983func (c *SpreadsheetsValuesClearCall) Do(opts ...googleapi.CallOption) (*ClearValuesResponse, error) {
13984	gensupport.SetOptions(c.urlParams_, opts...)
13985	res, err := c.doRequest("json")
13986	if res != nil && res.StatusCode == http.StatusNotModified {
13987		if res.Body != nil {
13988			res.Body.Close()
13989		}
13990		return nil, &googleapi.Error{
13991			Code:   res.StatusCode,
13992			Header: res.Header,
13993		}
13994	}
13995	if err != nil {
13996		return nil, err
13997	}
13998	defer googleapi.CloseBody(res)
13999	if err := googleapi.CheckResponse(res); err != nil {
14000		return nil, err
14001	}
14002	ret := &ClearValuesResponse{
14003		ServerResponse: googleapi.ServerResponse{
14004			Header:         res.Header,
14005			HTTPStatusCode: res.StatusCode,
14006		},
14007	}
14008	target := &ret
14009	if err := gensupport.DecodeResponse(target, res); err != nil {
14010		return nil, err
14011	}
14012	return ret, nil
14013	// {
14014	//   "description": "Clears values from a spreadsheet. The caller must specify the spreadsheet ID and range. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.",
14015	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear",
14016	//   "httpMethod": "POST",
14017	//   "id": "sheets.spreadsheets.values.clear",
14018	//   "parameterOrder": [
14019	//     "spreadsheetId",
14020	//     "range"
14021	//   ],
14022	//   "parameters": {
14023	//     "range": {
14024	//       "description": "The A1 notation of the values to clear.",
14025	//       "location": "path",
14026	//       "required": true,
14027	//       "type": "string"
14028	//     },
14029	//     "spreadsheetId": {
14030	//       "description": "The ID of the spreadsheet to update.",
14031	//       "location": "path",
14032	//       "required": true,
14033	//       "type": "string"
14034	//     }
14035	//   },
14036	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear",
14037	//   "request": {
14038	//     "$ref": "ClearValuesRequest"
14039	//   },
14040	//   "response": {
14041	//     "$ref": "ClearValuesResponse"
14042	//   },
14043	//   "scopes": [
14044	//     "https://www.googleapis.com/auth/drive",
14045	//     "https://www.googleapis.com/auth/drive.file",
14046	//     "https://www.googleapis.com/auth/spreadsheets"
14047	//   ]
14048	// }
14049
14050}
14051
14052// method id "sheets.spreadsheets.values.get":
14053
14054type SpreadsheetsValuesGetCall struct {
14055	s             *Service
14056	spreadsheetId string
14057	range_        string
14058	urlParams_    gensupport.URLParams
14059	ifNoneMatch_  string
14060	ctx_          context.Context
14061	header_       http.Header
14062}
14063
14064// Get: Returns a range of values from a spreadsheet. The caller must
14065// specify the spreadsheet ID and a range.
14066func (r *SpreadsheetsValuesService) Get(spreadsheetId string, range_ string) *SpreadsheetsValuesGetCall {
14067	c := &SpreadsheetsValuesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14068	c.spreadsheetId = spreadsheetId
14069	c.range_ = range_
14070	return c
14071}
14072
14073// DateTimeRenderOption sets the optional parameter
14074// "dateTimeRenderOption": How dates, times, and durations should be
14075// represented in the output. This is ignored if value_render_option is
14076// FORMATTED_VALUE. The default dateTime render option is
14077// [DateTimeRenderOption.SERIAL_NUMBER].
14078//
14079// Possible values:
14080//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
14081// fields to be output as doubles in "serial number" format, as
14082// popularized by Lotus 1-2-3. The whole number portion of the value
14083// (left of the decimal) counts the days since December 30th 1899. The
14084// fractional portion (right of the decimal) counts the time as a
14085// fraction of the day. For example, January 1st 1900 at noon would be
14086// 2.5, 2 because it's 2 days after December 30st 1899, and .5 because
14087// noon is half a day. February 1st 1900 at 3pm would be 33.625. This
14088// correctly treats the year 1900 as not a leap year.
14089//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
14090// fields to be output as strings in their given number format (which is
14091// dependent on the spreadsheet locale).
14092func (c *SpreadsheetsValuesGetCall) DateTimeRenderOption(dateTimeRenderOption string) *SpreadsheetsValuesGetCall {
14093	c.urlParams_.Set("dateTimeRenderOption", dateTimeRenderOption)
14094	return c
14095}
14096
14097// MajorDimension sets the optional parameter "majorDimension": The
14098// major dimension that results should use. For example, if the
14099// spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting
14100// `range=A1:B2,majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas
14101// requesting `range=A1:B2,majorDimension=COLUMNS` returns
14102// `[[1,3],[2,4]]`.
14103//
14104// Possible values:
14105//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
14106//   "ROWS" - Operates on the rows of a sheet.
14107//   "COLUMNS" - Operates on the columns of a sheet.
14108func (c *SpreadsheetsValuesGetCall) MajorDimension(majorDimension string) *SpreadsheetsValuesGetCall {
14109	c.urlParams_.Set("majorDimension", majorDimension)
14110	return c
14111}
14112
14113// ValueRenderOption sets the optional parameter "valueRenderOption":
14114// How values should be represented in the output. The default render
14115// option is ValueRenderOption.FORMATTED_VALUE.
14116//
14117// Possible values:
14118//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
14119// reply according to the cell's formatting. Formatting is based on the
14120// spreadsheet's locale, not the requesting user's locale. For example,
14121// if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then
14122// `A2` would return "$1.23".
14123//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
14124// in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and
14125// formatted as currency, then `A2` would return the number `1.23`.
14126//   "FORMULA" - Values will not be calculated. The reply will include
14127// the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and
14128// formatted as currency, then A2 would return "=A1".
14129func (c *SpreadsheetsValuesGetCall) ValueRenderOption(valueRenderOption string) *SpreadsheetsValuesGetCall {
14130	c.urlParams_.Set("valueRenderOption", valueRenderOption)
14131	return c
14132}
14133
14134// Fields allows partial responses to be retrieved. See
14135// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14136// for more information.
14137func (c *SpreadsheetsValuesGetCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesGetCall {
14138	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14139	return c
14140}
14141
14142// IfNoneMatch sets the optional parameter which makes the operation
14143// fail if the object's ETag matches the given value. This is useful for
14144// getting updates only after the object has changed since the last
14145// request. Use googleapi.IsNotModified to check whether the response
14146// error from Do is the result of In-None-Match.
14147func (c *SpreadsheetsValuesGetCall) IfNoneMatch(entityTag string) *SpreadsheetsValuesGetCall {
14148	c.ifNoneMatch_ = entityTag
14149	return c
14150}
14151
14152// Context sets the context to be used in this call's Do method. Any
14153// pending HTTP request will be aborted if the provided context is
14154// canceled.
14155func (c *SpreadsheetsValuesGetCall) Context(ctx context.Context) *SpreadsheetsValuesGetCall {
14156	c.ctx_ = ctx
14157	return c
14158}
14159
14160// Header returns an http.Header that can be modified by the caller to
14161// add HTTP headers to the request.
14162func (c *SpreadsheetsValuesGetCall) Header() http.Header {
14163	if c.header_ == nil {
14164		c.header_ = make(http.Header)
14165	}
14166	return c.header_
14167}
14168
14169func (c *SpreadsheetsValuesGetCall) doRequest(alt string) (*http.Response, error) {
14170	reqHeaders := make(http.Header)
14171	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
14172	for k, v := range c.header_ {
14173		reqHeaders[k] = v
14174	}
14175	reqHeaders.Set("User-Agent", c.s.userAgent())
14176	if c.ifNoneMatch_ != "" {
14177		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14178	}
14179	var body io.Reader = nil
14180	c.urlParams_.Set("alt", alt)
14181	c.urlParams_.Set("prettyPrint", "false")
14182	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}")
14183	urls += "?" + c.urlParams_.Encode()
14184	req, err := http.NewRequest("GET", urls, body)
14185	if err != nil {
14186		return nil, err
14187	}
14188	req.Header = reqHeaders
14189	googleapi.Expand(req.URL, map[string]string{
14190		"spreadsheetId": c.spreadsheetId,
14191		"range":         c.range_,
14192	})
14193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14194}
14195
14196// Do executes the "sheets.spreadsheets.values.get" call.
14197// Exactly one of *ValueRange or error will be non-nil. Any non-2xx
14198// status code is an error. Response headers are in either
14199// *ValueRange.ServerResponse.Header or (if a response was returned at
14200// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14201// to check whether the returned error was because
14202// http.StatusNotModified was returned.
14203func (c *SpreadsheetsValuesGetCall) Do(opts ...googleapi.CallOption) (*ValueRange, error) {
14204	gensupport.SetOptions(c.urlParams_, opts...)
14205	res, err := c.doRequest("json")
14206	if res != nil && res.StatusCode == http.StatusNotModified {
14207		if res.Body != nil {
14208			res.Body.Close()
14209		}
14210		return nil, &googleapi.Error{
14211			Code:   res.StatusCode,
14212			Header: res.Header,
14213		}
14214	}
14215	if err != nil {
14216		return nil, err
14217	}
14218	defer googleapi.CloseBody(res)
14219	if err := googleapi.CheckResponse(res); err != nil {
14220		return nil, err
14221	}
14222	ret := &ValueRange{
14223		ServerResponse: googleapi.ServerResponse{
14224			Header:         res.Header,
14225			HTTPStatusCode: res.StatusCode,
14226		},
14227	}
14228	target := &ret
14229	if err := gensupport.DecodeResponse(target, res); err != nil {
14230		return nil, err
14231	}
14232	return ret, nil
14233	// {
14234	//   "description": "Returns a range of values from a spreadsheet. The caller must specify the spreadsheet ID and a range.",
14235	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}",
14236	//   "httpMethod": "GET",
14237	//   "id": "sheets.spreadsheets.values.get",
14238	//   "parameterOrder": [
14239	//     "spreadsheetId",
14240	//     "range"
14241	//   ],
14242	//   "parameters": {
14243	//     "dateTimeRenderOption": {
14244	//       "description": "How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].",
14245	//       "enum": [
14246	//         "SERIAL_NUMBER",
14247	//         "FORMATTED_STRING"
14248	//       ],
14249	//       "enumDescriptions": [
14250	//         "Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30st 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.",
14251	//         "Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which is dependent on the spreadsheet locale)."
14252	//       ],
14253	//       "location": "query",
14254	//       "type": "string"
14255	//     },
14256	//     "majorDimension": {
14257	//       "description": "The major dimension that results should use. For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=A1:B2,majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas requesting `range=A1:B2,majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.",
14258	//       "enum": [
14259	//         "DIMENSION_UNSPECIFIED",
14260	//         "ROWS",
14261	//         "COLUMNS"
14262	//       ],
14263	//       "enumDescriptions": [
14264	//         "The default value, do not use.",
14265	//         "Operates on the rows of a sheet.",
14266	//         "Operates on the columns of a sheet."
14267	//       ],
14268	//       "location": "query",
14269	//       "type": "string"
14270	//     },
14271	//     "range": {
14272	//       "description": "The A1 notation of the values to retrieve.",
14273	//       "location": "path",
14274	//       "required": true,
14275	//       "type": "string"
14276	//     },
14277	//     "spreadsheetId": {
14278	//       "description": "The ID of the spreadsheet to retrieve data from.",
14279	//       "location": "path",
14280	//       "required": true,
14281	//       "type": "string"
14282	//     },
14283	//     "valueRenderOption": {
14284	//       "description": "How values should be represented in the output. The default render option is ValueRenderOption.FORMATTED_VALUE.",
14285	//       "enum": [
14286	//         "FORMATTED_VALUE",
14287	//         "UNFORMATTED_VALUE",
14288	//         "FORMULA"
14289	//       ],
14290	//       "enumDescriptions": [
14291	//         "Values will be calculated \u0026 formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.",
14292	//         "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.",
14293	//         "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`."
14294	//       ],
14295	//       "location": "query",
14296	//       "type": "string"
14297	//     }
14298	//   },
14299	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}",
14300	//   "response": {
14301	//     "$ref": "ValueRange"
14302	//   },
14303	//   "scopes": [
14304	//     "https://www.googleapis.com/auth/drive",
14305	//     "https://www.googleapis.com/auth/drive.file",
14306	//     "https://www.googleapis.com/auth/drive.readonly",
14307	//     "https://www.googleapis.com/auth/spreadsheets",
14308	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
14309	//   ]
14310	// }
14311
14312}
14313
14314// method id "sheets.spreadsheets.values.update":
14315
14316type SpreadsheetsValuesUpdateCall struct {
14317	s             *Service
14318	spreadsheetId string
14319	range_        string
14320	valuerange    *ValueRange
14321	urlParams_    gensupport.URLParams
14322	ctx_          context.Context
14323	header_       http.Header
14324}
14325
14326// Update: Sets values in a range of a spreadsheet. The caller must
14327// specify the spreadsheet ID, range, and a valueInputOption.
14328func (r *SpreadsheetsValuesService) Update(spreadsheetId string, range_ string, valuerange *ValueRange) *SpreadsheetsValuesUpdateCall {
14329	c := &SpreadsheetsValuesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14330	c.spreadsheetId = spreadsheetId
14331	c.range_ = range_
14332	c.valuerange = valuerange
14333	return c
14334}
14335
14336// IncludeValuesInResponse sets the optional parameter
14337// "includeValuesInResponse": Determines if the update response should
14338// include the values of the cells that were updated. By default,
14339// responses do not include the updated values. If the range to write
14340// was larger than the range actually written, the response includes all
14341// values in the requested range (excluding trailing empty rows and
14342// columns).
14343func (c *SpreadsheetsValuesUpdateCall) IncludeValuesInResponse(includeValuesInResponse bool) *SpreadsheetsValuesUpdateCall {
14344	c.urlParams_.Set("includeValuesInResponse", fmt.Sprint(includeValuesInResponse))
14345	return c
14346}
14347
14348// ResponseDateTimeRenderOption sets the optional parameter
14349// "responseDateTimeRenderOption": Determines how dates, times, and
14350// durations in the response should be rendered. This is ignored if
14351// response_value_render_option is FORMATTED_VALUE. The default dateTime
14352// render option is DateTimeRenderOption.SERIAL_NUMBER.
14353//
14354// Possible values:
14355//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
14356// fields to be output as doubles in "serial number" format, as
14357// popularized by Lotus 1-2-3. The whole number portion of the value
14358// (left of the decimal) counts the days since December 30th 1899. The
14359// fractional portion (right of the decimal) counts the time as a
14360// fraction of the day. For example, January 1st 1900 at noon would be
14361// 2.5, 2 because it's 2 days after December 30st 1899, and .5 because
14362// noon is half a day. February 1st 1900 at 3pm would be 33.625. This
14363// correctly treats the year 1900 as not a leap year.
14364//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
14365// fields to be output as strings in their given number format (which is
14366// dependent on the spreadsheet locale).
14367func (c *SpreadsheetsValuesUpdateCall) ResponseDateTimeRenderOption(responseDateTimeRenderOption string) *SpreadsheetsValuesUpdateCall {
14368	c.urlParams_.Set("responseDateTimeRenderOption", responseDateTimeRenderOption)
14369	return c
14370}
14371
14372// ResponseValueRenderOption sets the optional parameter
14373// "responseValueRenderOption": Determines how values in the response
14374// should be rendered. The default render option is
14375// ValueRenderOption.FORMATTED_VALUE.
14376//
14377// Possible values:
14378//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
14379// reply according to the cell's formatting. Formatting is based on the
14380// spreadsheet's locale, not the requesting user's locale. For example,
14381// if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then
14382// `A2` would return "$1.23".
14383//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
14384// in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and
14385// formatted as currency, then `A2` would return the number `1.23`.
14386//   "FORMULA" - Values will not be calculated. The reply will include
14387// the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and
14388// formatted as currency, then A2 would return "=A1".
14389func (c *SpreadsheetsValuesUpdateCall) ResponseValueRenderOption(responseValueRenderOption string) *SpreadsheetsValuesUpdateCall {
14390	c.urlParams_.Set("responseValueRenderOption", responseValueRenderOption)
14391	return c
14392}
14393
14394// ValueInputOption sets the optional parameter "valueInputOption": How
14395// the input data should be interpreted.
14396//
14397// Possible values:
14398//   "INPUT_VALUE_OPTION_UNSPECIFIED" - Default input value. This value
14399// must not be used.
14400//   "RAW" - The values the user has entered will not be parsed and will
14401// be stored as-is.
14402//   "USER_ENTERED" - The values will be parsed as if the user typed
14403// them into the UI. Numbers will stay as numbers, but strings may be
14404// converted to numbers, dates, etc. following the same rules that are
14405// applied when entering text into a cell via the Google Sheets UI.
14406func (c *SpreadsheetsValuesUpdateCall) ValueInputOption(valueInputOption string) *SpreadsheetsValuesUpdateCall {
14407	c.urlParams_.Set("valueInputOption", valueInputOption)
14408	return c
14409}
14410
14411// Fields allows partial responses to be retrieved. See
14412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14413// for more information.
14414func (c *SpreadsheetsValuesUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesUpdateCall {
14415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14416	return c
14417}
14418
14419// Context sets the context to be used in this call's Do method. Any
14420// pending HTTP request will be aborted if the provided context is
14421// canceled.
14422func (c *SpreadsheetsValuesUpdateCall) Context(ctx context.Context) *SpreadsheetsValuesUpdateCall {
14423	c.ctx_ = ctx
14424	return c
14425}
14426
14427// Header returns an http.Header that can be modified by the caller to
14428// add HTTP headers to the request.
14429func (c *SpreadsheetsValuesUpdateCall) Header() http.Header {
14430	if c.header_ == nil {
14431		c.header_ = make(http.Header)
14432	}
14433	return c.header_
14434}
14435
14436func (c *SpreadsheetsValuesUpdateCall) doRequest(alt string) (*http.Response, error) {
14437	reqHeaders := make(http.Header)
14438	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201124")
14439	for k, v := range c.header_ {
14440		reqHeaders[k] = v
14441	}
14442	reqHeaders.Set("User-Agent", c.s.userAgent())
14443	var body io.Reader = nil
14444	body, err := googleapi.WithoutDataWrapper.JSONReader(c.valuerange)
14445	if err != nil {
14446		return nil, err
14447	}
14448	reqHeaders.Set("Content-Type", "application/json")
14449	c.urlParams_.Set("alt", alt)
14450	c.urlParams_.Set("prettyPrint", "false")
14451	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}")
14452	urls += "?" + c.urlParams_.Encode()
14453	req, err := http.NewRequest("PUT", urls, body)
14454	if err != nil {
14455		return nil, err
14456	}
14457	req.Header = reqHeaders
14458	googleapi.Expand(req.URL, map[string]string{
14459		"spreadsheetId": c.spreadsheetId,
14460		"range":         c.range_,
14461	})
14462	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14463}
14464
14465// Do executes the "sheets.spreadsheets.values.update" call.
14466// Exactly one of *UpdateValuesResponse or error will be non-nil. Any
14467// non-2xx status code is an error. Response headers are in either
14468// *UpdateValuesResponse.ServerResponse.Header or (if a response was
14469// returned at all) in error.(*googleapi.Error).Header. Use
14470// googleapi.IsNotModified to check whether the returned error was
14471// because http.StatusNotModified was returned.
14472func (c *SpreadsheetsValuesUpdateCall) Do(opts ...googleapi.CallOption) (*UpdateValuesResponse, error) {
14473	gensupport.SetOptions(c.urlParams_, opts...)
14474	res, err := c.doRequest("json")
14475	if res != nil && res.StatusCode == http.StatusNotModified {
14476		if res.Body != nil {
14477			res.Body.Close()
14478		}
14479		return nil, &googleapi.Error{
14480			Code:   res.StatusCode,
14481			Header: res.Header,
14482		}
14483	}
14484	if err != nil {
14485		return nil, err
14486	}
14487	defer googleapi.CloseBody(res)
14488	if err := googleapi.CheckResponse(res); err != nil {
14489		return nil, err
14490	}
14491	ret := &UpdateValuesResponse{
14492		ServerResponse: googleapi.ServerResponse{
14493			Header:         res.Header,
14494			HTTPStatusCode: res.StatusCode,
14495		},
14496	}
14497	target := &ret
14498	if err := gensupport.DecodeResponse(target, res); err != nil {
14499		return nil, err
14500	}
14501	return ret, nil
14502	// {
14503	//   "description": "Sets values in a range of a spreadsheet. The caller must specify the spreadsheet ID, range, and a valueInputOption.",
14504	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}",
14505	//   "httpMethod": "PUT",
14506	//   "id": "sheets.spreadsheets.values.update",
14507	//   "parameterOrder": [
14508	//     "spreadsheetId",
14509	//     "range"
14510	//   ],
14511	//   "parameters": {
14512	//     "includeValuesInResponse": {
14513	//       "description": "Determines if the update response should include the values of the cells that were updated. By default, responses do not include the updated values. If the range to write was larger than the range actually written, the response includes all values in the requested range (excluding trailing empty rows and columns).",
14514	//       "location": "query",
14515	//       "type": "boolean"
14516	//     },
14517	//     "range": {
14518	//       "description": "The A1 notation of the values to update.",
14519	//       "location": "path",
14520	//       "required": true,
14521	//       "type": "string"
14522	//     },
14523	//     "responseDateTimeRenderOption": {
14524	//       "description": "Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default dateTime render option is DateTimeRenderOption.SERIAL_NUMBER.",
14525	//       "enum": [
14526	//         "SERIAL_NUMBER",
14527	//         "FORMATTED_STRING"
14528	//       ],
14529	//       "enumDescriptions": [
14530	//         "Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30st 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.",
14531	//         "Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which is dependent on the spreadsheet locale)."
14532	//       ],
14533	//       "location": "query",
14534	//       "type": "string"
14535	//     },
14536	//     "responseValueRenderOption": {
14537	//       "description": "Determines how values in the response should be rendered. The default render option is ValueRenderOption.FORMATTED_VALUE.",
14538	//       "enum": [
14539	//         "FORMATTED_VALUE",
14540	//         "UNFORMATTED_VALUE",
14541	//         "FORMULA"
14542	//       ],
14543	//       "enumDescriptions": [
14544	//         "Values will be calculated \u0026 formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.",
14545	//         "Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.",
14546	//         "Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`."
14547	//       ],
14548	//       "location": "query",
14549	//       "type": "string"
14550	//     },
14551	//     "spreadsheetId": {
14552	//       "description": "The ID of the spreadsheet to update.",
14553	//       "location": "path",
14554	//       "required": true,
14555	//       "type": "string"
14556	//     },
14557	//     "valueInputOption": {
14558	//       "description": "How the input data should be interpreted.",
14559	//       "enum": [
14560	//         "INPUT_VALUE_OPTION_UNSPECIFIED",
14561	//         "RAW",
14562	//         "USER_ENTERED"
14563	//       ],
14564	//       "enumDescriptions": [
14565	//         "Default input value. This value must not be used.",
14566	//         "The values the user has entered will not be parsed and will be stored as-is.",
14567	//         "The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI."
14568	//       ],
14569	//       "location": "query",
14570	//       "type": "string"
14571	//     }
14572	//   },
14573	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}",
14574	//   "request": {
14575	//     "$ref": "ValueRange"
14576	//   },
14577	//   "response": {
14578	//     "$ref": "UpdateValuesResponse"
14579	//   },
14580	//   "scopes": [
14581	//     "https://www.googleapis.com/auth/drive",
14582	//     "https://www.googleapis.com/auth/drive.file",
14583	//     "https://www.googleapis.com/auth/spreadsheets"
14584	//   ]
14585	// }
14586
14587}
14588