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
207	// field is optional; if one is not set, an id will be randomly
208	// generated. (It
209	// is an error to specify the ID of a range that already exists.)
210	BandedRange *BandedRange `json:"bandedRange,omitempty"`
211
212	// ForceSendFields is a list of field names (e.g. "BandedRange") to
213	// unconditionally include in API requests. By default, fields with
214	// empty values are omitted from API requests. However, any non-pointer,
215	// non-interface field appearing in ForceSendFields will be sent to the
216	// server regardless of whether the field is empty or not. This may be
217	// used to include empty fields in Patch requests.
218	ForceSendFields []string `json:"-"`
219
220	// NullFields is a list of field names (e.g. "BandedRange") to include
221	// in API requests with the JSON null value. By default, fields with
222	// empty values are omitted from API requests. However, any field with
223	// an empty value appearing in NullFields will be sent to the server as
224	// null. It is an error if a field in this list has a non-empty value.
225	// This may be used to include null fields in Patch requests.
226	NullFields []string `json:"-"`
227}
228
229func (s *AddBandingRequest) MarshalJSON() ([]byte, error) {
230	type NoMethod AddBandingRequest
231	raw := NoMethod(*s)
232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
233}
234
235// AddBandingResponse: The result of adding a banded range.
236type AddBandingResponse struct {
237	// BandedRange: The banded range that was added.
238	BandedRange *BandedRange `json:"bandedRange,omitempty"`
239
240	// ForceSendFields is a list of field names (e.g. "BandedRange") to
241	// unconditionally include in API requests. By default, fields with
242	// empty values are omitted from API requests. However, any non-pointer,
243	// non-interface field appearing in ForceSendFields will be sent to the
244	// server regardless of whether the field is empty or not. This may be
245	// used to include empty fields in Patch requests.
246	ForceSendFields []string `json:"-"`
247
248	// NullFields is a list of field names (e.g. "BandedRange") to include
249	// in API requests with the JSON null value. By default, fields with
250	// empty values are omitted from API requests. However, any field with
251	// an empty value appearing in NullFields will be sent to the server as
252	// null. It is an error if a field in this list has a non-empty value.
253	// This may be used to include null fields in Patch requests.
254	NullFields []string `json:"-"`
255}
256
257func (s *AddBandingResponse) MarshalJSON() ([]byte, error) {
258	type NoMethod AddBandingResponse
259	raw := NoMethod(*s)
260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
261}
262
263// AddChartRequest: Adds a chart to a sheet in the spreadsheet.
264type AddChartRequest struct {
265	// Chart: The chart that should be added to the spreadsheet, including
266	// the position
267	// where it should be placed. The chartId
268	// field is optional; if one is not set, an id will be randomly
269	// generated. (It
270	// is an error to specify the ID of an embedded object that already
271	// exists.)
272	Chart *EmbeddedChart `json:"chart,omitempty"`
273
274	// ForceSendFields is a list of field names (e.g. "Chart") to
275	// unconditionally include in API requests. By default, fields with
276	// empty values are omitted from API requests. However, any non-pointer,
277	// non-interface field appearing in ForceSendFields will be sent to the
278	// server regardless of whether the field is empty or not. This may be
279	// used to include empty fields in Patch requests.
280	ForceSendFields []string `json:"-"`
281
282	// NullFields is a list of field names (e.g. "Chart") to include in API
283	// requests with the JSON null value. By default, fields with empty
284	// values are omitted from API requests. However, any field with an
285	// empty value appearing in NullFields will be sent to the server as
286	// null. It is an error if a field in this list has a non-empty value.
287	// This may be used to include null fields in Patch requests.
288	NullFields []string `json:"-"`
289}
290
291func (s *AddChartRequest) MarshalJSON() ([]byte, error) {
292	type NoMethod AddChartRequest
293	raw := NoMethod(*s)
294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
295}
296
297// AddChartResponse: The result of adding a chart to a spreadsheet.
298type AddChartResponse struct {
299	// Chart: The newly added chart.
300	Chart *EmbeddedChart `json:"chart,omitempty"`
301
302	// ForceSendFields is a list of field names (e.g. "Chart") to
303	// unconditionally include in API requests. By default, fields with
304	// empty values are omitted from API requests. However, any non-pointer,
305	// non-interface field appearing in ForceSendFields will be sent to the
306	// server regardless of whether the field is empty or not. This may be
307	// used to include empty fields in Patch requests.
308	ForceSendFields []string `json:"-"`
309
310	// NullFields is a list of field names (e.g. "Chart") to include in API
311	// requests with the JSON null value. By default, fields with empty
312	// values are omitted from API requests. However, any field with an
313	// empty value appearing in NullFields will be sent to the server as
314	// null. It is an error if a field in this list has a non-empty value.
315	// This may be used to include null fields in Patch requests.
316	NullFields []string `json:"-"`
317}
318
319func (s *AddChartResponse) MarshalJSON() ([]byte, error) {
320	type NoMethod AddChartResponse
321	raw := NoMethod(*s)
322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
323}
324
325// AddConditionalFormatRuleRequest: Adds a new conditional format rule
326// at the given index.
327// All subsequent rules' indexes are incremented.
328type AddConditionalFormatRuleRequest struct {
329	// Index: The zero-based index where the rule should be inserted.
330	Index int64 `json:"index,omitempty"`
331
332	// Rule: The rule to add.
333	Rule *ConditionalFormatRule `json:"rule,omitempty"`
334
335	// ForceSendFields is a list of field names (e.g. "Index") to
336	// unconditionally include in API requests. By default, fields with
337	// empty values are omitted from API requests. However, any non-pointer,
338	// non-interface field appearing in ForceSendFields will be sent to the
339	// server regardless of whether the field is empty or not. This may be
340	// used to include empty fields in Patch requests.
341	ForceSendFields []string `json:"-"`
342
343	// NullFields is a list of field names (e.g. "Index") to include in API
344	// requests with the JSON null value. By default, fields with empty
345	// values are omitted from API requests. However, any field with an
346	// empty value appearing in NullFields will be sent to the server as
347	// null. It is an error if a field in this list has a non-empty value.
348	// This may be used to include null fields in Patch requests.
349	NullFields []string `json:"-"`
350}
351
352func (s *AddConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
353	type NoMethod AddConditionalFormatRuleRequest
354	raw := NoMethod(*s)
355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
356}
357
358// AddDimensionGroupRequest: Creates a group over the specified
359// range.
360//
361// If the requested range is a superset of the range of an existing
362// group G,
363// then the depth of G is incremented and this new group G' has
364// the
365// depth of that group. For example, a group [C:D, depth 1] + [B:E]
366// results in
367// groups [B:E, depth 1] and [C:D, depth 2].
368// If the requested range is a subset of the range of an existing group
369// G,
370// then the depth of the new group G' becomes one greater than the depth
371// of G.
372// For example, a group [B:E, depth 1] + [C:D] results in groups [B:E,
373// depth 1]
374// and [C:D, depth 2].
375// If the requested range starts before and ends within, or starts
376// within and
377// ends after, the range of an existing group G, then the range of the
378// existing
379// group G becomes the union of the ranges, and the new group G'
380// has
381// depth one greater than the depth of G and range as the intersection
382// of the
383// ranges. For example, a group [B:D, depth 1] + [C:E] results in groups
384// [B:E,
385// depth 1] and [C:D, depth 2].
386type AddDimensionGroupRequest struct {
387	// Range: The range over which to create a group.
388	Range *DimensionRange `json:"range,omitempty"`
389
390	// ForceSendFields is a list of field names (e.g. "Range") to
391	// unconditionally include in API requests. By default, fields with
392	// empty values are omitted from API requests. However, any non-pointer,
393	// non-interface field appearing in ForceSendFields will be sent to the
394	// server regardless of whether the field is empty or not. This may be
395	// used to include empty fields in Patch requests.
396	ForceSendFields []string `json:"-"`
397
398	// NullFields is a list of field names (e.g. "Range") to include in API
399	// requests with the JSON null value. By default, fields with empty
400	// values are omitted from API requests. However, any field with an
401	// empty value appearing in NullFields will be sent to the server as
402	// null. It is an error if a field in this list has a non-empty value.
403	// This may be used to include null fields in Patch requests.
404	NullFields []string `json:"-"`
405}
406
407func (s *AddDimensionGroupRequest) MarshalJSON() ([]byte, error) {
408	type NoMethod AddDimensionGroupRequest
409	raw := NoMethod(*s)
410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
411}
412
413// AddDimensionGroupResponse: The result of adding a group.
414type AddDimensionGroupResponse struct {
415	// DimensionGroups: All groups of a dimension after adding a group to
416	// that dimension.
417	DimensionGroups []*DimensionGroup `json:"dimensionGroups,omitempty"`
418
419	// ForceSendFields is a list of field names (e.g. "DimensionGroups") to
420	// unconditionally include in API requests. By default, fields with
421	// empty values are omitted from API requests. However, any non-pointer,
422	// non-interface field appearing in ForceSendFields will be sent to the
423	// server regardless of whether the field is empty or not. This may be
424	// used to include empty fields in Patch requests.
425	ForceSendFields []string `json:"-"`
426
427	// NullFields is a list of field names (e.g. "DimensionGroups") to
428	// include in API requests with the JSON null value. By default, fields
429	// with empty values are omitted from API requests. However, any field
430	// with an empty value appearing in NullFields will be sent to the
431	// server as null. It is an error if a field in this list has a
432	// non-empty value. This may be used to include null fields in Patch
433	// requests.
434	NullFields []string `json:"-"`
435}
436
437func (s *AddDimensionGroupResponse) MarshalJSON() ([]byte, error) {
438	type NoMethod AddDimensionGroupResponse
439	raw := NoMethod(*s)
440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
441}
442
443// AddFilterViewRequest: Adds a filter view.
444type AddFilterViewRequest struct {
445	// Filter: The filter to add. The filterViewId
446	// field is optional; if one is not set, an id will be randomly
447	// generated. (It
448	// is an error to specify the ID of a filter that already exists.)
449	Filter *FilterView `json:"filter,omitempty"`
450
451	// ForceSendFields is a list of field names (e.g. "Filter") to
452	// unconditionally include in API requests. By default, fields with
453	// empty values are omitted from API requests. However, any non-pointer,
454	// non-interface field appearing in ForceSendFields will be sent to the
455	// server regardless of whether the field is empty or not. This may be
456	// used to include empty fields in Patch requests.
457	ForceSendFields []string `json:"-"`
458
459	// NullFields is a list of field names (e.g. "Filter") to include in API
460	// requests with the JSON null value. By default, fields with empty
461	// values are omitted from API requests. However, any field with an
462	// empty value appearing in NullFields will be sent to the server as
463	// null. It is an error if a field in this list has a non-empty value.
464	// This may be used to include null fields in Patch requests.
465	NullFields []string `json:"-"`
466}
467
468func (s *AddFilterViewRequest) MarshalJSON() ([]byte, error) {
469	type NoMethod AddFilterViewRequest
470	raw := NoMethod(*s)
471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
472}
473
474// AddFilterViewResponse: The result of adding a filter view.
475type AddFilterViewResponse struct {
476	// Filter: The newly added filter view.
477	Filter *FilterView `json:"filter,omitempty"`
478
479	// ForceSendFields is a list of field names (e.g. "Filter") to
480	// unconditionally include in API requests. By default, fields with
481	// empty values are omitted from API requests. However, any non-pointer,
482	// non-interface field appearing in ForceSendFields will be sent to the
483	// server regardless of whether the field is empty or not. This may be
484	// used to include empty fields in Patch requests.
485	ForceSendFields []string `json:"-"`
486
487	// NullFields is a list of field names (e.g. "Filter") to include in API
488	// requests with the JSON null value. By default, fields with empty
489	// values are omitted from API requests. However, any field with an
490	// empty value appearing in NullFields will be sent to the server as
491	// null. It is an error if a field in this list has a non-empty value.
492	// This may be used to include null fields in Patch requests.
493	NullFields []string `json:"-"`
494}
495
496func (s *AddFilterViewResponse) MarshalJSON() ([]byte, error) {
497	type NoMethod AddFilterViewResponse
498	raw := NoMethod(*s)
499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
500}
501
502// AddNamedRangeRequest: Adds a named range to the spreadsheet.
503type AddNamedRangeRequest struct {
504	// NamedRange: The named range to add. The namedRangeId
505	// field is optional; if one is not set, an id will be randomly
506	// generated. (It
507	// is an error to specify the ID of a range that already exists.)
508	NamedRange *NamedRange `json:"namedRange,omitempty"`
509
510	// ForceSendFields is a list of field names (e.g. "NamedRange") to
511	// unconditionally include in API requests. By default, fields with
512	// empty values are omitted from API requests. However, any non-pointer,
513	// non-interface field appearing in ForceSendFields will be sent to the
514	// server regardless of whether the field is empty or not. This may be
515	// used to include empty fields in Patch requests.
516	ForceSendFields []string `json:"-"`
517
518	// NullFields is a list of field names (e.g. "NamedRange") to include in
519	// API requests with the JSON null value. By default, fields with empty
520	// values are omitted from API requests. However, any field with an
521	// empty value appearing in NullFields will be sent to the server as
522	// null. It is an error if a field in this list has a non-empty value.
523	// This may be used to include null fields in Patch requests.
524	NullFields []string `json:"-"`
525}
526
527func (s *AddNamedRangeRequest) MarshalJSON() ([]byte, error) {
528	type NoMethod AddNamedRangeRequest
529	raw := NoMethod(*s)
530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
531}
532
533// AddNamedRangeResponse: The result of adding a named range.
534type AddNamedRangeResponse struct {
535	// NamedRange: The named range to add.
536	NamedRange *NamedRange `json:"namedRange,omitempty"`
537
538	// ForceSendFields is a list of field names (e.g. "NamedRange") to
539	// unconditionally include in API requests. By default, fields with
540	// empty values are omitted from API requests. However, any non-pointer,
541	// non-interface field appearing in ForceSendFields will be sent to the
542	// server regardless of whether the field is empty or not. This may be
543	// used to include empty fields in Patch requests.
544	ForceSendFields []string `json:"-"`
545
546	// NullFields is a list of field names (e.g. "NamedRange") to include in
547	// API requests with the JSON null value. By default, fields with empty
548	// values are omitted from API requests. However, any field with an
549	// empty value appearing in NullFields will be sent to the server as
550	// null. It is an error if a field in this list has a non-empty value.
551	// This may be used to include null fields in Patch requests.
552	NullFields []string `json:"-"`
553}
554
555func (s *AddNamedRangeResponse) MarshalJSON() ([]byte, error) {
556	type NoMethod AddNamedRangeResponse
557	raw := NoMethod(*s)
558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
559}
560
561// AddProtectedRangeRequest: Adds a new protected range.
562type AddProtectedRangeRequest struct {
563	// ProtectedRange: The protected range to be added. The
564	// protectedRangeId field is optional; if
565	// one is not set, an id will be randomly generated. (It is an error
566	// to
567	// specify the ID of a range that already exists.)
568	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
569
570	// ForceSendFields is a list of field names (e.g. "ProtectedRange") to
571	// unconditionally include in API requests. By default, fields with
572	// empty values are omitted from API requests. However, any non-pointer,
573	// non-interface field appearing in ForceSendFields will be sent to the
574	// server regardless of whether the field is empty or not. This may be
575	// used to include empty fields in Patch requests.
576	ForceSendFields []string `json:"-"`
577
578	// NullFields is a list of field names (e.g. "ProtectedRange") to
579	// include in API requests with the JSON null value. By default, fields
580	// with empty values are omitted from API requests. However, any field
581	// with an empty value appearing in NullFields will be sent to the
582	// server as null. It is an error if a field in this list has a
583	// non-empty value. This may be used to include null fields in Patch
584	// requests.
585	NullFields []string `json:"-"`
586}
587
588func (s *AddProtectedRangeRequest) MarshalJSON() ([]byte, error) {
589	type NoMethod AddProtectedRangeRequest
590	raw := NoMethod(*s)
591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
592}
593
594// AddProtectedRangeResponse: The result of adding a new protected
595// range.
596type AddProtectedRangeResponse struct {
597	// ProtectedRange: The newly added protected range.
598	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
599
600	// ForceSendFields is a list of field names (e.g. "ProtectedRange") to
601	// unconditionally include in API requests. By default, fields with
602	// empty values are omitted from API requests. However, any non-pointer,
603	// non-interface field appearing in ForceSendFields will be sent to the
604	// server regardless of whether the field is empty or not. This may be
605	// used to include empty fields in Patch requests.
606	ForceSendFields []string `json:"-"`
607
608	// NullFields is a list of field names (e.g. "ProtectedRange") to
609	// include in API requests with the JSON null value. By default, fields
610	// with empty values are omitted from API requests. However, any field
611	// with an empty value appearing in NullFields will be sent to the
612	// server as null. It is an error if a field in this list has a
613	// non-empty value. This may be used to include null fields in Patch
614	// requests.
615	NullFields []string `json:"-"`
616}
617
618func (s *AddProtectedRangeResponse) MarshalJSON() ([]byte, error) {
619	type NoMethod AddProtectedRangeResponse
620	raw := NoMethod(*s)
621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
622}
623
624// AddSheetRequest: Adds a new sheet.
625// When a sheet is added at a given index,
626// all subsequent sheets' indexes are incremented.
627// To add an object sheet, use AddChartRequest instead and
628// specify
629// EmbeddedObjectPosition.sheetId or
630// EmbeddedObjectPosition.newSheet.
631type AddSheetRequest struct {
632	// Properties: The properties the new sheet should have.
633	// All properties are optional.
634	// The sheetId field is optional; if one is not
635	// set, an id will be randomly generated. (It is an error to specify the
636	// ID
637	// of a sheet that already exists.)
638	Properties *SheetProperties `json:"properties,omitempty"`
639
640	// ForceSendFields is a list of field names (e.g. "Properties") to
641	// unconditionally include in API requests. By default, fields with
642	// empty values are omitted from API requests. However, any non-pointer,
643	// non-interface field appearing in ForceSendFields will be sent to the
644	// server regardless of whether the field is empty or not. This may be
645	// used to include empty fields in Patch requests.
646	ForceSendFields []string `json:"-"`
647
648	// NullFields is a list of field names (e.g. "Properties") to include in
649	// API requests with the JSON null value. By default, fields with empty
650	// values are omitted from API requests. However, any field with an
651	// empty value appearing in NullFields will be sent to the server as
652	// null. It is an error if a field in this list has a non-empty value.
653	// This may be used to include null fields in Patch requests.
654	NullFields []string `json:"-"`
655}
656
657func (s *AddSheetRequest) MarshalJSON() ([]byte, error) {
658	type NoMethod AddSheetRequest
659	raw := NoMethod(*s)
660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
661}
662
663// AddSheetResponse: The result of adding a sheet.
664type AddSheetResponse struct {
665	// Properties: The properties of the newly added sheet.
666	Properties *SheetProperties `json:"properties,omitempty"`
667
668	// ForceSendFields is a list of field names (e.g. "Properties") to
669	// unconditionally include in API requests. By default, fields with
670	// empty values are omitted from API requests. However, any non-pointer,
671	// non-interface field appearing in ForceSendFields will be sent to the
672	// server regardless of whether the field is empty or not. This may be
673	// used to include empty fields in Patch requests.
674	ForceSendFields []string `json:"-"`
675
676	// NullFields is a list of field names (e.g. "Properties") to include in
677	// API requests with the JSON null value. By default, fields with empty
678	// values are omitted from API requests. However, any field with an
679	// empty value appearing in NullFields will be sent to the server as
680	// null. It is an error if a field in this list has a non-empty value.
681	// This may be used to include null fields in Patch requests.
682	NullFields []string `json:"-"`
683}
684
685func (s *AddSheetResponse) MarshalJSON() ([]byte, error) {
686	type NoMethod AddSheetResponse
687	raw := NoMethod(*s)
688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
689}
690
691// AddSlicerRequest: Adds a slicer to a sheet in the spreadsheet.
692type AddSlicerRequest struct {
693	// Slicer: The slicer that should be added to the spreadsheet,
694	// including
695	// the position where it should be placed. The slicerId field is
696	// optional; if one is not set, an id
697	// will be randomly generated. (It is an error to specify the ID
698	// of a slicer that already exists.)
699	Slicer *Slicer `json:"slicer,omitempty"`
700
701	// ForceSendFields is a list of field names (e.g. "Slicer") to
702	// unconditionally include in API requests. By default, fields with
703	// empty values are omitted from API requests. However, any non-pointer,
704	// non-interface field appearing in ForceSendFields will be sent to the
705	// server regardless of whether the field is empty or not. This may be
706	// used to include empty fields in Patch requests.
707	ForceSendFields []string `json:"-"`
708
709	// NullFields is a list of field names (e.g. "Slicer") to include in API
710	// requests with the JSON null value. By default, fields with empty
711	// values are omitted from API requests. However, any field with an
712	// empty value appearing in NullFields will be sent to the server as
713	// null. It is an error if a field in this list has a non-empty value.
714	// This may be used to include null fields in Patch requests.
715	NullFields []string `json:"-"`
716}
717
718func (s *AddSlicerRequest) MarshalJSON() ([]byte, error) {
719	type NoMethod AddSlicerRequest
720	raw := NoMethod(*s)
721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
722}
723
724// AddSlicerResponse: The result of adding a slicer to a spreadsheet.
725type AddSlicerResponse struct {
726	// Slicer: The newly added slicer.
727	Slicer *Slicer `json:"slicer,omitempty"`
728
729	// ForceSendFields is a list of field names (e.g. "Slicer") to
730	// unconditionally include in API requests. By default, fields with
731	// empty values are omitted from API requests. However, any non-pointer,
732	// non-interface field appearing in ForceSendFields will be sent to the
733	// server regardless of whether the field is empty or not. This may be
734	// used to include empty fields in Patch requests.
735	ForceSendFields []string `json:"-"`
736
737	// NullFields is a list of field names (e.g. "Slicer") to include in API
738	// requests with the JSON null value. By default, fields with empty
739	// values are omitted from API requests. However, any field with an
740	// empty value appearing in NullFields will be sent to the server as
741	// null. It is an error if a field in this list has a non-empty value.
742	// This may be used to include null fields in Patch requests.
743	NullFields []string `json:"-"`
744}
745
746func (s *AddSlicerResponse) MarshalJSON() ([]byte, error) {
747	type NoMethod AddSlicerResponse
748	raw := NoMethod(*s)
749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
750}
751
752// AppendCellsRequest: Adds new cells after the last row with data in a
753// sheet,
754// inserting new rows into the sheet if necessary.
755type AppendCellsRequest struct {
756	// Fields: The fields of CellData that should be updated.
757	// At least one field must be specified.
758	// The root is the CellData; 'row.values.' should not be specified.
759	// A single "*" can be used as short-hand for listing every field.
760	Fields string `json:"fields,omitempty"`
761
762	// Rows: The data to append.
763	Rows []*RowData `json:"rows,omitempty"`
764
765	// SheetId: The sheet ID to append the data to.
766	SheetId int64 `json:"sheetId,omitempty"`
767
768	// ForceSendFields is a list of field names (e.g. "Fields") to
769	// unconditionally include in API requests. By default, fields with
770	// empty values are omitted from API requests. However, any non-pointer,
771	// non-interface field appearing in ForceSendFields will be sent to the
772	// server regardless of whether the field is empty or not. This may be
773	// used to include empty fields in Patch requests.
774	ForceSendFields []string `json:"-"`
775
776	// NullFields is a list of field names (e.g. "Fields") to include in API
777	// requests with the JSON null value. By default, fields with empty
778	// values are omitted from API requests. However, any field with an
779	// empty value appearing in NullFields will be sent to the server as
780	// null. It is an error if a field in this list has a non-empty value.
781	// This may be used to include null fields in Patch requests.
782	NullFields []string `json:"-"`
783}
784
785func (s *AppendCellsRequest) MarshalJSON() ([]byte, error) {
786	type NoMethod AppendCellsRequest
787	raw := NoMethod(*s)
788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
789}
790
791// AppendDimensionRequest: Appends rows or columns to the end of a
792// sheet.
793type AppendDimensionRequest struct {
794	// Dimension: Whether rows or columns should be appended.
795	//
796	// Possible values:
797	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
798	//   "ROWS" - Operates on the rows of a sheet.
799	//   "COLUMNS" - Operates on the columns of a sheet.
800	Dimension string `json:"dimension,omitempty"`
801
802	// Length: The number of rows or columns to append.
803	Length int64 `json:"length,omitempty"`
804
805	// SheetId: The sheet to append rows or columns to.
806	SheetId int64 `json:"sheetId,omitempty"`
807
808	// ForceSendFields is a list of field names (e.g. "Dimension") to
809	// unconditionally include in API requests. By default, fields with
810	// empty values are omitted from API requests. However, any non-pointer,
811	// non-interface field appearing in ForceSendFields will be sent to the
812	// server regardless of whether the field is empty or not. This may be
813	// used to include empty fields in Patch requests.
814	ForceSendFields []string `json:"-"`
815
816	// NullFields is a list of field names (e.g. "Dimension") to include in
817	// API requests with the JSON null value. By default, fields with empty
818	// values are omitted from API requests. However, any field with an
819	// empty value appearing in NullFields will be sent to the server as
820	// null. It is an error if a field in this list has a non-empty value.
821	// This may be used to include null fields in Patch requests.
822	NullFields []string `json:"-"`
823}
824
825func (s *AppendDimensionRequest) MarshalJSON() ([]byte, error) {
826	type NoMethod AppendDimensionRequest
827	raw := NoMethod(*s)
828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
829}
830
831// AppendValuesResponse: The response when updating a range of values in
832// a spreadsheet.
833type AppendValuesResponse struct {
834	// SpreadsheetId: The spreadsheet the updates were applied to.
835	SpreadsheetId string `json:"spreadsheetId,omitempty"`
836
837	// TableRange: The range (in A1 notation) of the table that values are
838	// being appended to
839	// (before the values were appended).
840	// Empty if no table was found.
841	TableRange string `json:"tableRange,omitempty"`
842
843	// Updates: Information about the updates that were applied.
844	Updates *UpdateValuesResponse `json:"updates,omitempty"`
845
846	// ServerResponse contains the HTTP response code and headers from the
847	// server.
848	googleapi.ServerResponse `json:"-"`
849
850	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
851	// unconditionally include in API requests. By default, fields with
852	// empty values are omitted from API requests. However, any non-pointer,
853	// non-interface field appearing in ForceSendFields will be sent to the
854	// server regardless of whether the field is empty or not. This may be
855	// used to include empty fields in Patch requests.
856	ForceSendFields []string `json:"-"`
857
858	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
859	// in API requests with the JSON null value. By default, fields with
860	// empty values are omitted from API requests. However, any field with
861	// an empty value appearing in NullFields will be sent to the server as
862	// null. It is an error if a field in this list has a non-empty value.
863	// This may be used to include null fields in Patch requests.
864	NullFields []string `json:"-"`
865}
866
867func (s *AppendValuesResponse) MarshalJSON() ([]byte, error) {
868	type NoMethod AppendValuesResponse
869	raw := NoMethod(*s)
870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
871}
872
873// AutoFillRequest: Fills in more data based on existing data.
874type AutoFillRequest struct {
875	// Range: The range to autofill. This will examine the range and
876	// detect
877	// the location that has data and automatically fill that data
878	// in to the rest of the range.
879	Range *GridRange `json:"range,omitempty"`
880
881	// SourceAndDestination: The source and destination areas to
882	// autofill.
883	// This explicitly lists the source of the autofill and where to
884	// extend that data.
885	SourceAndDestination *SourceAndDestination `json:"sourceAndDestination,omitempty"`
886
887	// UseAlternateSeries: True if we should generate data with the
888	// "alternate" series.
889	// This differs based on the type and amount of source data.
890	UseAlternateSeries bool `json:"useAlternateSeries,omitempty"`
891
892	// ForceSendFields is a list of field names (e.g. "Range") to
893	// unconditionally include in API requests. By default, fields with
894	// empty values are omitted from API requests. However, any non-pointer,
895	// non-interface field appearing in ForceSendFields will be sent to the
896	// server regardless of whether the field is empty or not. This may be
897	// used to include empty fields in Patch requests.
898	ForceSendFields []string `json:"-"`
899
900	// NullFields is a list of field names (e.g. "Range") to include in API
901	// requests with the JSON null value. By default, fields with empty
902	// values are omitted from API requests. However, any field with an
903	// empty value appearing in NullFields will be sent to the server as
904	// null. It is an error if a field in this list has a non-empty value.
905	// This may be used to include null fields in Patch requests.
906	NullFields []string `json:"-"`
907}
908
909func (s *AutoFillRequest) MarshalJSON() ([]byte, error) {
910	type NoMethod AutoFillRequest
911	raw := NoMethod(*s)
912	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
913}
914
915// AutoResizeDimensionsRequest: Automatically resizes one or more
916// dimensions based on the contents
917// of the cells in that dimension.
918type AutoResizeDimensionsRequest struct {
919	// Dimensions: The dimensions to automatically resize.
920	Dimensions *DimensionRange `json:"dimensions,omitempty"`
921
922	// ForceSendFields is a list of field names (e.g. "Dimensions") to
923	// unconditionally include in API requests. By default, fields with
924	// empty values are omitted from API requests. However, any non-pointer,
925	// non-interface field appearing in ForceSendFields will be sent to the
926	// server regardless of whether the field is empty or not. This may be
927	// used to include empty fields in Patch requests.
928	ForceSendFields []string `json:"-"`
929
930	// NullFields is a list of field names (e.g. "Dimensions") to include in
931	// API requests with the JSON null value. By default, fields with empty
932	// values are omitted from API requests. However, any field with an
933	// empty value appearing in NullFields will be sent to the server as
934	// null. It is an error if a field in this list has a non-empty value.
935	// This may be used to include null fields in Patch requests.
936	NullFields []string `json:"-"`
937}
938
939func (s *AutoResizeDimensionsRequest) MarshalJSON() ([]byte, error) {
940	type NoMethod AutoResizeDimensionsRequest
941	raw := NoMethod(*s)
942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
943}
944
945// BandedRange: A banded (alternating colors) range in a sheet.
946type BandedRange struct {
947	// BandedRangeId: The id of the banded range.
948	BandedRangeId int64 `json:"bandedRangeId,omitempty"`
949
950	// ColumnProperties: Properties for column bands. These properties are
951	// applied on a column-
952	// by-column basis throughout all the columns in the range. At least one
953	// of
954	// row_properties or column_properties must be specified.
955	ColumnProperties *BandingProperties `json:"columnProperties,omitempty"`
956
957	// Range: The range over which these properties are applied.
958	Range *GridRange `json:"range,omitempty"`
959
960	// RowProperties: Properties for row bands. These properties are applied
961	// on a row-by-row
962	// basis throughout all the rows in the range. At least one
963	// of
964	// row_properties or column_properties must be specified.
965	RowProperties *BandingProperties `json:"rowProperties,omitempty"`
966
967	// ForceSendFields is a list of field names (e.g. "BandedRangeId") to
968	// unconditionally include in API requests. By default, fields with
969	// empty values are omitted from API requests. However, any non-pointer,
970	// non-interface field appearing in ForceSendFields will be sent to the
971	// server regardless of whether the field is empty or not. This may be
972	// used to include empty fields in Patch requests.
973	ForceSendFields []string `json:"-"`
974
975	// NullFields is a list of field names (e.g. "BandedRangeId") to include
976	// in API requests with the JSON null value. By default, fields with
977	// empty values are omitted from API requests. However, any field with
978	// an empty value appearing in NullFields will be sent to the server as
979	// null. It is an error if a field in this list has a non-empty value.
980	// This may be used to include null fields in Patch requests.
981	NullFields []string `json:"-"`
982}
983
984func (s *BandedRange) MarshalJSON() ([]byte, error) {
985	type NoMethod BandedRange
986	raw := NoMethod(*s)
987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
988}
989
990// BandingProperties: Properties referring a single dimension (either
991// row or column). If both
992// BandedRange.row_properties and BandedRange.column_properties are
993// set, the fill colors are applied to cells according to the following
994// rules:
995//
996// * header_color and footer_color take priority over band colors.
997// * first_band_color takes priority over second_band_color.
998// * row_properties takes priority over column_properties.
999//
1000// For example, the first row color takes priority over the first
1001// column
1002// color, but the first column color takes priority over the second row
1003// color.
1004// Similarly, the row header takes priority over the column header in
1005// the
1006// top left cell, but the column header takes priority over the first
1007// row
1008// color if the row header is not set.
1009type BandingProperties struct {
1010	// FirstBandColor: The first color that is alternating. (Required)
1011	FirstBandColor *Color `json:"firstBandColor,omitempty"`
1012
1013	// FirstBandColorStyle: The first color that is alternating.
1014	// (Required)
1015	// If first_band_color is also set, this field takes precedence.
1016	FirstBandColorStyle *ColorStyle `json:"firstBandColorStyle,omitempty"`
1017
1018	// FooterColor: The color of the last row or column. If this field is
1019	// not set, the last
1020	// row or column is filled with either first_band_color
1021	// or
1022	// second_band_color, depending on the color of the previous row
1023	// or
1024	// column.
1025	FooterColor *Color `json:"footerColor,omitempty"`
1026
1027	// FooterColorStyle: The color of the last row or column. If this field
1028	// is not set, the last
1029	// row or column is filled with either first_band_color
1030	// or
1031	// second_band_color, depending on the color of the previous row
1032	// or
1033	// column.
1034	// If footer_color is also set, this field takes precedence.
1035	FooterColorStyle *ColorStyle `json:"footerColorStyle,omitempty"`
1036
1037	// HeaderColor: The color of the first row or column. If this field is
1038	// set, the first row
1039	// or column is filled with this color and the colors alternate
1040	// between
1041	// first_band_color and second_band_color starting from the second
1042	// row or column. Otherwise, the first row or column is filled
1043	// with
1044	// first_band_color and the colors proceed to alternate as they
1045	// normally
1046	// would.
1047	HeaderColor *Color `json:"headerColor,omitempty"`
1048
1049	// HeaderColorStyle: The color of the first row or column. If this field
1050	// is set, the first row
1051	// or column is filled with this color and the colors alternate
1052	// between
1053	// first_band_color and second_band_color starting from the second
1054	// row or column. Otherwise, the first row or column is filled
1055	// with
1056	// first_band_color and the colors proceed to alternate as they
1057	// normally
1058	// would. If header_color is also set, this field takes precedence.
1059	HeaderColorStyle *ColorStyle `json:"headerColorStyle,omitempty"`
1060
1061	// SecondBandColor: The second color that is alternating. (Required)
1062	SecondBandColor *Color `json:"secondBandColor,omitempty"`
1063
1064	// SecondBandColorStyle: The second color that is alternating.
1065	// (Required)
1066	// If second_band_color is also set, this field takes precedence.
1067	SecondBandColorStyle *ColorStyle `json:"secondBandColorStyle,omitempty"`
1068
1069	// ForceSendFields is a list of field names (e.g. "FirstBandColor") to
1070	// unconditionally include in API requests. By default, fields with
1071	// empty values are omitted from API requests. However, any non-pointer,
1072	// non-interface field appearing in ForceSendFields will be sent to the
1073	// server regardless of whether the field is empty or not. This may be
1074	// used to include empty fields in Patch requests.
1075	ForceSendFields []string `json:"-"`
1076
1077	// NullFields is a list of field names (e.g. "FirstBandColor") to
1078	// include in API requests with the JSON null value. By default, fields
1079	// with empty values are omitted from API requests. However, any field
1080	// with an empty value appearing in NullFields will be sent to the
1081	// server as null. It is an error if a field in this list has a
1082	// non-empty value. This may be used to include null fields in Patch
1083	// requests.
1084	NullFields []string `json:"-"`
1085}
1086
1087func (s *BandingProperties) MarshalJSON() ([]byte, error) {
1088	type NoMethod BandingProperties
1089	raw := NoMethod(*s)
1090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1091}
1092
1093// BaselineValueFormat: Formatting options for baseline value.
1094type BaselineValueFormat struct {
1095	// ComparisonType: The comparison type of key value with baseline value.
1096	//
1097	// Possible values:
1098	//   "COMPARISON_TYPE_UNDEFINED" - Default value, do not use.
1099	//   "ABSOLUTE_DIFFERENCE" - Use absolute difference between key and
1100	// baseline value.
1101	//   "PERCENTAGE_DIFFERENCE" - Use percentage difference between key and
1102	// baseline value.
1103	ComparisonType string `json:"comparisonType,omitempty"`
1104
1105	// Description: Description which is appended after the baseline
1106	// value.
1107	// This field is optional.
1108	Description string `json:"description,omitempty"`
1109
1110	// NegativeColor: Color to be used, in case baseline value represents a
1111	// negative change for
1112	// key value. This field is optional.
1113	NegativeColor *Color `json:"negativeColor,omitempty"`
1114
1115	// NegativeColorStyle: Color to be used, in case baseline value
1116	// represents a negative change for
1117	// key value. This field is optional.
1118	// If negative_color is also set, this field takes precedence.
1119	NegativeColorStyle *ColorStyle `json:"negativeColorStyle,omitempty"`
1120
1121	// Position: Specifies the horizontal text positioning of baseline
1122	// value.
1123	// This field is optional. If not specified, default positioning is
1124	// used.
1125	Position *TextPosition `json:"position,omitempty"`
1126
1127	// PositiveColor: Color to be used, in case baseline value represents a
1128	// positive change for
1129	// key value. This field is optional.
1130	PositiveColor *Color `json:"positiveColor,omitempty"`
1131
1132	// PositiveColorStyle: Color to be used, in case baseline value
1133	// represents a positive change for
1134	// key value. This field is optional.
1135	// If positive_color is also set, this field takes precedence.
1136	PositiveColorStyle *ColorStyle `json:"positiveColorStyle,omitempty"`
1137
1138	// TextFormat: Text formatting options for baseline value.
1139	TextFormat *TextFormat `json:"textFormat,omitempty"`
1140
1141	// ForceSendFields is a list of field names (e.g. "ComparisonType") to
1142	// unconditionally include in API requests. By default, fields with
1143	// empty values are omitted from API requests. However, any non-pointer,
1144	// non-interface field appearing in ForceSendFields will be sent to the
1145	// server regardless of whether the field is empty or not. This may be
1146	// used to include empty fields in Patch requests.
1147	ForceSendFields []string `json:"-"`
1148
1149	// NullFields is a list of field names (e.g. "ComparisonType") to
1150	// include in API requests with the JSON null value. By default, fields
1151	// with empty values are omitted from API requests. However, any field
1152	// with an empty value appearing in NullFields will be sent to the
1153	// server as null. It is an error if a field in this list has a
1154	// non-empty value. This may be used to include null fields in Patch
1155	// requests.
1156	NullFields []string `json:"-"`
1157}
1158
1159func (s *BaselineValueFormat) MarshalJSON() ([]byte, error) {
1160	type NoMethod BaselineValueFormat
1161	raw := NoMethod(*s)
1162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1163}
1164
1165// BasicChartAxis: An axis of the chart.
1166// A chart may not have more than one axis per
1167// axis position.
1168type BasicChartAxis struct {
1169	// Format: The format of the title.
1170	// Only valid if the axis is not associated with the domain.
1171	Format *TextFormat `json:"format,omitempty"`
1172
1173	// Position: The position of this axis.
1174	//
1175	// Possible values:
1176	//   "BASIC_CHART_AXIS_POSITION_UNSPECIFIED" - Default value, do not
1177	// use.
1178	//   "BOTTOM_AXIS" - The axis rendered at the bottom of a chart.
1179	// For most charts, this is the standard major axis.
1180	// For bar charts, this is a minor axis.
1181	//   "LEFT_AXIS" - The axis rendered at the left of a chart.
1182	// For most charts, this is a minor axis.
1183	// For bar charts, this is the standard major axis.
1184	//   "RIGHT_AXIS" - The axis rendered at the right of a chart.
1185	// For most charts, this is a minor axis.
1186	// For bar charts, this is an unusual major axis.
1187	Position string `json:"position,omitempty"`
1188
1189	// Title: The title of this axis. If set, this overrides any title
1190	// inferred
1191	// from headers of the data.
1192	Title string `json:"title,omitempty"`
1193
1194	// TitleTextPosition: The axis title text position.
1195	TitleTextPosition *TextPosition `json:"titleTextPosition,omitempty"`
1196
1197	// ViewWindowOptions: The view window options for this axis.
1198	ViewWindowOptions *ChartAxisViewWindowOptions `json:"viewWindowOptions,omitempty"`
1199
1200	// ForceSendFields is a list of field names (e.g. "Format") to
1201	// unconditionally include in API requests. By default, fields with
1202	// empty values are omitted from API requests. However, any non-pointer,
1203	// non-interface field appearing in ForceSendFields will be sent to the
1204	// server regardless of whether the field is empty or not. This may be
1205	// used to include empty fields in Patch requests.
1206	ForceSendFields []string `json:"-"`
1207
1208	// NullFields is a list of field names (e.g. "Format") to include in API
1209	// requests with the JSON null value. By default, fields with empty
1210	// values are omitted from API requests. However, any field with an
1211	// empty value appearing in NullFields will be sent to the server as
1212	// null. It is an error if a field in this list has a non-empty value.
1213	// This may be used to include null fields in Patch requests.
1214	NullFields []string `json:"-"`
1215}
1216
1217func (s *BasicChartAxis) MarshalJSON() ([]byte, error) {
1218	type NoMethod BasicChartAxis
1219	raw := NoMethod(*s)
1220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1221}
1222
1223// BasicChartDomain: The domain of a chart.
1224// For example, if charting stock prices over time, this would be the
1225// date.
1226type BasicChartDomain struct {
1227	// Domain: The data of the domain. For example, if charting stock prices
1228	// over time,
1229	// this is the data representing the dates.
1230	Domain *ChartData `json:"domain,omitempty"`
1231
1232	// Reversed: True to reverse the order of the domain values (horizontal
1233	// axis).
1234	Reversed bool `json:"reversed,omitempty"`
1235
1236	// ForceSendFields is a list of field names (e.g. "Domain") to
1237	// unconditionally include in API requests. By default, fields with
1238	// empty values are omitted from API requests. However, any non-pointer,
1239	// non-interface field appearing in ForceSendFields will be sent to the
1240	// server regardless of whether the field is empty or not. This may be
1241	// used to include empty fields in Patch requests.
1242	ForceSendFields []string `json:"-"`
1243
1244	// NullFields is a list of field names (e.g. "Domain") to include in API
1245	// requests with the JSON null value. By default, fields with empty
1246	// values are omitted from API requests. However, any field with an
1247	// empty value appearing in NullFields will be sent to the server as
1248	// null. It is an error if a field in this list has a non-empty value.
1249	// This may be used to include null fields in Patch requests.
1250	NullFields []string `json:"-"`
1251}
1252
1253func (s *BasicChartDomain) MarshalJSON() ([]byte, error) {
1254	type NoMethod BasicChartDomain
1255	raw := NoMethod(*s)
1256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1257}
1258
1259// BasicChartSeries: A single series of data in a chart.
1260// For example, if charting stock prices over time, multiple series may
1261// exist,
1262// one for the "Open Price", "High Price", "Low Price" and "Close
1263// Price".
1264type BasicChartSeries struct {
1265	// Color: The color for elements (such as bars, lines, and points)
1266	// associated with
1267	// this series.  If empty, a default color is used.
1268	Color *Color `json:"color,omitempty"`
1269
1270	// ColorStyle: The color for elements (such as bars, lines, and points)
1271	// associated with
1272	// this series.  If empty, a default color is used.
1273	// If color is also set, this field takes precedence.
1274	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
1275
1276	// LineStyle: The line style of this series. Valid only if the
1277	// chartType is AREA,
1278	// LINE, or SCATTER.
1279	// COMBO charts are also supported if the
1280	// series chart type is
1281	// AREA or LINE.
1282	LineStyle *LineStyle `json:"lineStyle,omitempty"`
1283
1284	// Series: The data being visualized in this chart series.
1285	Series *ChartData `json:"series,omitempty"`
1286
1287	// TargetAxis: The minor axis that will specify the range of values for
1288	// this series.
1289	// For example, if charting stocks over time, the "Volume" series
1290	// may want to be pinned to the right with the prices pinned to the
1291	// left,
1292	// because the scale of trading volume is different than the scale
1293	// of
1294	// prices.
1295	// It is an error to specify an axis that isn't a valid minor axis
1296	// for the chart's type.
1297	//
1298	// Possible values:
1299	//   "BASIC_CHART_AXIS_POSITION_UNSPECIFIED" - Default value, do not
1300	// use.
1301	//   "BOTTOM_AXIS" - The axis rendered at the bottom of a chart.
1302	// For most charts, this is the standard major axis.
1303	// For bar charts, this is a minor axis.
1304	//   "LEFT_AXIS" - The axis rendered at the left of a chart.
1305	// For most charts, this is a minor axis.
1306	// For bar charts, this is the standard major axis.
1307	//   "RIGHT_AXIS" - The axis rendered at the right of a chart.
1308	// For most charts, this is a minor axis.
1309	// For bar charts, this is an unusual major axis.
1310	TargetAxis string `json:"targetAxis,omitempty"`
1311
1312	// Type: The type of this series. Valid only if the
1313	// chartType is
1314	// COMBO.
1315	// Different types will change the way the series is visualized.
1316	// Only LINE, AREA,
1317	// and COLUMN are supported.
1318	//
1319	// Possible values:
1320	//   "BASIC_CHART_TYPE_UNSPECIFIED" - Default value, do not use.
1321	//   "BAR" - A <a href="/chart/interactive/docs/gallery/barchart">bar
1322	// chart</a>.
1323	//   "LINE" - A <a href="/chart/interactive/docs/gallery/linechart">line
1324	// chart</a>.
1325	//   "AREA" - An <a
1326	// href="/chart/interactive/docs/gallery/areachart">area chart</a>.
1327	//   "COLUMN" - A <a
1328	// href="/chart/interactive/docs/gallery/columnchart">column chart</a>.
1329	//   "SCATTER" - A <a
1330	// href="/chart/interactive/docs/gallery/scatterchart">scatter
1331	// chart</a>.
1332	//   "COMBO" - A <a
1333	// href="/chart/interactive/docs/gallery/combochart">combo chart</a>.
1334	//   "STEPPED_AREA" - A <a
1335	// href="/chart/interactive/docs/gallery/steppedareachart">stepped
1336	// area
1337	// chart</a>.
1338	Type string `json:"type,omitempty"`
1339
1340	// ForceSendFields is a list of field names (e.g. "Color") to
1341	// unconditionally include in API requests. By default, fields with
1342	// empty values are omitted from API requests. However, any non-pointer,
1343	// non-interface field appearing in ForceSendFields will be sent to the
1344	// server regardless of whether the field is empty or not. This may be
1345	// used to include empty fields in Patch requests.
1346	ForceSendFields []string `json:"-"`
1347
1348	// NullFields is a list of field names (e.g. "Color") to include in API
1349	// requests with the JSON null value. By default, fields with empty
1350	// values are omitted from API requests. However, any field with an
1351	// empty value appearing in NullFields will be sent to the server as
1352	// null. It is an error if a field in this list has a non-empty value.
1353	// This may be used to include null fields in Patch requests.
1354	NullFields []string `json:"-"`
1355}
1356
1357func (s *BasicChartSeries) MarshalJSON() ([]byte, error) {
1358	type NoMethod BasicChartSeries
1359	raw := NoMethod(*s)
1360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1361}
1362
1363// BasicChartSpec: The specification for a basic chart.  See
1364// BasicChartType for the list
1365// of charts this supports.
1366type BasicChartSpec struct {
1367	// Axis: The axis on the chart.
1368	Axis []*BasicChartAxis `json:"axis,omitempty"`
1369
1370	// ChartType: The type of the chart.
1371	//
1372	// Possible values:
1373	//   "BASIC_CHART_TYPE_UNSPECIFIED" - Default value, do not use.
1374	//   "BAR" - A <a href="/chart/interactive/docs/gallery/barchart">bar
1375	// chart</a>.
1376	//   "LINE" - A <a href="/chart/interactive/docs/gallery/linechart">line
1377	// chart</a>.
1378	//   "AREA" - An <a
1379	// href="/chart/interactive/docs/gallery/areachart">area chart</a>.
1380	//   "COLUMN" - A <a
1381	// href="/chart/interactive/docs/gallery/columnchart">column chart</a>.
1382	//   "SCATTER" - A <a
1383	// href="/chart/interactive/docs/gallery/scatterchart">scatter
1384	// chart</a>.
1385	//   "COMBO" - A <a
1386	// href="/chart/interactive/docs/gallery/combochart">combo chart</a>.
1387	//   "STEPPED_AREA" - A <a
1388	// href="/chart/interactive/docs/gallery/steppedareachart">stepped
1389	// area
1390	// chart</a>.
1391	ChartType string `json:"chartType,omitempty"`
1392
1393	// CompareMode: The behavior of tooltips and data highlighting when
1394	// hovering on data and
1395	// chart area.
1396	//
1397	// Possible values:
1398	//   "BASIC_CHART_COMPARE_MODE_UNSPECIFIED" - Default value, do not use.
1399	//   "DATUM" - Only the focused data element is highlighted and shown in
1400	// the tooltip.
1401	//   "CATEGORY" - All data elements with the same category (e.g., domain
1402	// value) are
1403	// highlighted and shown in the tooltip.
1404	CompareMode string `json:"compareMode,omitempty"`
1405
1406	// Domains: The domain of data this is charting.
1407	// Only a single domain is supported.
1408	Domains []*BasicChartDomain `json:"domains,omitempty"`
1409
1410	// HeaderCount: The number of rows or columns in the data that are
1411	// "headers".
1412	// If not set, Google Sheets will guess how many rows are headers
1413	// based
1414	// on the data.
1415	//
1416	// (Note that BasicChartAxis.title may override the axis title
1417	//  inferred from the header values.)
1418	HeaderCount int64 `json:"headerCount,omitempty"`
1419
1420	// InterpolateNulls: If some values in a series are missing, gaps may
1421	// appear in the chart (e.g,
1422	// segments of lines in a line chart will be missing).  To eliminate
1423	// these
1424	// gaps set this to true.
1425	// Applies to Line, Area, and Combo charts.
1426	InterpolateNulls bool `json:"interpolateNulls,omitempty"`
1427
1428	// LegendPosition: The position of the chart legend.
1429	//
1430	// Possible values:
1431	//   "BASIC_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
1432	// use.
1433	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
1434	// chart.
1435	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
1436	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
1437	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
1438	//   "NO_LEGEND" - No legend is rendered.
1439	LegendPosition string `json:"legendPosition,omitempty"`
1440
1441	// LineSmoothing: Gets whether all lines should be rendered smooth or
1442	// straight by default.
1443	// Applies to Line charts.
1444	LineSmoothing bool `json:"lineSmoothing,omitempty"`
1445
1446	// Series: The data this chart is visualizing.
1447	Series []*BasicChartSeries `json:"series,omitempty"`
1448
1449	// StackedType: The stacked type for charts that support vertical
1450	// stacking.
1451	// Applies to Area, Bar, Column, Combo, and Stepped Area charts.
1452	//
1453	// Possible values:
1454	//   "BASIC_CHART_STACKED_TYPE_UNSPECIFIED" - Default value, do not use.
1455	//   "NOT_STACKED" - Series are not stacked.
1456	//   "STACKED" - Series values are stacked, each value is rendered
1457	// vertically beginning
1458	// from the top of the value below it.
1459	//   "PERCENT_STACKED" - Vertical stacks are stretched to reach the top
1460	// of the chart, with
1461	// values laid out as percentages of each other.
1462	StackedType string `json:"stackedType,omitempty"`
1463
1464	// ThreeDimensional: True to make the chart 3D.
1465	// Applies to Bar and Column charts.
1466	ThreeDimensional bool `json:"threeDimensional,omitempty"`
1467
1468	// ForceSendFields is a list of field names (e.g. "Axis") to
1469	// unconditionally include in API requests. By default, fields with
1470	// empty values are omitted from API requests. However, any non-pointer,
1471	// non-interface field appearing in ForceSendFields will be sent to the
1472	// server regardless of whether the field is empty or not. This may be
1473	// used to include empty fields in Patch requests.
1474	ForceSendFields []string `json:"-"`
1475
1476	// NullFields is a list of field names (e.g. "Axis") to include in API
1477	// requests with the JSON null value. By default, fields with empty
1478	// values are omitted from API requests. However, any field with an
1479	// empty value appearing in NullFields will be sent to the server as
1480	// null. It is an error if a field in this list has a non-empty value.
1481	// This may be used to include null fields in Patch requests.
1482	NullFields []string `json:"-"`
1483}
1484
1485func (s *BasicChartSpec) MarshalJSON() ([]byte, error) {
1486	type NoMethod BasicChartSpec
1487	raw := NoMethod(*s)
1488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1489}
1490
1491// BasicFilter: The default filter associated with a sheet.
1492type BasicFilter struct {
1493	// Criteria: The criteria for showing/hiding values per column.
1494	// The map's key is the column index, and the value is the criteria
1495	// for
1496	// that column.
1497	Criteria map[string]FilterCriteria `json:"criteria,omitempty"`
1498
1499	// Range: The range the filter covers.
1500	Range *GridRange `json:"range,omitempty"`
1501
1502	// SortSpecs: The sort order per column. Later specifications are used
1503	// when values
1504	// are equal in the earlier specifications.
1505	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
1506
1507	// ForceSendFields is a list of field names (e.g. "Criteria") to
1508	// unconditionally include in API requests. By default, fields with
1509	// empty values are omitted from API requests. However, any non-pointer,
1510	// non-interface field appearing in ForceSendFields will be sent to the
1511	// server regardless of whether the field is empty or not. This may be
1512	// used to include empty fields in Patch requests.
1513	ForceSendFields []string `json:"-"`
1514
1515	// NullFields is a list of field names (e.g. "Criteria") to include in
1516	// API requests with the JSON null value. By default, fields with empty
1517	// values are omitted from API requests. However, any field with an
1518	// empty value appearing in NullFields will be sent to the server as
1519	// null. It is an error if a field in this list has a non-empty value.
1520	// This may be used to include null fields in Patch requests.
1521	NullFields []string `json:"-"`
1522}
1523
1524func (s *BasicFilter) MarshalJSON() ([]byte, error) {
1525	type NoMethod BasicFilter
1526	raw := NoMethod(*s)
1527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1528}
1529
1530// BatchClearValuesByDataFilterRequest: The request for clearing more
1531// than one range selected by a
1532// DataFilter in a spreadsheet.
1533type BatchClearValuesByDataFilterRequest struct {
1534	// DataFilters: The DataFilters used to determine which ranges to clear.
1535	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
1536
1537	// ForceSendFields is a list of field names (e.g. "DataFilters") 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. "DataFilters") to include
1546	// in API requests with the JSON null value. By default, fields with
1547	// empty values are omitted from API requests. However, any field with
1548	// an 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 *BatchClearValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
1555	type NoMethod BatchClearValuesByDataFilterRequest
1556	raw := NoMethod(*s)
1557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1558}
1559
1560// BatchClearValuesByDataFilterResponse: The response when clearing a
1561// range of values selected with
1562// DataFilters in a spreadsheet.
1563type BatchClearValuesByDataFilterResponse struct {
1564	// ClearedRanges: The ranges that were cleared, in A1 notation. If the
1565	// requests are for an
1566	// unbounded range or a ranger larger than the bounds of the sheet, this
1567	// is
1568	// the actual ranges that were cleared, bounded to the sheet's limits.
1569	ClearedRanges []string `json:"clearedRanges,omitempty"`
1570
1571	// SpreadsheetId: The spreadsheet the updates were applied to.
1572	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1573
1574	// ServerResponse contains the HTTP response code and headers from the
1575	// server.
1576	googleapi.ServerResponse `json:"-"`
1577
1578	// ForceSendFields is a list of field names (e.g. "ClearedRanges") to
1579	// unconditionally include in API requests. By default, fields with
1580	// empty values are omitted from API requests. However, any non-pointer,
1581	// non-interface field appearing in ForceSendFields will be sent to the
1582	// server regardless of whether the field is empty or not. This may be
1583	// used to include empty fields in Patch requests.
1584	ForceSendFields []string `json:"-"`
1585
1586	// NullFields is a list of field names (e.g. "ClearedRanges") to include
1587	// in API requests with the JSON null value. By default, fields with
1588	// empty values are omitted from API requests. However, any field with
1589	// an empty value appearing in NullFields will be sent to the server as
1590	// null. It is an error if a field in this list has a non-empty value.
1591	// This may be used to include null fields in Patch requests.
1592	NullFields []string `json:"-"`
1593}
1594
1595func (s *BatchClearValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
1596	type NoMethod BatchClearValuesByDataFilterResponse
1597	raw := NoMethod(*s)
1598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1599}
1600
1601// BatchClearValuesRequest: The request for clearing more than one range
1602// of values in a spreadsheet.
1603type BatchClearValuesRequest struct {
1604	// Ranges: The ranges to clear, in A1 notation.
1605	Ranges []string `json:"ranges,omitempty"`
1606
1607	// ForceSendFields is a list of field names (e.g. "Ranges") to
1608	// unconditionally include in API requests. By default, fields with
1609	// empty values are omitted from API requests. However, any non-pointer,
1610	// non-interface field appearing in ForceSendFields will be sent to the
1611	// server regardless of whether the field is empty or not. This may be
1612	// used to include empty fields in Patch requests.
1613	ForceSendFields []string `json:"-"`
1614
1615	// NullFields is a list of field names (e.g. "Ranges") to include in API
1616	// requests with the JSON null value. By default, fields with empty
1617	// values are omitted from API requests. However, any field with an
1618	// empty value appearing in NullFields will be sent to the server as
1619	// null. It is an error if a field in this list has a non-empty value.
1620	// This may be used to include null fields in Patch requests.
1621	NullFields []string `json:"-"`
1622}
1623
1624func (s *BatchClearValuesRequest) MarshalJSON() ([]byte, error) {
1625	type NoMethod BatchClearValuesRequest
1626	raw := NoMethod(*s)
1627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1628}
1629
1630// BatchClearValuesResponse: The response when clearing a range of
1631// values in a spreadsheet.
1632type BatchClearValuesResponse struct {
1633	// ClearedRanges: The ranges that were cleared, in A1 notation. If the
1634	// requests are for an
1635	// unbounded range or a ranger larger than the bounds of the sheet, this
1636	// is
1637	// the actual ranges that were cleared, bounded to the sheet's limits.
1638	ClearedRanges []string `json:"clearedRanges,omitempty"`
1639
1640	// SpreadsheetId: The spreadsheet the updates were applied to.
1641	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1642
1643	// ServerResponse contains the HTTP response code and headers from the
1644	// server.
1645	googleapi.ServerResponse `json:"-"`
1646
1647	// ForceSendFields is a list of field names (e.g. "ClearedRanges") to
1648	// unconditionally include in API requests. By default, fields with
1649	// empty values are omitted from API requests. However, any non-pointer,
1650	// non-interface field appearing in ForceSendFields will be sent to the
1651	// server regardless of whether the field is empty or not. This may be
1652	// used to include empty fields in Patch requests.
1653	ForceSendFields []string `json:"-"`
1654
1655	// NullFields is a list of field names (e.g. "ClearedRanges") to include
1656	// in API requests with the JSON null value. By default, fields with
1657	// empty values are omitted from API requests. However, any field with
1658	// an empty value appearing in NullFields will be sent to the server as
1659	// null. It is an error if a field in this list has a non-empty value.
1660	// This may be used to include null fields in Patch requests.
1661	NullFields []string `json:"-"`
1662}
1663
1664func (s *BatchClearValuesResponse) MarshalJSON() ([]byte, error) {
1665	type NoMethod BatchClearValuesResponse
1666	raw := NoMethod(*s)
1667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1668}
1669
1670// BatchGetValuesByDataFilterRequest: The request for retrieving a range
1671// of values in a spreadsheet selected by a
1672// set of DataFilters.
1673type BatchGetValuesByDataFilterRequest struct {
1674	// DataFilters: The data filters used to match the ranges of values to
1675	// retrieve. Ranges
1676	// that match any of the specified data filters are included in the
1677	// response.
1678	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
1679
1680	// DateTimeRenderOption: How dates, times, and durations should be
1681	// represented in the output.
1682	// This is ignored if value_render_option is
1683	// FORMATTED_VALUE.
1684	// The default dateTime render option is
1685	// [DateTimeRenderOption.SERIAL_NUMBER].
1686	//
1687	// Possible values:
1688	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
1689	// fields to be output
1690	// as doubles in "serial number" format, as popularized by Lotus
1691	// 1-2-3.
1692	// The whole number portion of the value (left of the decimal)
1693	// counts
1694	// the days since December 30th 1899. The fractional portion (right
1695	// of
1696	// the decimal) counts the time as a fraction of the day. For
1697	// example,
1698	// January 1st 1900 at noon would be 2.5, 2 because it's 2 days
1699	// after
1700	// December 30st 1899, and .5 because noon is half a day.  February
1701	// 1st
1702	// 1900 at 3pm would be 33.625. This correctly treats the year 1900
1703	// as
1704	// not a leap year.
1705	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
1706	// fields to be output
1707	// as strings in their given number format (which is dependent
1708	// on the spreadsheet locale).
1709	DateTimeRenderOption string `json:"dateTimeRenderOption,omitempty"`
1710
1711	// MajorDimension: The major dimension that results should use.
1712	//
1713	// For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
1714	// then a request that selects that range and sets
1715	// `majorDimension=ROWS`
1716	// returns `[[1,2],[3,4]]`, whereas a request that
1717	// sets
1718	// `majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.
1719	//
1720	// Possible values:
1721	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
1722	//   "ROWS" - Operates on the rows of a sheet.
1723	//   "COLUMNS" - Operates on the columns of a sheet.
1724	MajorDimension string `json:"majorDimension,omitempty"`
1725
1726	// ValueRenderOption: How values should be represented in the
1727	// output.
1728	// The default render option is ValueRenderOption.FORMATTED_VALUE.
1729	//
1730	// Possible values:
1731	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
1732	// reply according to the
1733	// cell's formatting.  Formatting is based on the spreadsheet's
1734	// locale,
1735	// not the requesting user's locale.
1736	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1737	// currency,
1738	// then `A2` would return "$1.23".
1739	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
1740	// in the reply.
1741	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1742	// currency,
1743	// then `A2` would return the number `1.23`.
1744	//   "FORMULA" - Values will not be calculated.  The reply will include
1745	// the formulas.
1746	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1747	// currency,
1748	// then A2 would return "=A1".
1749	ValueRenderOption string `json:"valueRenderOption,omitempty"`
1750
1751	// ForceSendFields is a list of field names (e.g. "DataFilters") to
1752	// unconditionally include in API requests. By default, fields with
1753	// empty values are omitted from API requests. However, any non-pointer,
1754	// non-interface field appearing in ForceSendFields will be sent to the
1755	// server regardless of whether the field is empty or not. This may be
1756	// used to include empty fields in Patch requests.
1757	ForceSendFields []string `json:"-"`
1758
1759	// NullFields is a list of field names (e.g. "DataFilters") to include
1760	// in API requests with the JSON null value. By default, fields with
1761	// empty values are omitted from API requests. However, any field with
1762	// an empty value appearing in NullFields will be sent to the server as
1763	// null. It is an error if a field in this list has a non-empty value.
1764	// This may be used to include null fields in Patch requests.
1765	NullFields []string `json:"-"`
1766}
1767
1768func (s *BatchGetValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
1769	type NoMethod BatchGetValuesByDataFilterRequest
1770	raw := NoMethod(*s)
1771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1772}
1773
1774// BatchGetValuesByDataFilterResponse: The response when retrieving more
1775// than one range of values in a spreadsheet
1776// selected by DataFilters.
1777type BatchGetValuesByDataFilterResponse struct {
1778	// SpreadsheetId: The ID of the spreadsheet the data was retrieved from.
1779	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1780
1781	// ValueRanges: The requested values with the list of data filters that
1782	// matched them.
1783	ValueRanges []*MatchedValueRange `json:"valueRanges,omitempty"`
1784
1785	// ServerResponse contains the HTTP response code and headers from the
1786	// server.
1787	googleapi.ServerResponse `json:"-"`
1788
1789	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
1790	// unconditionally include in API requests. By default, fields with
1791	// empty values are omitted from API requests. However, any non-pointer,
1792	// non-interface field appearing in ForceSendFields will be sent to the
1793	// server regardless of whether the field is empty or not. This may be
1794	// used to include empty fields in Patch requests.
1795	ForceSendFields []string `json:"-"`
1796
1797	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
1798	// in API requests with the JSON null value. By default, fields with
1799	// empty values are omitted from API requests. However, any field with
1800	// an empty value appearing in NullFields will be sent to the server as
1801	// null. It is an error if a field in this list has a non-empty value.
1802	// This may be used to include null fields in Patch requests.
1803	NullFields []string `json:"-"`
1804}
1805
1806func (s *BatchGetValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
1807	type NoMethod BatchGetValuesByDataFilterResponse
1808	raw := NoMethod(*s)
1809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1810}
1811
1812// BatchGetValuesResponse: The response when retrieving more than one
1813// range of values in a spreadsheet.
1814type BatchGetValuesResponse struct {
1815	// SpreadsheetId: The ID of the spreadsheet the data was retrieved from.
1816	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1817
1818	// ValueRanges: The requested values. The order of the ValueRanges is
1819	// the same as the
1820	// 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
1855	// resource.
1856	IncludeSpreadsheetInResponse bool `json:"includeSpreadsheetInResponse,omitempty"`
1857
1858	// Requests: A list of updates to apply to the spreadsheet.
1859	// Requests will be applied in the order they are specified.
1860	// If any request is not valid, no requests will be applied.
1861	Requests []*Request `json:"requests,omitempty"`
1862
1863	// ResponseIncludeGridData: True if grid data should be returned.
1864	// Meaningful only if
1865	// include_spreadsheet_in_response is 'true'.
1866	// This parameter is ignored if a field mask was set in the request.
1867	ResponseIncludeGridData bool `json:"responseIncludeGridData,omitempty"`
1868
1869	// ResponseRanges: Limits the ranges included in the response
1870	// spreadsheet.
1871	// Meaningful only if include_spreadsheet_in_response is 'true'.
1872	ResponseRanges []string `json:"responseRanges,omitempty"`
1873
1874	// ForceSendFields is a list of field names (e.g.
1875	// "IncludeSpreadsheetInResponse") to unconditionally include in API
1876	// requests. By default, fields with empty values are omitted from API
1877	// requests. However, any non-pointer, non-interface field appearing in
1878	// ForceSendFields will be sent to the server regardless of whether the
1879	// field is empty or not. This may be used to include empty fields in
1880	// Patch requests.
1881	ForceSendFields []string `json:"-"`
1882
1883	// NullFields is a list of field names (e.g.
1884	// "IncludeSpreadsheetInResponse") to include in API requests with the
1885	// JSON null value. By default, fields with empty values are omitted
1886	// from API requests. However, any field with an empty value appearing
1887	// in NullFields will be sent to the server as null. It is an error if a
1888	// field in this list has a non-empty value. This may be used to include
1889	// null fields in Patch requests.
1890	NullFields []string `json:"-"`
1891}
1892
1893func (s *BatchUpdateSpreadsheetRequest) MarshalJSON() ([]byte, error) {
1894	type NoMethod BatchUpdateSpreadsheetRequest
1895	raw := NoMethod(*s)
1896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1897}
1898
1899// BatchUpdateSpreadsheetResponse: The reply for batch updating a
1900// spreadsheet.
1901type BatchUpdateSpreadsheetResponse struct {
1902	// Replies: The reply of the updates.  This maps 1:1 with the updates,
1903	// although
1904	// replies to some requests may be empty.
1905	Replies []*Response `json:"replies,omitempty"`
1906
1907	// SpreadsheetId: The spreadsheet the updates were applied to.
1908	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1909
1910	// UpdatedSpreadsheet: The spreadsheet after updates were applied. This
1911	// is only set
1912	// if
1913	// [BatchUpdateSpreadsheetRequest.include_spreadsheet_in_response] is
1914	// `true`.
1915	UpdatedSpreadsheet *Spreadsheet `json:"updatedSpreadsheet,omitempty"`
1916
1917	// ServerResponse contains the HTTP response code and headers from the
1918	// server.
1919	googleapi.ServerResponse `json:"-"`
1920
1921	// ForceSendFields is a list of field names (e.g. "Replies") to
1922	// unconditionally include in API requests. By default, fields with
1923	// empty values are omitted from API requests. However, any non-pointer,
1924	// non-interface field appearing in ForceSendFields will be sent to the
1925	// server regardless of whether the field is empty or not. This may be
1926	// used to include empty fields in Patch requests.
1927	ForceSendFields []string `json:"-"`
1928
1929	// NullFields is a list of field names (e.g. "Replies") to include in
1930	// API requests with the JSON null value. By default, fields with empty
1931	// values are omitted from API requests. However, any field with an
1932	// empty value appearing in NullFields will be sent to the server as
1933	// null. It is an error if a field in this list has a non-empty value.
1934	// This may be used to include null fields in Patch requests.
1935	NullFields []string `json:"-"`
1936}
1937
1938func (s *BatchUpdateSpreadsheetResponse) MarshalJSON() ([]byte, error) {
1939	type NoMethod BatchUpdateSpreadsheetResponse
1940	raw := NoMethod(*s)
1941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1942}
1943
1944// BatchUpdateValuesByDataFilterRequest: The request for updating more
1945// than one range of values in a spreadsheet.
1946type BatchUpdateValuesByDataFilterRequest struct {
1947	// Data: The new values to apply to the spreadsheet.  If more than one
1948	// range is
1949	// matched by the specified DataFilter the specified values are applied
1950	// to
1951	// all of those ranges.
1952	Data []*DataFilterValueRange `json:"data,omitempty"`
1953
1954	// IncludeValuesInResponse: Determines if the update response should
1955	// include the values
1956	// of the cells that were updated. By default, responses
1957	// do not include the updated values. The `updatedData` field
1958	// within
1959	// each of the BatchUpdateValuesResponse.responses contains the
1960	// updated
1961	// values. If the range to write was larger than the range actually
1962	// written,
1963	// the response includes all values in the requested range (excluding
1964	// trailing
1965	// empty rows and columns).
1966	IncludeValuesInResponse bool `json:"includeValuesInResponse,omitempty"`
1967
1968	// ResponseDateTimeRenderOption: Determines how dates, times, and
1969	// durations in the response should be
1970	// rendered. This is ignored if response_value_render_option
1971	// is
1972	// FORMATTED_VALUE.
1973	// The default dateTime render option
1974	// is
1975	// DateTimeRenderOption.SERIAL_NUMBER.
1976	//
1977	// Possible values:
1978	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
1979	// fields to be output
1980	// as doubles in "serial number" format, as popularized by Lotus
1981	// 1-2-3.
1982	// The whole number portion of the value (left of the decimal)
1983	// counts
1984	// the days since December 30th 1899. The fractional portion (right
1985	// of
1986	// the decimal) counts the time as a fraction of the day. For
1987	// example,
1988	// January 1st 1900 at noon would be 2.5, 2 because it's 2 days
1989	// after
1990	// December 30st 1899, and .5 because noon is half a day.  February
1991	// 1st
1992	// 1900 at 3pm would be 33.625. This correctly treats the year 1900
1993	// as
1994	// not a leap year.
1995	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
1996	// fields to be output
1997	// as strings in their given number format (which is dependent
1998	// on the spreadsheet locale).
1999	ResponseDateTimeRenderOption string `json:"responseDateTimeRenderOption,omitempty"`
2000
2001	// ResponseValueRenderOption: Determines how values in the response
2002	// should be rendered.
2003	// The default render option is ValueRenderOption.FORMATTED_VALUE.
2004	//
2005	// Possible values:
2006	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
2007	// reply according to the
2008	// cell's formatting.  Formatting is based on the spreadsheet's
2009	// locale,
2010	// not the requesting user's locale.
2011	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2012	// currency,
2013	// then `A2` would return "$1.23".
2014	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
2015	// in the reply.
2016	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2017	// currency,
2018	// then `A2` would return the number `1.23`.
2019	//   "FORMULA" - Values will not be calculated.  The reply will include
2020	// the formulas.
2021	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2022	// currency,
2023	// then A2 would return "=A1".
2024	ResponseValueRenderOption string `json:"responseValueRenderOption,omitempty"`
2025
2026	// ValueInputOption: How the input data should be interpreted.
2027	//
2028	// Possible values:
2029	//   "INPUT_VALUE_OPTION_UNSPECIFIED" - Default input value. This value
2030	// must not be used.
2031	//   "RAW" - The values the user has entered will not be parsed and will
2032	// be stored
2033	// as-is.
2034	//   "USER_ENTERED" - The values will be parsed as if the user typed
2035	// them into the UI.
2036	// Numbers will stay as numbers, but strings may be converted to
2037	// numbers,
2038	// dates, etc. following the same rules that are applied when
2039	// entering
2040	// text into a cell via the Google Sheets UI.
2041	ValueInputOption string `json:"valueInputOption,omitempty"`
2042
2043	// ForceSendFields is a list of field names (e.g. "Data") to
2044	// unconditionally include in API requests. By default, fields with
2045	// empty values are omitted from API requests. However, any non-pointer,
2046	// non-interface field appearing in ForceSendFields will be sent to the
2047	// server regardless of whether the field is empty or not. This may be
2048	// used to include empty fields in Patch requests.
2049	ForceSendFields []string `json:"-"`
2050
2051	// NullFields is a list of field names (e.g. "Data") to include in API
2052	// requests with the JSON null value. By default, fields with empty
2053	// values are omitted from API requests. However, any field with an
2054	// empty value appearing in NullFields will be sent to the server as
2055	// null. It is an error if a field in this list has a non-empty value.
2056	// This may be used to include null fields in Patch requests.
2057	NullFields []string `json:"-"`
2058}
2059
2060func (s *BatchUpdateValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
2061	type NoMethod BatchUpdateValuesByDataFilterRequest
2062	raw := NoMethod(*s)
2063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2064}
2065
2066// BatchUpdateValuesByDataFilterResponse: The response when updating a
2067// range of values in a spreadsheet.
2068type BatchUpdateValuesByDataFilterResponse struct {
2069	// Responses: The response for each range updated.
2070	Responses []*UpdateValuesByDataFilterResponse `json:"responses,omitempty"`
2071
2072	// SpreadsheetId: The spreadsheet the updates were applied to.
2073	SpreadsheetId string `json:"spreadsheetId,omitempty"`
2074
2075	// TotalUpdatedCells: The total number of cells updated.
2076	TotalUpdatedCells int64 `json:"totalUpdatedCells,omitempty"`
2077
2078	// TotalUpdatedColumns: The total number of columns where at least one
2079	// cell in the column was
2080	// updated.
2081	TotalUpdatedColumns int64 `json:"totalUpdatedColumns,omitempty"`
2082
2083	// TotalUpdatedRows: The total number of rows where at least one cell in
2084	// the row was updated.
2085	TotalUpdatedRows int64 `json:"totalUpdatedRows,omitempty"`
2086
2087	// TotalUpdatedSheets: The total number of sheets where at least one
2088	// cell in the sheet was
2089	// updated.
2090	TotalUpdatedSheets int64 `json:"totalUpdatedSheets,omitempty"`
2091
2092	// ServerResponse contains the HTTP response code and headers from the
2093	// server.
2094	googleapi.ServerResponse `json:"-"`
2095
2096	// ForceSendFields is a list of field names (e.g. "Responses") to
2097	// unconditionally include in API requests. By default, fields with
2098	// empty values are omitted from API requests. However, any non-pointer,
2099	// non-interface field appearing in ForceSendFields will be sent to the
2100	// server regardless of whether the field is empty or not. This may be
2101	// used to include empty fields in Patch requests.
2102	ForceSendFields []string `json:"-"`
2103
2104	// NullFields is a list of field names (e.g. "Responses") to include in
2105	// API requests with the JSON null value. By default, fields with empty
2106	// values are omitted from API requests. However, any field with an
2107	// empty value appearing in NullFields will be sent to the server as
2108	// null. It is an error if a field in this list has a non-empty value.
2109	// This may be used to include null fields in Patch requests.
2110	NullFields []string `json:"-"`
2111}
2112
2113func (s *BatchUpdateValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
2114	type NoMethod BatchUpdateValuesByDataFilterResponse
2115	raw := NoMethod(*s)
2116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2117}
2118
2119// BatchUpdateValuesRequest: The request for updating more than one
2120// range of values in a spreadsheet.
2121type BatchUpdateValuesRequest struct {
2122	// Data: The new values to apply to the spreadsheet.
2123	Data []*ValueRange `json:"data,omitempty"`
2124
2125	// IncludeValuesInResponse: Determines if the update response should
2126	// include the values
2127	// of the cells that were updated. By default, responses
2128	// do not include the updated values. The `updatedData` field
2129	// within
2130	// each of the BatchUpdateValuesResponse.responses contains the
2131	// updated
2132	// values. If the range to write was larger than the range actually
2133	// written,
2134	// the response includes all values in the requested range (excluding
2135	// trailing
2136	// empty rows and columns).
2137	IncludeValuesInResponse bool `json:"includeValuesInResponse,omitempty"`
2138
2139	// ResponseDateTimeRenderOption: Determines how dates, times, and
2140	// durations in the response should be
2141	// rendered. This is ignored if response_value_render_option
2142	// is
2143	// FORMATTED_VALUE.
2144	// The default dateTime render option
2145	// is
2146	// DateTimeRenderOption.SERIAL_NUMBER.
2147	//
2148	// Possible values:
2149	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
2150	// fields to be output
2151	// as doubles in "serial number" format, as popularized by Lotus
2152	// 1-2-3.
2153	// The whole number portion of the value (left of the decimal)
2154	// counts
2155	// the days since December 30th 1899. The fractional portion (right
2156	// of
2157	// the decimal) counts the time as a fraction of the day. For
2158	// example,
2159	// January 1st 1900 at noon would be 2.5, 2 because it's 2 days
2160	// after
2161	// December 30st 1899, and .5 because noon is half a day.  February
2162	// 1st
2163	// 1900 at 3pm would be 33.625. This correctly treats the year 1900
2164	// as
2165	// not a leap year.
2166	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
2167	// fields to be output
2168	// as strings in their given number format (which is dependent
2169	// on the spreadsheet locale).
2170	ResponseDateTimeRenderOption string `json:"responseDateTimeRenderOption,omitempty"`
2171
2172	// ResponseValueRenderOption: Determines how values in the response
2173	// should be rendered.
2174	// The default render option is ValueRenderOption.FORMATTED_VALUE.
2175	//
2176	// Possible values:
2177	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
2178	// reply according to the
2179	// cell's formatting.  Formatting is based on the spreadsheet's
2180	// locale,
2181	// not the requesting user's locale.
2182	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2183	// currency,
2184	// then `A2` would return "$1.23".
2185	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
2186	// in the reply.
2187	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2188	// currency,
2189	// then `A2` would return the number `1.23`.
2190	//   "FORMULA" - Values will not be calculated.  The reply will include
2191	// the formulas.
2192	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2193	// currency,
2194	// then A2 would return "=A1".
2195	ResponseValueRenderOption string `json:"responseValueRenderOption,omitempty"`
2196
2197	// ValueInputOption: How the input data should be interpreted.
2198	//
2199	// Possible values:
2200	//   "INPUT_VALUE_OPTION_UNSPECIFIED" - Default input value. This value
2201	// must not be used.
2202	//   "RAW" - The values the user has entered will not be parsed and will
2203	// be stored
2204	// as-is.
2205	//   "USER_ENTERED" - The values will be parsed as if the user typed
2206	// them into the UI.
2207	// Numbers will stay as numbers, but strings may be converted to
2208	// numbers,
2209	// dates, etc. following the same rules that are applied when
2210	// entering
2211	// text into a cell via the Google Sheets UI.
2212	ValueInputOption string `json:"valueInputOption,omitempty"`
2213
2214	// ForceSendFields is a list of field names (e.g. "Data") to
2215	// unconditionally include in API requests. By default, fields with
2216	// empty values are omitted from API requests. However, any non-pointer,
2217	// non-interface field appearing in ForceSendFields will be sent to the
2218	// server regardless of whether the field is empty or not. This may be
2219	// used to include empty fields in Patch requests.
2220	ForceSendFields []string `json:"-"`
2221
2222	// NullFields is a list of field names (e.g. "Data") to include in API
2223	// requests with the JSON null value. By default, fields with empty
2224	// values are omitted from API requests. However, any field with an
2225	// empty value appearing in NullFields will be sent to the server as
2226	// null. It is an error if a field in this list has a non-empty value.
2227	// This may be used to include null fields in Patch requests.
2228	NullFields []string `json:"-"`
2229}
2230
2231func (s *BatchUpdateValuesRequest) MarshalJSON() ([]byte, error) {
2232	type NoMethod BatchUpdateValuesRequest
2233	raw := NoMethod(*s)
2234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2235}
2236
2237// BatchUpdateValuesResponse: The response when updating a range of
2238// values in a spreadsheet.
2239type BatchUpdateValuesResponse struct {
2240	// Responses: One UpdateValuesResponse per requested range, in the same
2241	// order as
2242	// the requests appeared.
2243	Responses []*UpdateValuesResponse `json:"responses,omitempty"`
2244
2245	// SpreadsheetId: The spreadsheet the updates were applied to.
2246	SpreadsheetId string `json:"spreadsheetId,omitempty"`
2247
2248	// TotalUpdatedCells: The total number of cells updated.
2249	TotalUpdatedCells int64 `json:"totalUpdatedCells,omitempty"`
2250
2251	// TotalUpdatedColumns: The total number of columns where at least one
2252	// cell in the column was
2253	// updated.
2254	TotalUpdatedColumns int64 `json:"totalUpdatedColumns,omitempty"`
2255
2256	// TotalUpdatedRows: The total number of rows where at least one cell in
2257	// the row was updated.
2258	TotalUpdatedRows int64 `json:"totalUpdatedRows,omitempty"`
2259
2260	// TotalUpdatedSheets: The total number of sheets where at least one
2261	// cell in the sheet was
2262	// updated.
2263	TotalUpdatedSheets int64 `json:"totalUpdatedSheets,omitempty"`
2264
2265	// ServerResponse contains the HTTP response code and headers from the
2266	// server.
2267	googleapi.ServerResponse `json:"-"`
2268
2269	// ForceSendFields is a list of field names (e.g. "Responses") to
2270	// unconditionally include in API requests. By default, fields with
2271	// empty values are omitted from API requests. However, any non-pointer,
2272	// non-interface field appearing in ForceSendFields will be sent to the
2273	// server regardless of whether the field is empty or not. This may be
2274	// used to include empty fields in Patch requests.
2275	ForceSendFields []string `json:"-"`
2276
2277	// NullFields is a list of field names (e.g. "Responses") to include in
2278	// API requests with the JSON null value. By default, fields with empty
2279	// values are omitted from API requests. However, any field with an
2280	// empty value appearing in NullFields will be sent to the server as
2281	// null. It is an error if a field in this list has a non-empty value.
2282	// This may be used to include null fields in Patch requests.
2283	NullFields []string `json:"-"`
2284}
2285
2286func (s *BatchUpdateValuesResponse) MarshalJSON() ([]byte, error) {
2287	type NoMethod BatchUpdateValuesResponse
2288	raw := NoMethod(*s)
2289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2290}
2291
2292// BooleanCondition: A condition that can evaluate to true or
2293// false.
2294// BooleanConditions are used by conditional formatting,
2295// data validation, and the criteria in filters.
2296type BooleanCondition struct {
2297	// Type: The type of condition.
2298	//
2299	// Possible values:
2300	//   "CONDITION_TYPE_UNSPECIFIED" - The default value, do not use.
2301	//   "NUMBER_GREATER" - The cell's value must be greater than the
2302	// condition's value.
2303	// Supported by data validation, conditional formatting and
2304	// filters.
2305	// Requires a single ConditionValue.
2306	//   "NUMBER_GREATER_THAN_EQ" - The cell's value must be greater than or
2307	// equal to the condition's value.
2308	// Supported by data validation, conditional formatting and
2309	// filters.
2310	// Requires a single ConditionValue.
2311	//   "NUMBER_LESS" - The cell's value must be less than the condition's
2312	// value.
2313	// Supported by data validation, conditional formatting and
2314	// filters.
2315	// Requires a single ConditionValue.
2316	//   "NUMBER_LESS_THAN_EQ" - The cell's value must be less than or equal
2317	// to the condition's value.
2318	// Supported by data validation, conditional formatting and
2319	// filters.
2320	// Requires a single ConditionValue.
2321	//   "NUMBER_EQ" - The cell's value must be equal to the condition's
2322	// value.
2323	// Supported by data validation, conditional formatting and
2324	// filters.
2325	// Requires a single ConditionValue.
2326	//   "NUMBER_NOT_EQ" - The cell's value must be not equal to the
2327	// condition's value.
2328	// Supported by data validation, conditional formatting and
2329	// filters.
2330	// Requires a single ConditionValue.
2331	//   "NUMBER_BETWEEN" - The cell's value must be between the two
2332	// condition values.
2333	// Supported by data validation, conditional formatting and
2334	// filters.
2335	// Requires exactly two ConditionValues.
2336	//   "NUMBER_NOT_BETWEEN" - The cell's value must not be between the two
2337	// condition values.
2338	// Supported by data validation, conditional formatting and
2339	// filters.
2340	// Requires exactly two ConditionValues.
2341	//   "TEXT_CONTAINS" - The cell's value must contain the condition's
2342	// value.
2343	// Supported by data validation, conditional formatting and
2344	// filters.
2345	// Requires a single ConditionValue.
2346	//   "TEXT_NOT_CONTAINS" - The cell's value must not contain the
2347	// condition's value.
2348	// Supported by data validation, conditional formatting and
2349	// filters.
2350	// Requires a single ConditionValue.
2351	//   "TEXT_STARTS_WITH" - The cell's value must start with the
2352	// condition's value.
2353	// Supported by conditional formatting and filters.
2354	// Requires a single ConditionValue.
2355	//   "TEXT_ENDS_WITH" - The cell's value must end with the condition's
2356	// value.
2357	// Supported by conditional formatting and filters.
2358	// Requires a single ConditionValue.
2359	//   "TEXT_EQ" - The cell's value must be exactly the condition's
2360	// value.
2361	// Supported by data validation, conditional formatting and
2362	// filters.
2363	// Requires a single ConditionValue.
2364	//   "TEXT_IS_EMAIL" - The cell's value must be a valid email
2365	// address.
2366	// Supported by data validation.
2367	// Requires no ConditionValues.
2368	//   "TEXT_IS_URL" - The cell's value must be a valid URL.
2369	// Supported by data validation.
2370	// Requires no ConditionValues.
2371	//   "DATE_EQ" - The cell's value must be the same date as the
2372	// condition's value.
2373	// Supported by data validation, conditional formatting and
2374	// filters.
2375	// Requires a single ConditionValue.
2376	//   "DATE_BEFORE" - The cell's value must be before the date of the
2377	// condition's value.
2378	// Supported by data validation, conditional formatting and
2379	// filters.
2380	// Requires a single ConditionValue
2381	// that may be a relative date.
2382	//   "DATE_AFTER" - The cell's value must be after the date of the
2383	// condition's value.
2384	// Supported by data validation, conditional formatting and
2385	// filters.
2386	// Requires a single ConditionValue
2387	// that may be a relative date.
2388	//   "DATE_ON_OR_BEFORE" - The cell's value must be on or before the
2389	// date of the condition's value.
2390	// Supported by data validation.
2391	// Requires a single ConditionValue
2392	// that may be a relative date.
2393	//   "DATE_ON_OR_AFTER" - The cell's value must be on or after the date
2394	// of the condition's value.
2395	// Supported by data validation.
2396	// Requires a single ConditionValue
2397	// that may be a relative date.
2398	//   "DATE_BETWEEN" - The cell's value must be between the dates of the
2399	// two condition values.
2400	// Supported by data validation.
2401	// Requires exactly two ConditionValues.
2402	//   "DATE_NOT_BETWEEN" - The cell's value must be outside the dates of
2403	// the two condition values.
2404	// Supported by data validation.
2405	// Requires exactly two ConditionValues.
2406	//   "DATE_IS_VALID" - The cell's value must be a date.
2407	// Supported by data validation.
2408	// Requires no ConditionValues.
2409	//   "ONE_OF_RANGE" - The cell's value must be listed in the grid in
2410	// condition value's range.
2411	// Supported by data validation.
2412	// Requires a single ConditionValue,
2413	// and the value must be a valid range in A1 notation.
2414	//   "ONE_OF_LIST" - The cell's value must be in the list of condition
2415	// values.
2416	// Supported by data validation.
2417	// Supports any number of condition values,
2418	// one per item in the list.
2419	// Formulas are not supported in the values.
2420	//   "BLANK" - The cell's value must be empty.
2421	// Supported by conditional formatting and filters.
2422	// Requires no ConditionValues.
2423	//   "NOT_BLANK" - The cell's value must not be empty.
2424	// Supported by conditional formatting and filters.
2425	// Requires no ConditionValues.
2426	//   "CUSTOM_FORMULA" - The condition's formula must evaluate to
2427	// true.
2428	// Supported by data validation, conditional formatting and
2429	// filters.
2430	// Requires a single ConditionValue.
2431	//   "BOOLEAN" - The cell's value must be TRUE/FALSE or in the list of
2432	// condition values.
2433	// Supported by data validation.
2434	// Renders as a cell checkbox.
2435	// Supports zero, one or two ConditionValues.  No
2436	// values indicates the cell must be TRUE or FALSE, where TRUE renders
2437	// as
2438	// checked and FALSE renders as unchecked.  One value indicates the
2439	// cell
2440	// will render as checked when it contains that value and unchecked when
2441	// it
2442	// is blank.  Two values indicate that the cell will render as checked
2443	// when
2444	// it contains the first value and unchecked when it contains the
2445	// second
2446	// value.  For example, ["Yes","No"] indicates that the cell will render
2447	// a
2448	// checked box when it has the value "Yes" and an unchecked box when it
2449	// has
2450	// the value "No".
2451	Type string `json:"type,omitempty"`
2452
2453	// Values: The values of the condition. The number of supported values
2454	// depends
2455	// on the condition type.  Some support zero values,
2456	// others one or two values,
2457	// and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
2458	Values []*ConditionValue `json:"values,omitempty"`
2459
2460	// ForceSendFields is a list of field names (e.g. "Type") to
2461	// unconditionally include in API requests. By default, fields with
2462	// empty values are omitted from API requests. However, any non-pointer,
2463	// non-interface field appearing in ForceSendFields will be sent to the
2464	// server regardless of whether the field is empty or not. This may be
2465	// used to include empty fields in Patch requests.
2466	ForceSendFields []string `json:"-"`
2467
2468	// NullFields is a list of field names (e.g. "Type") to include in API
2469	// requests with the JSON null value. By default, fields with empty
2470	// values are omitted from API requests. However, any field with an
2471	// empty value appearing in NullFields will be sent to the server as
2472	// null. It is an error if a field in this list has a non-empty value.
2473	// This may be used to include null fields in Patch requests.
2474	NullFields []string `json:"-"`
2475}
2476
2477func (s *BooleanCondition) MarshalJSON() ([]byte, error) {
2478	type NoMethod BooleanCondition
2479	raw := NoMethod(*s)
2480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2481}
2482
2483// BooleanRule: A rule that may or may not match, depending on the
2484// condition.
2485type BooleanRule struct {
2486	// Condition: The condition of the rule. If the condition evaluates to
2487	// true,
2488	// the format is applied.
2489	Condition *BooleanCondition `json:"condition,omitempty"`
2490
2491	// Format: The format to apply.
2492	// Conditional formatting can only apply a subset of formatting:
2493	// bold, italic,
2494	// strikethrough,
2495	// foreground color &
2496	// background color.
2497	Format *CellFormat `json:"format,omitempty"`
2498
2499	// ForceSendFields is a list of field names (e.g. "Condition") to
2500	// unconditionally include in API requests. By default, fields with
2501	// empty values are omitted from API requests. However, any non-pointer,
2502	// non-interface field appearing in ForceSendFields will be sent to the
2503	// server regardless of whether the field is empty or not. This may be
2504	// used to include empty fields in Patch requests.
2505	ForceSendFields []string `json:"-"`
2506
2507	// NullFields is a list of field names (e.g. "Condition") to include in
2508	// API requests with the JSON null value. By default, fields with empty
2509	// values are omitted from API requests. However, any field with an
2510	// empty value appearing in NullFields will be sent to the server as
2511	// null. It is an error if a field in this list has a non-empty value.
2512	// This may be used to include null fields in Patch requests.
2513	NullFields []string `json:"-"`
2514}
2515
2516func (s *BooleanRule) MarshalJSON() ([]byte, error) {
2517	type NoMethod BooleanRule
2518	raw := NoMethod(*s)
2519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2520}
2521
2522// Border: A border along a cell.
2523type Border struct {
2524	// Color: The color of the border.
2525	Color *Color `json:"color,omitempty"`
2526
2527	// ColorStyle: The color of the border.
2528	// If color is also set, this field takes precedence.
2529	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
2530
2531	// Style: The style of the border.
2532	//
2533	// Possible values:
2534	//   "STYLE_UNSPECIFIED" - The style is not specified. Do not use this.
2535	//   "DOTTED" - The border is dotted.
2536	//   "DASHED" - The border is dashed.
2537	//   "SOLID" - The border is a thin solid line.
2538	//   "SOLID_MEDIUM" - The border is a medium solid line.
2539	//   "SOLID_THICK" - The border is a thick solid line.
2540	//   "NONE" - No border.
2541	// Used only when updating a border in order to erase it.
2542	//   "DOUBLE" - The border is two solid lines.
2543	Style string `json:"style,omitempty"`
2544
2545	// Width: The width of the border, in pixels.
2546	// Deprecated; the width is determined by the "style" field.
2547	Width int64 `json:"width,omitempty"`
2548
2549	// ForceSendFields is a list of field names (e.g. "Color") to
2550	// unconditionally include in API requests. By default, fields with
2551	// empty values are omitted from API requests. However, any non-pointer,
2552	// non-interface field appearing in ForceSendFields will be sent to the
2553	// server regardless of whether the field is empty or not. This may be
2554	// used to include empty fields in Patch requests.
2555	ForceSendFields []string `json:"-"`
2556
2557	// NullFields is a list of field names (e.g. "Color") to include in API
2558	// requests with the JSON null value. By default, fields with empty
2559	// values are omitted from API requests. However, any field with an
2560	// empty value appearing in NullFields will be sent to the server as
2561	// null. It is an error if a field in this list has a non-empty value.
2562	// This may be used to include null fields in Patch requests.
2563	NullFields []string `json:"-"`
2564}
2565
2566func (s *Border) MarshalJSON() ([]byte, error) {
2567	type NoMethod Border
2568	raw := NoMethod(*s)
2569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2570}
2571
2572// Borders: The borders of the cell.
2573type Borders struct {
2574	// Bottom: The bottom border of the cell.
2575	Bottom *Border `json:"bottom,omitempty"`
2576
2577	// Left: The left border of the cell.
2578	Left *Border `json:"left,omitempty"`
2579
2580	// Right: The right border of the cell.
2581	Right *Border `json:"right,omitempty"`
2582
2583	// Top: The top border of the cell.
2584	Top *Border `json:"top,omitempty"`
2585
2586	// ForceSendFields is a list of field names (e.g. "Bottom") to
2587	// unconditionally include in API requests. By default, fields with
2588	// empty values are omitted from API requests. However, any non-pointer,
2589	// non-interface field appearing in ForceSendFields will be sent to the
2590	// server regardless of whether the field is empty or not. This may be
2591	// used to include empty fields in Patch requests.
2592	ForceSendFields []string `json:"-"`
2593
2594	// NullFields is a list of field names (e.g. "Bottom") to include in API
2595	// requests with the JSON null value. By default, fields with empty
2596	// values are omitted from API requests. However, any field with an
2597	// empty value appearing in NullFields will be sent to the server as
2598	// null. It is an error if a field in this list has a non-empty value.
2599	// This may be used to include null fields in Patch requests.
2600	NullFields []string `json:"-"`
2601}
2602
2603func (s *Borders) MarshalJSON() ([]byte, error) {
2604	type NoMethod Borders
2605	raw := NoMethod(*s)
2606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2607}
2608
2609// BubbleChartSpec: A <a
2610// href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>.
2611type BubbleChartSpec struct {
2612	// BubbleBorderColor: The bubble border color.
2613	BubbleBorderColor *Color `json:"bubbleBorderColor,omitempty"`
2614
2615	// BubbleBorderColorStyle: The bubble border color.
2616	// If bubble_border_color is also set, this field takes precedence.
2617	BubbleBorderColorStyle *ColorStyle `json:"bubbleBorderColorStyle,omitempty"`
2618
2619	// BubbleLabels: The data containing the bubble labels.  These do not
2620	// need to be unique.
2621	BubbleLabels *ChartData `json:"bubbleLabels,omitempty"`
2622
2623	// BubbleMaxRadiusSize: The max radius size of the bubbles, in
2624	// pixels.
2625	// If specified, the field must be a positive value.
2626	BubbleMaxRadiusSize int64 `json:"bubbleMaxRadiusSize,omitempty"`
2627
2628	// BubbleMinRadiusSize: The minimum radius size of the bubbles, in
2629	// pixels.
2630	// If specific, the field must be a positive value.
2631	BubbleMinRadiusSize int64 `json:"bubbleMinRadiusSize,omitempty"`
2632
2633	// BubbleOpacity: The opacity of the bubbles between 0 and 1.0.
2634	// 0 is fully transparent and 1 is fully opaque.
2635	BubbleOpacity float64 `json:"bubbleOpacity,omitempty"`
2636
2637	// BubbleSizes: The data contianing the bubble sizes.  Bubble sizes are
2638	// used to draw
2639	// the bubbles at different sizes relative to each other.
2640	// If specified, group_ids must also be specified.  This field
2641	// is
2642	// optional.
2643	BubbleSizes *ChartData `json:"bubbleSizes,omitempty"`
2644
2645	// BubbleTextStyle: The format of the text inside the bubbles.
2646	// Underline and Strikethrough are not supported.
2647	BubbleTextStyle *TextFormat `json:"bubbleTextStyle,omitempty"`
2648
2649	// Domain: The data containing the bubble x-values.  These values locate
2650	// the bubbles
2651	// in the chart horizontally.
2652	Domain *ChartData `json:"domain,omitempty"`
2653
2654	// GroupIds: The data containing the bubble group IDs. All bubbles with
2655	// the same group
2656	// ID are drawn in the same color. If bubble_sizes is specified
2657	// then
2658	// this field must also be specified but may contain blank values.
2659	// This field is optional.
2660	GroupIds *ChartData `json:"groupIds,omitempty"`
2661
2662	// LegendPosition: Where the legend of the chart should be drawn.
2663	//
2664	// Possible values:
2665	//   "BUBBLE_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
2666	// use.
2667	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
2668	// chart.
2669	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
2670	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
2671	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
2672	//   "NO_LEGEND" - No legend is rendered.
2673	//   "INSIDE_LEGEND" - The legend is rendered inside the chart area.
2674	LegendPosition string `json:"legendPosition,omitempty"`
2675
2676	// Series: The data contianing the bubble y-values.  These values locate
2677	// the bubbles
2678	// in the chart vertically.
2679	Series *ChartData `json:"series,omitempty"`
2680
2681	// ForceSendFields is a list of field names (e.g. "BubbleBorderColor")
2682	// to unconditionally include in API requests. By default, fields with
2683	// empty values are omitted from API requests. However, any non-pointer,
2684	// non-interface field appearing in ForceSendFields will be sent to the
2685	// server regardless of whether the field is empty or not. This may be
2686	// used to include empty fields in Patch requests.
2687	ForceSendFields []string `json:"-"`
2688
2689	// NullFields is a list of field names (e.g. "BubbleBorderColor") to
2690	// include in API requests with the JSON null value. By default, fields
2691	// with empty values are omitted from API requests. However, any field
2692	// with an empty value appearing in NullFields will be sent to the
2693	// server as null. It is an error if a field in this list has a
2694	// non-empty value. This may be used to include null fields in Patch
2695	// requests.
2696	NullFields []string `json:"-"`
2697}
2698
2699func (s *BubbleChartSpec) MarshalJSON() ([]byte, error) {
2700	type NoMethod BubbleChartSpec
2701	raw := NoMethod(*s)
2702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2703}
2704
2705func (s *BubbleChartSpec) UnmarshalJSON(data []byte) error {
2706	type NoMethod BubbleChartSpec
2707	var s1 struct {
2708		BubbleOpacity gensupport.JSONFloat64 `json:"bubbleOpacity"`
2709		*NoMethod
2710	}
2711	s1.NoMethod = (*NoMethod)(s)
2712	if err := json.Unmarshal(data, &s1); err != nil {
2713		return err
2714	}
2715	s.BubbleOpacity = float64(s1.BubbleOpacity)
2716	return nil
2717}
2718
2719// CandlestickChartSpec: A <a
2720// href="/chart/interactive/docs/gallery/candlestickchart">candlestick
2721// ch
2722// art</a>.
2723type CandlestickChartSpec struct {
2724	// Data: The Candlestick chart data.
2725	// Only one CandlestickData is supported.
2726	Data []*CandlestickData `json:"data,omitempty"`
2727
2728	// Domain: The domain data (horizontal axis) for the candlestick chart.
2729	// String data
2730	// will be treated as discrete labels, other data will be treated
2731	// as
2732	// continuous values.
2733	Domain *CandlestickDomain `json:"domain,omitempty"`
2734
2735	// ForceSendFields is a list of field names (e.g. "Data") to
2736	// unconditionally include in API requests. By default, fields with
2737	// empty values are omitted from API requests. However, any non-pointer,
2738	// non-interface field appearing in ForceSendFields will be sent to the
2739	// server regardless of whether the field is empty or not. This may be
2740	// used to include empty fields in Patch requests.
2741	ForceSendFields []string `json:"-"`
2742
2743	// NullFields is a list of field names (e.g. "Data") to include in API
2744	// requests with the JSON null value. By default, fields with empty
2745	// values are omitted from API requests. However, any field with an
2746	// empty value appearing in NullFields will be sent to the server as
2747	// null. It is an error if a field in this list has a non-empty value.
2748	// This may be used to include null fields in Patch requests.
2749	NullFields []string `json:"-"`
2750}
2751
2752func (s *CandlestickChartSpec) MarshalJSON() ([]byte, error) {
2753	type NoMethod CandlestickChartSpec
2754	raw := NoMethod(*s)
2755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2756}
2757
2758// CandlestickData: The Candlestick chart data, each containing the low,
2759// open, close, and high
2760// values for a series.
2761type CandlestickData struct {
2762	// CloseSeries: The range data (vertical axis) for the close/final value
2763	// for each candle.
2764	// This is the top of the candle body.  If greater than the open value
2765	// the
2766	// candle will be filled.  Otherwise the candle will be hollow.
2767	CloseSeries *CandlestickSeries `json:"closeSeries,omitempty"`
2768
2769	// HighSeries: The range data (vertical axis) for the high/maximum value
2770	// for each
2771	// candle. This is the top of the candle's center line.
2772	HighSeries *CandlestickSeries `json:"highSeries,omitempty"`
2773
2774	// LowSeries: The range data (vertical axis) for the low/minimum value
2775	// for each candle.
2776	// This is the bottom of the candle's center line.
2777	LowSeries *CandlestickSeries `json:"lowSeries,omitempty"`
2778
2779	// OpenSeries: The range data (vertical axis) for the open/initial value
2780	// for each
2781	// candle. This is the bottom of the candle body.  If less than the
2782	// close
2783	// value the candle will be filled.  Otherwise the candle will be
2784	// hollow.
2785	OpenSeries *CandlestickSeries `json:"openSeries,omitempty"`
2786
2787	// ForceSendFields is a list of field names (e.g. "CloseSeries") 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. "CloseSeries") to include
2796	// in API requests with the JSON null value. By default, fields with
2797	// empty values are omitted from API requests. However, any field with
2798	// an 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 *CandlestickData) MarshalJSON() ([]byte, error) {
2805	type NoMethod CandlestickData
2806	raw := NoMethod(*s)
2807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2808}
2809
2810// CandlestickDomain: The domain of a CandlestickChart.
2811type CandlestickDomain struct {
2812	// Data: The data of the CandlestickDomain.
2813	Data *ChartData `json:"data,omitempty"`
2814
2815	// Reversed: True to reverse the order of the domain values (horizontal
2816	// axis).
2817	Reversed bool `json:"reversed,omitempty"`
2818
2819	// ForceSendFields is a list of field names (e.g. "Data") to
2820	// unconditionally include in API requests. By default, fields with
2821	// empty values are omitted from API requests. However, any non-pointer,
2822	// non-interface field appearing in ForceSendFields will be sent to the
2823	// server regardless of whether the field is empty or not. This may be
2824	// used to include empty fields in Patch requests.
2825	ForceSendFields []string `json:"-"`
2826
2827	// NullFields is a list of field names (e.g. "Data") to include in API
2828	// requests with the JSON null value. By default, fields with empty
2829	// values are omitted from API requests. However, any field with an
2830	// empty value appearing in NullFields will be sent to the server as
2831	// null. It is an error if a field in this list has a non-empty value.
2832	// This may be used to include null fields in Patch requests.
2833	NullFields []string `json:"-"`
2834}
2835
2836func (s *CandlestickDomain) MarshalJSON() ([]byte, error) {
2837	type NoMethod CandlestickDomain
2838	raw := NoMethod(*s)
2839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2840}
2841
2842// CandlestickSeries: The series of a CandlestickData.
2843type CandlestickSeries struct {
2844	// Data: The data of the CandlestickSeries.
2845	Data *ChartData `json:"data,omitempty"`
2846
2847	// ForceSendFields is a list of field names (e.g. "Data") to
2848	// unconditionally include in API requests. By default, fields with
2849	// empty values are omitted from API requests. However, any non-pointer,
2850	// non-interface field appearing in ForceSendFields will be sent to the
2851	// server regardless of whether the field is empty or not. This may be
2852	// used to include empty fields in Patch requests.
2853	ForceSendFields []string `json:"-"`
2854
2855	// NullFields is a list of field names (e.g. "Data") to include in API
2856	// requests with the JSON null value. By default, fields with empty
2857	// values are omitted from API requests. However, any field with an
2858	// empty value appearing in NullFields will be sent to the server as
2859	// null. It is an error if a field in this list has a non-empty value.
2860	// This may be used to include null fields in Patch requests.
2861	NullFields []string `json:"-"`
2862}
2863
2864func (s *CandlestickSeries) MarshalJSON() ([]byte, error) {
2865	type NoMethod CandlestickSeries
2866	raw := NoMethod(*s)
2867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2868}
2869
2870// CellData: Data about a specific cell.
2871type CellData struct {
2872	// DataValidation: A data validation rule on the cell, if any.
2873	//
2874	// When writing, the new data validation rule will overwrite any prior
2875	// rule.
2876	DataValidation *DataValidationRule `json:"dataValidation,omitempty"`
2877
2878	// EffectiveFormat: The effective format being used by the cell.
2879	// This includes the results of applying any conditional formatting
2880	// and,
2881	// if the cell contains a formula, the computed number format.
2882	// If the effective format is the default format, effective format
2883	// will
2884	// not be written.
2885	// This field is read-only.
2886	EffectiveFormat *CellFormat `json:"effectiveFormat,omitempty"`
2887
2888	// EffectiveValue: The effective value of the cell. For cells with
2889	// formulas, this is
2890	// the calculated value.  For cells with literals, this is
2891	// the same as the user_entered_value.
2892	// This field is read-only.
2893	EffectiveValue *ExtendedValue `json:"effectiveValue,omitempty"`
2894
2895	// FormattedValue: The formatted value of the cell.
2896	// This is the value as it's shown to the user.
2897	// This field is read-only.
2898	FormattedValue string `json:"formattedValue,omitempty"`
2899
2900	// Hyperlink: A hyperlink this cell points to, if any.
2901	// This field is read-only.  (To set it, use a `=HYPERLINK` formula
2902	// in the userEnteredValue.formulaValue
2903	// field.)
2904	Hyperlink string `json:"hyperlink,omitempty"`
2905
2906	// Note: Any note on the cell.
2907	Note string `json:"note,omitempty"`
2908
2909	// PivotTable: A pivot table anchored at this cell. The size of pivot
2910	// table itself
2911	// is computed dynamically based on its data, grouping, filters,
2912	// values,
2913	// etc. Only the top-left cell of the pivot table contains the pivot
2914	// table
2915	// definition. The other cells will contain the calculated values of
2916	// the
2917	// results of the pivot in their effective_value fields.
2918	PivotTable *PivotTable `json:"pivotTable,omitempty"`
2919
2920	// TextFormatRuns: Runs of rich text applied to subsections of the cell.
2921	//  Runs are only valid
2922	// on user entered strings, not formulas, bools, or numbers.
2923	// Runs start at specific indexes in the text and continue until the
2924	// next
2925	// run. Properties of a run will continue unless explicitly changed
2926	// in a subsequent run (and properties of the first run will
2927	// continue
2928	// the properties of the cell unless explicitly changed).
2929	//
2930	// When writing, the new runs will overwrite any prior runs.  When
2931	// writing a
2932	// new user_entered_value, previous runs are erased.
2933	TextFormatRuns []*TextFormatRun `json:"textFormatRuns,omitempty"`
2934
2935	// UserEnteredFormat: The format the user entered for the cell.
2936	//
2937	// When writing, the new format will be merged with the existing format.
2938	UserEnteredFormat *CellFormat `json:"userEnteredFormat,omitempty"`
2939
2940	// UserEnteredValue: The value the user entered in the cell. e.g,
2941	// `1234`, `'Hello'`, or `=NOW()`
2942	// Note: Dates, Times and DateTimes are represented as doubles in
2943	// serial number format.
2944	UserEnteredValue *ExtendedValue `json:"userEnteredValue,omitempty"`
2945
2946	// ForceSendFields is a list of field names (e.g. "DataValidation") to
2947	// unconditionally include in API requests. By default, fields with
2948	// empty values are omitted from API requests. However, any non-pointer,
2949	// non-interface field appearing in ForceSendFields will be sent to the
2950	// server regardless of whether the field is empty or not. This may be
2951	// used to include empty fields in Patch requests.
2952	ForceSendFields []string `json:"-"`
2953
2954	// NullFields is a list of field names (e.g. "DataValidation") to
2955	// include in API requests with the JSON null value. By default, fields
2956	// with empty values are omitted from API requests. However, any field
2957	// with an empty value appearing in NullFields will be sent to the
2958	// server as null. It is an error if a field in this list has a
2959	// non-empty value. This may be used to include null fields in Patch
2960	// requests.
2961	NullFields []string `json:"-"`
2962}
2963
2964func (s *CellData) MarshalJSON() ([]byte, error) {
2965	type NoMethod CellData
2966	raw := NoMethod(*s)
2967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2968}
2969
2970// CellFormat: The format of a cell.
2971type CellFormat struct {
2972	// BackgroundColor: The background color of the cell.
2973	BackgroundColor *Color `json:"backgroundColor,omitempty"`
2974
2975	// BackgroundColorStyle: The background color of the cell.
2976	// If background_color is also set, this field takes precedence.
2977	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
2978
2979	// Borders: The borders of the cell.
2980	Borders *Borders `json:"borders,omitempty"`
2981
2982	// HorizontalAlignment: The horizontal alignment of the value in the
2983	// cell.
2984	//
2985	// Possible values:
2986	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
2987	// specified. Do not use this.
2988	//   "LEFT" - The text is explicitly aligned to the left of the cell.
2989	//   "CENTER" - The text is explicitly aligned to the center of the
2990	// cell.
2991	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
2992	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
2993
2994	// HyperlinkDisplayType: How a hyperlink, if it exists, should be
2995	// displayed in the cell.
2996	//
2997	// Possible values:
2998	//   "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED" - The default value: the
2999	// hyperlink is rendered. Do not use this.
3000	//   "LINKED" - A hyperlink should be explicitly rendered.
3001	//   "PLAIN_TEXT" - A hyperlink should not be rendered.
3002	HyperlinkDisplayType string `json:"hyperlinkDisplayType,omitempty"`
3003
3004	// NumberFormat: A format describing how number values should be
3005	// represented to the user.
3006	NumberFormat *NumberFormat `json:"numberFormat,omitempty"`
3007
3008	// Padding: The padding of the cell.
3009	Padding *Padding `json:"padding,omitempty"`
3010
3011	// TextDirection: The direction of the text in the cell.
3012	//
3013	// Possible values:
3014	//   "TEXT_DIRECTION_UNSPECIFIED" - The text direction is not specified.
3015	// Do not use this.
3016	//   "LEFT_TO_RIGHT" - The text direction of left-to-right was set by
3017	// the user.
3018	//   "RIGHT_TO_LEFT" - The text direction of right-to-left was set by
3019	// the user.
3020	TextDirection string `json:"textDirection,omitempty"`
3021
3022	// TextFormat: The format of the text in the cell (unless overridden by
3023	// a format run).
3024	TextFormat *TextFormat `json:"textFormat,omitempty"`
3025
3026	// TextRotation: The rotation applied to text in a cell
3027	TextRotation *TextRotation `json:"textRotation,omitempty"`
3028
3029	// VerticalAlignment: The vertical alignment of the value in the cell.
3030	//
3031	// Possible values:
3032	//   "VERTICAL_ALIGN_UNSPECIFIED" - The vertical alignment is not
3033	// specified.  Do not use this.
3034	//   "TOP" - The text is explicitly aligned to the top of the cell.
3035	//   "MIDDLE" - The text is explicitly aligned to the middle of the
3036	// cell.
3037	//   "BOTTOM" - The text is explicitly aligned to the bottom of the
3038	// cell.
3039	VerticalAlignment string `json:"verticalAlignment,omitempty"`
3040
3041	// WrapStrategy: The wrap strategy for the value in the cell.
3042	//
3043	// Possible values:
3044	//   "WRAP_STRATEGY_UNSPECIFIED" - The default value, do not use.
3045	//   "OVERFLOW_CELL" - Lines that are longer than the cell width will be
3046	// written in the next
3047	// cell over, so long as that cell is empty. If the next cell over
3048	// is
3049	// non-empty, this behaves the same as CLIP. The text will never wrap
3050	// to the next line unless the user manually inserts a new
3051	// line.
3052	// Example:
3053	//
3054	//     | First sentence. |
3055	//     | Manual newline that is very long. <- Text continues into next
3056	// cell
3057	//     | Next newline.   |
3058	//   "LEGACY_WRAP" - This wrap strategy represents the old Google Sheets
3059	// wrap strategy where
3060	// words that are longer than a line are clipped rather than broken.
3061	// This
3062	// strategy is not supported on all platforms and is being phased
3063	// out.
3064	// Example:
3065	//
3066	//     | Cell has a |
3067	//     | loooooooooo| <- Word is clipped.
3068	//     | word.      |
3069	//   "CLIP" - Lines that are longer than the cell width will be
3070	// clipped.
3071	// The text will never wrap to the next line unless the user
3072	// manually
3073	// inserts a new line.
3074	// Example:
3075	//
3076	//     | First sentence. |
3077	//     | Manual newline t| <- Text is clipped
3078	//     | Next newline.   |
3079	//   "WRAP" - Words that are longer than a line are wrapped at the
3080	// character level
3081	// rather than clipped.
3082	// Example:
3083	//
3084	//     | Cell has a |
3085	//     | loooooooooo| <- Word is broken.
3086	//     | ong word.  |
3087	WrapStrategy string `json:"wrapStrategy,omitempty"`
3088
3089	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
3090	// unconditionally include in API requests. By default, fields with
3091	// empty values are omitted from API requests. However, any non-pointer,
3092	// non-interface field appearing in ForceSendFields will be sent to the
3093	// server regardless of whether the field is empty or not. This may be
3094	// used to include empty fields in Patch requests.
3095	ForceSendFields []string `json:"-"`
3096
3097	// NullFields is a list of field names (e.g. "BackgroundColor") to
3098	// include in API requests with the JSON null value. By default, fields
3099	// with empty values are omitted from API requests. However, any field
3100	// with an empty value appearing in NullFields will be sent to the
3101	// server as null. It is an error if a field in this list has a
3102	// non-empty value. This may be used to include null fields in Patch
3103	// requests.
3104	NullFields []string `json:"-"`
3105}
3106
3107func (s *CellFormat) MarshalJSON() ([]byte, error) {
3108	type NoMethod CellFormat
3109	raw := NoMethod(*s)
3110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3111}
3112
3113// ChartAxisViewWindowOptions: The options that define a "view window"
3114// for a chart (such as the visible
3115// values in an axis).
3116type ChartAxisViewWindowOptions struct {
3117	// ViewWindowMax: The maximum numeric value to be shown in this view
3118	// window. If unset, will
3119	// automatically determine a maximum value that looks good for the data.
3120	ViewWindowMax float64 `json:"viewWindowMax,omitempty"`
3121
3122	// ViewWindowMin: The minimum numeric value to be shown in this view
3123	// window. If unset, will
3124	// automatically determine a minimum value that looks good for the data.
3125	ViewWindowMin float64 `json:"viewWindowMin,omitempty"`
3126
3127	// ViewWindowMode: The view window's mode.
3128	//
3129	// Possible values:
3130	//   "DEFAULT_VIEW_WINDOW_MODE" - The default view window mode used in
3131	// the Sheets editor for this chart
3132	// type. In most cases, if set, the default mode is equivalent
3133	// to
3134	// `PRETTY`.
3135	//   "VIEW_WINDOW_MODE_UNSUPPORTED" - Do not use. Represents that the
3136	// currently set mode is not supported by
3137	// the API.
3138	//   "EXPLICIT" - Follows the min and max exactly if specified. If a
3139	// value is unspecified,
3140	// it will fall back to the `PRETTY` value.
3141	//   "PRETTY" - Chooses a min and max that make the chart look good.
3142	// Both min and max are
3143	// ignored in this mode.
3144	ViewWindowMode string `json:"viewWindowMode,omitempty"`
3145
3146	// ForceSendFields is a list of field names (e.g. "ViewWindowMax") to
3147	// unconditionally include in API requests. By default, fields with
3148	// empty values are omitted from API requests. However, any non-pointer,
3149	// non-interface field appearing in ForceSendFields will be sent to the
3150	// server regardless of whether the field is empty or not. This may be
3151	// used to include empty fields in Patch requests.
3152	ForceSendFields []string `json:"-"`
3153
3154	// NullFields is a list of field names (e.g. "ViewWindowMax") to include
3155	// in API requests with the JSON null value. By default, fields with
3156	// empty values are omitted from API requests. However, any field with
3157	// an empty value appearing in NullFields will be sent to the server as
3158	// null. It is an error if a field in this list has a non-empty value.
3159	// This may be used to include null fields in Patch requests.
3160	NullFields []string `json:"-"`
3161}
3162
3163func (s *ChartAxisViewWindowOptions) MarshalJSON() ([]byte, error) {
3164	type NoMethod ChartAxisViewWindowOptions
3165	raw := NoMethod(*s)
3166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3167}
3168
3169func (s *ChartAxisViewWindowOptions) UnmarshalJSON(data []byte) error {
3170	type NoMethod ChartAxisViewWindowOptions
3171	var s1 struct {
3172		ViewWindowMax gensupport.JSONFloat64 `json:"viewWindowMax"`
3173		ViewWindowMin gensupport.JSONFloat64 `json:"viewWindowMin"`
3174		*NoMethod
3175	}
3176	s1.NoMethod = (*NoMethod)(s)
3177	if err := json.Unmarshal(data, &s1); err != nil {
3178		return err
3179	}
3180	s.ViewWindowMax = float64(s1.ViewWindowMax)
3181	s.ViewWindowMin = float64(s1.ViewWindowMin)
3182	return nil
3183}
3184
3185// ChartCustomNumberFormatOptions: Custom number formatting options for
3186// chart attributes.
3187type ChartCustomNumberFormatOptions struct {
3188	// Prefix: Custom prefix to be prepended to the chart attribute.
3189	// This field is optional.
3190	Prefix string `json:"prefix,omitempty"`
3191
3192	// Suffix: Custom suffix to be appended to the chart attribute.
3193	// This field is optional.
3194	Suffix string `json:"suffix,omitempty"`
3195
3196	// ForceSendFields is a list of field names (e.g. "Prefix") to
3197	// unconditionally include in API requests. By default, fields with
3198	// empty values are omitted from API requests. However, any non-pointer,
3199	// non-interface field appearing in ForceSendFields will be sent to the
3200	// server regardless of whether the field is empty or not. This may be
3201	// used to include empty fields in Patch requests.
3202	ForceSendFields []string `json:"-"`
3203
3204	// NullFields is a list of field names (e.g. "Prefix") to include in API
3205	// requests with the JSON null value. By default, fields with empty
3206	// values are omitted from API requests. However, any field with an
3207	// empty value appearing in NullFields will be sent to the server as
3208	// null. It is an error if a field in this list has a non-empty value.
3209	// This may be used to include null fields in Patch requests.
3210	NullFields []string `json:"-"`
3211}
3212
3213func (s *ChartCustomNumberFormatOptions) MarshalJSON() ([]byte, error) {
3214	type NoMethod ChartCustomNumberFormatOptions
3215	raw := NoMethod(*s)
3216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3217}
3218
3219// ChartData: The data included in a domain or series.
3220type ChartData struct {
3221	// SourceRange: The source ranges of the data.
3222	SourceRange *ChartSourceRange `json:"sourceRange,omitempty"`
3223
3224	// ForceSendFields is a list of field names (e.g. "SourceRange") to
3225	// unconditionally include in API requests. By default, fields with
3226	// empty values are omitted from API requests. However, any non-pointer,
3227	// non-interface field appearing in ForceSendFields will be sent to the
3228	// server regardless of whether the field is empty or not. This may be
3229	// used to include empty fields in Patch requests.
3230	ForceSendFields []string `json:"-"`
3231
3232	// NullFields is a list of field names (e.g. "SourceRange") to include
3233	// in API requests with the JSON null value. By default, fields with
3234	// empty values are omitted from API requests. However, any field with
3235	// an empty value appearing in NullFields will be sent to the server as
3236	// null. It is an error if a field in this list has a non-empty value.
3237	// This may be used to include null fields in Patch requests.
3238	NullFields []string `json:"-"`
3239}
3240
3241func (s *ChartData) MarshalJSON() ([]byte, error) {
3242	type NoMethod ChartData
3243	raw := NoMethod(*s)
3244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3245}
3246
3247// ChartSourceRange: Source ranges for a chart.
3248type ChartSourceRange struct {
3249	// Sources: The ranges of data for a series or domain.
3250	// Exactly one dimension must have a length of 1,
3251	// and all sources in the list must have the same dimension
3252	// with length 1.
3253	// The domain (if it exists) & all series must have the same number
3254	// of source ranges. If using more than one source range, then the
3255	// source
3256	// range at a given offset must be in order and contiguous across the
3257	// domain
3258	// and series.
3259	//
3260	// For example, these are valid configurations:
3261	//
3262	//     domain sources: A1:A5
3263	//     series1 sources: B1:B5
3264	//     series2 sources: D6:D10
3265	//
3266	//     domain sources: A1:A5, C10:C12
3267	//     series1 sources: B1:B5, D10:D12
3268	//     series2 sources: C1:C5, E10:E12
3269	Sources []*GridRange `json:"sources,omitempty"`
3270
3271	// ForceSendFields is a list of field names (e.g. "Sources") to
3272	// unconditionally include in API requests. By default, fields with
3273	// empty values are omitted from API requests. However, any non-pointer,
3274	// non-interface field appearing in ForceSendFields will be sent to the
3275	// server regardless of whether the field is empty or not. This may be
3276	// used to include empty fields in Patch requests.
3277	ForceSendFields []string `json:"-"`
3278
3279	// NullFields is a list of field names (e.g. "Sources") to include in
3280	// API requests with the JSON null value. By default, fields with empty
3281	// values are omitted from API requests. However, any field with an
3282	// empty value appearing in NullFields will be sent to the server as
3283	// null. It is an error if a field in this list has a non-empty value.
3284	// This may be used to include null fields in Patch requests.
3285	NullFields []string `json:"-"`
3286}
3287
3288func (s *ChartSourceRange) MarshalJSON() ([]byte, error) {
3289	type NoMethod ChartSourceRange
3290	raw := NoMethod(*s)
3291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3292}
3293
3294// ChartSpec: The specifications of a chart.
3295type ChartSpec struct {
3296	// AltText: The alternative text that describes the chart.  This is
3297	// often used
3298	// for accessibility.
3299	AltText string `json:"altText,omitempty"`
3300
3301	// BackgroundColor: The background color of the entire chart.
3302	// Not applicable to Org charts.
3303	BackgroundColor *Color `json:"backgroundColor,omitempty"`
3304
3305	// BackgroundColorStyle: The background color of the entire chart.
3306	// Not applicable to Org charts.
3307	// If background_color is also set, this field takes precedence.
3308	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
3309
3310	// BasicChart: A basic chart specification, can be one of many kinds of
3311	// charts.
3312	// See BasicChartType for the list of all
3313	// charts this supports.
3314	BasicChart *BasicChartSpec `json:"basicChart,omitempty"`
3315
3316	// BubbleChart: A bubble chart specification.
3317	BubbleChart *BubbleChartSpec `json:"bubbleChart,omitempty"`
3318
3319	// CandlestickChart: A candlestick chart specification.
3320	CandlestickChart *CandlestickChartSpec `json:"candlestickChart,omitempty"`
3321
3322	// FontName: The name of the font to use by default for all chart text
3323	// (e.g. title,
3324	// axis labels, legend).  If a font is specified for a specific part of
3325	// the
3326	// chart it will override this font name.
3327	FontName string `json:"fontName,omitempty"`
3328
3329	// HiddenDimensionStrategy: Determines how the charts will use hidden
3330	// rows or columns.
3331	//
3332	// Possible values:
3333	//   "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED" - Default value, do
3334	// not use.
3335	//   "SKIP_HIDDEN_ROWS_AND_COLUMNS" - Charts will skip hidden rows and
3336	// columns.
3337	//   "SKIP_HIDDEN_ROWS" - Charts will skip hidden rows only.
3338	//   "SKIP_HIDDEN_COLUMNS" - Charts will skip hidden columns only.
3339	//   "SHOW_ALL" - Charts will not skip any hidden rows or columns.
3340	HiddenDimensionStrategy string `json:"hiddenDimensionStrategy,omitempty"`
3341
3342	// HistogramChart: A histogram chart specification.
3343	HistogramChart *HistogramChartSpec `json:"histogramChart,omitempty"`
3344
3345	// Maximized: True to make a chart fill the entire space in which it's
3346	// rendered with
3347	// minimum padding.  False to use the default padding.
3348	// (Not applicable to Geo and Org charts.)
3349	Maximized bool `json:"maximized,omitempty"`
3350
3351	// OrgChart: An org chart specification.
3352	OrgChart *OrgChartSpec `json:"orgChart,omitempty"`
3353
3354	// PieChart: A pie chart specification.
3355	PieChart *PieChartSpec `json:"pieChart,omitempty"`
3356
3357	// ScorecardChart: A scorecard chart specification.
3358	ScorecardChart *ScorecardChartSpec `json:"scorecardChart,omitempty"`
3359
3360	// Subtitle: The subtitle of the chart.
3361	Subtitle string `json:"subtitle,omitempty"`
3362
3363	// SubtitleTextFormat: The subtitle text format.
3364	// Strikethrough and underline are not supported.
3365	SubtitleTextFormat *TextFormat `json:"subtitleTextFormat,omitempty"`
3366
3367	// SubtitleTextPosition: The subtitle text position.
3368	// This field is optional.
3369	SubtitleTextPosition *TextPosition `json:"subtitleTextPosition,omitempty"`
3370
3371	// Title: The title of the chart.
3372	Title string `json:"title,omitempty"`
3373
3374	// TitleTextFormat: The title text format.
3375	// Strikethrough and underline are not supported.
3376	TitleTextFormat *TextFormat `json:"titleTextFormat,omitempty"`
3377
3378	// TitleTextPosition: The title text position.
3379	// This field is optional.
3380	TitleTextPosition *TextPosition `json:"titleTextPosition,omitempty"`
3381
3382	// TreemapChart: A treemap chart specification.
3383	TreemapChart *TreemapChartSpec `json:"treemapChart,omitempty"`
3384
3385	// WaterfallChart: A waterfall chart specification.
3386	WaterfallChart *WaterfallChartSpec `json:"waterfallChart,omitempty"`
3387
3388	// ForceSendFields is a list of field names (e.g. "AltText") to
3389	// unconditionally include in API requests. By default, fields with
3390	// empty values are omitted from API requests. However, any non-pointer,
3391	// non-interface field appearing in ForceSendFields will be sent to the
3392	// server regardless of whether the field is empty or not. This may be
3393	// used to include empty fields in Patch requests.
3394	ForceSendFields []string `json:"-"`
3395
3396	// NullFields is a list of field names (e.g. "AltText") to include in
3397	// API requests with the JSON null value. By default, fields with empty
3398	// values are omitted from API requests. However, any field with an
3399	// empty value appearing in NullFields will be sent to the server as
3400	// null. It is an error if a field in this list has a non-empty value.
3401	// This may be used to include null fields in Patch requests.
3402	NullFields []string `json:"-"`
3403}
3404
3405func (s *ChartSpec) MarshalJSON() ([]byte, error) {
3406	type NoMethod ChartSpec
3407	raw := NoMethod(*s)
3408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3409}
3410
3411// ClearBasicFilterRequest: Clears the basic filter, if any exists on
3412// the sheet.
3413type ClearBasicFilterRequest struct {
3414	// SheetId: The sheet ID on which the basic filter should be cleared.
3415	SheetId int64 `json:"sheetId,omitempty"`
3416
3417	// ForceSendFields is a list of field names (e.g. "SheetId") to
3418	// unconditionally include in API requests. By default, fields with
3419	// empty values are omitted from API requests. However, any non-pointer,
3420	// non-interface field appearing in ForceSendFields will be sent to the
3421	// server regardless of whether the field is empty or not. This may be
3422	// used to include empty fields in Patch requests.
3423	ForceSendFields []string `json:"-"`
3424
3425	// NullFields is a list of field names (e.g. "SheetId") to include in
3426	// API requests with the JSON null value. By default, fields with empty
3427	// values are omitted from API requests. However, any field with an
3428	// empty value appearing in NullFields will be sent to the server as
3429	// null. It is an error if a field in this list has a non-empty value.
3430	// This may be used to include null fields in Patch requests.
3431	NullFields []string `json:"-"`
3432}
3433
3434func (s *ClearBasicFilterRequest) MarshalJSON() ([]byte, error) {
3435	type NoMethod ClearBasicFilterRequest
3436	raw := NoMethod(*s)
3437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3438}
3439
3440// ClearValuesRequest: The request for clearing a range of values in a
3441// spreadsheet.
3442type ClearValuesRequest struct {
3443}
3444
3445// ClearValuesResponse: The response when clearing a range of values in
3446// a spreadsheet.
3447type ClearValuesResponse struct {
3448	// ClearedRange: The range (in A1 notation) that was cleared.
3449	// (If the request was for an unbounded range or a ranger larger
3450	//  than the bounds of the sheet, this will be the actual range
3451	//  that was cleared, bounded to the sheet's limits.)
3452	ClearedRange string `json:"clearedRange,omitempty"`
3453
3454	// SpreadsheetId: The spreadsheet the updates were applied to.
3455	SpreadsheetId string `json:"spreadsheetId,omitempty"`
3456
3457	// ServerResponse contains the HTTP response code and headers from the
3458	// server.
3459	googleapi.ServerResponse `json:"-"`
3460
3461	// ForceSendFields is a list of field names (e.g. "ClearedRange") to
3462	// unconditionally include in API requests. By default, fields with
3463	// empty values are omitted from API requests. However, any non-pointer,
3464	// non-interface field appearing in ForceSendFields will be sent to the
3465	// server regardless of whether the field is empty or not. This may be
3466	// used to include empty fields in Patch requests.
3467	ForceSendFields []string `json:"-"`
3468
3469	// NullFields is a list of field names (e.g. "ClearedRange") to include
3470	// in API requests with the JSON null value. By default, fields with
3471	// empty values are omitted from API requests. However, any field with
3472	// an empty value appearing in NullFields will be sent to the server as
3473	// null. It is an error if a field in this list has a non-empty value.
3474	// This may be used to include null fields in Patch requests.
3475	NullFields []string `json:"-"`
3476}
3477
3478func (s *ClearValuesResponse) MarshalJSON() ([]byte, error) {
3479	type NoMethod ClearValuesResponse
3480	raw := NoMethod(*s)
3481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3482}
3483
3484// Color: Represents a color in the RGBA color space. This
3485// representation is designed
3486// for simplicity of conversion to/from color representations in
3487// various
3488// languages over compactness; for example, the fields of this
3489// representation
3490// can be trivially provided to the constructor of "java.awt.Color" in
3491// Java; it
3492// can also be trivially provided to UIColor's
3493// "+colorWithRed:green:blue:alpha"
3494// method in iOS; and, with just a little work, it can be easily
3495// formatted into
3496// a CSS "rgba()" string in JavaScript, as well.
3497//
3498// Note: this proto does not carry information about the absolute color
3499// space
3500// that should be used to interpret the RGB value (e.g. sRGB, Adobe
3501// RGB,
3502// DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the
3503// sRGB color
3504// space.
3505//
3506// Note: when color equality needs to be decided, implementations,
3507// unless
3508// documented otherwise, will treat two colors to be equal if all their
3509// red,
3510// green, blue and alpha values each differ by at most 1e-5.
3511//
3512// Example (Java):
3513//
3514//      import com.google.type.Color;
3515//
3516//      // ...
3517//      public static java.awt.Color fromProto(Color protocolor) {
3518//        float alpha = protocolor.hasAlpha()
3519//            ? protocolor.getAlpha().getValue()
3520//            : 1.0;
3521//
3522//        return new java.awt.Color(
3523//            protocolor.getRed(),
3524//            protocolor.getGreen(),
3525//            protocolor.getBlue(),
3526//            alpha);
3527//      }
3528//
3529//      public static Color toProto(java.awt.Color color) {
3530//        float red = (float) color.getRed();
3531//        float green = (float) color.getGreen();
3532//        float blue = (float) color.getBlue();
3533//        float denominator = 255.0;
3534//        Color.Builder resultBuilder =
3535//            Color
3536//                .newBuilder()
3537//                .setRed(red / denominator)
3538//                .setGreen(green / denominator)
3539//                .setBlue(blue / denominator);
3540//        int alpha = color.getAlpha();
3541//        if (alpha != 255) {
3542//          result.setAlpha(
3543//              FloatValue
3544//                  .newBuilder()
3545//                  .setValue(((float) alpha) / denominator)
3546//                  .build());
3547//        }
3548//        return resultBuilder.build();
3549//      }
3550//      // ...
3551//
3552// Example (iOS / Obj-C):
3553//
3554//      // ...
3555//      static UIColor* fromProto(Color* protocolor) {
3556//         float red = [protocolor red];
3557//         float green = [protocolor green];
3558//         float blue = [protocolor blue];
3559//         FloatValue* alpha_wrapper = [protocolor alpha];
3560//         float alpha = 1.0;
3561//         if (alpha_wrapper != nil) {
3562//           alpha = [alpha_wrapper value];
3563//         }
3564//         return [UIColor colorWithRed:red green:green blue:blue
3565// alpha:alpha];
3566//      }
3567//
3568//      static Color* toProto(UIColor* color) {
3569//          CGFloat red, green, blue, alpha;
3570//          if (![color getRed:&red green:&green blue:&blue
3571// alpha:&alpha]) {
3572//            return nil;
3573//          }
3574//          Color* result = [[Color alloc] init];
3575//          [result setRed:red];
3576//          [result setGreen:green];
3577//          [result setBlue:blue];
3578//          if (alpha <= 0.9999) {
3579//            [result setAlpha:floatWrapperWithValue(alpha)];
3580//          }
3581//          [result autorelease];
3582//          return result;
3583//     }
3584//     // ...
3585//
3586//  Example (JavaScript):
3587//
3588//     // ...
3589//
3590//     var protoToCssColor = function(rgb_color) {
3591//        var redFrac = rgb_color.red || 0.0;
3592//        var greenFrac = rgb_color.green || 0.0;
3593//        var blueFrac = rgb_color.blue || 0.0;
3594//        var red = Math.floor(redFrac * 255);
3595//        var green = Math.floor(greenFrac * 255);
3596//        var blue = Math.floor(blueFrac * 255);
3597//
3598//        if (!('alpha' in rgb_color)) {
3599//           return rgbToCssColor_(red, green, blue);
3600//        }
3601//
3602//        var alphaFrac = rgb_color.alpha.value || 0.0;
3603//        var rgbParams = [red, green, blue].join(',');
3604//        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
3605//     };
3606//
3607//     var rgbToCssColor_ = function(red, green, blue) {
3608//       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
3609//       var hexString = rgbNumber.toString(16);
3610//       var missingZeros = 6 - hexString.length;
3611//       var resultBuilder = ['#'];
3612//       for (var i = 0; i < missingZeros; i++) {
3613//          resultBuilder.push('0');
3614//       }
3615//       resultBuilder.push(hexString);
3616//       return resultBuilder.join('');
3617//     };
3618//
3619//     // ...
3620type Color struct {
3621	// Alpha: The fraction of this color that should be applied to the
3622	// pixel. That is,
3623	// the final pixel color is defined by the equation:
3624	//
3625	//   pixel color = alpha * (this color) + (1.0 - alpha) * (background
3626	// color)
3627	//
3628	// This means that a value of 1.0 corresponds to a solid color,
3629	// whereas
3630	// a value of 0.0 corresponds to a completely transparent color.
3631	// This
3632	// uses a wrapper message rather than a simple float scalar so that it
3633	// is
3634	// possible to distinguish between a default value and the value being
3635	// unset.
3636	// If omitted, this color object is to be rendered as a solid color
3637	// (as if the alpha value had been explicitly given with a value of
3638	// 1.0).
3639	Alpha float64 `json:"alpha,omitempty"`
3640
3641	// Blue: The amount of blue in the color as a value in the interval [0,
3642	// 1].
3643	Blue float64 `json:"blue,omitempty"`
3644
3645	// Green: The amount of green in the color as a value in the interval
3646	// [0, 1].
3647	Green float64 `json:"green,omitempty"`
3648
3649	// Red: The amount of red in the color as a value in the interval [0,
3650	// 1].
3651	Red float64 `json:"red,omitempty"`
3652
3653	// ForceSendFields is a list of field names (e.g. "Alpha") to
3654	// unconditionally include in API requests. By default, fields with
3655	// empty values are omitted from API requests. However, any non-pointer,
3656	// non-interface field appearing in ForceSendFields will be sent to the
3657	// server regardless of whether the field is empty or not. This may be
3658	// used to include empty fields in Patch requests.
3659	ForceSendFields []string `json:"-"`
3660
3661	// NullFields is a list of field names (e.g. "Alpha") to include in API
3662	// requests with the JSON null value. By default, fields with empty
3663	// values are omitted from API requests. However, any field with an
3664	// empty value appearing in NullFields will be sent to the server as
3665	// null. It is an error if a field in this list has a non-empty value.
3666	// This may be used to include null fields in Patch requests.
3667	NullFields []string `json:"-"`
3668}
3669
3670func (s *Color) MarshalJSON() ([]byte, error) {
3671	type NoMethod Color
3672	raw := NoMethod(*s)
3673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3674}
3675
3676func (s *Color) UnmarshalJSON(data []byte) error {
3677	type NoMethod Color
3678	var s1 struct {
3679		Alpha gensupport.JSONFloat64 `json:"alpha"`
3680		Blue  gensupport.JSONFloat64 `json:"blue"`
3681		Green gensupport.JSONFloat64 `json:"green"`
3682		Red   gensupport.JSONFloat64 `json:"red"`
3683		*NoMethod
3684	}
3685	s1.NoMethod = (*NoMethod)(s)
3686	if err := json.Unmarshal(data, &s1); err != nil {
3687		return err
3688	}
3689	s.Alpha = float64(s1.Alpha)
3690	s.Blue = float64(s1.Blue)
3691	s.Green = float64(s1.Green)
3692	s.Red = float64(s1.Red)
3693	return nil
3694}
3695
3696// ColorStyle: A color value.
3697type ColorStyle struct {
3698	// RgbColor: RGB color.
3699	RgbColor *Color `json:"rgbColor,omitempty"`
3700
3701	// ThemeColor: Theme color.
3702	//
3703	// Possible values:
3704	//   "THEME_COLOR_TYPE_UNSPECIFIED" - Unspecified theme color
3705	//   "TEXT" - Represents the primary text color
3706	//   "BACKGROUND" - Represents the primary background color
3707	//   "ACCENT1" - Represents the first accent color
3708	//   "ACCENT2" - Represents the second accent color
3709	//   "ACCENT3" - Represents the third accent color
3710	//   "ACCENT4" - Represents the fourth accent color
3711	//   "ACCENT5" - Represents the fifth accent color
3712	//   "ACCENT6" - Represents the sixth accent color
3713	//   "LINK" - Represents the color to use for hyperlinks
3714	ThemeColor string `json:"themeColor,omitempty"`
3715
3716	// ForceSendFields is a list of field names (e.g. "RgbColor") to
3717	// unconditionally include in API requests. By default, fields with
3718	// empty values are omitted from API requests. However, any non-pointer,
3719	// non-interface field appearing in ForceSendFields will be sent to the
3720	// server regardless of whether the field is empty or not. This may be
3721	// used to include empty fields in Patch requests.
3722	ForceSendFields []string `json:"-"`
3723
3724	// NullFields is a list of field names (e.g. "RgbColor") to include in
3725	// API requests with the JSON null value. By default, fields with empty
3726	// values are omitted from API requests. However, any field with an
3727	// empty value appearing in NullFields will be sent to the server as
3728	// null. It is an error if a field in this list has a non-empty value.
3729	// This may be used to include null fields in Patch requests.
3730	NullFields []string `json:"-"`
3731}
3732
3733func (s *ColorStyle) MarshalJSON() ([]byte, error) {
3734	type NoMethod ColorStyle
3735	raw := NoMethod(*s)
3736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3737}
3738
3739// ConditionValue: The value of the condition.
3740type ConditionValue struct {
3741	// RelativeDate: A relative date (based on the current date).
3742	// Valid only if the type is
3743	// DATE_BEFORE,
3744	// DATE_AFTER,
3745	// DATE_ON_OR_BEFORE or
3746	// DATE_ON_OR_AFTER.
3747	//
3748	// Relative dates are not supported in data validation.
3749	// They are supported only in conditional formatting and
3750	// conditional filters.
3751	//
3752	// Possible values:
3753	//   "RELATIVE_DATE_UNSPECIFIED" - Default value, do not use.
3754	//   "PAST_YEAR" - The value is one year before today.
3755	//   "PAST_MONTH" - The value is one month before today.
3756	//   "PAST_WEEK" - The value is one week before today.
3757	//   "YESTERDAY" - The value is yesterday.
3758	//   "TODAY" - The value is today.
3759	//   "TOMORROW" - The value is tomorrow.
3760	RelativeDate string `json:"relativeDate,omitempty"`
3761
3762	// UserEnteredValue: A value the condition is based on.
3763	// The value is parsed as if the user typed into a cell.
3764	// Formulas are supported (and must begin with an `=` or a '+').
3765	UserEnteredValue string `json:"userEnteredValue,omitempty"`
3766
3767	// ForceSendFields is a list of field names (e.g. "RelativeDate") to
3768	// unconditionally include in API requests. By default, fields with
3769	// empty values are omitted from API requests. However, any non-pointer,
3770	// non-interface field appearing in ForceSendFields will be sent to the
3771	// server regardless of whether the field is empty or not. This may be
3772	// used to include empty fields in Patch requests.
3773	ForceSendFields []string `json:"-"`
3774
3775	// NullFields is a list of field names (e.g. "RelativeDate") to include
3776	// in API requests with the JSON null value. By default, fields with
3777	// empty values are omitted from API requests. However, any field with
3778	// an empty value appearing in NullFields will be sent to the server as
3779	// null. It is an error if a field in this list has a non-empty value.
3780	// This may be used to include null fields in Patch requests.
3781	NullFields []string `json:"-"`
3782}
3783
3784func (s *ConditionValue) MarshalJSON() ([]byte, error) {
3785	type NoMethod ConditionValue
3786	raw := NoMethod(*s)
3787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3788}
3789
3790// ConditionalFormatRule: A rule describing a conditional format.
3791type ConditionalFormatRule struct {
3792	// BooleanRule: The formatting is either "on" or "off" according to the
3793	// rule.
3794	BooleanRule *BooleanRule `json:"booleanRule,omitempty"`
3795
3796	// GradientRule: The formatting will vary based on the gradients in the
3797	// rule.
3798	GradientRule *GradientRule `json:"gradientRule,omitempty"`
3799
3800	// Ranges: The ranges that are formatted if the condition is true.
3801	// All the ranges must be on the same grid.
3802	Ranges []*GridRange `json:"ranges,omitempty"`
3803
3804	// ForceSendFields is a list of field names (e.g. "BooleanRule") to
3805	// unconditionally include in API requests. By default, fields with
3806	// empty values are omitted from API requests. However, any non-pointer,
3807	// non-interface field appearing in ForceSendFields will be sent to the
3808	// server regardless of whether the field is empty or not. This may be
3809	// used to include empty fields in Patch requests.
3810	ForceSendFields []string `json:"-"`
3811
3812	// NullFields is a list of field names (e.g. "BooleanRule") to include
3813	// in API requests with the JSON null value. By default, fields with
3814	// empty values are omitted from API requests. However, any field with
3815	// an empty value appearing in NullFields will be sent to the server as
3816	// null. It is an error if a field in this list has a non-empty value.
3817	// This may be used to include null fields in Patch requests.
3818	NullFields []string `json:"-"`
3819}
3820
3821func (s *ConditionalFormatRule) MarshalJSON() ([]byte, error) {
3822	type NoMethod ConditionalFormatRule
3823	raw := NoMethod(*s)
3824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3825}
3826
3827// CopyPasteRequest: Copies data from the source to the destination.
3828type CopyPasteRequest struct {
3829	// Destination: The location to paste to. If the range covers a span
3830	// that's
3831	// a multiple of the source's height or width, then the
3832	// data will be repeated to fill in the destination range.
3833	// If the range is smaller than the source range, the entire
3834	// source data will still be copied (beyond the end of the destination
3835	// range).
3836	Destination *GridRange `json:"destination,omitempty"`
3837
3838	// PasteOrientation: How that data should be oriented when pasting.
3839	//
3840	// Possible values:
3841	//   "NORMAL" - Paste normally.
3842	//   "TRANSPOSE" - Paste transposed, where all rows become columns and
3843	// vice versa.
3844	PasteOrientation string `json:"pasteOrientation,omitempty"`
3845
3846	// PasteType: What kind of data to paste.
3847	//
3848	// Possible values:
3849	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
3850	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
3851	// or merges.
3852	//   "PASTE_FORMAT" - Paste the format and data validation only.
3853	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
3854	//   "PASTE_FORMULA" - Paste the formulas only.
3855	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
3856	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
3857	// rules only.
3858	PasteType string `json:"pasteType,omitempty"`
3859
3860	// Source: The source range to copy.
3861	Source *GridRange `json:"source,omitempty"`
3862
3863	// ForceSendFields is a list of field names (e.g. "Destination") to
3864	// unconditionally include in API requests. By default, fields with
3865	// empty values are omitted from API requests. However, any non-pointer,
3866	// non-interface field appearing in ForceSendFields will be sent to the
3867	// server regardless of whether the field is empty or not. This may be
3868	// used to include empty fields in Patch requests.
3869	ForceSendFields []string `json:"-"`
3870
3871	// NullFields is a list of field names (e.g. "Destination") to include
3872	// in API requests with the JSON null value. By default, fields with
3873	// empty values are omitted from API requests. However, any field with
3874	// an empty value appearing in NullFields will be sent to the server as
3875	// null. It is an error if a field in this list has a non-empty value.
3876	// This may be used to include null fields in Patch requests.
3877	NullFields []string `json:"-"`
3878}
3879
3880func (s *CopyPasteRequest) MarshalJSON() ([]byte, error) {
3881	type NoMethod CopyPasteRequest
3882	raw := NoMethod(*s)
3883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3884}
3885
3886// CopySheetToAnotherSpreadsheetRequest: The request to copy a sheet
3887// across spreadsheets.
3888type CopySheetToAnotherSpreadsheetRequest struct {
3889	// DestinationSpreadsheetId: The ID of the spreadsheet to copy the sheet
3890	// to.
3891	DestinationSpreadsheetId string `json:"destinationSpreadsheetId,omitempty"`
3892
3893	// ForceSendFields is a list of field names (e.g.
3894	// "DestinationSpreadsheetId") to unconditionally include in API
3895	// requests. By default, fields with empty values are omitted from API
3896	// requests. However, any non-pointer, non-interface field appearing in
3897	// ForceSendFields will be sent to the server regardless of whether the
3898	// field is empty or not. This may be used to include empty fields in
3899	// Patch requests.
3900	ForceSendFields []string `json:"-"`
3901
3902	// NullFields is a list of field names (e.g. "DestinationSpreadsheetId")
3903	// to include in API requests with the JSON null value. By default,
3904	// fields with empty values are omitted from API requests. However, any
3905	// field with an empty value appearing in NullFields will be sent to the
3906	// server as null. It is an error if a field in this list has a
3907	// non-empty value. This may be used to include null fields in Patch
3908	// requests.
3909	NullFields []string `json:"-"`
3910}
3911
3912func (s *CopySheetToAnotherSpreadsheetRequest) MarshalJSON() ([]byte, error) {
3913	type NoMethod CopySheetToAnotherSpreadsheetRequest
3914	raw := NoMethod(*s)
3915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3916}
3917
3918// CreateDeveloperMetadataRequest: A request to create developer
3919// metadata.
3920type CreateDeveloperMetadataRequest struct {
3921	// DeveloperMetadata: The developer metadata to create.
3922	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
3923
3924	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
3925	// to unconditionally include in API requests. By default, fields with
3926	// empty values are omitted from API requests. However, any non-pointer,
3927	// non-interface field appearing in ForceSendFields will be sent to the
3928	// server regardless of whether the field is empty or not. This may be
3929	// used to include empty fields in Patch requests.
3930	ForceSendFields []string `json:"-"`
3931
3932	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
3933	// include in API requests with the JSON null value. By default, fields
3934	// with empty values are omitted from API requests. However, any field
3935	// with an empty value appearing in NullFields will be sent to the
3936	// server as null. It is an error if a field in this list has a
3937	// non-empty value. This may be used to include null fields in Patch
3938	// requests.
3939	NullFields []string `json:"-"`
3940}
3941
3942func (s *CreateDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
3943	type NoMethod CreateDeveloperMetadataRequest
3944	raw := NoMethod(*s)
3945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3946}
3947
3948// CreateDeveloperMetadataResponse: The response from creating developer
3949// metadata.
3950type CreateDeveloperMetadataResponse struct {
3951	// DeveloperMetadata: The developer metadata that was created.
3952	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
3953
3954	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
3955	// to unconditionally include in API requests. By default, fields with
3956	// empty values are omitted from API requests. However, any non-pointer,
3957	// non-interface field appearing in ForceSendFields will be sent to the
3958	// server regardless of whether the field is empty or not. This may be
3959	// used to include empty fields in Patch requests.
3960	ForceSendFields []string `json:"-"`
3961
3962	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
3963	// include in API requests with the JSON null value. By default, fields
3964	// with empty values are omitted from API requests. However, any field
3965	// with an empty value appearing in NullFields will be sent to the
3966	// server as null. It is an error if a field in this list has a
3967	// non-empty value. This may be used to include null fields in Patch
3968	// requests.
3969	NullFields []string `json:"-"`
3970}
3971
3972func (s *CreateDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
3973	type NoMethod CreateDeveloperMetadataResponse
3974	raw := NoMethod(*s)
3975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3976}
3977
3978// CutPasteRequest: Moves data from the source to the destination.
3979type CutPasteRequest struct {
3980	// Destination: The top-left coordinate where the data should be pasted.
3981	Destination *GridCoordinate `json:"destination,omitempty"`
3982
3983	// PasteType: What kind of data to paste.  All the source data will be
3984	// cut, regardless
3985	// of what is pasted.
3986	//
3987	// Possible values:
3988	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
3989	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
3990	// or merges.
3991	//   "PASTE_FORMAT" - Paste the format and data validation only.
3992	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
3993	//   "PASTE_FORMULA" - Paste the formulas only.
3994	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
3995	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
3996	// rules only.
3997	PasteType string `json:"pasteType,omitempty"`
3998
3999	// Source: The source data to cut.
4000	Source *GridRange `json:"source,omitempty"`
4001
4002	// ForceSendFields is a list of field names (e.g. "Destination") to
4003	// unconditionally include in API requests. By default, fields with
4004	// empty values are omitted from API requests. However, any non-pointer,
4005	// non-interface field appearing in ForceSendFields will be sent to the
4006	// server regardless of whether the field is empty or not. This may be
4007	// used to include empty fields in Patch requests.
4008	ForceSendFields []string `json:"-"`
4009
4010	// NullFields is a list of field names (e.g. "Destination") to include
4011	// in API requests with the JSON null value. By default, fields with
4012	// empty values are omitted from API requests. However, any field with
4013	// an empty value appearing in NullFields will be sent to the server as
4014	// null. It is an error if a field in this list has a non-empty value.
4015	// This may be used to include null fields in Patch requests.
4016	NullFields []string `json:"-"`
4017}
4018
4019func (s *CutPasteRequest) MarshalJSON() ([]byte, error) {
4020	type NoMethod CutPasteRequest
4021	raw := NoMethod(*s)
4022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4023}
4024
4025// DataFilter: Filter that describes what data should be selected or
4026// returned from a
4027// request.
4028type DataFilter struct {
4029	// A1Range: Selects data that matches the specified A1 range.
4030	A1Range string `json:"a1Range,omitempty"`
4031
4032	// DeveloperMetadataLookup: Selects data associated with the developer
4033	// metadata matching the criteria
4034	// described by this DeveloperMetadataLookup.
4035	DeveloperMetadataLookup *DeveloperMetadataLookup `json:"developerMetadataLookup,omitempty"`
4036
4037	// GridRange: Selects data that matches the range described by the
4038	// GridRange.
4039	GridRange *GridRange `json:"gridRange,omitempty"`
4040
4041	// ForceSendFields is a list of field names (e.g. "A1Range") to
4042	// unconditionally include in API requests. By default, fields with
4043	// empty values are omitted from API requests. However, any non-pointer,
4044	// non-interface field appearing in ForceSendFields will be sent to the
4045	// server regardless of whether the field is empty or not. This may be
4046	// used to include empty fields in Patch requests.
4047	ForceSendFields []string `json:"-"`
4048
4049	// NullFields is a list of field names (e.g. "A1Range") to include in
4050	// API requests with the JSON null value. By default, fields with empty
4051	// values are omitted from API requests. However, any field with an
4052	// empty value appearing in NullFields will be sent to the server as
4053	// null. It is an error if a field in this list has a non-empty value.
4054	// This may be used to include null fields in Patch requests.
4055	NullFields []string `json:"-"`
4056}
4057
4058func (s *DataFilter) MarshalJSON() ([]byte, error) {
4059	type NoMethod DataFilter
4060	raw := NoMethod(*s)
4061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4062}
4063
4064// DataFilterValueRange: A range of values whose location is specified
4065// by a DataFilter.
4066type DataFilterValueRange struct {
4067	// DataFilter: The data filter describing the location of the values in
4068	// the spreadsheet.
4069	DataFilter *DataFilter `json:"dataFilter,omitempty"`
4070
4071	// MajorDimension: The major dimension of the values.
4072	//
4073	// Possible values:
4074	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
4075	//   "ROWS" - Operates on the rows of a sheet.
4076	//   "COLUMNS" - Operates on the columns of a sheet.
4077	MajorDimension string `json:"majorDimension,omitempty"`
4078
4079	// Values: The data to be written.  If the provided values exceed any of
4080	// the ranges
4081	// matched by the data filter then the request fails.  If the provided
4082	// values
4083	// are less than the matched ranges only the specified values are
4084	// written,
4085	// existing values in the matched ranges remain unaffected.
4086	Values [][]interface{} `json:"values,omitempty"`
4087
4088	// ForceSendFields is a list of field names (e.g. "DataFilter") to
4089	// unconditionally include in API requests. By default, fields with
4090	// empty values are omitted from API requests. However, any non-pointer,
4091	// non-interface field appearing in ForceSendFields will be sent to the
4092	// server regardless of whether the field is empty or not. This may be
4093	// used to include empty fields in Patch requests.
4094	ForceSendFields []string `json:"-"`
4095
4096	// NullFields is a list of field names (e.g. "DataFilter") to include in
4097	// API requests with the JSON null value. By default, fields with empty
4098	// values are omitted from API requests. However, any field with an
4099	// empty value appearing in NullFields will be sent to the server as
4100	// null. It is an error if a field in this list has a non-empty value.
4101	// This may be used to include null fields in Patch requests.
4102	NullFields []string `json:"-"`
4103}
4104
4105func (s *DataFilterValueRange) MarshalJSON() ([]byte, error) {
4106	type NoMethod DataFilterValueRange
4107	raw := NoMethod(*s)
4108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4109}
4110
4111// DataValidationRule: A data validation rule.
4112type DataValidationRule struct {
4113	// Condition: The condition that data in the cell must match.
4114	Condition *BooleanCondition `json:"condition,omitempty"`
4115
4116	// InputMessage: A message to show the user when adding data to the
4117	// cell.
4118	InputMessage string `json:"inputMessage,omitempty"`
4119
4120	// ShowCustomUi: True if the UI should be customized based on the kind
4121	// of condition.
4122	// If true, "List" conditions will show a dropdown.
4123	ShowCustomUi bool `json:"showCustomUi,omitempty"`
4124
4125	// Strict: True if invalid data should be rejected.
4126	Strict bool `json:"strict,omitempty"`
4127
4128	// ForceSendFields is a list of field names (e.g. "Condition") to
4129	// unconditionally include in API requests. By default, fields with
4130	// empty values are omitted from API requests. However, any non-pointer,
4131	// non-interface field appearing in ForceSendFields will be sent to the
4132	// server regardless of whether the field is empty or not. This may be
4133	// used to include empty fields in Patch requests.
4134	ForceSendFields []string `json:"-"`
4135
4136	// NullFields is a list of field names (e.g. "Condition") to include in
4137	// API requests with the JSON null value. By default, fields with empty
4138	// values are omitted from API requests. However, any field with an
4139	// empty value appearing in NullFields will be sent to the server as
4140	// null. It is an error if a field in this list has a non-empty value.
4141	// This may be used to include null fields in Patch requests.
4142	NullFields []string `json:"-"`
4143}
4144
4145func (s *DataValidationRule) MarshalJSON() ([]byte, error) {
4146	type NoMethod DataValidationRule
4147	raw := NoMethod(*s)
4148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4149}
4150
4151// DateTimeRule: Allows you to organize the date-time values in a source
4152// data column into
4153// buckets based on selected parts of their date or time values. For
4154// example,
4155// consider a pivot table showing sales transactions by date:
4156//
4157//     +----------+--------------+
4158//     | Date     | SUM of Sales |
4159//     +----------+--------------+
4160//     | 1/1/2017 |      $621.14 |
4161//     | 2/3/2017 |      $708.84 |
4162//     | 5/8/2017 |      $326.84 |
4163//     ...
4164//     +----------+--------------+
4165// Applying a date-time group rule with a DateTimeRuleType of
4166// YEAR_MONTH
4167// results in the following pivot table.
4168//
4169//     +--------------+--------------+
4170//     | Grouped Date | SUM of Sales |
4171//     +--------------+--------------+
4172//     | 2017-Jan     |   $53,731.78 |
4173//     | 2017-Feb     |   $83,475.32 |
4174//     | 2017-Mar     |   $94,385.05 |
4175//     ...
4176//     +--------------+--------------+
4177type DateTimeRule struct {
4178	// Type: The type of date-time grouping to apply.
4179	//
4180	// Possible values:
4181	//   "DATE_TIME_RULE_TYPE_UNSPECIFIED" - The default type, do not use.
4182	//   "SECOND" - Group dates by second, from 0 to 59.
4183	//   "MINUTE" - Group dates by minute, from 0 to 59.
4184	//   "HOUR" - Group dates by hour using a 24-hour system, from 0 to 23.
4185	//   "HOUR_MINUTE" - Group dates by hour and minute using a 24-hour
4186	// system, for example 19:45.
4187	//   "HOUR_MINUTE_AMPM" - Group dates by hour and minute using a 12-hour
4188	// system, for example 7:45
4189	// PM. The AM/PM designation is translated based on the
4190	// spreadsheet
4191	// locale.
4192	//   "DAY_OF_WEEK" - Group dates by day of week, for example Sunday. The
4193	// days of the week will
4194	// be translated based on the spreadsheet locale.
4195	//   "DAY_OF_YEAR" - Group dates by day of year, from 1 to 366. Note
4196	// that dates after Feb. 29
4197	// fall in different buckets in leap years than in non-leap years.
4198	//   "DAY_OF_MONTH" - Group dates by day of month, from 1 to 31.
4199	//   "DAY_MONTH" - Group dates by day and month, for example 22-Nov. The
4200	// month is
4201	// translated based on the spreadsheet locale.
4202	//   "MONTH" - Group dates by month, for example Nov. The month is
4203	// translated based
4204	// on the spreadsheet locale.
4205	//   "QUARTER" - Group dates by quarter, for example Q1 (which
4206	// represents Jan-Mar).
4207	//   "YEAR" - Group dates by year, for example 2008.
4208	//   "YEAR_MONTH" - Group dates by year and month, for example 2008-Nov.
4209	// The month is
4210	// translated based on the spreadsheet locale.
4211	//   "YEAR_QUARTER" - Group dates by year and quarter, for example 2008
4212	// Q4.
4213	//   "YEAR_MONTH_DAY" - Group dates by year, month, and day, for example
4214	// 2008-11-22.
4215	Type string `json:"type,omitempty"`
4216
4217	// ForceSendFields is a list of field names (e.g. "Type") to
4218	// unconditionally include in API requests. By default, fields with
4219	// empty values are omitted from API requests. However, any non-pointer,
4220	// non-interface field appearing in ForceSendFields will be sent to the
4221	// server regardless of whether the field is empty or not. This may be
4222	// used to include empty fields in Patch requests.
4223	ForceSendFields []string `json:"-"`
4224
4225	// NullFields is a list of field names (e.g. "Type") to include in API
4226	// requests with the JSON null value. By default, fields with empty
4227	// values are omitted from API requests. However, any field with an
4228	// empty value appearing in NullFields will be sent to the server as
4229	// null. It is an error if a field in this list has a non-empty value.
4230	// This may be used to include null fields in Patch requests.
4231	NullFields []string `json:"-"`
4232}
4233
4234func (s *DateTimeRule) MarshalJSON() ([]byte, error) {
4235	type NoMethod DateTimeRule
4236	raw := NoMethod(*s)
4237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4238}
4239
4240// DeleteBandingRequest: Removes the banded range with the given ID from
4241// the spreadsheet.
4242type DeleteBandingRequest struct {
4243	// BandedRangeId: The ID of the banded range to delete.
4244	BandedRangeId int64 `json:"bandedRangeId,omitempty"`
4245
4246	// ForceSendFields is a list of field names (e.g. "BandedRangeId") to
4247	// unconditionally include in API requests. By default, fields with
4248	// empty values are omitted from API requests. However, any non-pointer,
4249	// non-interface field appearing in ForceSendFields will be sent to the
4250	// server regardless of whether the field is empty or not. This may be
4251	// used to include empty fields in Patch requests.
4252	ForceSendFields []string `json:"-"`
4253
4254	// NullFields is a list of field names (e.g. "BandedRangeId") to include
4255	// in API requests with the JSON null value. By default, fields with
4256	// empty values are omitted from API requests. However, any field with
4257	// an empty value appearing in NullFields will be sent to the server as
4258	// null. It is an error if a field in this list has a non-empty value.
4259	// This may be used to include null fields in Patch requests.
4260	NullFields []string `json:"-"`
4261}
4262
4263func (s *DeleteBandingRequest) MarshalJSON() ([]byte, error) {
4264	type NoMethod DeleteBandingRequest
4265	raw := NoMethod(*s)
4266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4267}
4268
4269// DeleteConditionalFormatRuleRequest: Deletes a conditional format rule
4270// at the given index.
4271// All subsequent rules' indexes are decremented.
4272type DeleteConditionalFormatRuleRequest struct {
4273	// Index: The zero-based index of the rule to be deleted.
4274	Index int64 `json:"index,omitempty"`
4275
4276	// SheetId: The sheet the rule is being deleted from.
4277	SheetId int64 `json:"sheetId,omitempty"`
4278
4279	// ForceSendFields is a list of field names (e.g. "Index") to
4280	// unconditionally include in API requests. By default, fields with
4281	// empty values are omitted from API requests. However, any non-pointer,
4282	// non-interface field appearing in ForceSendFields will be sent to the
4283	// server regardless of whether the field is empty or not. This may be
4284	// used to include empty fields in Patch requests.
4285	ForceSendFields []string `json:"-"`
4286
4287	// NullFields is a list of field names (e.g. "Index") to include in API
4288	// requests with the JSON null value. By default, fields with empty
4289	// values are omitted from API requests. However, any field with an
4290	// empty value appearing in NullFields will be sent to the server as
4291	// null. It is an error if a field in this list has a non-empty value.
4292	// This may be used to include null fields in Patch requests.
4293	NullFields []string `json:"-"`
4294}
4295
4296func (s *DeleteConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
4297	type NoMethod DeleteConditionalFormatRuleRequest
4298	raw := NoMethod(*s)
4299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4300}
4301
4302// DeleteConditionalFormatRuleResponse: The result of deleting a
4303// conditional format rule.
4304type DeleteConditionalFormatRuleResponse struct {
4305	// Rule: The rule that was deleted.
4306	Rule *ConditionalFormatRule `json:"rule,omitempty"`
4307
4308	// ForceSendFields is a list of field names (e.g. "Rule") to
4309	// unconditionally include in API requests. By default, fields with
4310	// empty values are omitted from API requests. However, any non-pointer,
4311	// non-interface field appearing in ForceSendFields will be sent to the
4312	// server regardless of whether the field is empty or not. This may be
4313	// used to include empty fields in Patch requests.
4314	ForceSendFields []string `json:"-"`
4315
4316	// NullFields is a list of field names (e.g. "Rule") to include in API
4317	// requests with the JSON null value. By default, fields with empty
4318	// values are omitted from API requests. However, any field with an
4319	// empty value appearing in NullFields will be sent to the server as
4320	// null. It is an error if a field in this list has a non-empty value.
4321	// This may be used to include null fields in Patch requests.
4322	NullFields []string `json:"-"`
4323}
4324
4325func (s *DeleteConditionalFormatRuleResponse) MarshalJSON() ([]byte, error) {
4326	type NoMethod DeleteConditionalFormatRuleResponse
4327	raw := NoMethod(*s)
4328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4329}
4330
4331// DeleteDeveloperMetadataRequest: A request to delete developer
4332// metadata.
4333type DeleteDeveloperMetadataRequest struct {
4334	// DataFilter: The data filter describing the criteria used to select
4335	// which developer
4336	// metadata entry to delete.
4337	DataFilter *DataFilter `json:"dataFilter,omitempty"`
4338
4339	// ForceSendFields is a list of field names (e.g. "DataFilter") to
4340	// unconditionally include in API requests. By default, fields with
4341	// empty values are omitted from API requests. However, any non-pointer,
4342	// non-interface field appearing in ForceSendFields will be sent to the
4343	// server regardless of whether the field is empty or not. This may be
4344	// used to include empty fields in Patch requests.
4345	ForceSendFields []string `json:"-"`
4346
4347	// NullFields is a list of field names (e.g. "DataFilter") to include in
4348	// API requests with the JSON null value. By default, fields with empty
4349	// values are omitted from API requests. However, any field with an
4350	// empty value appearing in NullFields will be sent to the server as
4351	// null. It is an error if a field in this list has a non-empty value.
4352	// This may be used to include null fields in Patch requests.
4353	NullFields []string `json:"-"`
4354}
4355
4356func (s *DeleteDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
4357	type NoMethod DeleteDeveloperMetadataRequest
4358	raw := NoMethod(*s)
4359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4360}
4361
4362// DeleteDeveloperMetadataResponse: The response from deleting developer
4363// metadata.
4364type DeleteDeveloperMetadataResponse struct {
4365	// DeletedDeveloperMetadata: The metadata that was deleted.
4366	DeletedDeveloperMetadata []*DeveloperMetadata `json:"deletedDeveloperMetadata,omitempty"`
4367
4368	// ForceSendFields is a list of field names (e.g.
4369	// "DeletedDeveloperMetadata") to unconditionally include in API
4370	// requests. By default, fields with empty values are omitted from API
4371	// requests. However, any non-pointer, non-interface field appearing in
4372	// ForceSendFields will be sent to the server regardless of whether the
4373	// field is empty or not. This may be used to include empty fields in
4374	// Patch requests.
4375	ForceSendFields []string `json:"-"`
4376
4377	// NullFields is a list of field names (e.g. "DeletedDeveloperMetadata")
4378	// to include in API requests with the JSON null value. By default,
4379	// fields with empty values are omitted from API requests. However, any
4380	// field with an empty value appearing in NullFields will be sent to the
4381	// server as null. It is an error if a field in this list has a
4382	// non-empty value. This may be used to include null fields in Patch
4383	// requests.
4384	NullFields []string `json:"-"`
4385}
4386
4387func (s *DeleteDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
4388	type NoMethod DeleteDeveloperMetadataResponse
4389	raw := NoMethod(*s)
4390	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4391}
4392
4393// DeleteDimensionGroupRequest: Deletes a group over the specified range
4394// by decrementing the depth of the
4395// dimensions in the range.
4396//
4397// For example, assume the sheet has a depth-1 group over B:E and a
4398// depth-2
4399// group over C:D. Deleting a group over D:E leaves the sheet with
4400// a
4401// depth-1 group over B:D and a depth-2 group over C:C.
4402type DeleteDimensionGroupRequest struct {
4403	// Range: The range of the group to be deleted.
4404	Range *DimensionRange `json:"range,omitempty"`
4405
4406	// ForceSendFields is a list of field names (e.g. "Range") to
4407	// unconditionally include in API requests. By default, fields with
4408	// empty values are omitted from API requests. However, any non-pointer,
4409	// non-interface field appearing in ForceSendFields will be sent to the
4410	// server regardless of whether the field is empty or not. This may be
4411	// used to include empty fields in Patch requests.
4412	ForceSendFields []string `json:"-"`
4413
4414	// NullFields is a list of field names (e.g. "Range") to include in API
4415	// requests with the JSON null value. By default, fields with empty
4416	// values are omitted from API requests. However, any field with an
4417	// empty value appearing in NullFields will be sent to the server as
4418	// null. It is an error if a field in this list has a non-empty value.
4419	// This may be used to include null fields in Patch requests.
4420	NullFields []string `json:"-"`
4421}
4422
4423func (s *DeleteDimensionGroupRequest) MarshalJSON() ([]byte, error) {
4424	type NoMethod DeleteDimensionGroupRequest
4425	raw := NoMethod(*s)
4426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4427}
4428
4429// DeleteDimensionGroupResponse: The result of deleting a group.
4430type DeleteDimensionGroupResponse struct {
4431	// DimensionGroups: All groups of a dimension after deleting a group
4432	// from that dimension.
4433	DimensionGroups []*DimensionGroup `json:"dimensionGroups,omitempty"`
4434
4435	// ForceSendFields is a list of field names (e.g. "DimensionGroups") to
4436	// unconditionally include in API requests. By default, fields with
4437	// empty values are omitted from API requests. However, any non-pointer,
4438	// non-interface field appearing in ForceSendFields will be sent to the
4439	// server regardless of whether the field is empty or not. This may be
4440	// used to include empty fields in Patch requests.
4441	ForceSendFields []string `json:"-"`
4442
4443	// NullFields is a list of field names (e.g. "DimensionGroups") to
4444	// include in API requests with the JSON null value. By default, fields
4445	// with empty values are omitted from API requests. However, any field
4446	// with an empty value appearing in NullFields will be sent to the
4447	// server as null. It is an error if a field in this list has a
4448	// non-empty value. This may be used to include null fields in Patch
4449	// requests.
4450	NullFields []string `json:"-"`
4451}
4452
4453func (s *DeleteDimensionGroupResponse) MarshalJSON() ([]byte, error) {
4454	type NoMethod DeleteDimensionGroupResponse
4455	raw := NoMethod(*s)
4456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4457}
4458
4459// DeleteDimensionRequest: Deletes the dimensions from the sheet.
4460type DeleteDimensionRequest struct {
4461	// Range: The dimensions to delete from the sheet.
4462	Range *DimensionRange `json:"range,omitempty"`
4463
4464	// ForceSendFields is a list of field names (e.g. "Range") 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. "Range") to include in API
4473	// requests with the JSON null value. By default, fields with empty
4474	// values are omitted from API requests. However, any field with an
4475	// empty value appearing in NullFields will be sent to the server as
4476	// null. It is an error if a field in this list has a non-empty value.
4477	// This may be used to include null fields in Patch requests.
4478	NullFields []string `json:"-"`
4479}
4480
4481func (s *DeleteDimensionRequest) MarshalJSON() ([]byte, error) {
4482	type NoMethod DeleteDimensionRequest
4483	raw := NoMethod(*s)
4484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4485}
4486
4487// DeleteDuplicatesRequest: Removes rows within this range that contain
4488// values in the specified columns
4489// that are duplicates of values in any previous row. Rows with
4490// identical values
4491// but different letter cases, formatting, or formulas are considered to
4492// be
4493// duplicates.
4494//
4495// This request also removes duplicate rows hidden from view (for
4496// example, due
4497// to a filter). When removing duplicates, the first instance of each
4498// duplicate
4499// row scanning from the top downwards is kept in the resulting range.
4500// Content
4501// outside of the specified range isn't removed, and rows considered
4502// duplicates
4503// do not have to be adjacent to each other in the range.
4504type DeleteDuplicatesRequest struct {
4505	// ComparisonColumns: The columns in the range to analyze for duplicate
4506	// values. If no columns are
4507	// selected then all columns are analyzed for duplicates.
4508	ComparisonColumns []*DimensionRange `json:"comparisonColumns,omitempty"`
4509
4510	// Range: The range to remove duplicates rows from.
4511	Range *GridRange `json:"range,omitempty"`
4512
4513	// ForceSendFields is a list of field names (e.g. "ComparisonColumns")
4514	// to unconditionally include in API requests. By default, fields with
4515	// empty values are omitted from API requests. However, any non-pointer,
4516	// non-interface field appearing in ForceSendFields will be sent to the
4517	// server regardless of whether the field is empty or not. This may be
4518	// used to include empty fields in Patch requests.
4519	ForceSendFields []string `json:"-"`
4520
4521	// NullFields is a list of field names (e.g. "ComparisonColumns") to
4522	// include in API requests with the JSON null value. By default, fields
4523	// with empty values are omitted from API requests. However, any field
4524	// with an empty value appearing in NullFields will be sent to the
4525	// server as null. It is an error if a field in this list has a
4526	// non-empty value. This may be used to include null fields in Patch
4527	// requests.
4528	NullFields []string `json:"-"`
4529}
4530
4531func (s *DeleteDuplicatesRequest) MarshalJSON() ([]byte, error) {
4532	type NoMethod DeleteDuplicatesRequest
4533	raw := NoMethod(*s)
4534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4535}
4536
4537// DeleteDuplicatesResponse: The result of removing duplicates in a
4538// range.
4539type DeleteDuplicatesResponse struct {
4540	// DuplicatesRemovedCount: The number of duplicate rows removed.
4541	DuplicatesRemovedCount int64 `json:"duplicatesRemovedCount,omitempty"`
4542
4543	// ForceSendFields is a list of field names (e.g.
4544	// "DuplicatesRemovedCount") to unconditionally include in API requests.
4545	// By default, fields with empty values are omitted from API requests.
4546	// However, any non-pointer, non-interface field appearing in
4547	// ForceSendFields will be sent to the server regardless of whether the
4548	// field is empty or not. This may be used to include empty fields in
4549	// Patch requests.
4550	ForceSendFields []string `json:"-"`
4551
4552	// NullFields is a list of field names (e.g. "DuplicatesRemovedCount")
4553	// to include in API requests with the JSON null value. By default,
4554	// fields with empty values are omitted from API requests. However, any
4555	// field with an empty value appearing in NullFields will be sent to the
4556	// server as null. It is an error if a field in this list has a
4557	// non-empty value. This may be used to include null fields in Patch
4558	// requests.
4559	NullFields []string `json:"-"`
4560}
4561
4562func (s *DeleteDuplicatesResponse) MarshalJSON() ([]byte, error) {
4563	type NoMethod DeleteDuplicatesResponse
4564	raw := NoMethod(*s)
4565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4566}
4567
4568// DeleteEmbeddedObjectRequest: Deletes the embedded object with the
4569// given ID.
4570type DeleteEmbeddedObjectRequest struct {
4571	// ObjectId: The ID of the embedded object to delete.
4572	ObjectId int64 `json:"objectId,omitempty"`
4573
4574	// ForceSendFields is a list of field names (e.g. "ObjectId") to
4575	// unconditionally include in API requests. By default, fields with
4576	// empty values are omitted from API requests. However, any non-pointer,
4577	// non-interface field appearing in ForceSendFields will be sent to the
4578	// server regardless of whether the field is empty or not. This may be
4579	// used to include empty fields in Patch requests.
4580	ForceSendFields []string `json:"-"`
4581
4582	// NullFields is a list of field names (e.g. "ObjectId") to include in
4583	// API requests with the JSON null value. By default, fields with empty
4584	// values are omitted from API requests. However, any field with an
4585	// empty value appearing in NullFields will be sent to the server as
4586	// null. It is an error if a field in this list has a non-empty value.
4587	// This may be used to include null fields in Patch requests.
4588	NullFields []string `json:"-"`
4589}
4590
4591func (s *DeleteEmbeddedObjectRequest) MarshalJSON() ([]byte, error) {
4592	type NoMethod DeleteEmbeddedObjectRequest
4593	raw := NoMethod(*s)
4594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4595}
4596
4597// DeleteFilterViewRequest: Deletes a particular filter view.
4598type DeleteFilterViewRequest struct {
4599	// FilterId: The ID of the filter to delete.
4600	FilterId int64 `json:"filterId,omitempty"`
4601
4602	// ForceSendFields is a list of field names (e.g. "FilterId") to
4603	// unconditionally include in API requests. By default, fields with
4604	// empty values are omitted from API requests. However, any non-pointer,
4605	// non-interface field appearing in ForceSendFields will be sent to the
4606	// server regardless of whether the field is empty or not. This may be
4607	// used to include empty fields in Patch requests.
4608	ForceSendFields []string `json:"-"`
4609
4610	// NullFields is a list of field names (e.g. "FilterId") to include in
4611	// API requests with the JSON null value. By default, fields with empty
4612	// values are omitted from API requests. However, any field with an
4613	// empty value appearing in NullFields will be sent to the server as
4614	// null. It is an error if a field in this list has a non-empty value.
4615	// This may be used to include null fields in Patch requests.
4616	NullFields []string `json:"-"`
4617}
4618
4619func (s *DeleteFilterViewRequest) MarshalJSON() ([]byte, error) {
4620	type NoMethod DeleteFilterViewRequest
4621	raw := NoMethod(*s)
4622	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4623}
4624
4625// DeleteNamedRangeRequest: Removes the named range with the given ID
4626// from the spreadsheet.
4627type DeleteNamedRangeRequest struct {
4628	// NamedRangeId: The ID of the named range to delete.
4629	NamedRangeId string `json:"namedRangeId,omitempty"`
4630
4631	// ForceSendFields is a list of field names (e.g. "NamedRangeId") to
4632	// unconditionally include in API requests. By default, fields with
4633	// empty values are omitted from API requests. However, any non-pointer,
4634	// non-interface field appearing in ForceSendFields will be sent to the
4635	// server regardless of whether the field is empty or not. This may be
4636	// used to include empty fields in Patch requests.
4637	ForceSendFields []string `json:"-"`
4638
4639	// NullFields is a list of field names (e.g. "NamedRangeId") to include
4640	// in API requests with the JSON null value. By default, fields with
4641	// empty values are omitted from API requests. However, any field with
4642	// an empty value appearing in NullFields will be sent to the server as
4643	// null. It is an error if a field in this list has a non-empty value.
4644	// This may be used to include null fields in Patch requests.
4645	NullFields []string `json:"-"`
4646}
4647
4648func (s *DeleteNamedRangeRequest) MarshalJSON() ([]byte, error) {
4649	type NoMethod DeleteNamedRangeRequest
4650	raw := NoMethod(*s)
4651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4652}
4653
4654// DeleteProtectedRangeRequest: Deletes the protected range with the
4655// given ID.
4656type DeleteProtectedRangeRequest struct {
4657	// ProtectedRangeId: The ID of the protected range to delete.
4658	ProtectedRangeId int64 `json:"protectedRangeId,omitempty"`
4659
4660	// ForceSendFields is a list of field names (e.g. "ProtectedRangeId") to
4661	// unconditionally include in API requests. By default, fields with
4662	// empty values are omitted from API requests. However, any non-pointer,
4663	// non-interface field appearing in ForceSendFields will be sent to the
4664	// server regardless of whether the field is empty or not. This may be
4665	// used to include empty fields in Patch requests.
4666	ForceSendFields []string `json:"-"`
4667
4668	// NullFields is a list of field names (e.g. "ProtectedRangeId") to
4669	// include in API requests with the JSON null value. By default, fields
4670	// with empty values are omitted from API requests. However, any field
4671	// with an empty value appearing in NullFields will be sent to the
4672	// server as null. It is an error if a field in this list has a
4673	// non-empty value. This may be used to include null fields in Patch
4674	// requests.
4675	NullFields []string `json:"-"`
4676}
4677
4678func (s *DeleteProtectedRangeRequest) MarshalJSON() ([]byte, error) {
4679	type NoMethod DeleteProtectedRangeRequest
4680	raw := NoMethod(*s)
4681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4682}
4683
4684// DeleteRangeRequest: Deletes a range of cells, shifting other cells
4685// into the deleted area.
4686type DeleteRangeRequest struct {
4687	// Range: The range of cells to delete.
4688	Range *GridRange `json:"range,omitempty"`
4689
4690	// ShiftDimension: The dimension from which deleted cells will be
4691	// replaced with.
4692	// If ROWS, existing cells will be shifted upward to
4693	// replace the deleted cells. If COLUMNS, existing cells
4694	// will be shifted left to replace the deleted cells.
4695	//
4696	// Possible values:
4697	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
4698	//   "ROWS" - Operates on the rows of a sheet.
4699	//   "COLUMNS" - Operates on the columns of a sheet.
4700	ShiftDimension string `json:"shiftDimension,omitempty"`
4701
4702	// ForceSendFields is a list of field names (e.g. "Range") to
4703	// unconditionally include in API requests. By default, fields with
4704	// empty values are omitted from API requests. However, any non-pointer,
4705	// non-interface field appearing in ForceSendFields will be sent to the
4706	// server regardless of whether the field is empty or not. This may be
4707	// used to include empty fields in Patch requests.
4708	ForceSendFields []string `json:"-"`
4709
4710	// NullFields is a list of field names (e.g. "Range") to include in API
4711	// requests with the JSON null value. By default, fields with empty
4712	// values are omitted from API requests. However, any field with an
4713	// empty value appearing in NullFields will be sent to the server as
4714	// null. It is an error if a field in this list has a non-empty value.
4715	// This may be used to include null fields in Patch requests.
4716	NullFields []string `json:"-"`
4717}
4718
4719func (s *DeleteRangeRequest) MarshalJSON() ([]byte, error) {
4720	type NoMethod DeleteRangeRequest
4721	raw := NoMethod(*s)
4722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4723}
4724
4725// DeleteSheetRequest: Deletes the requested sheet.
4726type DeleteSheetRequest struct {
4727	// SheetId: The ID of the sheet to delete.
4728	SheetId int64 `json:"sheetId,omitempty"`
4729
4730	// ForceSendFields is a list of field names (e.g. "SheetId") to
4731	// unconditionally include in API requests. By default, fields with
4732	// empty values are omitted from API requests. However, any non-pointer,
4733	// non-interface field appearing in ForceSendFields will be sent to the
4734	// server regardless of whether the field is empty or not. This may be
4735	// used to include empty fields in Patch requests.
4736	ForceSendFields []string `json:"-"`
4737
4738	// NullFields is a list of field names (e.g. "SheetId") to include in
4739	// API requests with the JSON null value. By default, fields with empty
4740	// values are omitted from API requests. However, any field with an
4741	// empty value appearing in NullFields will be sent to the server as
4742	// null. It is an error if a field in this list has a non-empty value.
4743	// This may be used to include null fields in Patch requests.
4744	NullFields []string `json:"-"`
4745}
4746
4747func (s *DeleteSheetRequest) MarshalJSON() ([]byte, error) {
4748	type NoMethod DeleteSheetRequest
4749	raw := NoMethod(*s)
4750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4751}
4752
4753// DeveloperMetadata: Developer metadata associated with a location or
4754// object in a spreadsheet.
4755// Developer metadata may be used to associate arbitrary data with
4756// various
4757// parts of a spreadsheet and will remain associated at those locations
4758// as they
4759// move around and the spreadsheet is edited.  For example, if
4760// developer
4761// metadata is associated with row 5 and another row is then
4762// subsequently
4763// inserted above row 5, that original metadata will still be associated
4764// with
4765// the row it was first associated with (what is now row 6). If the
4766// associated
4767// object is deleted its metadata is deleted too.
4768type DeveloperMetadata struct {
4769	// Location: The location where the metadata is associated.
4770	Location *DeveloperMetadataLocation `json:"location,omitempty"`
4771
4772	// MetadataId: The spreadsheet-scoped unique ID that identifies the
4773	// metadata. IDs may be
4774	// specified when metadata is created, otherwise one will be
4775	// randomly
4776	// generated and assigned. Must be positive.
4777	MetadataId int64 `json:"metadataId,omitempty"`
4778
4779	// MetadataKey: The metadata key. There may be multiple metadata in a
4780	// spreadsheet with the
4781	// same key.  Developer metadata must always have a key specified.
4782	MetadataKey string `json:"metadataKey,omitempty"`
4783
4784	// MetadataValue: Data associated with the metadata's key.
4785	MetadataValue string `json:"metadataValue,omitempty"`
4786
4787	// Visibility: The metadata visibility.  Developer metadata must always
4788	// have a visibility
4789	// specified.
4790	//
4791	// Possible values:
4792	//   "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED" - Default value.
4793	//   "DOCUMENT" - Document-visible metadata is accessible from any
4794	// developer project with
4795	// access to the document.
4796	//   "PROJECT" - Project-visible metadata is only visible to and
4797	// accessible by the developer
4798	// project that created the metadata.
4799	Visibility string `json:"visibility,omitempty"`
4800
4801	// ServerResponse contains the HTTP response code and headers from the
4802	// server.
4803	googleapi.ServerResponse `json:"-"`
4804
4805	// ForceSendFields is a list of field names (e.g. "Location") to
4806	// unconditionally include in API requests. By default, fields with
4807	// empty values are omitted from API requests. However, any non-pointer,
4808	// non-interface field appearing in ForceSendFields will be sent to the
4809	// server regardless of whether the field is empty or not. This may be
4810	// used to include empty fields in Patch requests.
4811	ForceSendFields []string `json:"-"`
4812
4813	// NullFields is a list of field names (e.g. "Location") to include in
4814	// API requests with the JSON null value. By default, fields with empty
4815	// values are omitted from API requests. However, any field with an
4816	// empty value appearing in NullFields will be sent to the server as
4817	// null. It is an error if a field in this list has a non-empty value.
4818	// This may be used to include null fields in Patch requests.
4819	NullFields []string `json:"-"`
4820}
4821
4822func (s *DeveloperMetadata) MarshalJSON() ([]byte, error) {
4823	type NoMethod DeveloperMetadata
4824	raw := NoMethod(*s)
4825	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4826}
4827
4828// DeveloperMetadataLocation: A location where metadata may be
4829// associated in a spreadsheet.
4830type DeveloperMetadataLocation struct {
4831	// DimensionRange: Represents the row or column when metadata is
4832	// associated with
4833	// a dimension. The specified DimensionRange must represent a single
4834	// row
4835	// or column; it cannot be unbounded or span multiple rows or columns.
4836	DimensionRange *DimensionRange `json:"dimensionRange,omitempty"`
4837
4838	// LocationType: The type of location this object represents.  This
4839	// field is read-only.
4840	//
4841	// Possible values:
4842	//   "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED" - Default value.
4843	//   "ROW" - Developer metadata associated on an entire row dimension.
4844	//   "COLUMN" - Developer metadata associated on an entire column
4845	// dimension.
4846	//   "SHEET" - Developer metadata associated on an entire sheet.
4847	//   "SPREADSHEET" - Developer metadata associated on the entire
4848	// spreadsheet.
4849	LocationType string `json:"locationType,omitempty"`
4850
4851	// SheetId: The ID of the sheet when metadata is associated with an
4852	// entire sheet.
4853	SheetId int64 `json:"sheetId,omitempty"`
4854
4855	// Spreadsheet: True when metadata is associated with an entire
4856	// spreadsheet.
4857	Spreadsheet bool `json:"spreadsheet,omitempty"`
4858
4859	// ForceSendFields is a list of field names (e.g. "DimensionRange") to
4860	// unconditionally include in API requests. By default, fields with
4861	// empty values are omitted from API requests. However, any non-pointer,
4862	// non-interface field appearing in ForceSendFields will be sent to the
4863	// server regardless of whether the field is empty or not. This may be
4864	// used to include empty fields in Patch requests.
4865	ForceSendFields []string `json:"-"`
4866
4867	// NullFields is a list of field names (e.g. "DimensionRange") to
4868	// include in API requests with the JSON null value. By default, fields
4869	// with empty values are omitted from API requests. However, any field
4870	// with an empty value appearing in NullFields will be sent to the
4871	// server as null. It is an error if a field in this list has a
4872	// non-empty value. This may be used to include null fields in Patch
4873	// requests.
4874	NullFields []string `json:"-"`
4875}
4876
4877func (s *DeveloperMetadataLocation) MarshalJSON() ([]byte, error) {
4878	type NoMethod DeveloperMetadataLocation
4879	raw := NoMethod(*s)
4880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4881}
4882
4883// DeveloperMetadataLookup: Selects DeveloperMetadata that matches all
4884// of the specified fields.  For
4885// example, if only a metadata ID is specified this considers
4886// the
4887// DeveloperMetadata with that particular unique ID. If a metadata key
4888// is
4889// specified, this considers all developer metadata with that key.  If
4890// a
4891// key, visibility, and location type are all specified, this considers
4892// all
4893// developer metadata with that key and visibility that are associated
4894// with a
4895// location of that type.  In general, this
4896// selects all DeveloperMetadata that matches the intersection of all
4897// the
4898// specified fields; any field or combination of fields may be
4899// specified.
4900type DeveloperMetadataLookup struct {
4901	// LocationMatchingStrategy: Determines how this lookup matches the
4902	// location.  If this field is
4903	// specified as EXACT, only developer metadata associated on the
4904	// exact
4905	// location specified is matched.  If this field is specified to
4906	// INTERSECTING,
4907	// developer metadata associated on intersecting locations is
4908	// also
4909	// matched.  If left unspecified, this field assumes a default value
4910	// of
4911	// INTERSECTING.
4912	// If this field is specified, a metadataLocation
4913	// must also be specified.
4914	//
4915	// Possible values:
4916	//   "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED" -
4917	// Default value. This value must not be used.
4918	//   "EXACT_LOCATION" - Indicates that a specified location should be
4919	// matched exactly.  For
4920	// example, if row three were specified as a location this matching
4921	// strategy
4922	// would only match developer metadata also associated on row three.
4923	// Metadata
4924	// associated on other locations would not be considered.
4925	//   "INTERSECTING_LOCATION" - Indicates that a specified location
4926	// should match that exact location as
4927	// well as any intersecting locations.  For example, if row three
4928	// were
4929	// specified as a location this matching strategy would match
4930	// developer
4931	// metadata associated on row three as well as metadata associated
4932	// on
4933	// locations that intersect row three.  If, for instance, there was
4934	// developer
4935	// metadata associated on column B, this matching strategy would also
4936	// match
4937	// that location because column B intersects row three.
4938	LocationMatchingStrategy string `json:"locationMatchingStrategy,omitempty"`
4939
4940	// LocationType: Limits the selected developer metadata to those entries
4941	// which are
4942	// associated with locations of the specified type.  For example, when
4943	// this
4944	// field is specified as ROW this lookup
4945	// only considers developer metadata associated on rows.  If the field
4946	// is left
4947	// unspecified, all location types are considered.  This field cannot
4948	// be
4949	// specified as SPREADSHEET when
4950	// the locationMatchingStrategy
4951	// is specified as INTERSECTING or when the
4952	// metadataLocation is specified as a
4953	// non-spreadsheet location: spreadsheet metadata cannot intersect any
4954	// other
4955	// developer metadata location.  This field also must be left
4956	// unspecified when
4957	// the locationMatchingStrategy
4958	// is specified as EXACT.
4959	//
4960	// Possible values:
4961	//   "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED" - Default value.
4962	//   "ROW" - Developer metadata associated on an entire row dimension.
4963	//   "COLUMN" - Developer metadata associated on an entire column
4964	// dimension.
4965	//   "SHEET" - Developer metadata associated on an entire sheet.
4966	//   "SPREADSHEET" - Developer metadata associated on the entire
4967	// spreadsheet.
4968	LocationType string `json:"locationType,omitempty"`
4969
4970	// MetadataId: Limits the selected developer metadata to that which has
4971	// a matching
4972	// DeveloperMetadata.metadata_id.
4973	MetadataId int64 `json:"metadataId,omitempty"`
4974
4975	// MetadataKey: Limits the selected developer metadata to that which has
4976	// a matching
4977	// DeveloperMetadata.metadata_key.
4978	MetadataKey string `json:"metadataKey,omitempty"`
4979
4980	// MetadataLocation: Limits the selected developer metadata to those
4981	// entries associated with
4982	// the specified location.  This field either matches exact locations or
4983	// all
4984	// intersecting locations according the
4985	// specified
4986	// locationMatchingStrategy.
4987	MetadataLocation *DeveloperMetadataLocation `json:"metadataLocation,omitempty"`
4988
4989	// MetadataValue: Limits the selected developer metadata to that which
4990	// has a matching
4991	// DeveloperMetadata.metadata_value.
4992	MetadataValue string `json:"metadataValue,omitempty"`
4993
4994	// Visibility: Limits the selected developer metadata to that which has
4995	// a matching
4996	// DeveloperMetadata.visibility.  If left unspecified, all
4997	// developer
4998	// metadata visibile to the requesting project is considered.
4999	//
5000	// Possible values:
5001	//   "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED" - Default value.
5002	//   "DOCUMENT" - Document-visible metadata is accessible from any
5003	// developer project with
5004	// access to the document.
5005	//   "PROJECT" - Project-visible metadata is only visible to and
5006	// accessible by the developer
5007	// project that created the metadata.
5008	Visibility string `json:"visibility,omitempty"`
5009
5010	// ForceSendFields is a list of field names (e.g.
5011	// "LocationMatchingStrategy") to unconditionally include in API
5012	// requests. By default, fields with empty values are omitted from API
5013	// requests. However, any non-pointer, non-interface field appearing in
5014	// ForceSendFields will be sent to the server regardless of whether the
5015	// field is empty or not. This may be used to include empty fields in
5016	// Patch requests.
5017	ForceSendFields []string `json:"-"`
5018
5019	// NullFields is a list of field names (e.g. "LocationMatchingStrategy")
5020	// to include in API requests with the JSON null value. By default,
5021	// fields with empty values are omitted from API requests. However, any
5022	// field with an empty value appearing in NullFields will be sent to the
5023	// server as null. It is an error if a field in this list has a
5024	// non-empty value. This may be used to include null fields in Patch
5025	// requests.
5026	NullFields []string `json:"-"`
5027}
5028
5029func (s *DeveloperMetadataLookup) MarshalJSON() ([]byte, error) {
5030	type NoMethod DeveloperMetadataLookup
5031	raw := NoMethod(*s)
5032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5033}
5034
5035// DimensionGroup: A group over an interval of rows or columns on a
5036// sheet, which can contain or
5037// be contained within other groups. A group can be collapsed or
5038// expanded as a
5039// unit on the sheet.
5040type DimensionGroup struct {
5041	// Collapsed: This field is true if this group is collapsed. A collapsed
5042	// group remains
5043	// collapsed if an overlapping group at a shallower depth is
5044	// expanded.
5045	//
5046	// A true value does not imply that all dimensions within the group
5047	// are
5048	// hidden, since a dimension's visibility can change independently from
5049	// this
5050	// group property. However, when this property is updated, all
5051	// dimensions
5052	// within it are set to hidden if this field is true, or set to visible
5053	// if
5054	// this field is false.
5055	Collapsed bool `json:"collapsed,omitempty"`
5056
5057	// Depth: The depth of the group, representing how many groups have a
5058	// range that
5059	// wholly contains the range of this group.
5060	Depth int64 `json:"depth,omitempty"`
5061
5062	// Range: The range over which this group exists.
5063	Range *DimensionRange `json:"range,omitempty"`
5064
5065	// ForceSendFields is a list of field names (e.g. "Collapsed") to
5066	// unconditionally include in API requests. By default, fields with
5067	// empty values are omitted from API requests. However, any non-pointer,
5068	// non-interface field appearing in ForceSendFields will be sent to the
5069	// server regardless of whether the field is empty or not. This may be
5070	// used to include empty fields in Patch requests.
5071	ForceSendFields []string `json:"-"`
5072
5073	// NullFields is a list of field names (e.g. "Collapsed") to include in
5074	// API requests with the JSON null value. By default, fields with empty
5075	// values are omitted from API requests. However, any field with an
5076	// empty value appearing in NullFields will be sent to the server as
5077	// null. It is an error if a field in this list has a non-empty value.
5078	// This may be used to include null fields in Patch requests.
5079	NullFields []string `json:"-"`
5080}
5081
5082func (s *DimensionGroup) MarshalJSON() ([]byte, error) {
5083	type NoMethod DimensionGroup
5084	raw := NoMethod(*s)
5085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5086}
5087
5088// DimensionProperties: Properties about a dimension.
5089type DimensionProperties struct {
5090	// DeveloperMetadata: The developer metadata associated with a single
5091	// row or column.
5092	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
5093
5094	// HiddenByFilter: True if this dimension is being filtered.
5095	// This field is read-only.
5096	HiddenByFilter bool `json:"hiddenByFilter,omitempty"`
5097
5098	// HiddenByUser: True if this dimension is explicitly hidden.
5099	HiddenByUser bool `json:"hiddenByUser,omitempty"`
5100
5101	// PixelSize: The height (if a row) or width (if a column) of the
5102	// dimension in pixels.
5103	PixelSize int64 `json:"pixelSize,omitempty"`
5104
5105	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
5106	// to unconditionally include in API requests. By default, fields with
5107	// empty values are omitted from API requests. However, any non-pointer,
5108	// non-interface field appearing in ForceSendFields will be sent to the
5109	// server regardless of whether the field is empty or not. This may be
5110	// used to include empty fields in Patch requests.
5111	ForceSendFields []string `json:"-"`
5112
5113	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
5114	// include in API requests with the JSON null value. By default, fields
5115	// with empty values are omitted from API requests. However, any field
5116	// with an empty value appearing in NullFields will be sent to the
5117	// server as null. It is an error if a field in this list has a
5118	// non-empty value. This may be used to include null fields in Patch
5119	// requests.
5120	NullFields []string `json:"-"`
5121}
5122
5123func (s *DimensionProperties) MarshalJSON() ([]byte, error) {
5124	type NoMethod DimensionProperties
5125	raw := NoMethod(*s)
5126	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5127}
5128
5129// DimensionRange: A range along a single dimension on a sheet.
5130// All indexes are zero-based.
5131// Indexes are half open: the start index is inclusive
5132// and the end index is exclusive.
5133// Missing indexes indicate the range is unbounded on that side.
5134type DimensionRange struct {
5135	// Dimension: The dimension of the span.
5136	//
5137	// Possible values:
5138	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
5139	//   "ROWS" - Operates on the rows of a sheet.
5140	//   "COLUMNS" - Operates on the columns of a sheet.
5141	Dimension string `json:"dimension,omitempty"`
5142
5143	// EndIndex: The end (exclusive) of the span, or not set if unbounded.
5144	EndIndex int64 `json:"endIndex,omitempty"`
5145
5146	// SheetId: The sheet this span is on.
5147	SheetId int64 `json:"sheetId,omitempty"`
5148
5149	// StartIndex: The start (inclusive) of the span, or not set if
5150	// unbounded.
5151	StartIndex int64 `json:"startIndex,omitempty"`
5152
5153	// ForceSendFields is a list of field names (e.g. "Dimension") to
5154	// unconditionally include in API requests. By default, fields with
5155	// empty values are omitted from API requests. However, any non-pointer,
5156	// non-interface field appearing in ForceSendFields will be sent to the
5157	// server regardless of whether the field is empty or not. This may be
5158	// used to include empty fields in Patch requests.
5159	ForceSendFields []string `json:"-"`
5160
5161	// NullFields is a list of field names (e.g. "Dimension") to include in
5162	// API requests with the JSON null value. By default, fields with empty
5163	// values are omitted from API requests. However, any field with an
5164	// empty value appearing in NullFields will be sent to the server as
5165	// null. It is an error if a field in this list has a non-empty value.
5166	// This may be used to include null fields in Patch requests.
5167	NullFields []string `json:"-"`
5168}
5169
5170func (s *DimensionRange) MarshalJSON() ([]byte, error) {
5171	type NoMethod DimensionRange
5172	raw := NoMethod(*s)
5173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5174}
5175
5176// DuplicateFilterViewRequest: Duplicates a particular filter view.
5177type DuplicateFilterViewRequest struct {
5178	// FilterId: The ID of the filter being duplicated.
5179	FilterId int64 `json:"filterId,omitempty"`
5180
5181	// ForceSendFields is a list of field names (e.g. "FilterId") to
5182	// unconditionally include in API requests. By default, fields with
5183	// empty values are omitted from API requests. However, any non-pointer,
5184	// non-interface field appearing in ForceSendFields will be sent to the
5185	// server regardless of whether the field is empty or not. This may be
5186	// used to include empty fields in Patch requests.
5187	ForceSendFields []string `json:"-"`
5188
5189	// NullFields is a list of field names (e.g. "FilterId") to include in
5190	// API requests with the JSON null value. By default, fields with empty
5191	// values are omitted from API requests. However, any field with an
5192	// empty value appearing in NullFields will be sent to the server as
5193	// null. It is an error if a field in this list has a non-empty value.
5194	// This may be used to include null fields in Patch requests.
5195	NullFields []string `json:"-"`
5196}
5197
5198func (s *DuplicateFilterViewRequest) MarshalJSON() ([]byte, error) {
5199	type NoMethod DuplicateFilterViewRequest
5200	raw := NoMethod(*s)
5201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5202}
5203
5204// DuplicateFilterViewResponse: The result of a filter view being
5205// duplicated.
5206type DuplicateFilterViewResponse struct {
5207	// Filter: The newly created filter.
5208	Filter *FilterView `json:"filter,omitempty"`
5209
5210	// ForceSendFields is a list of field names (e.g. "Filter") to
5211	// unconditionally include in API requests. By default, fields with
5212	// empty values are omitted from API requests. However, any non-pointer,
5213	// non-interface field appearing in ForceSendFields will be sent to the
5214	// server regardless of whether the field is empty or not. This may be
5215	// used to include empty fields in Patch requests.
5216	ForceSendFields []string `json:"-"`
5217
5218	// NullFields is a list of field names (e.g. "Filter") to include in API
5219	// requests with the JSON null value. By default, fields with empty
5220	// values are omitted from API requests. However, any field with an
5221	// empty value appearing in NullFields will be sent to the server as
5222	// null. It is an error if a field in this list has a non-empty value.
5223	// This may be used to include null fields in Patch requests.
5224	NullFields []string `json:"-"`
5225}
5226
5227func (s *DuplicateFilterViewResponse) MarshalJSON() ([]byte, error) {
5228	type NoMethod DuplicateFilterViewResponse
5229	raw := NoMethod(*s)
5230	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5231}
5232
5233// DuplicateSheetRequest: Duplicates the contents of a sheet.
5234type DuplicateSheetRequest struct {
5235	// InsertSheetIndex: The zero-based index where the new sheet should be
5236	// inserted.
5237	// The index of all sheets after this are incremented.
5238	InsertSheetIndex int64 `json:"insertSheetIndex,omitempty"`
5239
5240	// NewSheetId: If set, the ID of the new sheet. If not set, an ID is
5241	// chosen.
5242	// If set, the ID must not conflict with any existing sheet ID.
5243	// If set, it must be non-negative.
5244	NewSheetId int64 `json:"newSheetId,omitempty"`
5245
5246	// NewSheetName: The name of the new sheet.  If empty, a new name is
5247	// chosen for you.
5248	NewSheetName string `json:"newSheetName,omitempty"`
5249
5250	// SourceSheetId: The sheet to duplicate.
5251	SourceSheetId int64 `json:"sourceSheetId,omitempty"`
5252
5253	// ForceSendFields is a list of field names (e.g. "InsertSheetIndex") to
5254	// unconditionally include in API requests. By default, fields with
5255	// empty values are omitted from API requests. However, any non-pointer,
5256	// non-interface field appearing in ForceSendFields will be sent to the
5257	// server regardless of whether the field is empty or not. This may be
5258	// used to include empty fields in Patch requests.
5259	ForceSendFields []string `json:"-"`
5260
5261	// NullFields is a list of field names (e.g. "InsertSheetIndex") to
5262	// include in API requests with the JSON null value. By default, fields
5263	// with empty values are omitted from API requests. However, any field
5264	// with an empty value appearing in NullFields will be sent to the
5265	// server as null. It is an error if a field in this list has a
5266	// non-empty value. This may be used to include null fields in Patch
5267	// requests.
5268	NullFields []string `json:"-"`
5269}
5270
5271func (s *DuplicateSheetRequest) MarshalJSON() ([]byte, error) {
5272	type NoMethod DuplicateSheetRequest
5273	raw := NoMethod(*s)
5274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5275}
5276
5277// DuplicateSheetResponse: The result of duplicating a sheet.
5278type DuplicateSheetResponse struct {
5279	// Properties: The properties of the duplicate sheet.
5280	Properties *SheetProperties `json:"properties,omitempty"`
5281
5282	// ForceSendFields is a list of field names (e.g. "Properties") to
5283	// unconditionally include in API requests. By default, fields with
5284	// empty values are omitted from API requests. However, any non-pointer,
5285	// non-interface field appearing in ForceSendFields will be sent to the
5286	// server regardless of whether the field is empty or not. This may be
5287	// used to include empty fields in Patch requests.
5288	ForceSendFields []string `json:"-"`
5289
5290	// NullFields is a list of field names (e.g. "Properties") to include in
5291	// API requests with the JSON null value. By default, fields with empty
5292	// values are omitted from API requests. However, any field with an
5293	// empty value appearing in NullFields will be sent to the server as
5294	// null. It is an error if a field in this list has a non-empty value.
5295	// This may be used to include null fields in Patch requests.
5296	NullFields []string `json:"-"`
5297}
5298
5299func (s *DuplicateSheetResponse) MarshalJSON() ([]byte, error) {
5300	type NoMethod DuplicateSheetResponse
5301	raw := NoMethod(*s)
5302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5303}
5304
5305// Editors: The editors of a protected range.
5306type Editors struct {
5307	// DomainUsersCanEdit: True if anyone in the document's domain has edit
5308	// access to the protected
5309	// range.  Domain protection is only supported on documents within a
5310	// domain.
5311	DomainUsersCanEdit bool `json:"domainUsersCanEdit,omitempty"`
5312
5313	// Groups: The email addresses of groups with edit access to the
5314	// protected range.
5315	Groups []string `json:"groups,omitempty"`
5316
5317	// Users: The email addresses of users with edit access to the protected
5318	// range.
5319	Users []string `json:"users,omitempty"`
5320
5321	// ForceSendFields is a list of field names (e.g. "DomainUsersCanEdit")
5322	// to unconditionally include in API requests. By default, fields with
5323	// empty values are omitted from API requests. However, any non-pointer,
5324	// non-interface field appearing in ForceSendFields will be sent to the
5325	// server regardless of whether the field is empty or not. This may be
5326	// used to include empty fields in Patch requests.
5327	ForceSendFields []string `json:"-"`
5328
5329	// NullFields is a list of field names (e.g. "DomainUsersCanEdit") to
5330	// include in API requests with the JSON null value. By default, fields
5331	// with empty values are omitted from API requests. However, any field
5332	// with an empty value appearing in NullFields will be sent to the
5333	// server as null. It is an error if a field in this list has a
5334	// non-empty value. This may be used to include null fields in Patch
5335	// requests.
5336	NullFields []string `json:"-"`
5337}
5338
5339func (s *Editors) MarshalJSON() ([]byte, error) {
5340	type NoMethod Editors
5341	raw := NoMethod(*s)
5342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5343}
5344
5345// EmbeddedChart: A chart embedded in a sheet.
5346type EmbeddedChart struct {
5347	// ChartId: The ID of the chart.
5348	ChartId int64 `json:"chartId,omitempty"`
5349
5350	// Position: The position of the chart.
5351	Position *EmbeddedObjectPosition `json:"position,omitempty"`
5352
5353	// Spec: The specification of the chart.
5354	Spec *ChartSpec `json:"spec,omitempty"`
5355
5356	// ForceSendFields is a list of field names (e.g. "ChartId") to
5357	// unconditionally include in API requests. By default, fields with
5358	// empty values are omitted from API requests. However, any non-pointer,
5359	// non-interface field appearing in ForceSendFields will be sent to the
5360	// server regardless of whether the field is empty or not. This may be
5361	// used to include empty fields in Patch requests.
5362	ForceSendFields []string `json:"-"`
5363
5364	// NullFields is a list of field names (e.g. "ChartId") to include in
5365	// API requests with the JSON null value. By default, fields with empty
5366	// values are omitted from API requests. However, any field with an
5367	// empty value appearing in NullFields will be sent to the server as
5368	// null. It is an error if a field in this list has a non-empty value.
5369	// This may be used to include null fields in Patch requests.
5370	NullFields []string `json:"-"`
5371}
5372
5373func (s *EmbeddedChart) MarshalJSON() ([]byte, error) {
5374	type NoMethod EmbeddedChart
5375	raw := NoMethod(*s)
5376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5377}
5378
5379// EmbeddedObjectPosition: The position of an embedded object such as a
5380// chart.
5381type EmbeddedObjectPosition struct {
5382	// NewSheet: If true, the embedded object is put on a new sheet whose
5383	// ID
5384	// is chosen for you. Used only when writing.
5385	NewSheet bool `json:"newSheet,omitempty"`
5386
5387	// OverlayPosition: The position at which the object is overlaid on top
5388	// of a grid.
5389	OverlayPosition *OverlayPosition `json:"overlayPosition,omitempty"`
5390
5391	// SheetId: The sheet this is on. Set only if the embedded object
5392	// is on its own sheet. Must be non-negative.
5393	SheetId int64 `json:"sheetId,omitempty"`
5394
5395	// ForceSendFields is a list of field names (e.g. "NewSheet") to
5396	// unconditionally include in API requests. By default, fields with
5397	// empty values are omitted from API requests. However, any non-pointer,
5398	// non-interface field appearing in ForceSendFields will be sent to the
5399	// server regardless of whether the field is empty or not. This may be
5400	// used to include empty fields in Patch requests.
5401	ForceSendFields []string `json:"-"`
5402
5403	// NullFields is a list of field names (e.g. "NewSheet") to include in
5404	// API requests with the JSON null value. By default, fields with empty
5405	// values are omitted from API requests. However, any field with an
5406	// empty value appearing in NullFields will be sent to the server as
5407	// null. It is an error if a field in this list has a non-empty value.
5408	// This may be used to include null fields in Patch requests.
5409	NullFields []string `json:"-"`
5410}
5411
5412func (s *EmbeddedObjectPosition) MarshalJSON() ([]byte, error) {
5413	type NoMethod EmbeddedObjectPosition
5414	raw := NoMethod(*s)
5415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5416}
5417
5418// ErrorValue: An error in a cell.
5419type ErrorValue struct {
5420	// Message: A message with more information about the error
5421	// (in the spreadsheet's locale).
5422	Message string `json:"message,omitempty"`
5423
5424	// Type: The type of error.
5425	//
5426	// Possible values:
5427	//   "ERROR_TYPE_UNSPECIFIED" - The default error type, do not use this.
5428	//   "ERROR" - Corresponds to the `#ERROR!` error.
5429	//   "NULL_VALUE" - Corresponds to the `#NULL!` error.
5430	//   "DIVIDE_BY_ZERO" - Corresponds to the `#DIV/0` error.
5431	//   "VALUE" - Corresponds to the `#VALUE!` error.
5432	//   "REF" - Corresponds to the `#REF!` error.
5433	//   "NAME" - Corresponds to the `#NAME?` error.
5434	//   "NUM" - Corresponds to the `#NUM!` error.
5435	//   "N_A" - Corresponds to the `#N/A` error.
5436	//   "LOADING" - Corresponds to the `Loading...` state.
5437	Type string `json:"type,omitempty"`
5438
5439	// ForceSendFields is a list of field names (e.g. "Message") to
5440	// unconditionally include in API requests. By default, fields with
5441	// empty values are omitted from API requests. However, any non-pointer,
5442	// non-interface field appearing in ForceSendFields will be sent to the
5443	// server regardless of whether the field is empty or not. This may be
5444	// used to include empty fields in Patch requests.
5445	ForceSendFields []string `json:"-"`
5446
5447	// NullFields is a list of field names (e.g. "Message") to include in
5448	// API requests with the JSON null value. By default, fields with empty
5449	// values are omitted from API requests. However, any field with an
5450	// empty value appearing in NullFields will be sent to the server as
5451	// null. It is an error if a field in this list has a non-empty value.
5452	// This may be used to include null fields in Patch requests.
5453	NullFields []string `json:"-"`
5454}
5455
5456func (s *ErrorValue) MarshalJSON() ([]byte, error) {
5457	type NoMethod ErrorValue
5458	raw := NoMethod(*s)
5459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5460}
5461
5462// ExtendedValue: The kinds of value that a cell in a spreadsheet can
5463// have.
5464type ExtendedValue struct {
5465	// BoolValue: Represents a boolean value.
5466	BoolValue *bool `json:"boolValue,omitempty"`
5467
5468	// ErrorValue: Represents an error.
5469	// This field is read-only.
5470	ErrorValue *ErrorValue `json:"errorValue,omitempty"`
5471
5472	// FormulaValue: Represents a formula.
5473	FormulaValue *string `json:"formulaValue,omitempty"`
5474
5475	// NumberValue: Represents a double value.
5476	// Note: Dates, Times and DateTimes are represented as doubles
5477	// in
5478	// "serial number" format.
5479	NumberValue *float64 `json:"numberValue,omitempty"`
5480
5481	// StringValue: Represents a string value.
5482	// Leading single quotes are not included. For example, if the user
5483	// typed
5484	// `'123` into the UI, this would be represented as a `stringValue`
5485	// of
5486	// "123".
5487	StringValue *string `json:"stringValue,omitempty"`
5488
5489	// ForceSendFields is a list of field names (e.g. "BoolValue") to
5490	// unconditionally include in API requests. By default, fields with
5491	// empty values are omitted from API requests. However, any non-pointer,
5492	// non-interface field appearing in ForceSendFields will be sent to the
5493	// server regardless of whether the field is empty or not. This may be
5494	// used to include empty fields in Patch requests.
5495	ForceSendFields []string `json:"-"`
5496
5497	// NullFields is a list of field names (e.g. "BoolValue") to include in
5498	// API requests with the JSON null value. By default, fields with empty
5499	// values are omitted from API requests. However, any field with an
5500	// empty value appearing in NullFields will be sent to the server as
5501	// null. It is an error if a field in this list has a non-empty value.
5502	// This may be used to include null fields in Patch requests.
5503	NullFields []string `json:"-"`
5504}
5505
5506func (s *ExtendedValue) MarshalJSON() ([]byte, error) {
5507	type NoMethod ExtendedValue
5508	raw := NoMethod(*s)
5509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5510}
5511
5512func (s *ExtendedValue) UnmarshalJSON(data []byte) error {
5513	type NoMethod ExtendedValue
5514	var s1 struct {
5515		NumberValue *gensupport.JSONFloat64 `json:"numberValue"`
5516		*NoMethod
5517	}
5518	s1.NoMethod = (*NoMethod)(s)
5519	if err := json.Unmarshal(data, &s1); err != nil {
5520		return err
5521	}
5522	if s1.NumberValue != nil {
5523		s.NumberValue = (*float64)(s1.NumberValue)
5524	}
5525	return nil
5526}
5527
5528// FilterCriteria: Criteria for showing/hiding rows in a filter or
5529// filter view.
5530type FilterCriteria struct {
5531	// Condition: A condition that must be true for values to be
5532	// shown.
5533	// (This does not override hidden_values -- if a value is listed there,
5534	//  it will still be hidden.)
5535	Condition *BooleanCondition `json:"condition,omitempty"`
5536
5537	// HiddenValues: Values that should be hidden.
5538	HiddenValues []string `json:"hiddenValues,omitempty"`
5539
5540	// VisibleBackgroundColor: The background fill color to filter by; only
5541	// cells with this fill color are
5542	// shown. Mutually exclusive with visible_foreground_color.
5543	VisibleBackgroundColor *Color `json:"visibleBackgroundColor,omitempty"`
5544
5545	// VisibleBackgroundColorStyle: The background fill color to filter by;
5546	// only cells with this fill color are
5547	// shown. This field is mutually exclusive with
5548	// visible_foreground_color,
5549	// and must be set to an RGB-type color. If visible_background_color
5550	// is
5551	// also set, this field takes precedence.
5552	VisibleBackgroundColorStyle *ColorStyle `json:"visibleBackgroundColorStyle,omitempty"`
5553
5554	// VisibleForegroundColor: The foreground color to filter by; only cells
5555	// with this foreground color
5556	// are shown. Mutually exclusive with visible_background_color.
5557	VisibleForegroundColor *Color `json:"visibleForegroundColor,omitempty"`
5558
5559	// VisibleForegroundColorStyle: The foreground color to filter by; only
5560	// cells with this foreground color
5561	// are shown. This field is mutually exclusive
5562	// with
5563	// visible_background_color, and must be set to an RGB-type color.
5564	// If
5565	// visible_foreground_color is also set, this field takes precedence.
5566	VisibleForegroundColorStyle *ColorStyle `json:"visibleForegroundColorStyle,omitempty"`
5567
5568	// ForceSendFields is a list of field names (e.g. "Condition") 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. "Condition") 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 *FilterCriteria) MarshalJSON() ([]byte, error) {
5586	type NoMethod FilterCriteria
5587	raw := NoMethod(*s)
5588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5589}
5590
5591// FilterView: A filter view.
5592type FilterView struct {
5593	// Criteria: The criteria for showing/hiding values per column.
5594	// The map's key is the column index, and the value is the criteria
5595	// for
5596	// that column.
5597	Criteria map[string]FilterCriteria `json:"criteria,omitempty"`
5598
5599	// FilterViewId: The ID of the filter view.
5600	FilterViewId int64 `json:"filterViewId,omitempty"`
5601
5602	// NamedRangeId: The named range this filter view is backed by, if
5603	// any.
5604	//
5605	// When writing, only one of range or named_range_id
5606	// may be set.
5607	NamedRangeId string `json:"namedRangeId,omitempty"`
5608
5609	// Range: The range this filter view covers.
5610	//
5611	// When writing, only one of range or named_range_id
5612	// may be set.
5613	Range *GridRange `json:"range,omitempty"`
5614
5615	// SortSpecs: The sort order per column. Later specifications are used
5616	// when values
5617	// are equal in the earlier specifications.
5618	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
5619
5620	// Title: The name of the filter view.
5621	Title string `json:"title,omitempty"`
5622
5623	// ForceSendFields is a list of field names (e.g. "Criteria") to
5624	// unconditionally include in API requests. By default, fields with
5625	// empty values are omitted from API requests. However, any non-pointer,
5626	// non-interface field appearing in ForceSendFields will be sent to the
5627	// server regardless of whether the field is empty or not. This may be
5628	// used to include empty fields in Patch requests.
5629	ForceSendFields []string `json:"-"`
5630
5631	// NullFields is a list of field names (e.g. "Criteria") to include in
5632	// API requests with the JSON null value. By default, fields with empty
5633	// values are omitted from API requests. However, any field with an
5634	// empty value appearing in NullFields will be sent to the server as
5635	// null. It is an error if a field in this list has a non-empty value.
5636	// This may be used to include null fields in Patch requests.
5637	NullFields []string `json:"-"`
5638}
5639
5640func (s *FilterView) MarshalJSON() ([]byte, error) {
5641	type NoMethod FilterView
5642	raw := NoMethod(*s)
5643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5644}
5645
5646// FindReplaceRequest: Finds and replaces data in cells over a range,
5647// sheet, or all sheets.
5648type FindReplaceRequest struct {
5649	// AllSheets: True to find/replace over all sheets.
5650	AllSheets bool `json:"allSheets,omitempty"`
5651
5652	// Find: The value to search.
5653	Find string `json:"find,omitempty"`
5654
5655	// IncludeFormulas: True if the search should include cells with
5656	// formulas.
5657	// False to skip cells with formulas.
5658	IncludeFormulas bool `json:"includeFormulas,omitempty"`
5659
5660	// MatchCase: True if the search is case sensitive.
5661	MatchCase bool `json:"matchCase,omitempty"`
5662
5663	// MatchEntireCell: True if the find value should match the entire cell.
5664	MatchEntireCell bool `json:"matchEntireCell,omitempty"`
5665
5666	// Range: The range to find/replace over.
5667	Range *GridRange `json:"range,omitempty"`
5668
5669	// Replacement: The value to use as the replacement.
5670	Replacement string `json:"replacement,omitempty"`
5671
5672	// SearchByRegex: True if the find value is a regex.
5673	// The regular expression and replacement should follow Java regex
5674	// rules
5675	// at
5676	// https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.
5677	// The replacement string is allowed to refer to capturing groups.
5678	// For example, if one cell has the contents "Google Sheets" and
5679	// another
5680	// has "Google Docs", then searching for "o.* (.*)" with a
5681	// replacement of
5682	// "$1 Rocks" would change the contents of the cells to
5683	// "GSheets Rocks" and "GDocs Rocks" respectively.
5684	SearchByRegex bool `json:"searchByRegex,omitempty"`
5685
5686	// SheetId: The sheet to find/replace over.
5687	SheetId int64 `json:"sheetId,omitempty"`
5688
5689	// ForceSendFields is a list of field names (e.g. "AllSheets") to
5690	// unconditionally include in API requests. By default, fields with
5691	// empty values are omitted from API requests. However, any non-pointer,
5692	// non-interface field appearing in ForceSendFields will be sent to the
5693	// server regardless of whether the field is empty or not. This may be
5694	// used to include empty fields in Patch requests.
5695	ForceSendFields []string `json:"-"`
5696
5697	// NullFields is a list of field names (e.g. "AllSheets") to include in
5698	// API requests with the JSON null value. By default, fields with empty
5699	// values are omitted from API requests. However, any field with an
5700	// empty value appearing in NullFields will be sent to the server as
5701	// null. It is an error if a field in this list has a non-empty value.
5702	// This may be used to include null fields in Patch requests.
5703	NullFields []string `json:"-"`
5704}
5705
5706func (s *FindReplaceRequest) MarshalJSON() ([]byte, error) {
5707	type NoMethod FindReplaceRequest
5708	raw := NoMethod(*s)
5709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5710}
5711
5712// FindReplaceResponse: The result of the find/replace.
5713type FindReplaceResponse struct {
5714	// FormulasChanged: The number of formula cells changed.
5715	FormulasChanged int64 `json:"formulasChanged,omitempty"`
5716
5717	// OccurrencesChanged: The number of occurrences (possibly multiple
5718	// within a cell) changed.
5719	// For example, if replacing "e" with "o" in "Google Sheets", this
5720	// would
5721	// be "3" because "Google Sheets" -> "Googlo Shoots".
5722	OccurrencesChanged int64 `json:"occurrencesChanged,omitempty"`
5723
5724	// RowsChanged: The number of rows changed.
5725	RowsChanged int64 `json:"rowsChanged,omitempty"`
5726
5727	// SheetsChanged: The number of sheets changed.
5728	SheetsChanged int64 `json:"sheetsChanged,omitempty"`
5729
5730	// ValuesChanged: The number of non-formula cells changed.
5731	ValuesChanged int64 `json:"valuesChanged,omitempty"`
5732
5733	// ForceSendFields is a list of field names (e.g. "FormulasChanged") to
5734	// unconditionally include in API requests. By default, fields with
5735	// empty values are omitted from API requests. However, any non-pointer,
5736	// non-interface field appearing in ForceSendFields will be sent to the
5737	// server regardless of whether the field is empty or not. This may be
5738	// used to include empty fields in Patch requests.
5739	ForceSendFields []string `json:"-"`
5740
5741	// NullFields is a list of field names (e.g. "FormulasChanged") to
5742	// include in API requests with the JSON null value. By default, fields
5743	// with empty values are omitted from API requests. However, any field
5744	// with an empty value appearing in NullFields will be sent to the
5745	// server as null. It is an error if a field in this list has a
5746	// non-empty value. This may be used to include null fields in Patch
5747	// requests.
5748	NullFields []string `json:"-"`
5749}
5750
5751func (s *FindReplaceResponse) MarshalJSON() ([]byte, error) {
5752	type NoMethod FindReplaceResponse
5753	raw := NoMethod(*s)
5754	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5755}
5756
5757// GetSpreadsheetByDataFilterRequest: The request for retrieving a
5758// Spreadsheet.
5759type GetSpreadsheetByDataFilterRequest struct {
5760	// DataFilters: The DataFilters used to select which ranges to retrieve
5761	// from
5762	// the spreadsheet.
5763	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
5764
5765	// IncludeGridData: True if grid data should be returned.
5766	// This parameter is ignored if a field mask was set in the request.
5767	IncludeGridData bool `json:"includeGridData,omitempty"`
5768
5769	// ForceSendFields is a list of field names (e.g. "DataFilters") to
5770	// unconditionally include in API requests. By default, fields with
5771	// empty values are omitted from API requests. However, any non-pointer,
5772	// non-interface field appearing in ForceSendFields will be sent to the
5773	// server regardless of whether the field is empty or not. This may be
5774	// used to include empty fields in Patch requests.
5775	ForceSendFields []string `json:"-"`
5776
5777	// NullFields is a list of field names (e.g. "DataFilters") to include
5778	// in API requests with the JSON null value. By default, fields with
5779	// empty values are omitted from API requests. However, any field with
5780	// an empty value appearing in NullFields will be sent to the server as
5781	// null. It is an error if a field in this list has a non-empty value.
5782	// This may be used to include null fields in Patch requests.
5783	NullFields []string `json:"-"`
5784}
5785
5786func (s *GetSpreadsheetByDataFilterRequest) MarshalJSON() ([]byte, error) {
5787	type NoMethod GetSpreadsheetByDataFilterRequest
5788	raw := NoMethod(*s)
5789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5790}
5791
5792// GradientRule: A rule that applies a gradient color scale format,
5793// based on
5794// the interpolation points listed. The format of a cell will vary
5795// based on its contents as compared to the values of the
5796// interpolation
5797// points.
5798type GradientRule struct {
5799	// Maxpoint: The final interpolation point.
5800	Maxpoint *InterpolationPoint `json:"maxpoint,omitempty"`
5801
5802	// Midpoint: An optional midway interpolation point.
5803	Midpoint *InterpolationPoint `json:"midpoint,omitempty"`
5804
5805	// Minpoint: The starting interpolation point.
5806	Minpoint *InterpolationPoint `json:"minpoint,omitempty"`
5807
5808	// ForceSendFields is a list of field names (e.g. "Maxpoint") to
5809	// unconditionally include in API requests. By default, fields with
5810	// empty values are omitted from API requests. However, any non-pointer,
5811	// non-interface field appearing in ForceSendFields will be sent to the
5812	// server regardless of whether the field is empty or not. This may be
5813	// used to include empty fields in Patch requests.
5814	ForceSendFields []string `json:"-"`
5815
5816	// NullFields is a list of field names (e.g. "Maxpoint") to include in
5817	// API requests with the JSON null value. By default, fields with empty
5818	// values are omitted from API requests. However, any field with an
5819	// empty value appearing in NullFields will be sent to the server as
5820	// null. It is an error if a field in this list has a non-empty value.
5821	// This may be used to include null fields in Patch requests.
5822	NullFields []string `json:"-"`
5823}
5824
5825func (s *GradientRule) MarshalJSON() ([]byte, error) {
5826	type NoMethod GradientRule
5827	raw := NoMethod(*s)
5828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5829}
5830
5831// GridCoordinate: A coordinate in a sheet.
5832// All indexes are zero-based.
5833type GridCoordinate struct {
5834	// ColumnIndex: The column index of the coordinate.
5835	ColumnIndex int64 `json:"columnIndex,omitempty"`
5836
5837	// RowIndex: The row index of the coordinate.
5838	RowIndex int64 `json:"rowIndex,omitempty"`
5839
5840	// SheetId: The sheet this coordinate is on.
5841	SheetId int64 `json:"sheetId,omitempty"`
5842
5843	// ForceSendFields is a list of field names (e.g. "ColumnIndex") to
5844	// unconditionally include in API requests. By default, fields with
5845	// empty values are omitted from API requests. However, any non-pointer,
5846	// non-interface field appearing in ForceSendFields will be sent to the
5847	// server regardless of whether the field is empty or not. This may be
5848	// used to include empty fields in Patch requests.
5849	ForceSendFields []string `json:"-"`
5850
5851	// NullFields is a list of field names (e.g. "ColumnIndex") to include
5852	// in API requests with the JSON null value. By default, fields with
5853	// empty values are omitted from API requests. However, any field with
5854	// an empty value appearing in NullFields will be sent to the server as
5855	// null. It is an error if a field in this list has a non-empty value.
5856	// This may be used to include null fields in Patch requests.
5857	NullFields []string `json:"-"`
5858}
5859
5860func (s *GridCoordinate) MarshalJSON() ([]byte, error) {
5861	type NoMethod GridCoordinate
5862	raw := NoMethod(*s)
5863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5864}
5865
5866// GridData: Data in the grid, as well as metadata about the dimensions.
5867type GridData struct {
5868	// ColumnMetadata: Metadata about the requested columns in the grid,
5869	// starting with the column
5870	// in start_column.
5871	ColumnMetadata []*DimensionProperties `json:"columnMetadata,omitempty"`
5872
5873	// RowData: The data in the grid, one entry per row,
5874	// starting with the row in startRow.
5875	// The values in RowData will correspond to columns starting
5876	// at start_column.
5877	RowData []*RowData `json:"rowData,omitempty"`
5878
5879	// RowMetadata: Metadata about the requested rows in the grid, starting
5880	// with the row
5881	// in start_row.
5882	RowMetadata []*DimensionProperties `json:"rowMetadata,omitempty"`
5883
5884	// StartColumn: The first column this GridData refers to, zero-based.
5885	StartColumn int64 `json:"startColumn,omitempty"`
5886
5887	// StartRow: The first row this GridData refers to, zero-based.
5888	StartRow int64 `json:"startRow,omitempty"`
5889
5890	// ForceSendFields is a list of field names (e.g. "ColumnMetadata") to
5891	// unconditionally include in API requests. By default, fields with
5892	// empty values are omitted from API requests. However, any non-pointer,
5893	// non-interface field appearing in ForceSendFields will be sent to the
5894	// server regardless of whether the field is empty or not. This may be
5895	// used to include empty fields in Patch requests.
5896	ForceSendFields []string `json:"-"`
5897
5898	// NullFields is a list of field names (e.g. "ColumnMetadata") to
5899	// include in API requests with the JSON null value. By default, fields
5900	// with empty values are omitted from API requests. However, any field
5901	// with an empty value appearing in NullFields will be sent to the
5902	// server as null. It is an error if a field in this list has a
5903	// non-empty value. This may be used to include null fields in Patch
5904	// requests.
5905	NullFields []string `json:"-"`
5906}
5907
5908func (s *GridData) MarshalJSON() ([]byte, error) {
5909	type NoMethod GridData
5910	raw := NoMethod(*s)
5911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5912}
5913
5914// GridProperties: Properties of a grid.
5915type GridProperties struct {
5916	// ColumnCount: The number of columns in the grid.
5917	ColumnCount int64 `json:"columnCount,omitempty"`
5918
5919	// ColumnGroupControlAfter: True if the column grouping control toggle
5920	// is shown after the group.
5921	ColumnGroupControlAfter bool `json:"columnGroupControlAfter,omitempty"`
5922
5923	// FrozenColumnCount: The number of columns that are frozen in the grid.
5924	FrozenColumnCount int64 `json:"frozenColumnCount,omitempty"`
5925
5926	// FrozenRowCount: The number of rows that are frozen in the grid.
5927	FrozenRowCount int64 `json:"frozenRowCount,omitempty"`
5928
5929	// HideGridlines: True if the grid isn't showing gridlines in the UI.
5930	HideGridlines bool `json:"hideGridlines,omitempty"`
5931
5932	// RowCount: The number of rows in the grid.
5933	RowCount int64 `json:"rowCount,omitempty"`
5934
5935	// RowGroupControlAfter: True if the row grouping control toggle is
5936	// shown after the group.
5937	RowGroupControlAfter bool `json:"rowGroupControlAfter,omitempty"`
5938
5939	// ForceSendFields is a list of field names (e.g. "ColumnCount") to
5940	// unconditionally include in API requests. By default, fields with
5941	// empty values are omitted from API requests. However, any non-pointer,
5942	// non-interface field appearing in ForceSendFields will be sent to the
5943	// server regardless of whether the field is empty or not. This may be
5944	// used to include empty fields in Patch requests.
5945	ForceSendFields []string `json:"-"`
5946
5947	// NullFields is a list of field names (e.g. "ColumnCount") to include
5948	// in API requests with the JSON null value. By default, fields with
5949	// empty values are omitted from API requests. However, any field with
5950	// an empty value appearing in NullFields will be sent to the server as
5951	// null. It is an error if a field in this list has a non-empty value.
5952	// This may be used to include null fields in Patch requests.
5953	NullFields []string `json:"-"`
5954}
5955
5956func (s *GridProperties) MarshalJSON() ([]byte, error) {
5957	type NoMethod GridProperties
5958	raw := NoMethod(*s)
5959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5960}
5961
5962// GridRange: A range on a sheet.
5963// All indexes are zero-based.
5964// Indexes are half open, e.g the start index is inclusive
5965// and the end index is exclusive -- [start_index, end_index).
5966// Missing indexes indicate the range is unbounded on that side.
5967//
5968// For example, if "Sheet1" is sheet ID 0, then:
5969//
5970//   `Sheet1!A1:A1 == sheet_id: 0,
5971//                   start_row_index: 0, end_row_index: 1,
5972//                   start_column_index: 0, end_column_index: 1`
5973//
5974//   `Sheet1!A3:B4 == sheet_id: 0,
5975//                   start_row_index: 2, end_row_index: 4,
5976//                   start_column_index: 0, end_column_index: 2`
5977//
5978//   `Sheet1!A:B == sheet_id: 0,
5979//                 start_column_index: 0, end_column_index: 2`
5980//
5981//   `Sheet1!A5:B == sheet_id: 0,
5982//                  start_row_index: 4,
5983//                  start_column_index: 0, end_column_index: 2`
5984//
5985//   `Sheet1 == sheet_id:0`
5986//
5987// The start index must always be less than or equal to the end
5988// index.
5989// If the start index equals the end index, then the range is
5990// empty.
5991// Empty ranges are typically not meaningful and are usually rendered in
5992// the
5993// UI as `#REF!`.
5994type GridRange struct {
5995	// EndColumnIndex: The end column (exclusive) of the range, or not set
5996	// if unbounded.
5997	EndColumnIndex int64 `json:"endColumnIndex,omitempty"`
5998
5999	// EndRowIndex: The end row (exclusive) of the range, or not set if
6000	// unbounded.
6001	EndRowIndex int64 `json:"endRowIndex,omitempty"`
6002
6003	// SheetId: The sheet this range is on.
6004	SheetId int64 `json:"sheetId,omitempty"`
6005
6006	// StartColumnIndex: The start column (inclusive) of the range, or not
6007	// set if unbounded.
6008	StartColumnIndex int64 `json:"startColumnIndex,omitempty"`
6009
6010	// StartRowIndex: The start row (inclusive) of the range, or not set if
6011	// unbounded.
6012	StartRowIndex int64 `json:"startRowIndex,omitempty"`
6013
6014	// ForceSendFields is a list of field names (e.g. "EndColumnIndex") to
6015	// unconditionally include in API requests. By default, fields with
6016	// empty values are omitted from API requests. However, any non-pointer,
6017	// non-interface field appearing in ForceSendFields will be sent to the
6018	// server regardless of whether the field is empty or not. This may be
6019	// used to include empty fields in Patch requests.
6020	ForceSendFields []string `json:"-"`
6021
6022	// NullFields is a list of field names (e.g. "EndColumnIndex") to
6023	// include in API requests with the JSON null value. By default, fields
6024	// with empty values are omitted from API requests. However, any field
6025	// with an empty value appearing in NullFields will be sent to the
6026	// server as null. It is an error if a field in this list has a
6027	// non-empty value. This may be used to include null fields in Patch
6028	// requests.
6029	NullFields []string `json:"-"`
6030}
6031
6032func (s *GridRange) MarshalJSON() ([]byte, error) {
6033	type NoMethod GridRange
6034	raw := NoMethod(*s)
6035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6036}
6037
6038// HistogramChartSpec: A <a
6039// href="/chart/interactive/docs/gallery/histogram">histogram
6040// chart</a>.
6041// A histogram chart groups data items into bins, displaying each bin as
6042// a
6043// column of stacked items.  Histograms are used to display the
6044// distribution
6045// of a dataset.  Each column of items represents a range into which
6046// those
6047// items fall.  The number of bins can be chosen automatically or
6048// specified
6049// explicitly.
6050type HistogramChartSpec struct {
6051	// BucketSize: By default the bucket size (the range of values stacked
6052	// in a single
6053	// column) is chosen automatically, but it may be overridden here.
6054	// E.g., A bucket size of 1.5 results in buckets from 0 - 1.5, 1.5 -
6055	// 3.0, etc.
6056	// Cannot be negative.
6057	// This field is optional.
6058	BucketSize float64 `json:"bucketSize,omitempty"`
6059
6060	// LegendPosition: The position of the chart legend.
6061	//
6062	// Possible values:
6063	//   "HISTOGRAM_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do
6064	// not use.
6065	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
6066	// chart.
6067	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
6068	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
6069	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
6070	//   "NO_LEGEND" - No legend is rendered.
6071	//   "INSIDE_LEGEND" - The legend is rendered inside the chart area.
6072	LegendPosition string `json:"legendPosition,omitempty"`
6073
6074	// OutlierPercentile: The outlier percentile is used to ensure that
6075	// outliers do not adversely
6076	// affect the calculation of bucket sizes.  For example, setting an
6077	// outlier
6078	// percentile of 0.05 indicates that the top and bottom 5% of values
6079	// when
6080	// calculating buckets.  The values are still included in the chart,
6081	// they will
6082	// be added to the first or last buckets instead of their own
6083	// buckets.
6084	// Must be between 0.0 and 0.5.
6085	OutlierPercentile float64 `json:"outlierPercentile,omitempty"`
6086
6087	// Series: The series for a histogram may be either a single series of
6088	// values to be
6089	// bucketed or multiple series, each of the same length, containing the
6090	// name
6091	// of the series followed by the values to be bucketed for that series.
6092	Series []*HistogramSeries `json:"series,omitempty"`
6093
6094	// ShowItemDividers: Whether horizontal divider lines should be
6095	// displayed between items in each
6096	// column.
6097	ShowItemDividers bool `json:"showItemDividers,omitempty"`
6098
6099	// ForceSendFields is a list of field names (e.g. "BucketSize") to
6100	// unconditionally include in API requests. By default, fields with
6101	// empty values are omitted from API requests. However, any non-pointer,
6102	// non-interface field appearing in ForceSendFields will be sent to the
6103	// server regardless of whether the field is empty or not. This may be
6104	// used to include empty fields in Patch requests.
6105	ForceSendFields []string `json:"-"`
6106
6107	// NullFields is a list of field names (e.g. "BucketSize") to include in
6108	// API requests with the JSON null value. By default, fields with empty
6109	// values are omitted from API requests. However, any field with an
6110	// empty value appearing in NullFields will be sent to the server as
6111	// null. It is an error if a field in this list has a non-empty value.
6112	// This may be used to include null fields in Patch requests.
6113	NullFields []string `json:"-"`
6114}
6115
6116func (s *HistogramChartSpec) MarshalJSON() ([]byte, error) {
6117	type NoMethod HistogramChartSpec
6118	raw := NoMethod(*s)
6119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6120}
6121
6122func (s *HistogramChartSpec) UnmarshalJSON(data []byte) error {
6123	type NoMethod HistogramChartSpec
6124	var s1 struct {
6125		BucketSize        gensupport.JSONFloat64 `json:"bucketSize"`
6126		OutlierPercentile gensupport.JSONFloat64 `json:"outlierPercentile"`
6127		*NoMethod
6128	}
6129	s1.NoMethod = (*NoMethod)(s)
6130	if err := json.Unmarshal(data, &s1); err != nil {
6131		return err
6132	}
6133	s.BucketSize = float64(s1.BucketSize)
6134	s.OutlierPercentile = float64(s1.OutlierPercentile)
6135	return nil
6136}
6137
6138// HistogramRule: Allows you to organize the numeric values in a source
6139// data column into
6140// buckets of a constant size. All values from HistogramRule.start
6141// to
6142// HistogramRule.end are placed into groups of
6143// size
6144// HistogramRule.interval. In addition, all values
6145// below
6146// HistogramRule.start are placed in one group, and all values
6147// above
6148// HistogramRule.end are placed in another. Only
6149// HistogramRule.interval is required, though if HistogramRule.start
6150// and HistogramRule.end are both provided, HistogramRule.start must
6151// be less than HistogramRule.end. For example, a pivot table
6152// showing
6153// average purchase amount by age that has 50+ rows:
6154//
6155//     +-----+-------------------+
6156//     | Age | AVERAGE of Amount |
6157//     +-----+-------------------+
6158//     | 16  |            $27.13 |
6159//     | 17  |             $5.24 |
6160//     | 18  |            $20.15 |
6161//     ...
6162//     +-----+-------------------+
6163// could be turned into a pivot table that looks like the one below
6164// by
6165// applying a histogram group rule with a HistogramRule.start of 25,
6166// an HistogramRule.interval of 20, and an HistogramRule.end
6167// of 65.
6168//
6169//     +-------------+-------------------+
6170//     | Grouped Age | AVERAGE of Amount |
6171//     +-------------+-------------------+
6172//     | < 25        |            $19.34 |
6173//     | 25-45       |            $31.43 |
6174//     | 45-65       |            $35.87 |
6175//     | > 65        |            $27.55 |
6176//     +-------------+-------------------+
6177//     | Grand Total |            $29.12 |
6178//     +-------------+-------------------+
6179type HistogramRule struct {
6180	// End: The maximum value at which items are placed into buckets
6181	// of constant size. Values above end are lumped into a single
6182	// bucket.
6183	// This field is optional.
6184	End float64 `json:"end,omitempty"`
6185
6186	// Interval: The size of the buckets that are created. Must be positive.
6187	Interval float64 `json:"interval,omitempty"`
6188
6189	// Start: The minimum value at which items are placed into buckets
6190	// of constant size. Values below start are lumped into a single
6191	// bucket.
6192	// This field is optional.
6193	Start float64 `json:"start,omitempty"`
6194
6195	// ForceSendFields is a list of field names (e.g. "End") to
6196	// unconditionally include in API requests. By default, fields with
6197	// empty values are omitted from API requests. However, any non-pointer,
6198	// non-interface field appearing in ForceSendFields will be sent to the
6199	// server regardless of whether the field is empty or not. This may be
6200	// used to include empty fields in Patch requests.
6201	ForceSendFields []string `json:"-"`
6202
6203	// NullFields is a list of field names (e.g. "End") to include in API
6204	// requests with the JSON null value. By default, fields with empty
6205	// values are omitted from API requests. However, any field with an
6206	// empty value appearing in NullFields will be sent to the server as
6207	// null. It is an error if a field in this list has a non-empty value.
6208	// This may be used to include null fields in Patch requests.
6209	NullFields []string `json:"-"`
6210}
6211
6212func (s *HistogramRule) MarshalJSON() ([]byte, error) {
6213	type NoMethod HistogramRule
6214	raw := NoMethod(*s)
6215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6216}
6217
6218func (s *HistogramRule) UnmarshalJSON(data []byte) error {
6219	type NoMethod HistogramRule
6220	var s1 struct {
6221		End      gensupport.JSONFloat64 `json:"end"`
6222		Interval gensupport.JSONFloat64 `json:"interval"`
6223		Start    gensupport.JSONFloat64 `json:"start"`
6224		*NoMethod
6225	}
6226	s1.NoMethod = (*NoMethod)(s)
6227	if err := json.Unmarshal(data, &s1); err != nil {
6228		return err
6229	}
6230	s.End = float64(s1.End)
6231	s.Interval = float64(s1.Interval)
6232	s.Start = float64(s1.Start)
6233	return nil
6234}
6235
6236// HistogramSeries: A histogram series containing the series color and
6237// data.
6238type HistogramSeries struct {
6239	// BarColor: The color of the column representing this series in each
6240	// bucket.
6241	// This field is optional.
6242	BarColor *Color `json:"barColor,omitempty"`
6243
6244	// BarColorStyle: The color of the column representing this series in
6245	// each bucket.
6246	// This field is optional.
6247	// If bar_color is also set, this field takes precedence.
6248	BarColorStyle *ColorStyle `json:"barColorStyle,omitempty"`
6249
6250	// Data: The data for this histogram series.
6251	Data *ChartData `json:"data,omitempty"`
6252
6253	// ForceSendFields is a list of field names (e.g. "BarColor") to
6254	// unconditionally include in API requests. By default, fields with
6255	// empty values are omitted from API requests. However, any non-pointer,
6256	// non-interface field appearing in ForceSendFields will be sent to the
6257	// server regardless of whether the field is empty or not. This may be
6258	// used to include empty fields in Patch requests.
6259	ForceSendFields []string `json:"-"`
6260
6261	// NullFields is a list of field names (e.g. "BarColor") to include in
6262	// API requests with the JSON null value. By default, fields with empty
6263	// values are omitted from API requests. However, any field with an
6264	// empty value appearing in NullFields will be sent to the server as
6265	// null. It is an error if a field in this list has a non-empty value.
6266	// This may be used to include null fields in Patch requests.
6267	NullFields []string `json:"-"`
6268}
6269
6270func (s *HistogramSeries) MarshalJSON() ([]byte, error) {
6271	type NoMethod HistogramSeries
6272	raw := NoMethod(*s)
6273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6274}
6275
6276// InsertDimensionRequest: Inserts rows or columns in a sheet at a
6277// particular index.
6278type InsertDimensionRequest struct {
6279	// InheritFromBefore: Whether dimension properties should be extended
6280	// from the dimensions
6281	// before or after the newly inserted dimensions.
6282	// True to inherit from the dimensions before (in which case the
6283	// start
6284	// index must be greater than 0), and false to inherit from the
6285	// dimensions
6286	// after.
6287	//
6288	// For example, if row index 0 has red background and row index 1
6289	// has a green background, then inserting 2 rows at index 1 can
6290	// inherit
6291	// either the green or red background.  If `inheritFromBefore` is
6292	// true,
6293	// the two new rows will be red (because the row before the insertion
6294	// point
6295	// was red), whereas if `inheritFromBefore` is false, the two new rows
6296	// will
6297	// be green (because the row after the insertion point was green).
6298	InheritFromBefore bool `json:"inheritFromBefore,omitempty"`
6299
6300	// Range: The dimensions to insert.  Both the start and end indexes must
6301	// be bounded.
6302	Range *DimensionRange `json:"range,omitempty"`
6303
6304	// ForceSendFields is a list of field names (e.g. "InheritFromBefore")
6305	// to unconditionally include in API requests. By default, fields with
6306	// empty values are omitted from API requests. However, any non-pointer,
6307	// non-interface field appearing in ForceSendFields will be sent to the
6308	// server regardless of whether the field is empty or not. This may be
6309	// used to include empty fields in Patch requests.
6310	ForceSendFields []string `json:"-"`
6311
6312	// NullFields is a list of field names (e.g. "InheritFromBefore") to
6313	// include in API requests with the JSON null value. By default, fields
6314	// with empty values are omitted from API requests. However, any field
6315	// with an empty value appearing in NullFields will be sent to the
6316	// server as null. It is an error if a field in this list has a
6317	// non-empty value. This may be used to include null fields in Patch
6318	// requests.
6319	NullFields []string `json:"-"`
6320}
6321
6322func (s *InsertDimensionRequest) MarshalJSON() ([]byte, error) {
6323	type NoMethod InsertDimensionRequest
6324	raw := NoMethod(*s)
6325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6326}
6327
6328// InsertRangeRequest: Inserts cells into a range, shifting the existing
6329// cells over or down.
6330type InsertRangeRequest struct {
6331	// Range: The range to insert new cells into.
6332	Range *GridRange `json:"range,omitempty"`
6333
6334	// ShiftDimension: The dimension which will be shifted when inserting
6335	// cells.
6336	// If ROWS, existing cells will be shifted down.
6337	// If COLUMNS, existing cells will be shifted right.
6338	//
6339	// Possible values:
6340	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
6341	//   "ROWS" - Operates on the rows of a sheet.
6342	//   "COLUMNS" - Operates on the columns of a sheet.
6343	ShiftDimension string `json:"shiftDimension,omitempty"`
6344
6345	// ForceSendFields is a list of field names (e.g. "Range") to
6346	// unconditionally include in API requests. By default, fields with
6347	// empty values are omitted from API requests. However, any non-pointer,
6348	// non-interface field appearing in ForceSendFields will be sent to the
6349	// server regardless of whether the field is empty or not. This may be
6350	// used to include empty fields in Patch requests.
6351	ForceSendFields []string `json:"-"`
6352
6353	// NullFields is a list of field names (e.g. "Range") to include in API
6354	// requests with the JSON null value. By default, fields with empty
6355	// values are omitted from API requests. However, any field with an
6356	// empty value appearing in NullFields will be sent to the server as
6357	// null. It is an error if a field in this list has a non-empty value.
6358	// This may be used to include null fields in Patch requests.
6359	NullFields []string `json:"-"`
6360}
6361
6362func (s *InsertRangeRequest) MarshalJSON() ([]byte, error) {
6363	type NoMethod InsertRangeRequest
6364	raw := NoMethod(*s)
6365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6366}
6367
6368// InterpolationPoint: A single interpolation point on a gradient
6369// conditional format.
6370// These pin the gradient color scale according to the color,
6371// type and value chosen.
6372type InterpolationPoint struct {
6373	// Color: The color this interpolation point should use.
6374	Color *Color `json:"color,omitempty"`
6375
6376	// ColorStyle: The color this interpolation point should use.
6377	// If color is also set, this field takes precedence.
6378	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
6379
6380	// Type: How the value should be interpreted.
6381	//
6382	// Possible values:
6383	//   "INTERPOLATION_POINT_TYPE_UNSPECIFIED" - The default value, do not
6384	// use.
6385	//   "MIN" - The interpolation point uses the minimum value in the
6386	// cells over the range of the conditional format.
6387	//   "MAX" - The interpolation point uses the maximum value in the
6388	// cells over the range of the conditional format.
6389	//   "NUMBER" - The interpolation point uses exactly the value
6390	// in
6391	// InterpolationPoint.value.
6392	//   "PERCENT" - The interpolation point is the given percentage
6393	// over
6394	// all the cells in the range of the conditional format.
6395	// This is equivalent to NUMBER if the value was:
6396	// `=(MAX(FLATTEN(range)) * (value / 100))
6397	//   + (MIN(FLATTEN(range)) * (1 - (value / 100)))`
6398	// (where errors in the range are ignored when flattening).
6399	//   "PERCENTILE" - The interpolation point is the given percentile
6400	// over all the cells in the range of the conditional format.
6401	// This is equivalent to NUMBER if the value
6402	// was:
6403	// `=PERCENTILE(FLATTEN(range), value / 100)`
6404	// (where errors in the range are ignored when flattening).
6405	Type string `json:"type,omitempty"`
6406
6407	// Value: The value this interpolation point uses.  May be a
6408	// formula.
6409	// Unused if type is MIN or
6410	// MAX.
6411	Value string `json:"value,omitempty"`
6412
6413	// ForceSendFields is a list of field names (e.g. "Color") to
6414	// unconditionally include in API requests. By default, fields with
6415	// empty values are omitted from API requests. However, any non-pointer,
6416	// non-interface field appearing in ForceSendFields will be sent to the
6417	// server regardless of whether the field is empty or not. This may be
6418	// used to include empty fields in Patch requests.
6419	ForceSendFields []string `json:"-"`
6420
6421	// NullFields is a list of field names (e.g. "Color") to include in API
6422	// requests with the JSON null value. By default, fields with empty
6423	// values are omitted from API requests. However, any field with an
6424	// empty value appearing in NullFields will be sent to the server as
6425	// null. It is an error if a field in this list has a non-empty value.
6426	// This may be used to include null fields in Patch requests.
6427	NullFields []string `json:"-"`
6428}
6429
6430func (s *InterpolationPoint) MarshalJSON() ([]byte, error) {
6431	type NoMethod InterpolationPoint
6432	raw := NoMethod(*s)
6433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6434}
6435
6436// IterativeCalculationSettings: Settings to control how circular
6437// dependencies are resolved with iterative
6438// calculation.
6439type IterativeCalculationSettings struct {
6440	// ConvergenceThreshold: When iterative calculation is enabled and
6441	// successive results differ by
6442	// less than this threshold value, the calculation rounds stop.
6443	ConvergenceThreshold float64 `json:"convergenceThreshold,omitempty"`
6444
6445	// MaxIterations: When iterative calculation is enabled, the maximum
6446	// number of calculation
6447	// rounds to perform.
6448	MaxIterations int64 `json:"maxIterations,omitempty"`
6449
6450	// ForceSendFields is a list of field names (e.g.
6451	// "ConvergenceThreshold") to unconditionally include in API requests.
6452	// By default, fields with empty values are omitted from API requests.
6453	// However, any non-pointer, non-interface field appearing in
6454	// ForceSendFields will be sent to the server regardless of whether the
6455	// field is empty or not. This may be used to include empty fields in
6456	// Patch requests.
6457	ForceSendFields []string `json:"-"`
6458
6459	// NullFields is a list of field names (e.g. "ConvergenceThreshold") to
6460	// include in API requests with the JSON null value. By default, fields
6461	// with empty values are omitted from API requests. However, any field
6462	// with an empty value appearing in NullFields will be sent to the
6463	// server as null. It is an error if a field in this list has a
6464	// non-empty value. This may be used to include null fields in Patch
6465	// requests.
6466	NullFields []string `json:"-"`
6467}
6468
6469func (s *IterativeCalculationSettings) MarshalJSON() ([]byte, error) {
6470	type NoMethod IterativeCalculationSettings
6471	raw := NoMethod(*s)
6472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6473}
6474
6475func (s *IterativeCalculationSettings) UnmarshalJSON(data []byte) error {
6476	type NoMethod IterativeCalculationSettings
6477	var s1 struct {
6478		ConvergenceThreshold gensupport.JSONFloat64 `json:"convergenceThreshold"`
6479		*NoMethod
6480	}
6481	s1.NoMethod = (*NoMethod)(s)
6482	if err := json.Unmarshal(data, &s1); err != nil {
6483		return err
6484	}
6485	s.ConvergenceThreshold = float64(s1.ConvergenceThreshold)
6486	return nil
6487}
6488
6489// KeyValueFormat: Formatting options for key value.
6490type KeyValueFormat struct {
6491	// Position: Specifies the horizontal text positioning of key
6492	// value.
6493	// This field is optional. If not specified, default positioning is
6494	// used.
6495	Position *TextPosition `json:"position,omitempty"`
6496
6497	// TextFormat: Text formatting options for key value.
6498	TextFormat *TextFormat `json:"textFormat,omitempty"`
6499
6500	// ForceSendFields is a list of field names (e.g. "Position") to
6501	// unconditionally include in API requests. By default, fields with
6502	// empty values are omitted from API requests. However, any non-pointer,
6503	// non-interface field appearing in ForceSendFields will be sent to the
6504	// server regardless of whether the field is empty or not. This may be
6505	// used to include empty fields in Patch requests.
6506	ForceSendFields []string `json:"-"`
6507
6508	// NullFields is a list of field names (e.g. "Position") to include in
6509	// API requests with the JSON null value. By default, fields with empty
6510	// values are omitted from API requests. However, any field with an
6511	// empty value appearing in NullFields will be sent to the server as
6512	// null. It is an error if a field in this list has a non-empty value.
6513	// This may be used to include null fields in Patch requests.
6514	NullFields []string `json:"-"`
6515}
6516
6517func (s *KeyValueFormat) MarshalJSON() ([]byte, error) {
6518	type NoMethod KeyValueFormat
6519	raw := NoMethod(*s)
6520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6521}
6522
6523// LineStyle: Properties that describe the style of a line.
6524type LineStyle struct {
6525	// Type: The dash type of the line.
6526	//
6527	// Possible values:
6528	//   "LINE_DASH_TYPE_UNSPECIFIED" - Default value, do not use.
6529	//   "INVISIBLE" - No dash type, which is equivalent to a non-visible
6530	// line.
6531	//   "CUSTOM" - A custom dash for a line. Modifying the exact custom
6532	// dash style is
6533	// currently unsupported.
6534	//   "SOLID" - A solid line.
6535	//   "DOTTED" - A dotted line.
6536	//   "MEDIUM_DASHED" - A dashed line where the dashes have "medium"
6537	// length.
6538	//   "MEDIUM_DASHED_DOTTED" - A line that alternates between a "medium"
6539	// dash and a dot.
6540	//   "LONG_DASHED" - A dashed line where the dashes have "long" length.
6541	//   "LONG_DASHED_DOTTED" - A line that alternates between a "long" dash
6542	// and a dot.
6543	Type string `json:"type,omitempty"`
6544
6545	// Width: The thickness of the line, in px.
6546	Width int64 `json:"width,omitempty"`
6547
6548	// ForceSendFields is a list of field names (e.g. "Type") to
6549	// unconditionally include in API requests. By default, fields with
6550	// empty values are omitted from API requests. However, any non-pointer,
6551	// non-interface field appearing in ForceSendFields will be sent to the
6552	// server regardless of whether the field is empty or not. This may be
6553	// used to include empty fields in Patch requests.
6554	ForceSendFields []string `json:"-"`
6555
6556	// NullFields is a list of field names (e.g. "Type") to include in API
6557	// requests with the JSON null value. By default, fields with empty
6558	// values are omitted from API requests. However, any field with an
6559	// empty value appearing in NullFields will be sent to the server as
6560	// null. It is an error if a field in this list has a non-empty value.
6561	// This may be used to include null fields in Patch requests.
6562	NullFields []string `json:"-"`
6563}
6564
6565func (s *LineStyle) MarshalJSON() ([]byte, error) {
6566	type NoMethod LineStyle
6567	raw := NoMethod(*s)
6568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6569}
6570
6571// ManualRule: Allows you to manually organize the values in a source
6572// data column into
6573// buckets with names of your choosing. For example, a pivot table
6574// that
6575// aggregates population by state:
6576//
6577//     +-------+-------------------+
6578//     | State | SUM of Population |
6579//     +-------+-------------------+
6580//     | AK    |               0.7 |
6581//     | AL    |               4.8 |
6582//     | AR    |               2.9 |
6583//     ...
6584//     +-------+-------------------+
6585// could be turned into a pivot table that aggregates population by time
6586// zone
6587// by providing a list of groups (for example, groupName =
6588// 'Central',
6589// items = ['AL', 'AR', 'IA', ...]) to a manual group rule.
6590// Note that a similar effect could be achieved by adding a time zone
6591// column
6592// to the source data and adjusting the pivot table.
6593//
6594//     +-----------+-------------------+
6595//     | Time Zone | SUM of Population |
6596//     +-----------+-------------------+
6597//     | Central   |             106.3 |
6598//     | Eastern   |             151.9 |
6599//     | Mountain  |              17.4 |
6600//     ...
6601//     +-----------+-------------------+
6602type ManualRule struct {
6603	// Groups: The list of group names and the corresponding items from the
6604	// source data
6605	// that map to each group name.
6606	Groups []*ManualRuleGroup `json:"groups,omitempty"`
6607
6608	// ForceSendFields is a list of field names (e.g. "Groups") to
6609	// unconditionally include in API requests. By default, fields with
6610	// empty values are omitted from API requests. However, any non-pointer,
6611	// non-interface field appearing in ForceSendFields will be sent to the
6612	// server regardless of whether the field is empty or not. This may be
6613	// used to include empty fields in Patch requests.
6614	ForceSendFields []string `json:"-"`
6615
6616	// NullFields is a list of field names (e.g. "Groups") to include in API
6617	// requests with the JSON null value. By default, fields with empty
6618	// values are omitted from API requests. However, any field with an
6619	// empty value appearing in NullFields will be sent to the server as
6620	// null. It is an error if a field in this list has a non-empty value.
6621	// This may be used to include null fields in Patch requests.
6622	NullFields []string `json:"-"`
6623}
6624
6625func (s *ManualRule) MarshalJSON() ([]byte, error) {
6626	type NoMethod ManualRule
6627	raw := NoMethod(*s)
6628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6629}
6630
6631// ManualRuleGroup: A group name and a list of items from the source
6632// data that should be placed
6633// in the group with this name.
6634type ManualRuleGroup struct {
6635	// GroupName: The group name, which must be a string. Each group in a
6636	// given
6637	// ManualRule must have a unique group name.
6638	GroupName *ExtendedValue `json:"groupName,omitempty"`
6639
6640	// Items: The items in the source data that should be placed into this
6641	// group. Each
6642	// item may be a string, number, or boolean. Items may appear in at most
6643	// one
6644	// group within a given ManualRule. Items that do not appear in
6645	// any
6646	// group will appear on their own.
6647	Items []*ExtendedValue `json:"items,omitempty"`
6648
6649	// ForceSendFields is a list of field names (e.g. "GroupName") to
6650	// unconditionally include in API requests. By default, fields with
6651	// empty values are omitted from API requests. However, any non-pointer,
6652	// non-interface field appearing in ForceSendFields will be sent to the
6653	// server regardless of whether the field is empty or not. This may be
6654	// used to include empty fields in Patch requests.
6655	ForceSendFields []string `json:"-"`
6656
6657	// NullFields is a list of field names (e.g. "GroupName") to include in
6658	// API requests with the JSON null value. By default, fields with empty
6659	// values are omitted from API requests. However, any field with an
6660	// empty value appearing in NullFields will be sent to the server as
6661	// null. It is an error if a field in this list has a non-empty value.
6662	// This may be used to include null fields in Patch requests.
6663	NullFields []string `json:"-"`
6664}
6665
6666func (s *ManualRuleGroup) MarshalJSON() ([]byte, error) {
6667	type NoMethod ManualRuleGroup
6668	raw := NoMethod(*s)
6669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6670}
6671
6672// MatchedDeveloperMetadata: A developer metadata entry and the data
6673// filters specified in the original
6674// request that matched it.
6675type MatchedDeveloperMetadata struct {
6676	// DataFilters: All filters matching the returned developer metadata.
6677	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
6678
6679	// DeveloperMetadata: The developer metadata matching the specified
6680	// filters.
6681	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
6682
6683	// ForceSendFields is a list of field names (e.g. "DataFilters") to
6684	// unconditionally include in API requests. By default, fields with
6685	// empty values are omitted from API requests. However, any non-pointer,
6686	// non-interface field appearing in ForceSendFields will be sent to the
6687	// server regardless of whether the field is empty or not. This may be
6688	// used to include empty fields in Patch requests.
6689	ForceSendFields []string `json:"-"`
6690
6691	// NullFields is a list of field names (e.g. "DataFilters") to include
6692	// in API requests with the JSON null value. By default, fields with
6693	// empty values are omitted from API requests. However, any field with
6694	// an empty value appearing in NullFields will be sent to the server as
6695	// null. It is an error if a field in this list has a non-empty value.
6696	// This may be used to include null fields in Patch requests.
6697	NullFields []string `json:"-"`
6698}
6699
6700func (s *MatchedDeveloperMetadata) MarshalJSON() ([]byte, error) {
6701	type NoMethod MatchedDeveloperMetadata
6702	raw := NoMethod(*s)
6703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6704}
6705
6706// MatchedValueRange: A value range that was matched by one or more data
6707// filers.
6708type MatchedValueRange struct {
6709	// DataFilters: The DataFilters from the request that matched the range
6710	// of
6711	// values.
6712	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
6713
6714	// ValueRange: The values matched by the DataFilter.
6715	ValueRange *ValueRange `json:"valueRange,omitempty"`
6716
6717	// ForceSendFields is a list of field names (e.g. "DataFilters") to
6718	// unconditionally include in API requests. By default, fields with
6719	// empty values are omitted from API requests. However, any non-pointer,
6720	// non-interface field appearing in ForceSendFields will be sent to the
6721	// server regardless of whether the field is empty or not. This may be
6722	// used to include empty fields in Patch requests.
6723	ForceSendFields []string `json:"-"`
6724
6725	// NullFields is a list of field names (e.g. "DataFilters") to include
6726	// in API requests with the JSON null value. By default, fields with
6727	// empty values are omitted from API requests. However, any field with
6728	// an empty value appearing in NullFields will be sent to the server as
6729	// null. It is an error if a field in this list has a non-empty value.
6730	// This may be used to include null fields in Patch requests.
6731	NullFields []string `json:"-"`
6732}
6733
6734func (s *MatchedValueRange) MarshalJSON() ([]byte, error) {
6735	type NoMethod MatchedValueRange
6736	raw := NoMethod(*s)
6737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6738}
6739
6740// MergeCellsRequest: Merges all cells in the range.
6741type MergeCellsRequest struct {
6742	// MergeType: How the cells should be merged.
6743	//
6744	// Possible values:
6745	//   "MERGE_ALL" - Create a single merge from the range
6746	//   "MERGE_COLUMNS" - Create a merge for each column in the range
6747	//   "MERGE_ROWS" - Create a merge for each row in the range
6748	MergeType string `json:"mergeType,omitempty"`
6749
6750	// Range: The range of cells to merge.
6751	Range *GridRange `json:"range,omitempty"`
6752
6753	// ForceSendFields is a list of field names (e.g. "MergeType") to
6754	// unconditionally include in API requests. By default, fields with
6755	// empty values are omitted from API requests. However, any non-pointer,
6756	// non-interface field appearing in ForceSendFields will be sent to the
6757	// server regardless of whether the field is empty or not. This may be
6758	// used to include empty fields in Patch requests.
6759	ForceSendFields []string `json:"-"`
6760
6761	// NullFields is a list of field names (e.g. "MergeType") to include in
6762	// API requests with the JSON null value. By default, fields with empty
6763	// values are omitted from API requests. However, any field with an
6764	// empty value appearing in NullFields will be sent to the server as
6765	// null. It is an error if a field in this list has a non-empty value.
6766	// This may be used to include null fields in Patch requests.
6767	NullFields []string `json:"-"`
6768}
6769
6770func (s *MergeCellsRequest) MarshalJSON() ([]byte, error) {
6771	type NoMethod MergeCellsRequest
6772	raw := NoMethod(*s)
6773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6774}
6775
6776// MoveDimensionRequest: Moves one or more rows or columns.
6777type MoveDimensionRequest struct {
6778	// DestinationIndex: The zero-based start index of where to move the
6779	// source data to,
6780	// based on the coordinates *before* the source data is removed
6781	// from the grid.  Existing data will be shifted down or
6782	// right
6783	// (depending on the dimension) to make room for the moved
6784	// dimensions.
6785	// The source dimensions are removed from the grid, so the
6786	// the data may end up in a different index than specified.
6787	//
6788	// For example, given `A1..A5` of `0, 1, 2, 3, 4` and wanting to
6789	// move
6790	// "1" and "2" to between "3" and "4", the source would be
6791	// `ROWS [1..3)`,and the destination index would be "4"
6792	// (the zero-based index of row 5).
6793	// The end result would be `A1..A5` of `0, 3, 1, 2, 4`.
6794	DestinationIndex int64 `json:"destinationIndex,omitempty"`
6795
6796	// Source: The source dimensions to move.
6797	Source *DimensionRange `json:"source,omitempty"`
6798
6799	// ForceSendFields is a list of field names (e.g. "DestinationIndex") to
6800	// unconditionally include in API requests. By default, fields with
6801	// empty values are omitted from API requests. However, any non-pointer,
6802	// non-interface field appearing in ForceSendFields will be sent to the
6803	// server regardless of whether the field is empty or not. This may be
6804	// used to include empty fields in Patch requests.
6805	ForceSendFields []string `json:"-"`
6806
6807	// NullFields is a list of field names (e.g. "DestinationIndex") to
6808	// include in API requests with the JSON null value. By default, fields
6809	// with empty values are omitted from API requests. However, any field
6810	// with an empty value appearing in NullFields will be sent to the
6811	// server as null. It is an error if a field in this list has a
6812	// non-empty value. This may be used to include null fields in Patch
6813	// requests.
6814	NullFields []string `json:"-"`
6815}
6816
6817func (s *MoveDimensionRequest) MarshalJSON() ([]byte, error) {
6818	type NoMethod MoveDimensionRequest
6819	raw := NoMethod(*s)
6820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6821}
6822
6823// NamedRange: A named range.
6824type NamedRange struct {
6825	// Name: The name of the named range.
6826	Name string `json:"name,omitempty"`
6827
6828	// NamedRangeId: The ID of the named range.
6829	NamedRangeId string `json:"namedRangeId,omitempty"`
6830
6831	// Range: The range this represents.
6832	Range *GridRange `json:"range,omitempty"`
6833
6834	// ForceSendFields is a list of field names (e.g. "Name") to
6835	// unconditionally include in API requests. By default, fields with
6836	// empty values are omitted from API requests. However, any non-pointer,
6837	// non-interface field appearing in ForceSendFields will be sent to the
6838	// server regardless of whether the field is empty or not. This may be
6839	// used to include empty fields in Patch requests.
6840	ForceSendFields []string `json:"-"`
6841
6842	// NullFields is a list of field names (e.g. "Name") to include in API
6843	// requests with the JSON null value. By default, fields with empty
6844	// values are omitted from API requests. However, any field with an
6845	// empty value appearing in NullFields will be sent to the server as
6846	// null. It is an error if a field in this list has a non-empty value.
6847	// This may be used to include null fields in Patch requests.
6848	NullFields []string `json:"-"`
6849}
6850
6851func (s *NamedRange) MarshalJSON() ([]byte, error) {
6852	type NoMethod NamedRange
6853	raw := NoMethod(*s)
6854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6855}
6856
6857// NumberFormat: The number format of a cell.
6858type NumberFormat struct {
6859	// Pattern: Pattern string used for formatting.  If not set, a default
6860	// pattern based on
6861	// the user's locale will be used if necessary for the given type.
6862	// See the [Date and Number Formats guide](/sheets/api/guides/formats)
6863	// for
6864	// more information about the supported patterns.
6865	Pattern string `json:"pattern,omitempty"`
6866
6867	// Type: The type of the number format.
6868	// When writing, this field must be set.
6869	//
6870	// Possible values:
6871	//   "NUMBER_FORMAT_TYPE_UNSPECIFIED" - The number format is not
6872	// specified
6873	// and is based on the contents of the cell.
6874	// Do not explicitly use this.
6875	//   "TEXT" - Text formatting, e.g `1000.12`
6876	//   "NUMBER" - Number formatting, e.g, `1,000.12`
6877	//   "PERCENT" - Percent formatting, e.g `10.12%`
6878	//   "CURRENCY" - Currency formatting, e.g `$1,000.12`
6879	//   "DATE" - Date formatting, e.g `9/26/2008`
6880	//   "TIME" - Time formatting, e.g `3:59:00 PM`
6881	//   "DATE_TIME" - Date+Time formatting, e.g `9/26/08 15:59:00`
6882	//   "SCIENTIFIC" - Scientific number formatting, e.g `1.01E+03`
6883	Type string `json:"type,omitempty"`
6884
6885	// ForceSendFields is a list of field names (e.g. "Pattern") to
6886	// unconditionally include in API requests. By default, fields with
6887	// empty values are omitted from API requests. However, any non-pointer,
6888	// non-interface field appearing in ForceSendFields will be sent to the
6889	// server regardless of whether the field is empty or not. This may be
6890	// used to include empty fields in Patch requests.
6891	ForceSendFields []string `json:"-"`
6892
6893	// NullFields is a list of field names (e.g. "Pattern") to include in
6894	// API requests with the JSON null value. By default, fields with empty
6895	// values are omitted from API requests. However, any field with an
6896	// empty value appearing in NullFields will be sent to the server as
6897	// null. It is an error if a field in this list has a non-empty value.
6898	// This may be used to include null fields in Patch requests.
6899	NullFields []string `json:"-"`
6900}
6901
6902func (s *NumberFormat) MarshalJSON() ([]byte, error) {
6903	type NoMethod NumberFormat
6904	raw := NoMethod(*s)
6905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6906}
6907
6908// OrgChartSpec: An <a
6909// href="/chart/interactive/docs/gallery/orgchart">org chart</a>.
6910// Org charts require a unique set of labels in labels and
6911// may
6912// optionally include parent_labels and tooltips.
6913// parent_labels contain, for each node, the label identifying the
6914// parent
6915// node.  tooltips contain, for each node, an optional tooltip.
6916//
6917// For example, to describe an OrgChart with Alice as the CEO, Bob as
6918// the
6919// President (reporting to Alice) and Cathy as VP of Sales (also
6920// reporting to
6921// Alice), have labels contain "Alice", "Bob", "Cathy",
6922// parent_labels contain "", "Alice", "Alice" and tooltips
6923// contain
6924// "CEO", "President", "VP Sales".
6925type OrgChartSpec struct {
6926	// Labels: The data containing the labels for all the nodes in the
6927	// chart.  Labels
6928	// must be unique.
6929	Labels *ChartData `json:"labels,omitempty"`
6930
6931	// NodeColor: The color of the org chart nodes.
6932	NodeColor *Color `json:"nodeColor,omitempty"`
6933
6934	// NodeColorStyle: The color of the org chart nodes.
6935	// If node_color is also set, this field takes precedence.
6936	NodeColorStyle *ColorStyle `json:"nodeColorStyle,omitempty"`
6937
6938	// NodeSize: The size of the org chart nodes.
6939	//
6940	// Possible values:
6941	//   "ORG_CHART_LABEL_SIZE_UNSPECIFIED" - Default value, do not use.
6942	//   "SMALL" - The small org chart node size.
6943	//   "MEDIUM" - The medium org chart node size.
6944	//   "LARGE" - The large org chart node size.
6945	NodeSize string `json:"nodeSize,omitempty"`
6946
6947	// ParentLabels: The data containing the label of the parent for the
6948	// corresponding node.
6949	// A blank value indicates that the node has no parent and is a
6950	// top-level
6951	// node.
6952	// This field is optional.
6953	ParentLabels *ChartData `json:"parentLabels,omitempty"`
6954
6955	// SelectedNodeColor: The color of the selected org chart nodes.
6956	SelectedNodeColor *Color `json:"selectedNodeColor,omitempty"`
6957
6958	// SelectedNodeColorStyle: The color of the selected org chart nodes.
6959	// If selected_node_color is also set, this field takes precedence.
6960	SelectedNodeColorStyle *ColorStyle `json:"selectedNodeColorStyle,omitempty"`
6961
6962	// Tooltips: The data containing the tooltip for the corresponding node.
6963	//  A blank value
6964	// results in no tooltip being displayed for the node.
6965	// This field is optional.
6966	Tooltips *ChartData `json:"tooltips,omitempty"`
6967
6968	// ForceSendFields is a list of field names (e.g. "Labels") to
6969	// unconditionally include in API requests. By default, fields with
6970	// empty values are omitted from API requests. However, any non-pointer,
6971	// non-interface field appearing in ForceSendFields will be sent to the
6972	// server regardless of whether the field is empty or not. This may be
6973	// used to include empty fields in Patch requests.
6974	ForceSendFields []string `json:"-"`
6975
6976	// NullFields is a list of field names (e.g. "Labels") to include in API
6977	// requests with the JSON null value. By default, fields with empty
6978	// values are omitted from API requests. However, any field with an
6979	// empty value appearing in NullFields will be sent to the server as
6980	// null. It is an error if a field in this list has a non-empty value.
6981	// This may be used to include null fields in Patch requests.
6982	NullFields []string `json:"-"`
6983}
6984
6985func (s *OrgChartSpec) MarshalJSON() ([]byte, error) {
6986	type NoMethod OrgChartSpec
6987	raw := NoMethod(*s)
6988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6989}
6990
6991// OverlayPosition: The location an object is overlaid on top of a grid.
6992type OverlayPosition struct {
6993	// AnchorCell: The cell the object is anchored to.
6994	AnchorCell *GridCoordinate `json:"anchorCell,omitempty"`
6995
6996	// HeightPixels: The height of the object, in pixels. Defaults to 371.
6997	HeightPixels int64 `json:"heightPixels,omitempty"`
6998
6999	// OffsetXPixels: The horizontal offset, in pixels, that the object is
7000	// offset
7001	// from the anchor cell.
7002	OffsetXPixels int64 `json:"offsetXPixels,omitempty"`
7003
7004	// OffsetYPixels: The vertical offset, in pixels, that the object is
7005	// offset
7006	// from the anchor cell.
7007	OffsetYPixels int64 `json:"offsetYPixels,omitempty"`
7008
7009	// WidthPixels: The width of the object, in pixels. Defaults to 600.
7010	WidthPixels int64 `json:"widthPixels,omitempty"`
7011
7012	// ForceSendFields is a list of field names (e.g. "AnchorCell") to
7013	// unconditionally include in API requests. By default, fields with
7014	// empty values are omitted from API requests. However, any non-pointer,
7015	// non-interface field appearing in ForceSendFields will be sent to the
7016	// server regardless of whether the field is empty or not. This may be
7017	// used to include empty fields in Patch requests.
7018	ForceSendFields []string `json:"-"`
7019
7020	// NullFields is a list of field names (e.g. "AnchorCell") to include in
7021	// API requests with the JSON null value. By default, fields with empty
7022	// values are omitted from API requests. However, any field with an
7023	// empty value appearing in NullFields will be sent to the server as
7024	// null. It is an error if a field in this list has a non-empty value.
7025	// This may be used to include null fields in Patch requests.
7026	NullFields []string `json:"-"`
7027}
7028
7029func (s *OverlayPosition) MarshalJSON() ([]byte, error) {
7030	type NoMethod OverlayPosition
7031	raw := NoMethod(*s)
7032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7033}
7034
7035// Padding: The amount of padding around the cell, in pixels.
7036// When updating padding, every field must be specified.
7037type Padding struct {
7038	// Bottom: The bottom padding of the cell.
7039	Bottom int64 `json:"bottom,omitempty"`
7040
7041	// Left: The left padding of the cell.
7042	Left int64 `json:"left,omitempty"`
7043
7044	// Right: The right padding of the cell.
7045	Right int64 `json:"right,omitempty"`
7046
7047	// Top: The top padding of the cell.
7048	Top int64 `json:"top,omitempty"`
7049
7050	// ForceSendFields is a list of field names (e.g. "Bottom") to
7051	// unconditionally include in API requests. By default, fields with
7052	// empty values are omitted from API requests. However, any non-pointer,
7053	// non-interface field appearing in ForceSendFields will be sent to the
7054	// server regardless of whether the field is empty or not. This may be
7055	// used to include empty fields in Patch requests.
7056	ForceSendFields []string `json:"-"`
7057
7058	// NullFields is a list of field names (e.g. "Bottom") to include in API
7059	// requests with the JSON null value. By default, fields with empty
7060	// values are omitted from API requests. However, any field with an
7061	// empty value appearing in NullFields will be sent to the server as
7062	// null. It is an error if a field in this list has a non-empty value.
7063	// This may be used to include null fields in Patch requests.
7064	NullFields []string `json:"-"`
7065}
7066
7067func (s *Padding) MarshalJSON() ([]byte, error) {
7068	type NoMethod Padding
7069	raw := NoMethod(*s)
7070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7071}
7072
7073// PasteDataRequest: Inserts data into the spreadsheet starting at the
7074// specified coordinate.
7075type PasteDataRequest struct {
7076	// Coordinate: The coordinate at which the data should start being
7077	// inserted.
7078	Coordinate *GridCoordinate `json:"coordinate,omitempty"`
7079
7080	// Data: The data to insert.
7081	Data string `json:"data,omitempty"`
7082
7083	// Delimiter: The delimiter in the data.
7084	Delimiter string `json:"delimiter,omitempty"`
7085
7086	// Html: True if the data is HTML.
7087	Html bool `json:"html,omitempty"`
7088
7089	// Type: How the data should be pasted.
7090	//
7091	// Possible values:
7092	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
7093	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
7094	// or merges.
7095	//   "PASTE_FORMAT" - Paste the format and data validation only.
7096	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
7097	//   "PASTE_FORMULA" - Paste the formulas only.
7098	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
7099	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
7100	// rules only.
7101	Type string `json:"type,omitempty"`
7102
7103	// ForceSendFields is a list of field names (e.g. "Coordinate") to
7104	// unconditionally include in API requests. By default, fields with
7105	// empty values are omitted from API requests. However, any non-pointer,
7106	// non-interface field appearing in ForceSendFields will be sent to the
7107	// server regardless of whether the field is empty or not. This may be
7108	// used to include empty fields in Patch requests.
7109	ForceSendFields []string `json:"-"`
7110
7111	// NullFields is a list of field names (e.g. "Coordinate") to include in
7112	// API requests with the JSON null value. By default, fields with empty
7113	// values are omitted from API requests. However, any field with an
7114	// empty value appearing in NullFields will be sent to the server as
7115	// null. It is an error if a field in this list has a non-empty value.
7116	// This may be used to include null fields in Patch requests.
7117	NullFields []string `json:"-"`
7118}
7119
7120func (s *PasteDataRequest) MarshalJSON() ([]byte, error) {
7121	type NoMethod PasteDataRequest
7122	raw := NoMethod(*s)
7123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7124}
7125
7126// PieChartSpec: A <a
7127// href="/chart/interactive/docs/gallery/piechart">pie chart</a>.
7128type PieChartSpec struct {
7129	// Domain: The data that covers the domain of the pie chart.
7130	Domain *ChartData `json:"domain,omitempty"`
7131
7132	// LegendPosition: Where the legend of the pie chart should be drawn.
7133	//
7134	// Possible values:
7135	//   "PIE_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
7136	// use.
7137	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
7138	// chart.
7139	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
7140	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
7141	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
7142	//   "NO_LEGEND" - No legend is rendered.
7143	//   "LABELED_LEGEND" - Each pie slice has a label attached to it.
7144	LegendPosition string `json:"legendPosition,omitempty"`
7145
7146	// PieHole: The size of the hole in the pie chart.
7147	PieHole float64 `json:"pieHole,omitempty"`
7148
7149	// Series: The data that covers the one and only series of the pie
7150	// chart.
7151	Series *ChartData `json:"series,omitempty"`
7152
7153	// ThreeDimensional: True if the pie is three dimensional.
7154	ThreeDimensional bool `json:"threeDimensional,omitempty"`
7155
7156	// ForceSendFields is a list of field names (e.g. "Domain") to
7157	// unconditionally include in API requests. By default, fields with
7158	// empty values are omitted from API requests. However, any non-pointer,
7159	// non-interface field appearing in ForceSendFields will be sent to the
7160	// server regardless of whether the field is empty or not. This may be
7161	// used to include empty fields in Patch requests.
7162	ForceSendFields []string `json:"-"`
7163
7164	// NullFields is a list of field names (e.g. "Domain") to include in API
7165	// requests with the JSON null value. By default, fields with empty
7166	// values are omitted from API requests. However, any field with an
7167	// empty value appearing in NullFields will be sent to the server as
7168	// null. It is an error if a field in this list has a non-empty value.
7169	// This may be used to include null fields in Patch requests.
7170	NullFields []string `json:"-"`
7171}
7172
7173func (s *PieChartSpec) MarshalJSON() ([]byte, error) {
7174	type NoMethod PieChartSpec
7175	raw := NoMethod(*s)
7176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7177}
7178
7179func (s *PieChartSpec) UnmarshalJSON(data []byte) error {
7180	type NoMethod PieChartSpec
7181	var s1 struct {
7182		PieHole gensupport.JSONFloat64 `json:"pieHole"`
7183		*NoMethod
7184	}
7185	s1.NoMethod = (*NoMethod)(s)
7186	if err := json.Unmarshal(data, &s1); err != nil {
7187		return err
7188	}
7189	s.PieHole = float64(s1.PieHole)
7190	return nil
7191}
7192
7193// PivotFilterCriteria: Criteria for showing/hiding rows in a pivot
7194// table.
7195type PivotFilterCriteria struct {
7196	// VisibleValues: Values that should be included.  Values not listed
7197	// here are excluded.
7198	VisibleValues []string `json:"visibleValues,omitempty"`
7199
7200	// ForceSendFields is a list of field names (e.g. "VisibleValues") to
7201	// unconditionally include in API requests. By default, fields with
7202	// empty values are omitted from API requests. However, any non-pointer,
7203	// non-interface field appearing in ForceSendFields will be sent to the
7204	// server regardless of whether the field is empty or not. This may be
7205	// used to include empty fields in Patch requests.
7206	ForceSendFields []string `json:"-"`
7207
7208	// NullFields is a list of field names (e.g. "VisibleValues") to include
7209	// in API requests with the JSON null value. By default, fields with
7210	// empty values are omitted from API requests. However, any field with
7211	// an empty value appearing in NullFields will be sent to the server as
7212	// null. It is an error if a field in this list has a non-empty value.
7213	// This may be used to include null fields in Patch requests.
7214	NullFields []string `json:"-"`
7215}
7216
7217func (s *PivotFilterCriteria) MarshalJSON() ([]byte, error) {
7218	type NoMethod PivotFilterCriteria
7219	raw := NoMethod(*s)
7220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7221}
7222
7223// PivotGroup: A single grouping (either row or column) in a pivot
7224// table.
7225type PivotGroup struct {
7226	// GroupRule: The group rule to apply to this row/column group.
7227	GroupRule *PivotGroupRule `json:"groupRule,omitempty"`
7228
7229	// Label: The labels to use for the row/column groups which can be
7230	// customized. For
7231	// example, in the following pivot table, the row label is `Region`
7232	// (which
7233	// could be renamed to `State`) and the column label is `Product`
7234	// (which
7235	// could be renamed `Item`). Pivot tables created before December 2017
7236	// do
7237	// not have header labels. If you'd like to add header labels to an
7238	// existing
7239	// pivot table, please delete the existing pivot table and then create a
7240	// new
7241	// pivot table with same parameters.
7242	//
7243	//     +--------------+---------+-------+
7244	//     | SUM of Units | Product |       |
7245	//     | Region       | Pen     | Paper |
7246	//     +--------------+---------+-------+
7247	//     | New York     |     345 |    98 |
7248	//     | Oregon       |     234 |   123 |
7249	//     | Tennessee    |     531 |   415 |
7250	//     +--------------+---------+-------+
7251	//     | Grand Total  |    1110 |   636 |
7252	//     +--------------+---------+-------+
7253	Label string `json:"label,omitempty"`
7254
7255	// RepeatHeadings: True if the headings in this pivot group should be
7256	// repeated.
7257	// This is only valid for row groupings and is ignored by columns.
7258	//
7259	// By default, we minimize repitition of headings by not showing
7260	// higher
7261	// level headings where they are the same. For example, even though
7262	// the
7263	// third row below corresponds to "Q1 Mar", "Q1" is not shown because
7264	// it is redundant with previous rows. Setting repeat_headings to
7265	// true
7266	// would cause "Q1" to be repeated for "Feb" and "Mar".
7267	//
7268	//     +--------------+
7269	//     | Q1     | Jan |
7270	//     |        | Feb |
7271	//     |        | Mar |
7272	//     +--------+-----+
7273	//     | Q1 Total     |
7274	//     +--------------+
7275	RepeatHeadings bool `json:"repeatHeadings,omitempty"`
7276
7277	// ShowTotals: True if the pivot table should include the totals for
7278	// this grouping.
7279	ShowTotals bool `json:"showTotals,omitempty"`
7280
7281	// SortOrder: The order the values in this group should be sorted.
7282	//
7283	// Possible values:
7284	//   "SORT_ORDER_UNSPECIFIED" - Default value, do not use this.
7285	//   "ASCENDING" - Sort ascending.
7286	//   "DESCENDING" - Sort descending.
7287	SortOrder string `json:"sortOrder,omitempty"`
7288
7289	// SourceColumnOffset: The column offset of the source range that this
7290	// grouping is based on.
7291	//
7292	// For example, if the source was `C10:E15`, a `sourceColumnOffset` of
7293	// `0`
7294	// means this group refers to column `C`, whereas the offset `1`
7295	// would
7296	// refer to column `D`.
7297	SourceColumnOffset int64 `json:"sourceColumnOffset,omitempty"`
7298
7299	// ValueBucket: The bucket of the opposite pivot group to sort by.
7300	// If not specified, sorting is alphabetical by this group's values.
7301	ValueBucket *PivotGroupSortValueBucket `json:"valueBucket,omitempty"`
7302
7303	// ValueMetadata: Metadata about values in the grouping.
7304	ValueMetadata []*PivotGroupValueMetadata `json:"valueMetadata,omitempty"`
7305
7306	// ForceSendFields is a list of field names (e.g. "GroupRule") 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. "GroupRule") to include in
7315	// API 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 *PivotGroup) MarshalJSON() ([]byte, error) {
7324	type NoMethod PivotGroup
7325	raw := NoMethod(*s)
7326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7327}
7328
7329// PivotGroupRule: An optional setting on a PivotGroup that defines
7330// buckets for the values
7331// in the source data column rather than breaking out each individual
7332// value.
7333// Only one PivotGroup with a group rule may be added for each column
7334// in
7335// the source data, though on any given column you may add both
7336// a
7337// PivotGroup that has a rule and a PivotGroup that does not.
7338type PivotGroupRule struct {
7339	// DateTimeRule: A DateTimeRule.
7340	DateTimeRule *DateTimeRule `json:"dateTimeRule,omitempty"`
7341
7342	// HistogramRule: A HistogramRule.
7343	HistogramRule *HistogramRule `json:"histogramRule,omitempty"`
7344
7345	// ManualRule: A ManualRule.
7346	ManualRule *ManualRule `json:"manualRule,omitempty"`
7347
7348	// ForceSendFields is a list of field names (e.g. "DateTimeRule") to
7349	// unconditionally include in API requests. By default, fields with
7350	// empty values are omitted from API requests. However, any non-pointer,
7351	// non-interface field appearing in ForceSendFields will be sent to the
7352	// server regardless of whether the field is empty or not. This may be
7353	// used to include empty fields in Patch requests.
7354	ForceSendFields []string `json:"-"`
7355
7356	// NullFields is a list of field names (e.g. "DateTimeRule") to include
7357	// in API requests with the JSON null value. By default, fields with
7358	// empty values are omitted from API requests. However, any field with
7359	// an empty value appearing in NullFields will be sent to the server as
7360	// null. It is an error if a field in this list has a non-empty value.
7361	// This may be used to include null fields in Patch requests.
7362	NullFields []string `json:"-"`
7363}
7364
7365func (s *PivotGroupRule) MarshalJSON() ([]byte, error) {
7366	type NoMethod PivotGroupRule
7367	raw := NoMethod(*s)
7368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7369}
7370
7371// PivotGroupSortValueBucket: Information about which values in a pivot
7372// group should be used for sorting.
7373type PivotGroupSortValueBucket struct {
7374	// Buckets: Determines the bucket from which values are chosen to
7375	// sort.
7376	//
7377	// For example, in a pivot table with one row group & two column
7378	// groups,
7379	// the row group can list up to two values. The first value
7380	// corresponds
7381	// to a value within the first column group, and the second
7382	// value
7383	// corresponds to a value in the second column group.  If no values
7384	// are listed, this would indicate that the row should be sorted
7385	// according
7386	// to the "Grand Total" over the column groups. If a single value is
7387	// listed,
7388	// this would correspond to using the "Total" of that bucket.
7389	Buckets []*ExtendedValue `json:"buckets,omitempty"`
7390
7391	// ValuesIndex: The offset in the PivotTable.values list which the
7392	// values in this
7393	// grouping should be sorted by.
7394	ValuesIndex int64 `json:"valuesIndex,omitempty"`
7395
7396	// ForceSendFields is a list of field names (e.g. "Buckets") to
7397	// unconditionally include in API requests. By default, fields with
7398	// empty values are omitted from API requests. However, any non-pointer,
7399	// non-interface field appearing in ForceSendFields will be sent to the
7400	// server regardless of whether the field is empty or not. This may be
7401	// used to include empty fields in Patch requests.
7402	ForceSendFields []string `json:"-"`
7403
7404	// NullFields is a list of field names (e.g. "Buckets") to include in
7405	// API requests with the JSON null value. By default, fields with empty
7406	// values are omitted from API requests. However, any field with an
7407	// empty value appearing in NullFields will be sent to the server as
7408	// null. It is an error if a field in this list has a non-empty value.
7409	// This may be used to include null fields in Patch requests.
7410	NullFields []string `json:"-"`
7411}
7412
7413func (s *PivotGroupSortValueBucket) MarshalJSON() ([]byte, error) {
7414	type NoMethod PivotGroupSortValueBucket
7415	raw := NoMethod(*s)
7416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7417}
7418
7419// PivotGroupValueMetadata: Metadata about a value in a pivot grouping.
7420type PivotGroupValueMetadata struct {
7421	// Collapsed: True if the data corresponding to the value is collapsed.
7422	Collapsed bool `json:"collapsed,omitempty"`
7423
7424	// Value: The calculated value the metadata corresponds to.
7425	// (Note that formulaValue is not valid,
7426	//  because the values will be calculated.)
7427	Value *ExtendedValue `json:"value,omitempty"`
7428
7429	// ForceSendFields is a list of field names (e.g. "Collapsed") to
7430	// unconditionally include in API requests. By default, fields with
7431	// empty values are omitted from API requests. However, any non-pointer,
7432	// non-interface field appearing in ForceSendFields will be sent to the
7433	// server regardless of whether the field is empty or not. This may be
7434	// used to include empty fields in Patch requests.
7435	ForceSendFields []string `json:"-"`
7436
7437	// NullFields is a list of field names (e.g. "Collapsed") to include in
7438	// API requests with the JSON null value. By default, fields with empty
7439	// values are omitted from API requests. However, any field with an
7440	// empty value appearing in NullFields will be sent to the server as
7441	// null. It is an error if a field in this list has a non-empty value.
7442	// This may be used to include null fields in Patch requests.
7443	NullFields []string `json:"-"`
7444}
7445
7446func (s *PivotGroupValueMetadata) MarshalJSON() ([]byte, error) {
7447	type NoMethod PivotGroupValueMetadata
7448	raw := NoMethod(*s)
7449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7450}
7451
7452// PivotTable: A pivot table.
7453type PivotTable struct {
7454	// Columns: Each column grouping in the pivot table.
7455	Columns []*PivotGroup `json:"columns,omitempty"`
7456
7457	// Criteria: An optional mapping of filters per source column
7458	// offset.
7459	//
7460	// The filters are applied before aggregating data into the pivot
7461	// table.
7462	// The map's key is the column offset of the source range that you want
7463	// to
7464	// filter, and the value is the criteria for that column.
7465	//
7466	// For example, if the source was `C10:E15`, a key of `0` will have the
7467	// filter
7468	// for column `C`, whereas the key `1` is for column `D`.
7469	Criteria map[string]PivotFilterCriteria `json:"criteria,omitempty"`
7470
7471	// Rows: Each row grouping in the pivot table.
7472	Rows []*PivotGroup `json:"rows,omitempty"`
7473
7474	// Source: The range the pivot table is reading data from.
7475	Source *GridRange `json:"source,omitempty"`
7476
7477	// ValueLayout: Whether values should be listed horizontally (as
7478	// columns)
7479	// or vertically (as rows).
7480	//
7481	// Possible values:
7482	//   "HORIZONTAL" - Values are laid out horizontally (as columns).
7483	//   "VERTICAL" - Values are laid out vertically (as rows).
7484	ValueLayout string `json:"valueLayout,omitempty"`
7485
7486	// Values: A list of values to include in the pivot table.
7487	Values []*PivotValue `json:"values,omitempty"`
7488
7489	// ForceSendFields is a list of field names (e.g. "Columns") to
7490	// unconditionally include in API requests. By default, fields with
7491	// empty values are omitted from API requests. However, any non-pointer,
7492	// non-interface field appearing in ForceSendFields will be sent to the
7493	// server regardless of whether the field is empty or not. This may be
7494	// used to include empty fields in Patch requests.
7495	ForceSendFields []string `json:"-"`
7496
7497	// NullFields is a list of field names (e.g. "Columns") to include in
7498	// API requests with the JSON null value. By default, fields with empty
7499	// values are omitted from API requests. However, any field with an
7500	// empty value appearing in NullFields will be sent to the server as
7501	// null. It is an error if a field in this list has a non-empty value.
7502	// This may be used to include null fields in Patch requests.
7503	NullFields []string `json:"-"`
7504}
7505
7506func (s *PivotTable) MarshalJSON() ([]byte, error) {
7507	type NoMethod PivotTable
7508	raw := NoMethod(*s)
7509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7510}
7511
7512// PivotValue: The definition of how a value in a pivot table should be
7513// calculated.
7514type PivotValue struct {
7515	// CalculatedDisplayType: If specified, indicates that pivot values
7516	// should be displayed as
7517	// the result of a calculation with another pivot value. For example,
7518	// if
7519	// calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all
7520	// the
7521	// pivot values are displayed as the percentage of the grand total.
7522	// In
7523	// the Sheets UI, this is referred to as "Show As" in the value section
7524	// of a
7525	// pivot table.
7526	//
7527	// Possible values:
7528	//   "PIVOT_VALUE_CALCULATED_DISPLAY_TYPE_UNSPECIFIED" - Default value,
7529	// do not use.
7530	//   "PERCENT_OF_ROW_TOTAL" - Shows the pivot values as percentage of
7531	// the row total values.
7532	//   "PERCENT_OF_COLUMN_TOTAL" - Shows the pivot values as percentage of
7533	// the column total values.
7534	//   "PERCENT_OF_GRAND_TOTAL" - Shows the pivot values as percentage of
7535	// the grand total values.
7536	CalculatedDisplayType string `json:"calculatedDisplayType,omitempty"`
7537
7538	// Formula: A custom formula to calculate the value.  The formula must
7539	// start
7540	// with an `=` character.
7541	Formula string `json:"formula,omitempty"`
7542
7543	// Name: A name to use for the value.
7544	Name string `json:"name,omitempty"`
7545
7546	// SourceColumnOffset: The column offset of the source range that this
7547	// value reads from.
7548	//
7549	// For example, if the source was `C10:E15`, a `sourceColumnOffset` of
7550	// `0`
7551	// means this value refers to column `C`, whereas the offset `1`
7552	// would
7553	// refer to column `D`.
7554	SourceColumnOffset int64 `json:"sourceColumnOffset,omitempty"`
7555
7556	// SummarizeFunction: A function to summarize the value.
7557	// If formula is set, the only supported values are
7558	// SUM and
7559	// CUSTOM.
7560	// If sourceColumnOffset is set, then `CUSTOM`
7561	// is not supported.
7562	//
7563	// Possible values:
7564	//   "PIVOT_STANDARD_VALUE_FUNCTION_UNSPECIFIED" - The default, do not
7565	// use.
7566	//   "SUM" - Corresponds to the `SUM` function.
7567	//   "COUNTA" - Corresponds to the `COUNTA` function.
7568	//   "COUNT" - Corresponds to the `COUNT` function.
7569	//   "COUNTUNIQUE" - Corresponds to the `COUNTUNIQUE` function.
7570	//   "AVERAGE" - Corresponds to the `AVERAGE` function.
7571	//   "MAX" - Corresponds to the `MAX` function.
7572	//   "MIN" - Corresponds to the `MIN` function.
7573	//   "MEDIAN" - Corresponds to the `MEDIAN` function.
7574	//   "PRODUCT" - Corresponds to the `PRODUCT` function.
7575	//   "STDEV" - Corresponds to the `STDEV` function.
7576	//   "STDEVP" - Corresponds to the `STDEVP` function.
7577	//   "VAR" - Corresponds to the `VAR` function.
7578	//   "VARP" - Corresponds to the `VARP` function.
7579	//   "CUSTOM" - Indicates the formula should be used as-is.
7580	// Only valid if PivotValue.formula was set.
7581	SummarizeFunction string `json:"summarizeFunction,omitempty"`
7582
7583	// ForceSendFields is a list of field names (e.g.
7584	// "CalculatedDisplayType") to unconditionally include in API requests.
7585	// By default, fields with empty values are omitted from API requests.
7586	// However, any non-pointer, non-interface field appearing in
7587	// ForceSendFields will be sent to the server regardless of whether the
7588	// field is empty or not. This may be used to include empty fields in
7589	// Patch requests.
7590	ForceSendFields []string `json:"-"`
7591
7592	// NullFields is a list of field names (e.g. "CalculatedDisplayType") to
7593	// include in API requests with the JSON null value. By default, fields
7594	// with empty values are omitted from API requests. However, any field
7595	// with an empty value appearing in NullFields will be sent to the
7596	// server as null. It is an error if a field in this list has a
7597	// non-empty value. This may be used to include null fields in Patch
7598	// requests.
7599	NullFields []string `json:"-"`
7600}
7601
7602func (s *PivotValue) MarshalJSON() ([]byte, error) {
7603	type NoMethod PivotValue
7604	raw := NoMethod(*s)
7605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7606}
7607
7608// ProtectedRange: A protected range.
7609type ProtectedRange struct {
7610	// Description: The description of this protected range.
7611	Description string `json:"description,omitempty"`
7612
7613	// Editors: The users and groups with edit access to the protected
7614	// range.
7615	// This field is only visible to users with edit access to the
7616	// protected
7617	// range and the document.
7618	// Editors are not supported with warning_only protection.
7619	Editors *Editors `json:"editors,omitempty"`
7620
7621	// NamedRangeId: The named range this protected range is backed by, if
7622	// any.
7623	//
7624	// When writing, only one of range or named_range_id
7625	// may be set.
7626	NamedRangeId string `json:"namedRangeId,omitempty"`
7627
7628	// ProtectedRangeId: The ID of the protected range.
7629	// This field is read-only.
7630	ProtectedRangeId int64 `json:"protectedRangeId,omitempty"`
7631
7632	// Range: The range that is being protected.
7633	// The range may be fully unbounded, in which case this is considered
7634	// a protected sheet.
7635	//
7636	// When writing, only one of range or named_range_id
7637	// may be set.
7638	Range *GridRange `json:"range,omitempty"`
7639
7640	// RequestingUserCanEdit: True if the user who requested this protected
7641	// range can edit the
7642	// protected area.
7643	// This field is read-only.
7644	RequestingUserCanEdit bool `json:"requestingUserCanEdit,omitempty"`
7645
7646	// UnprotectedRanges: The list of unprotected ranges within a protected
7647	// sheet.
7648	// Unprotected ranges are only supported on protected sheets.
7649	UnprotectedRanges []*GridRange `json:"unprotectedRanges,omitempty"`
7650
7651	// WarningOnly: True if this protected range will show a warning when
7652	// editing.
7653	// Warning-based protection means that every user can edit data in
7654	// the
7655	// protected range, except editing will prompt a warning asking the
7656	// user
7657	// to confirm the edit.
7658	//
7659	// When writing: if this field is true, then editors is
7660	// ignored.
7661	// Additionally, if this field is changed from true to false and
7662	// the
7663	// `editors` field is not set (nor included in the field mask), then
7664	// the editors will be set to all the editors in the document.
7665	WarningOnly bool `json:"warningOnly,omitempty"`
7666
7667	// ForceSendFields is a list of field names (e.g. "Description") to
7668	// unconditionally include in API requests. By default, fields with
7669	// empty values are omitted from API requests. However, any non-pointer,
7670	// non-interface field appearing in ForceSendFields will be sent to the
7671	// server regardless of whether the field is empty or not. This may be
7672	// used to include empty fields in Patch requests.
7673	ForceSendFields []string `json:"-"`
7674
7675	// NullFields is a list of field names (e.g. "Description") to include
7676	// in API requests with the JSON null value. By default, fields with
7677	// empty values are omitted from API requests. However, any field with
7678	// an empty value appearing in NullFields will be sent to the server as
7679	// null. It is an error if a field in this list has a non-empty value.
7680	// This may be used to include null fields in Patch requests.
7681	NullFields []string `json:"-"`
7682}
7683
7684func (s *ProtectedRange) MarshalJSON() ([]byte, error) {
7685	type NoMethod ProtectedRange
7686	raw := NoMethod(*s)
7687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7688}
7689
7690// RandomizeRangeRequest: Randomizes the order of the rows in a range.
7691type RandomizeRangeRequest struct {
7692	// Range: The range to randomize.
7693	Range *GridRange `json:"range,omitempty"`
7694
7695	// ForceSendFields is a list of field names (e.g. "Range") to
7696	// unconditionally include in API requests. By default, fields with
7697	// empty values are omitted from API requests. However, any non-pointer,
7698	// non-interface field appearing in ForceSendFields will be sent to the
7699	// server regardless of whether the field is empty or not. This may be
7700	// used to include empty fields in Patch requests.
7701	ForceSendFields []string `json:"-"`
7702
7703	// NullFields is a list of field names (e.g. "Range") to include in API
7704	// requests with the JSON null value. By default, fields with empty
7705	// values are omitted from API requests. However, any field with an
7706	// empty value appearing in NullFields will be sent to the server as
7707	// null. It is an error if a field in this list has a non-empty value.
7708	// This may be used to include null fields in Patch requests.
7709	NullFields []string `json:"-"`
7710}
7711
7712func (s *RandomizeRangeRequest) MarshalJSON() ([]byte, error) {
7713	type NoMethod RandomizeRangeRequest
7714	raw := NoMethod(*s)
7715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7716}
7717
7718// RepeatCellRequest: Updates all cells in the range to the values in
7719// the given Cell object.
7720// Only the fields listed in the fields field are updated; others
7721// are
7722// unchanged.
7723//
7724// If writing a cell with a formula, the formula's ranges will
7725// automatically
7726// increment for each field in the range.
7727// For example, if writing a cell with formula `=A1` into range
7728// B2:C4,
7729// B2 would be `=A1`, B3 would be `=A2`, B4 would be `=A3`,
7730// C2 would be `=B1`, C3 would be `=B2`, C4 would be `=B3`.
7731//
7732// To keep the formula's ranges static, use the `$` indicator.
7733// For example, use the formula `=$A$1` to prevent both the row and
7734// the
7735// column from incrementing.
7736type RepeatCellRequest struct {
7737	// Cell: The data to write.
7738	Cell *CellData `json:"cell,omitempty"`
7739
7740	// Fields: The fields that should be updated.  At least one field must
7741	// be specified.
7742	// The root `cell` is implied and should not be specified.
7743	// A single "*" can be used as short-hand for listing every field.
7744	Fields string `json:"fields,omitempty"`
7745
7746	// Range: The range to repeat the cell in.
7747	Range *GridRange `json:"range,omitempty"`
7748
7749	// ForceSendFields is a list of field names (e.g. "Cell") to
7750	// unconditionally include in API requests. By default, fields with
7751	// empty values are omitted from API requests. However, any non-pointer,
7752	// non-interface field appearing in ForceSendFields will be sent to the
7753	// server regardless of whether the field is empty or not. This may be
7754	// used to include empty fields in Patch requests.
7755	ForceSendFields []string `json:"-"`
7756
7757	// NullFields is a list of field names (e.g. "Cell") to include in API
7758	// requests with the JSON null value. By default, fields with empty
7759	// values are omitted from API requests. However, any field with an
7760	// empty value appearing in NullFields will be sent to the server as
7761	// null. It is an error if a field in this list has a non-empty value.
7762	// This may be used to include null fields in Patch requests.
7763	NullFields []string `json:"-"`
7764}
7765
7766func (s *RepeatCellRequest) MarshalJSON() ([]byte, error) {
7767	type NoMethod RepeatCellRequest
7768	raw := NoMethod(*s)
7769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7770}
7771
7772// Request: A single kind of update to apply to a spreadsheet.
7773type Request struct {
7774	// AddBanding: Adds a new banded range
7775	AddBanding *AddBandingRequest `json:"addBanding,omitempty"`
7776
7777	// AddChart: Adds a chart.
7778	AddChart *AddChartRequest `json:"addChart,omitempty"`
7779
7780	// AddConditionalFormatRule: Adds a new conditional format rule.
7781	AddConditionalFormatRule *AddConditionalFormatRuleRequest `json:"addConditionalFormatRule,omitempty"`
7782
7783	// AddDimensionGroup: Creates a group over the specified range.
7784	AddDimensionGroup *AddDimensionGroupRequest `json:"addDimensionGroup,omitempty"`
7785
7786	// AddFilterView: Adds a filter view.
7787	AddFilterView *AddFilterViewRequest `json:"addFilterView,omitempty"`
7788
7789	// AddNamedRange: Adds a named range.
7790	AddNamedRange *AddNamedRangeRequest `json:"addNamedRange,omitempty"`
7791
7792	// AddProtectedRange: Adds a protected range.
7793	AddProtectedRange *AddProtectedRangeRequest `json:"addProtectedRange,omitempty"`
7794
7795	// AddSheet: Adds a sheet.
7796	AddSheet *AddSheetRequest `json:"addSheet,omitempty"`
7797
7798	// AddSlicer: Adds a slicer.
7799	AddSlicer *AddSlicerRequest `json:"addSlicer,omitempty"`
7800
7801	// AppendCells: Appends cells after the last row with data in a sheet.
7802	AppendCells *AppendCellsRequest `json:"appendCells,omitempty"`
7803
7804	// AppendDimension: Appends dimensions to the end of a sheet.
7805	AppendDimension *AppendDimensionRequest `json:"appendDimension,omitempty"`
7806
7807	// AutoFill: Automatically fills in more data based on existing data.
7808	AutoFill *AutoFillRequest `json:"autoFill,omitempty"`
7809
7810	// AutoResizeDimensions: Automatically resizes one or more dimensions
7811	// based on the contents
7812	// of the cells in that dimension.
7813	AutoResizeDimensions *AutoResizeDimensionsRequest `json:"autoResizeDimensions,omitempty"`
7814
7815	// ClearBasicFilter: Clears the basic filter on a sheet.
7816	ClearBasicFilter *ClearBasicFilterRequest `json:"clearBasicFilter,omitempty"`
7817
7818	// CopyPaste: Copies data from one area and pastes it to another.
7819	CopyPaste *CopyPasteRequest `json:"copyPaste,omitempty"`
7820
7821	// CreateDeveloperMetadata: Creates new developer metadata
7822	CreateDeveloperMetadata *CreateDeveloperMetadataRequest `json:"createDeveloperMetadata,omitempty"`
7823
7824	// CutPaste: Cuts data from one area and pastes it to another.
7825	CutPaste *CutPasteRequest `json:"cutPaste,omitempty"`
7826
7827	// DeleteBanding: Removes a banded range
7828	DeleteBanding *DeleteBandingRequest `json:"deleteBanding,omitempty"`
7829
7830	// DeleteConditionalFormatRule: Deletes an existing conditional format
7831	// rule.
7832	DeleteConditionalFormatRule *DeleteConditionalFormatRuleRequest `json:"deleteConditionalFormatRule,omitempty"`
7833
7834	// DeleteDeveloperMetadata: Deletes developer metadata
7835	DeleteDeveloperMetadata *DeleteDeveloperMetadataRequest `json:"deleteDeveloperMetadata,omitempty"`
7836
7837	// DeleteDimension: Deletes rows or columns in a sheet.
7838	DeleteDimension *DeleteDimensionRequest `json:"deleteDimension,omitempty"`
7839
7840	// DeleteDimensionGroup: Deletes a group over the specified range.
7841	DeleteDimensionGroup *DeleteDimensionGroupRequest `json:"deleteDimensionGroup,omitempty"`
7842
7843	// DeleteDuplicates: Removes rows containing duplicate values in
7844	// specified columns of a cell
7845	// range.
7846	DeleteDuplicates *DeleteDuplicatesRequest `json:"deleteDuplicates,omitempty"`
7847
7848	// DeleteEmbeddedObject: Deletes an embedded object (e.g, chart, image)
7849	// in a sheet.
7850	DeleteEmbeddedObject *DeleteEmbeddedObjectRequest `json:"deleteEmbeddedObject,omitempty"`
7851
7852	// DeleteFilterView: Deletes a filter view from a sheet.
7853	DeleteFilterView *DeleteFilterViewRequest `json:"deleteFilterView,omitempty"`
7854
7855	// DeleteNamedRange: Deletes a named range.
7856	DeleteNamedRange *DeleteNamedRangeRequest `json:"deleteNamedRange,omitempty"`
7857
7858	// DeleteProtectedRange: Deletes a protected range.
7859	DeleteProtectedRange *DeleteProtectedRangeRequest `json:"deleteProtectedRange,omitempty"`
7860
7861	// DeleteRange: Deletes a range of cells from a sheet, shifting the
7862	// remaining cells.
7863	DeleteRange *DeleteRangeRequest `json:"deleteRange,omitempty"`
7864
7865	// DeleteSheet: Deletes a sheet.
7866	DeleteSheet *DeleteSheetRequest `json:"deleteSheet,omitempty"`
7867
7868	// DuplicateFilterView: Duplicates a filter view.
7869	DuplicateFilterView *DuplicateFilterViewRequest `json:"duplicateFilterView,omitempty"`
7870
7871	// DuplicateSheet: Duplicates a sheet.
7872	DuplicateSheet *DuplicateSheetRequest `json:"duplicateSheet,omitempty"`
7873
7874	// FindReplace: Finds and replaces occurrences of some text with other
7875	// text.
7876	FindReplace *FindReplaceRequest `json:"findReplace,omitempty"`
7877
7878	// InsertDimension: Inserts new rows or columns in a sheet.
7879	InsertDimension *InsertDimensionRequest `json:"insertDimension,omitempty"`
7880
7881	// InsertRange: Inserts new cells in a sheet, shifting the existing
7882	// cells.
7883	InsertRange *InsertRangeRequest `json:"insertRange,omitempty"`
7884
7885	// MergeCells: Merges cells together.
7886	MergeCells *MergeCellsRequest `json:"mergeCells,omitempty"`
7887
7888	// MoveDimension: Moves rows or columns to another location in a sheet.
7889	MoveDimension *MoveDimensionRequest `json:"moveDimension,omitempty"`
7890
7891	// PasteData: Pastes data (HTML or delimited) into a sheet.
7892	PasteData *PasteDataRequest `json:"pasteData,omitempty"`
7893
7894	// RandomizeRange: Randomizes the order of the rows in a range.
7895	RandomizeRange *RandomizeRangeRequest `json:"randomizeRange,omitempty"`
7896
7897	// RepeatCell: Repeats a single cell across a range.
7898	RepeatCell *RepeatCellRequest `json:"repeatCell,omitempty"`
7899
7900	// SetBasicFilter: Sets the basic filter on a sheet.
7901	SetBasicFilter *SetBasicFilterRequest `json:"setBasicFilter,omitempty"`
7902
7903	// SetDataValidation: Sets data validation for one or more cells.
7904	SetDataValidation *SetDataValidationRequest `json:"setDataValidation,omitempty"`
7905
7906	// SortRange: Sorts data in a range.
7907	SortRange *SortRangeRequest `json:"sortRange,omitempty"`
7908
7909	// TextToColumns: Converts a column of text into many columns of text.
7910	TextToColumns *TextToColumnsRequest `json:"textToColumns,omitempty"`
7911
7912	// TrimWhitespace: Trims cells of whitespace (such as spaces, tabs, or
7913	// new lines).
7914	TrimWhitespace *TrimWhitespaceRequest `json:"trimWhitespace,omitempty"`
7915
7916	// UnmergeCells: Unmerges merged cells.
7917	UnmergeCells *UnmergeCellsRequest `json:"unmergeCells,omitempty"`
7918
7919	// UpdateBanding: Updates a banded range
7920	UpdateBanding *UpdateBandingRequest `json:"updateBanding,omitempty"`
7921
7922	// UpdateBorders: Updates the borders in a range of cells.
7923	UpdateBorders *UpdateBordersRequest `json:"updateBorders,omitempty"`
7924
7925	// UpdateCells: Updates many cells at once.
7926	UpdateCells *UpdateCellsRequest `json:"updateCells,omitempty"`
7927
7928	// UpdateChartSpec: Updates a chart's specifications.
7929	UpdateChartSpec *UpdateChartSpecRequest `json:"updateChartSpec,omitempty"`
7930
7931	// UpdateConditionalFormatRule: Updates an existing conditional format
7932	// rule.
7933	UpdateConditionalFormatRule *UpdateConditionalFormatRuleRequest `json:"updateConditionalFormatRule,omitempty"`
7934
7935	// UpdateDeveloperMetadata: Updates an existing developer metadata entry
7936	UpdateDeveloperMetadata *UpdateDeveloperMetadataRequest `json:"updateDeveloperMetadata,omitempty"`
7937
7938	// UpdateDimensionGroup: Updates the state of the specified group.
7939	UpdateDimensionGroup *UpdateDimensionGroupRequest `json:"updateDimensionGroup,omitempty"`
7940
7941	// UpdateDimensionProperties: Updates dimensions' properties.
7942	UpdateDimensionProperties *UpdateDimensionPropertiesRequest `json:"updateDimensionProperties,omitempty"`
7943
7944	// UpdateEmbeddedObjectPosition: Updates an embedded object's (e.g.
7945	// chart, image) position.
7946	UpdateEmbeddedObjectPosition *UpdateEmbeddedObjectPositionRequest `json:"updateEmbeddedObjectPosition,omitempty"`
7947
7948	// UpdateFilterView: Updates the properties of a filter view.
7949	UpdateFilterView *UpdateFilterViewRequest `json:"updateFilterView,omitempty"`
7950
7951	// UpdateNamedRange: Updates a named range.
7952	UpdateNamedRange *UpdateNamedRangeRequest `json:"updateNamedRange,omitempty"`
7953
7954	// UpdateProtectedRange: Updates a protected range.
7955	UpdateProtectedRange *UpdateProtectedRangeRequest `json:"updateProtectedRange,omitempty"`
7956
7957	// UpdateSheetProperties: Updates a sheet's properties.
7958	UpdateSheetProperties *UpdateSheetPropertiesRequest `json:"updateSheetProperties,omitempty"`
7959
7960	// UpdateSlicerSpec: Updates a slicer's specifications.
7961	UpdateSlicerSpec *UpdateSlicerSpecRequest `json:"updateSlicerSpec,omitempty"`
7962
7963	// UpdateSpreadsheetProperties: Updates the spreadsheet's properties.
7964	UpdateSpreadsheetProperties *UpdateSpreadsheetPropertiesRequest `json:"updateSpreadsheetProperties,omitempty"`
7965
7966	// ForceSendFields is a list of field names (e.g. "AddBanding") to
7967	// unconditionally include in API requests. By default, fields with
7968	// empty values are omitted from API requests. However, any non-pointer,
7969	// non-interface field appearing in ForceSendFields will be sent to the
7970	// server regardless of whether the field is empty or not. This may be
7971	// used to include empty fields in Patch requests.
7972	ForceSendFields []string `json:"-"`
7973
7974	// NullFields is a list of field names (e.g. "AddBanding") to include in
7975	// API requests with the JSON null value. By default, fields with empty
7976	// values are omitted from API requests. However, any field with an
7977	// empty value appearing in NullFields will be sent to the server as
7978	// null. It is an error if a field in this list has a non-empty value.
7979	// This may be used to include null fields in Patch requests.
7980	NullFields []string `json:"-"`
7981}
7982
7983func (s *Request) MarshalJSON() ([]byte, error) {
7984	type NoMethod Request
7985	raw := NoMethod(*s)
7986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7987}
7988
7989// Response: A single response from an update.
7990type Response struct {
7991	// AddBanding: A reply from adding a banded range.
7992	AddBanding *AddBandingResponse `json:"addBanding,omitempty"`
7993
7994	// AddChart: A reply from adding a chart.
7995	AddChart *AddChartResponse `json:"addChart,omitempty"`
7996
7997	// AddDimensionGroup: A reply from adding a dimension group.
7998	AddDimensionGroup *AddDimensionGroupResponse `json:"addDimensionGroup,omitempty"`
7999
8000	// AddFilterView: A reply from adding a filter view.
8001	AddFilterView *AddFilterViewResponse `json:"addFilterView,omitempty"`
8002
8003	// AddNamedRange: A reply from adding a named range.
8004	AddNamedRange *AddNamedRangeResponse `json:"addNamedRange,omitempty"`
8005
8006	// AddProtectedRange: A reply from adding a protected range.
8007	AddProtectedRange *AddProtectedRangeResponse `json:"addProtectedRange,omitempty"`
8008
8009	// AddSheet: A reply from adding a sheet.
8010	AddSheet *AddSheetResponse `json:"addSheet,omitempty"`
8011
8012	// AddSlicer: A reply from adding a slicer.
8013	AddSlicer *AddSlicerResponse `json:"addSlicer,omitempty"`
8014
8015	// CreateDeveloperMetadata: A reply from creating a developer metadata
8016	// entry.
8017	CreateDeveloperMetadata *CreateDeveloperMetadataResponse `json:"createDeveloperMetadata,omitempty"`
8018
8019	// DeleteConditionalFormatRule: A reply from deleting a conditional
8020	// format rule.
8021	DeleteConditionalFormatRule *DeleteConditionalFormatRuleResponse `json:"deleteConditionalFormatRule,omitempty"`
8022
8023	// DeleteDeveloperMetadata: A reply from deleting a developer metadata
8024	// entry.
8025	DeleteDeveloperMetadata *DeleteDeveloperMetadataResponse `json:"deleteDeveloperMetadata,omitempty"`
8026
8027	// DeleteDimensionGroup: A reply from deleting a dimension group.
8028	DeleteDimensionGroup *DeleteDimensionGroupResponse `json:"deleteDimensionGroup,omitempty"`
8029
8030	// DeleteDuplicates: A reply from removing rows containing duplicate
8031	// values.
8032	DeleteDuplicates *DeleteDuplicatesResponse `json:"deleteDuplicates,omitempty"`
8033
8034	// DuplicateFilterView: A reply from duplicating a filter view.
8035	DuplicateFilterView *DuplicateFilterViewResponse `json:"duplicateFilterView,omitempty"`
8036
8037	// DuplicateSheet: A reply from duplicating a sheet.
8038	DuplicateSheet *DuplicateSheetResponse `json:"duplicateSheet,omitempty"`
8039
8040	// FindReplace: A reply from doing a find/replace.
8041	FindReplace *FindReplaceResponse `json:"findReplace,omitempty"`
8042
8043	// TrimWhitespace: A reply from trimming whitespace.
8044	TrimWhitespace *TrimWhitespaceResponse `json:"trimWhitespace,omitempty"`
8045
8046	// UpdateConditionalFormatRule: A reply from updating a conditional
8047	// format rule.
8048	UpdateConditionalFormatRule *UpdateConditionalFormatRuleResponse `json:"updateConditionalFormatRule,omitempty"`
8049
8050	// UpdateDeveloperMetadata: A reply from updating a developer metadata
8051	// entry.
8052	UpdateDeveloperMetadata *UpdateDeveloperMetadataResponse `json:"updateDeveloperMetadata,omitempty"`
8053
8054	// UpdateEmbeddedObjectPosition: A reply from updating an embedded
8055	// object's position.
8056	UpdateEmbeddedObjectPosition *UpdateEmbeddedObjectPositionResponse `json:"updateEmbeddedObjectPosition,omitempty"`
8057
8058	// ForceSendFields is a list of field names (e.g. "AddBanding") to
8059	// unconditionally include in API requests. By default, fields with
8060	// empty values are omitted from API requests. However, any non-pointer,
8061	// non-interface field appearing in ForceSendFields will be sent to the
8062	// server regardless of whether the field is empty or not. This may be
8063	// used to include empty fields in Patch requests.
8064	ForceSendFields []string `json:"-"`
8065
8066	// NullFields is a list of field names (e.g. "AddBanding") to include in
8067	// API requests with the JSON null value. By default, fields with empty
8068	// values are omitted from API requests. However, any field with an
8069	// empty value appearing in NullFields will be sent to the server as
8070	// null. It is an error if a field in this list has a non-empty value.
8071	// This may be used to include null fields in Patch requests.
8072	NullFields []string `json:"-"`
8073}
8074
8075func (s *Response) MarshalJSON() ([]byte, error) {
8076	type NoMethod Response
8077	raw := NoMethod(*s)
8078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8079}
8080
8081// RowData: Data about each cell in a row.
8082type RowData struct {
8083	// Values: The values in the row, one per column.
8084	Values []*CellData `json:"values,omitempty"`
8085
8086	// ForceSendFields is a list of field names (e.g. "Values") to
8087	// unconditionally include in API requests. By default, fields with
8088	// empty values are omitted from API requests. However, any non-pointer,
8089	// non-interface field appearing in ForceSendFields will be sent to the
8090	// server regardless of whether the field is empty or not. This may be
8091	// used to include empty fields in Patch requests.
8092	ForceSendFields []string `json:"-"`
8093
8094	// NullFields is a list of field names (e.g. "Values") to include in API
8095	// requests with the JSON null value. By default, fields with empty
8096	// values are omitted from API requests. However, any field with an
8097	// empty value appearing in NullFields will be sent to the server as
8098	// null. It is an error if a field in this list has a non-empty value.
8099	// This may be used to include null fields in Patch requests.
8100	NullFields []string `json:"-"`
8101}
8102
8103func (s *RowData) MarshalJSON() ([]byte, error) {
8104	type NoMethod RowData
8105	raw := NoMethod(*s)
8106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8107}
8108
8109// ScorecardChartSpec: A scorecard chart. Scorecard charts are used to
8110// highlight key performance
8111// indicators, known as KPIs, on the spreadsheet. A scorecard chart
8112// can
8113// represent things like total sales, average cost, or a top selling
8114// item. You
8115// can specify a single data value, or aggregate over a range of
8116// data.
8117// Percentage or absolute difference from a baseline value can be
8118// highlighted,
8119// like changes over time.
8120type ScorecardChartSpec struct {
8121	// AggregateType: The aggregation type for key and baseline chart data
8122	// in scorecard chart.
8123	// This field is optional.
8124	//
8125	// Possible values:
8126	//   "CHART_AGGREGATE_TYPE_UNSPECIFIED" - Default value, do not use.
8127	//   "AVERAGE" - Average aggregate function.
8128	//   "COUNT" - Count aggregate function.
8129	//   "MAX" - Maximum aggregate function.
8130	//   "MEDIAN" - Median aggregate function.
8131	//   "MIN" - Minimum aggregate function.
8132	//   "SUM" - Sum aggregate function.
8133	AggregateType string `json:"aggregateType,omitempty"`
8134
8135	// BaselineValueData: The data for scorecard baseline value.
8136	// This field is optional.
8137	BaselineValueData *ChartData `json:"baselineValueData,omitempty"`
8138
8139	// BaselineValueFormat: Formatting options for baseline value.
8140	// This field is needed only if baseline_value_data is specified.
8141	BaselineValueFormat *BaselineValueFormat `json:"baselineValueFormat,omitempty"`
8142
8143	// CustomFormatOptions: Custom formatting options for numeric
8144	// key/baseline values in scorecard
8145	// chart. This field is used only when number_format_source is set
8146	// to
8147	// CUSTOM. This field is optional.
8148	CustomFormatOptions *ChartCustomNumberFormatOptions `json:"customFormatOptions,omitempty"`
8149
8150	// KeyValueData: The data for scorecard key value.
8151	KeyValueData *ChartData `json:"keyValueData,omitempty"`
8152
8153	// KeyValueFormat: Formatting options for key value.
8154	KeyValueFormat *KeyValueFormat `json:"keyValueFormat,omitempty"`
8155
8156	// NumberFormatSource: The number format source used in the scorecard
8157	// chart.
8158	// This field is optional.
8159	//
8160	// Possible values:
8161	//   "CHART_NUMBER_FORMAT_SOURCE_UNDEFINED" - Default value, do not use.
8162	//   "FROM_DATA" - Inherit number formatting from data.
8163	//   "CUSTOM" - Apply custom formatting as specified by
8164	// ChartCustomNumberFormatOptions.
8165	NumberFormatSource string `json:"numberFormatSource,omitempty"`
8166
8167	// ScaleFactor: Value to scale scorecard key and baseline value. For
8168	// example, a factor of
8169	// 10 can be used to divide all values in the chart by 10.
8170	// This field is optional.
8171	ScaleFactor float64 `json:"scaleFactor,omitempty"`
8172
8173	// ForceSendFields is a list of field names (e.g. "AggregateType") to
8174	// unconditionally include in API requests. By default, fields with
8175	// empty values are omitted from API requests. However, any non-pointer,
8176	// non-interface field appearing in ForceSendFields will be sent to the
8177	// server regardless of whether the field is empty or not. This may be
8178	// used to include empty fields in Patch requests.
8179	ForceSendFields []string `json:"-"`
8180
8181	// NullFields is a list of field names (e.g. "AggregateType") to include
8182	// in API requests with the JSON null value. By default, fields with
8183	// empty values are omitted from API requests. However, any field with
8184	// an empty value appearing in NullFields will be sent to the server as
8185	// null. It is an error if a field in this list has a non-empty value.
8186	// This may be used to include null fields in Patch requests.
8187	NullFields []string `json:"-"`
8188}
8189
8190func (s *ScorecardChartSpec) MarshalJSON() ([]byte, error) {
8191	type NoMethod ScorecardChartSpec
8192	raw := NoMethod(*s)
8193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8194}
8195
8196func (s *ScorecardChartSpec) UnmarshalJSON(data []byte) error {
8197	type NoMethod ScorecardChartSpec
8198	var s1 struct {
8199		ScaleFactor gensupport.JSONFloat64 `json:"scaleFactor"`
8200		*NoMethod
8201	}
8202	s1.NoMethod = (*NoMethod)(s)
8203	if err := json.Unmarshal(data, &s1); err != nil {
8204		return err
8205	}
8206	s.ScaleFactor = float64(s1.ScaleFactor)
8207	return nil
8208}
8209
8210// SearchDeveloperMetadataRequest: A request to retrieve all developer
8211// metadata matching the set of specified
8212// criteria.
8213type SearchDeveloperMetadataRequest struct {
8214	// DataFilters: The data filters describing the criteria used to
8215	// determine which
8216	// DeveloperMetadata entries to return.  DeveloperMetadata matching any
8217	// of the
8218	// specified filters are included in the response.
8219	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
8220
8221	// ForceSendFields is a list of field names (e.g. "DataFilters") to
8222	// unconditionally include in API requests. By default, fields with
8223	// empty values are omitted from API requests. However, any non-pointer,
8224	// non-interface field appearing in ForceSendFields will be sent to the
8225	// server regardless of whether the field is empty or not. This may be
8226	// used to include empty fields in Patch requests.
8227	ForceSendFields []string `json:"-"`
8228
8229	// NullFields is a list of field names (e.g. "DataFilters") to include
8230	// in API requests with the JSON null value. By default, fields with
8231	// empty values are omitted from API requests. However, any field with
8232	// an empty value appearing in NullFields will be sent to the server as
8233	// null. It is an error if a field in this list has a non-empty value.
8234	// This may be used to include null fields in Patch requests.
8235	NullFields []string `json:"-"`
8236}
8237
8238func (s *SearchDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
8239	type NoMethod SearchDeveloperMetadataRequest
8240	raw := NoMethod(*s)
8241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8242}
8243
8244// SearchDeveloperMetadataResponse: A reply to a developer metadata
8245// search request.
8246type SearchDeveloperMetadataResponse struct {
8247	// MatchedDeveloperMetadata: The metadata matching the criteria of the
8248	// search request.
8249	MatchedDeveloperMetadata []*MatchedDeveloperMetadata `json:"matchedDeveloperMetadata,omitempty"`
8250
8251	// ServerResponse contains the HTTP response code and headers from the
8252	// server.
8253	googleapi.ServerResponse `json:"-"`
8254
8255	// ForceSendFields is a list of field names (e.g.
8256	// "MatchedDeveloperMetadata") to unconditionally include in API
8257	// requests. By default, fields with empty values are omitted from API
8258	// requests. However, any non-pointer, non-interface field appearing in
8259	// ForceSendFields will be sent to the server regardless of whether the
8260	// field is empty or not. This may be used to include empty fields in
8261	// Patch requests.
8262	ForceSendFields []string `json:"-"`
8263
8264	// NullFields is a list of field names (e.g. "MatchedDeveloperMetadata")
8265	// to include in API requests with the JSON null value. By default,
8266	// fields with empty values are omitted from API requests. However, any
8267	// field with an empty value appearing in NullFields will be sent to the
8268	// server as null. It is an error if a field in this list has a
8269	// non-empty value. This may be used to include null fields in Patch
8270	// requests.
8271	NullFields []string `json:"-"`
8272}
8273
8274func (s *SearchDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
8275	type NoMethod SearchDeveloperMetadataResponse
8276	raw := NoMethod(*s)
8277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8278}
8279
8280// SetBasicFilterRequest: Sets the basic filter associated with a sheet.
8281type SetBasicFilterRequest struct {
8282	// Filter: The filter to set.
8283	Filter *BasicFilter `json:"filter,omitempty"`
8284
8285	// ForceSendFields is a list of field names (e.g. "Filter") to
8286	// unconditionally include in API requests. By default, fields with
8287	// empty values are omitted from API requests. However, any non-pointer,
8288	// non-interface field appearing in ForceSendFields will be sent to the
8289	// server regardless of whether the field is empty or not. This may be
8290	// used to include empty fields in Patch requests.
8291	ForceSendFields []string `json:"-"`
8292
8293	// NullFields is a list of field names (e.g. "Filter") to include in API
8294	// requests with the JSON null value. By default, fields with empty
8295	// values are omitted from API requests. However, any field with an
8296	// empty value appearing in NullFields will be sent to the server as
8297	// null. It is an error if a field in this list has a non-empty value.
8298	// This may be used to include null fields in Patch requests.
8299	NullFields []string `json:"-"`
8300}
8301
8302func (s *SetBasicFilterRequest) MarshalJSON() ([]byte, error) {
8303	type NoMethod SetBasicFilterRequest
8304	raw := NoMethod(*s)
8305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8306}
8307
8308// SetDataValidationRequest: Sets a data validation rule to every cell
8309// in the range.
8310// To clear validation in a range, call this with no rule specified.
8311type SetDataValidationRequest struct {
8312	// Range: The range the data validation rule should apply to.
8313	Range *GridRange `json:"range,omitempty"`
8314
8315	// Rule: The data validation rule to set on each cell in the range,
8316	// or empty to clear the data validation in the range.
8317	Rule *DataValidationRule `json:"rule,omitempty"`
8318
8319	// ForceSendFields is a list of field names (e.g. "Range") to
8320	// unconditionally include in API requests. By default, fields with
8321	// empty values are omitted from API requests. However, any non-pointer,
8322	// non-interface field appearing in ForceSendFields will be sent to the
8323	// server regardless of whether the field is empty or not. This may be
8324	// used to include empty fields in Patch requests.
8325	ForceSendFields []string `json:"-"`
8326
8327	// NullFields is a list of field names (e.g. "Range") to include in API
8328	// requests with the JSON null value. By default, fields with empty
8329	// values are omitted from API requests. However, any field with an
8330	// empty value appearing in NullFields will be sent to the server as
8331	// null. It is an error if a field in this list has a non-empty value.
8332	// This may be used to include null fields in Patch requests.
8333	NullFields []string `json:"-"`
8334}
8335
8336func (s *SetDataValidationRequest) MarshalJSON() ([]byte, error) {
8337	type NoMethod SetDataValidationRequest
8338	raw := NoMethod(*s)
8339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8340}
8341
8342// Sheet: A sheet in a spreadsheet.
8343type Sheet struct {
8344	// BandedRanges: The banded (alternating colors) ranges on this sheet.
8345	BandedRanges []*BandedRange `json:"bandedRanges,omitempty"`
8346
8347	// BasicFilter: The filter on this sheet, if any.
8348	BasicFilter *BasicFilter `json:"basicFilter,omitempty"`
8349
8350	// Charts: The specifications of every chart on this sheet.
8351	Charts []*EmbeddedChart `json:"charts,omitempty"`
8352
8353	// ColumnGroups: All column groups on this sheet, ordered by increasing
8354	// range start index,
8355	// then by group depth.
8356	ColumnGroups []*DimensionGroup `json:"columnGroups,omitempty"`
8357
8358	// ConditionalFormats: The conditional format rules in this sheet.
8359	ConditionalFormats []*ConditionalFormatRule `json:"conditionalFormats,omitempty"`
8360
8361	// Data: Data in the grid, if this is a grid sheet.
8362	//
8363	// The number of GridData objects returned is dependent on the number
8364	// of
8365	// ranges requested on this sheet. For example, if this is
8366	// representing
8367	// `Sheet1`, and the spreadsheet was requested with
8368	// ranges
8369	// `Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will
8370	// have a
8371	// startRow/startColumn of `0`,
8372	// while the second one will have `startRow 14` (zero-based row 15),
8373	// and `startColumn 3` (zero-based column D).
8374	Data []*GridData `json:"data,omitempty"`
8375
8376	// DeveloperMetadata: The developer metadata associated with a sheet.
8377	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
8378
8379	// FilterViews: The filter views in this sheet.
8380	FilterViews []*FilterView `json:"filterViews,omitempty"`
8381
8382	// Merges: The ranges that are merged together.
8383	Merges []*GridRange `json:"merges,omitempty"`
8384
8385	// Properties: The properties of the sheet.
8386	Properties *SheetProperties `json:"properties,omitempty"`
8387
8388	// ProtectedRanges: The protected ranges in this sheet.
8389	ProtectedRanges []*ProtectedRange `json:"protectedRanges,omitempty"`
8390
8391	// RowGroups: All row groups on this sheet, ordered by increasing range
8392	// start index, then
8393	// by group depth.
8394	RowGroups []*DimensionGroup `json:"rowGroups,omitempty"`
8395
8396	// Slicers: The slicers on this sheet.
8397	Slicers []*Slicer `json:"slicers,omitempty"`
8398
8399	// ForceSendFields is a list of field names (e.g. "BandedRanges") to
8400	// unconditionally include in API requests. By default, fields with
8401	// empty values are omitted from API requests. However, any non-pointer,
8402	// non-interface field appearing in ForceSendFields will be sent to the
8403	// server regardless of whether the field is empty or not. This may be
8404	// used to include empty fields in Patch requests.
8405	ForceSendFields []string `json:"-"`
8406
8407	// NullFields is a list of field names (e.g. "BandedRanges") to include
8408	// in API requests with the JSON null value. By default, fields with
8409	// empty values are omitted from API requests. However, any field with
8410	// an empty value appearing in NullFields will be sent to the server as
8411	// null. It is an error if a field in this list has a non-empty value.
8412	// This may be used to include null fields in Patch requests.
8413	NullFields []string `json:"-"`
8414}
8415
8416func (s *Sheet) MarshalJSON() ([]byte, error) {
8417	type NoMethod Sheet
8418	raw := NoMethod(*s)
8419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8420}
8421
8422// SheetProperties: Properties of a sheet.
8423type SheetProperties struct {
8424	// GridProperties: Additional properties of the sheet if this sheet is a
8425	// grid.
8426	// (If the sheet is an object sheet, containing a chart or image,
8427	// then
8428	// this field will be absent.)
8429	// When writing it is an error to set any grid properties on non-grid
8430	// sheets.
8431	GridProperties *GridProperties `json:"gridProperties,omitempty"`
8432
8433	// Hidden: True if the sheet is hidden in the UI, false if it's visible.
8434	Hidden bool `json:"hidden,omitempty"`
8435
8436	// Index: The index of the sheet within the spreadsheet.
8437	// When adding or updating sheet properties, if this field
8438	// is excluded then the sheet is added or moved to the end
8439	// of the sheet list. When updating sheet indices or inserting
8440	// sheets, movement is considered in "before the move" indexes.
8441	// For example, if there were 3 sheets (S1, S2, S3) in order to
8442	// move S1 ahead of S2 the index would have to be set to 2. A
8443	// sheet
8444	// index update request is ignored if the requested index is
8445	// identical to the sheets current index or if the requested new
8446	// index is equal to the current sheet index + 1.
8447	Index int64 `json:"index,omitempty"`
8448
8449	// RightToLeft: True if the sheet is an RTL sheet instead of an LTR
8450	// sheet.
8451	RightToLeft bool `json:"rightToLeft,omitempty"`
8452
8453	// SheetId: The ID of the sheet. Must be non-negative.
8454	// This field cannot be changed once set.
8455	SheetId int64 `json:"sheetId,omitempty"`
8456
8457	// SheetType: The type of sheet. Defaults to GRID.
8458	// This field cannot be changed once set.
8459	//
8460	// Possible values:
8461	//   "SHEET_TYPE_UNSPECIFIED" - Default value, do not use.
8462	//   "GRID" - The sheet is a grid.
8463	//   "OBJECT" - The sheet has no grid and instead has an object like a
8464	// chart or image.
8465	SheetType string `json:"sheetType,omitempty"`
8466
8467	// TabColor: The color of the tab in the UI.
8468	TabColor *Color `json:"tabColor,omitempty"`
8469
8470	// TabColorStyle: The color of the tab in the UI.
8471	// If tab_color is also set, this field takes precedence.
8472	TabColorStyle *ColorStyle `json:"tabColorStyle,omitempty"`
8473
8474	// Title: The name of the sheet.
8475	Title string `json:"title,omitempty"`
8476
8477	// ServerResponse contains the HTTP response code and headers from the
8478	// server.
8479	googleapi.ServerResponse `json:"-"`
8480
8481	// ForceSendFields is a list of field names (e.g. "GridProperties") to
8482	// unconditionally include in API requests. By default, fields with
8483	// empty values are omitted from API requests. However, any non-pointer,
8484	// non-interface field appearing in ForceSendFields will be sent to the
8485	// server regardless of whether the field is empty or not. This may be
8486	// used to include empty fields in Patch requests.
8487	ForceSendFields []string `json:"-"`
8488
8489	// NullFields is a list of field names (e.g. "GridProperties") to
8490	// include in API requests with the JSON null value. By default, fields
8491	// with empty values are omitted from API requests. However, any field
8492	// with an empty value appearing in NullFields will be sent to the
8493	// server as null. It is an error if a field in this list has a
8494	// non-empty value. This may be used to include null fields in Patch
8495	// requests.
8496	NullFields []string `json:"-"`
8497}
8498
8499func (s *SheetProperties) MarshalJSON() ([]byte, error) {
8500	type NoMethod SheetProperties
8501	raw := NoMethod(*s)
8502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8503}
8504
8505// Slicer: A slicer in a sheet.
8506type Slicer struct {
8507	// Position: The position of the slicer. Note that slicer can be
8508	// positioned only on
8509	// existing sheet. Also, width and height of slicer can be
8510	// automatically
8511	// adjusted to keep it within permitted limits.
8512	Position *EmbeddedObjectPosition `json:"position,omitempty"`
8513
8514	// SlicerId: The ID of the slicer.
8515	SlicerId int64 `json:"slicerId,omitempty"`
8516
8517	// Spec: The specification of the slicer.
8518	Spec *SlicerSpec `json:"spec,omitempty"`
8519
8520	// ForceSendFields is a list of field names (e.g. "Position") to
8521	// unconditionally include in API requests. By default, fields with
8522	// empty values are omitted from API requests. However, any non-pointer,
8523	// non-interface field appearing in ForceSendFields will be sent to the
8524	// server regardless of whether the field is empty or not. This may be
8525	// used to include empty fields in Patch requests.
8526	ForceSendFields []string `json:"-"`
8527
8528	// NullFields is a list of field names (e.g. "Position") to include in
8529	// API requests with the JSON null value. By default, fields with empty
8530	// values are omitted from API requests. However, any field with an
8531	// empty value appearing in NullFields will be sent to the server as
8532	// null. It is an error if a field in this list has a non-empty value.
8533	// This may be used to include null fields in Patch requests.
8534	NullFields []string `json:"-"`
8535}
8536
8537func (s *Slicer) MarshalJSON() ([]byte, error) {
8538	type NoMethod Slicer
8539	raw := NoMethod(*s)
8540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8541}
8542
8543// SlicerSpec: The specifications of a slicer.
8544type SlicerSpec struct {
8545	// ApplyToPivotTables: True if the filter should apply to pivot
8546	// tables.
8547	// If not set, default to `True`.
8548	ApplyToPivotTables bool `json:"applyToPivotTables,omitempty"`
8549
8550	// BackgroundColor: The background color of the slicer.
8551	BackgroundColor *Color `json:"backgroundColor,omitempty"`
8552
8553	// BackgroundColorStyle: The background color of the slicer.
8554	// If background_color is also set, this field takes precedence.
8555	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
8556
8557	// ColumnIndex: The column index in the data table on which the filter
8558	// is applied to.
8559	ColumnIndex int64 `json:"columnIndex,omitempty"`
8560
8561	// DataRange: The data range of the slicer.
8562	DataRange *GridRange `json:"dataRange,omitempty"`
8563
8564	// FilterCriteria: The filtering criteria of the slicer.
8565	FilterCriteria *FilterCriteria `json:"filterCriteria,omitempty"`
8566
8567	// HorizontalAlignment: The horizontal alignment of title in the
8568	// slicer.
8569	// If unspecified, defaults to `LEFT`
8570	//
8571	// Possible values:
8572	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
8573	// specified. Do not use this.
8574	//   "LEFT" - The text is explicitly aligned to the left of the cell.
8575	//   "CENTER" - The text is explicitly aligned to the center of the
8576	// cell.
8577	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
8578	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
8579
8580	// TextFormat: The text format of title in the slicer.
8581	TextFormat *TextFormat `json:"textFormat,omitempty"`
8582
8583	// Title: The title of the slicer.
8584	Title string `json:"title,omitempty"`
8585
8586	// ForceSendFields is a list of field names (e.g. "ApplyToPivotTables")
8587	// to unconditionally include in API requests. By default, fields with
8588	// empty values are omitted from API requests. However, any non-pointer,
8589	// non-interface field appearing in ForceSendFields will be sent to the
8590	// server regardless of whether the field is empty or not. This may be
8591	// used to include empty fields in Patch requests.
8592	ForceSendFields []string `json:"-"`
8593
8594	// NullFields is a list of field names (e.g. "ApplyToPivotTables") to
8595	// include in API requests with the JSON null value. By default, fields
8596	// with empty values are omitted from API requests. However, any field
8597	// with an empty value appearing in NullFields will be sent to the
8598	// server as null. It is an error if a field in this list has a
8599	// non-empty value. This may be used to include null fields in Patch
8600	// requests.
8601	NullFields []string `json:"-"`
8602}
8603
8604func (s *SlicerSpec) MarshalJSON() ([]byte, error) {
8605	type NoMethod SlicerSpec
8606	raw := NoMethod(*s)
8607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8608}
8609
8610// SortRangeRequest: Sorts data in rows based on a sort order per
8611// column.
8612type SortRangeRequest struct {
8613	// Range: The range to sort.
8614	Range *GridRange `json:"range,omitempty"`
8615
8616	// SortSpecs: The sort order per column. Later specifications are used
8617	// when values
8618	// are equal in the earlier specifications.
8619	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
8620
8621	// ForceSendFields is a list of field names (e.g. "Range") to
8622	// unconditionally include in API requests. By default, fields with
8623	// empty values are omitted from API requests. However, any non-pointer,
8624	// non-interface field appearing in ForceSendFields will be sent to the
8625	// server regardless of whether the field is empty or not. This may be
8626	// used to include empty fields in Patch requests.
8627	ForceSendFields []string `json:"-"`
8628
8629	// NullFields is a list of field names (e.g. "Range") to include in API
8630	// requests with the JSON null value. By default, fields with empty
8631	// values are omitted from API requests. However, any field with an
8632	// empty value appearing in NullFields will be sent to the server as
8633	// null. It is an error if a field in this list has a non-empty value.
8634	// This may be used to include null fields in Patch requests.
8635	NullFields []string `json:"-"`
8636}
8637
8638func (s *SortRangeRequest) MarshalJSON() ([]byte, error) {
8639	type NoMethod SortRangeRequest
8640	raw := NoMethod(*s)
8641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8642}
8643
8644// SortSpec: A sort order associated with a specific column or row.
8645type SortSpec struct {
8646	// BackgroundColor: The background fill color to sort by; cells with
8647	// this fill color are sorted
8648	// to the top. Mutually exclusive with foreground_color.
8649	BackgroundColor *Color `json:"backgroundColor,omitempty"`
8650
8651	// BackgroundColorStyle: The background fill color to sort by; cells
8652	// with this fill color are sorted
8653	// to the top. Mutually exclusive with foreground_color, and must be
8654	// an
8655	// RGB-type color. If background_color is also set, this field
8656	// takes
8657	// precedence.
8658	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
8659
8660	// DimensionIndex: The dimension the sort should be applied to.
8661	DimensionIndex int64 `json:"dimensionIndex,omitempty"`
8662
8663	// ForegroundColor: The foreground color to sort by; cells with this
8664	// foreground color are
8665	// sorted to the top. Mutually exclusive with background_color.
8666	ForegroundColor *Color `json:"foregroundColor,omitempty"`
8667
8668	// ForegroundColorStyle: The foreground color to sort by; cells with
8669	// this foreground color are
8670	// sorted to the top. Mutually exclusive with background_color, and
8671	// must
8672	// be an RGB-type color. If foreground_color is also set, this field
8673	// takes
8674	// precedence.
8675	ForegroundColorStyle *ColorStyle `json:"foregroundColorStyle,omitempty"`
8676
8677	// SortOrder: The order data should be sorted.
8678	//
8679	// Possible values:
8680	//   "SORT_ORDER_UNSPECIFIED" - Default value, do not use this.
8681	//   "ASCENDING" - Sort ascending.
8682	//   "DESCENDING" - Sort descending.
8683	SortOrder string `json:"sortOrder,omitempty"`
8684
8685	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
8686	// unconditionally include in API requests. By default, fields with
8687	// empty values are omitted from API requests. However, any non-pointer,
8688	// non-interface field appearing in ForceSendFields will be sent to the
8689	// server regardless of whether the field is empty or not. This may be
8690	// used to include empty fields in Patch requests.
8691	ForceSendFields []string `json:"-"`
8692
8693	// NullFields is a list of field names (e.g. "BackgroundColor") to
8694	// include in API requests with the JSON null value. By default, fields
8695	// with empty values are omitted from API requests. However, any field
8696	// with an empty value appearing in NullFields will be sent to the
8697	// server as null. It is an error if a field in this list has a
8698	// non-empty value. This may be used to include null fields in Patch
8699	// requests.
8700	NullFields []string `json:"-"`
8701}
8702
8703func (s *SortSpec) MarshalJSON() ([]byte, error) {
8704	type NoMethod SortSpec
8705	raw := NoMethod(*s)
8706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8707}
8708
8709// SourceAndDestination: A combination of a source range and how to
8710// extend that source.
8711type SourceAndDestination struct {
8712	// Dimension: The dimension that data should be filled into.
8713	//
8714	// Possible values:
8715	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
8716	//   "ROWS" - Operates on the rows of a sheet.
8717	//   "COLUMNS" - Operates on the columns of a sheet.
8718	Dimension string `json:"dimension,omitempty"`
8719
8720	// FillLength: The number of rows or columns that data should be filled
8721	// into.
8722	// Positive numbers expand beyond the last row or last column
8723	// of the source.  Negative numbers expand before the first row
8724	// or first column of the source.
8725	FillLength int64 `json:"fillLength,omitempty"`
8726
8727	// Source: The location of the data to use as the source of the
8728	// autofill.
8729	Source *GridRange `json:"source,omitempty"`
8730
8731	// ForceSendFields is a list of field names (e.g. "Dimension") to
8732	// unconditionally include in API requests. By default, fields with
8733	// empty values are omitted from API requests. However, any non-pointer,
8734	// non-interface field appearing in ForceSendFields will be sent to the
8735	// server regardless of whether the field is empty or not. This may be
8736	// used to include empty fields in Patch requests.
8737	ForceSendFields []string `json:"-"`
8738
8739	// NullFields is a list of field names (e.g. "Dimension") to include in
8740	// API requests with the JSON null value. By default, fields with empty
8741	// values are omitted from API requests. However, any field with an
8742	// empty value appearing in NullFields will be sent to the server as
8743	// null. It is an error if a field in this list has a non-empty value.
8744	// This may be used to include null fields in Patch requests.
8745	NullFields []string `json:"-"`
8746}
8747
8748func (s *SourceAndDestination) MarshalJSON() ([]byte, error) {
8749	type NoMethod SourceAndDestination
8750	raw := NoMethod(*s)
8751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8752}
8753
8754// Spreadsheet: Resource that represents a spreadsheet.
8755type Spreadsheet struct {
8756	// DeveloperMetadata: The developer metadata associated with a
8757	// spreadsheet.
8758	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
8759
8760	// NamedRanges: The named ranges defined in a spreadsheet.
8761	NamedRanges []*NamedRange `json:"namedRanges,omitempty"`
8762
8763	// Properties: Overall properties of a spreadsheet.
8764	Properties *SpreadsheetProperties `json:"properties,omitempty"`
8765
8766	// Sheets: The sheets that are part of a spreadsheet.
8767	Sheets []*Sheet `json:"sheets,omitempty"`
8768
8769	// SpreadsheetId: The ID of the spreadsheet.
8770	// This field is read-only.
8771	SpreadsheetId string `json:"spreadsheetId,omitempty"`
8772
8773	// SpreadsheetUrl: The url of the spreadsheet.
8774	// This field is read-only.
8775	SpreadsheetUrl string `json:"spreadsheetUrl,omitempty"`
8776
8777	// ServerResponse contains the HTTP response code and headers from the
8778	// server.
8779	googleapi.ServerResponse `json:"-"`
8780
8781	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
8782	// to unconditionally include in API requests. By default, fields with
8783	// empty values are omitted from API requests. However, any non-pointer,
8784	// non-interface field appearing in ForceSendFields will be sent to the
8785	// server regardless of whether the field is empty or not. This may be
8786	// used to include empty fields in Patch requests.
8787	ForceSendFields []string `json:"-"`
8788
8789	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
8790	// include in API requests with the JSON null value. By default, fields
8791	// with empty values are omitted from API requests. However, any field
8792	// with an empty value appearing in NullFields will be sent to the
8793	// server as null. It is an error if a field in this list has a
8794	// non-empty value. This may be used to include null fields in Patch
8795	// requests.
8796	NullFields []string `json:"-"`
8797}
8798
8799func (s *Spreadsheet) MarshalJSON() ([]byte, error) {
8800	type NoMethod Spreadsheet
8801	raw := NoMethod(*s)
8802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8803}
8804
8805// SpreadsheetProperties: Properties of a spreadsheet.
8806type SpreadsheetProperties struct {
8807	// AutoRecalc: The amount of time to wait before volatile functions are
8808	// recalculated.
8809	//
8810	// Possible values:
8811	//   "RECALCULATION_INTERVAL_UNSPECIFIED" - Default value. This value
8812	// must not be used.
8813	//   "ON_CHANGE" - Volatile functions are updated on every change.
8814	//   "MINUTE" - Volatile functions are updated on every change and every
8815	// minute.
8816	//   "HOUR" - Volatile functions are updated on every change and hourly.
8817	AutoRecalc string `json:"autoRecalc,omitempty"`
8818
8819	// DefaultFormat: The default format of all cells in the
8820	// spreadsheet.
8821	// CellData.effectiveFormat will not be set if
8822	// the cell's format is equal to this default format. This field is
8823	// read-only.
8824	DefaultFormat *CellFormat `json:"defaultFormat,omitempty"`
8825
8826	// IterativeCalculationSettings: Determines whether and how circular
8827	// references are resolved with iterative
8828	// calculation.  Absence of this field means that circular references
8829	// result
8830	// in calculation errors.
8831	IterativeCalculationSettings *IterativeCalculationSettings `json:"iterativeCalculationSettings,omitempty"`
8832
8833	// Locale: The locale of the spreadsheet in one of the following
8834	// formats:
8835	//
8836	// * an ISO 639-1 language code such as `en`
8837	//
8838	// * an ISO 639-2 language code such as `fil`, if no 639-1 code
8839	// exists
8840	//
8841	// * a combination of the ISO language code and country code, such as
8842	// `en_US`
8843	//
8844	// Note: when updating this field, not all locales/languages are
8845	// supported.
8846	Locale string `json:"locale,omitempty"`
8847
8848	// SpreadsheetTheme: Theme applied to the spreadsheet.
8849	SpreadsheetTheme *SpreadsheetTheme `json:"spreadsheetTheme,omitempty"`
8850
8851	// TimeZone: The time zone of the spreadsheet, in CLDR format such
8852	// as
8853	// `America/New_York`. If the time zone isn't recognized, this may
8854	// be a custom time zone such as `GMT-07:00`.
8855	TimeZone string `json:"timeZone,omitempty"`
8856
8857	// Title: The title of the spreadsheet.
8858	Title string `json:"title,omitempty"`
8859
8860	// ForceSendFields is a list of field names (e.g. "AutoRecalc") to
8861	// unconditionally include in API requests. By default, fields with
8862	// empty values are omitted from API requests. However, any non-pointer,
8863	// non-interface field appearing in ForceSendFields will be sent to the
8864	// server regardless of whether the field is empty or not. This may be
8865	// used to include empty fields in Patch requests.
8866	ForceSendFields []string `json:"-"`
8867
8868	// NullFields is a list of field names (e.g. "AutoRecalc") to include in
8869	// API requests with the JSON null value. By default, fields with empty
8870	// values are omitted from API requests. However, any field with an
8871	// empty value appearing in NullFields will be sent to the server as
8872	// null. It is an error if a field in this list has a non-empty value.
8873	// This may be used to include null fields in Patch requests.
8874	NullFields []string `json:"-"`
8875}
8876
8877func (s *SpreadsheetProperties) MarshalJSON() ([]byte, error) {
8878	type NoMethod SpreadsheetProperties
8879	raw := NoMethod(*s)
8880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8881}
8882
8883// SpreadsheetTheme: Represents spreadsheet theme
8884type SpreadsheetTheme struct {
8885	// PrimaryFontFamily: / Name of the primary font family.
8886	PrimaryFontFamily string `json:"primaryFontFamily,omitempty"`
8887
8888	// ThemeColors: The spreadsheet theme color pairs. To update you must
8889	// provide all theme
8890	// color pairs.
8891	ThemeColors []*ThemeColorPair `json:"themeColors,omitempty"`
8892
8893	// ForceSendFields is a list of field names (e.g. "PrimaryFontFamily")
8894	// to unconditionally include in API requests. By default, fields with
8895	// empty values are omitted from API requests. However, any non-pointer,
8896	// non-interface field appearing in ForceSendFields will be sent to the
8897	// server regardless of whether the field is empty or not. This may be
8898	// used to include empty fields in Patch requests.
8899	ForceSendFields []string `json:"-"`
8900
8901	// NullFields is a list of field names (e.g. "PrimaryFontFamily") to
8902	// include in API requests with the JSON null value. By default, fields
8903	// with empty values are omitted from API requests. However, any field
8904	// with an empty value appearing in NullFields will be sent to the
8905	// server as null. It is an error if a field in this list has a
8906	// non-empty value. This may be used to include null fields in Patch
8907	// requests.
8908	NullFields []string `json:"-"`
8909}
8910
8911func (s *SpreadsheetTheme) MarshalJSON() ([]byte, error) {
8912	type NoMethod SpreadsheetTheme
8913	raw := NoMethod(*s)
8914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8915}
8916
8917// TextFormat: The format of a run of text in a cell.
8918// Absent values indicate that the field isn't specified.
8919type TextFormat struct {
8920	// Bold: True if the text is bold.
8921	Bold bool `json:"bold,omitempty"`
8922
8923	// FontFamily: The font family.
8924	FontFamily string `json:"fontFamily,omitempty"`
8925
8926	// FontSize: The size of the font.
8927	FontSize int64 `json:"fontSize,omitempty"`
8928
8929	// ForegroundColor: The foreground color of the text.
8930	ForegroundColor *Color `json:"foregroundColor,omitempty"`
8931
8932	// ForegroundColorStyle: The foreground color of the text.
8933	// If foreground_color is also set, this field takes precedence.
8934	ForegroundColorStyle *ColorStyle `json:"foregroundColorStyle,omitempty"`
8935
8936	// Italic: True if the text is italicized.
8937	Italic bool `json:"italic,omitempty"`
8938
8939	// Strikethrough: True if the text has a strikethrough.
8940	Strikethrough bool `json:"strikethrough,omitempty"`
8941
8942	// Underline: True if the text is underlined.
8943	Underline bool `json:"underline,omitempty"`
8944
8945	// ForceSendFields is a list of field names (e.g. "Bold") to
8946	// unconditionally include in API requests. By default, fields with
8947	// empty values are omitted from API requests. However, any non-pointer,
8948	// non-interface field appearing in ForceSendFields will be sent to the
8949	// server regardless of whether the field is empty or not. This may be
8950	// used to include empty fields in Patch requests.
8951	ForceSendFields []string `json:"-"`
8952
8953	// NullFields is a list of field names (e.g. "Bold") to include in API
8954	// requests with the JSON null value. By default, fields with empty
8955	// values are omitted from API requests. However, any field with an
8956	// empty value appearing in NullFields will be sent to the server as
8957	// null. It is an error if a field in this list has a non-empty value.
8958	// This may be used to include null fields in Patch requests.
8959	NullFields []string `json:"-"`
8960}
8961
8962func (s *TextFormat) MarshalJSON() ([]byte, error) {
8963	type NoMethod TextFormat
8964	raw := NoMethod(*s)
8965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8966}
8967
8968// TextFormatRun: A run of a text format. The format of this run
8969// continues until the start
8970// index of the next run.
8971// When updating, all fields must be set.
8972type TextFormatRun struct {
8973	// Format: The format of this run.  Absent values inherit the cell's
8974	// format.
8975	Format *TextFormat `json:"format,omitempty"`
8976
8977	// StartIndex: The character index where this run starts.
8978	StartIndex int64 `json:"startIndex,omitempty"`
8979
8980	// ForceSendFields is a list of field names (e.g. "Format") 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. "Format") 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 *TextFormatRun) MarshalJSON() ([]byte, error) {
8998	type NoMethod TextFormatRun
8999	raw := NoMethod(*s)
9000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9001}
9002
9003// TextPosition: Position settings for text.
9004type TextPosition struct {
9005	// HorizontalAlignment: Horizontal alignment setting for the piece of
9006	// text.
9007	//
9008	// Possible values:
9009	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
9010	// specified. Do not use this.
9011	//   "LEFT" - The text is explicitly aligned to the left of the cell.
9012	//   "CENTER" - The text is explicitly aligned to the center of the
9013	// cell.
9014	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
9015	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
9016
9017	// ForceSendFields is a list of field names (e.g. "HorizontalAlignment")
9018	// to unconditionally include in API requests. By default, fields with
9019	// empty values are omitted from API requests. However, any non-pointer,
9020	// non-interface field appearing in ForceSendFields will be sent to the
9021	// server regardless of whether the field is empty or not. This may be
9022	// used to include empty fields in Patch requests.
9023	ForceSendFields []string `json:"-"`
9024
9025	// NullFields is a list of field names (e.g. "HorizontalAlignment") to
9026	// include in API requests with the JSON null value. By default, fields
9027	// with empty values are omitted from API requests. However, any field
9028	// with an empty value appearing in NullFields will be sent to the
9029	// server as null. It is an error if a field in this list has a
9030	// non-empty value. This may be used to include null fields in Patch
9031	// requests.
9032	NullFields []string `json:"-"`
9033}
9034
9035func (s *TextPosition) MarshalJSON() ([]byte, error) {
9036	type NoMethod TextPosition
9037	raw := NoMethod(*s)
9038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9039}
9040
9041// TextRotation: The rotation applied to text in a cell.
9042type TextRotation struct {
9043	// Angle: The angle between the standard orientation and the desired
9044	// orientation.
9045	// Measured in degrees. Valid values are between -90 and 90.
9046	// Positive
9047	// angles are angled upwards, negative are angled downwards.
9048	//
9049	// Note: For LTR text direction positive angles are in
9050	// the
9051	// counterclockwise direction, whereas for RTL they are in the
9052	// clockwise
9053	// direction
9054	Angle int64 `json:"angle,omitempty"`
9055
9056	// Vertical: If true, text reads top to bottom, but the orientation of
9057	// individual
9058	// characters is unchanged.
9059	// For example:
9060	//
9061	//     | V |
9062	//     | e |
9063	//     | r |
9064	//     | t |
9065	//     | i |
9066	//     | c |
9067	//     | a |
9068	//     | l |
9069	Vertical bool `json:"vertical,omitempty"`
9070
9071	// ForceSendFields is a list of field names (e.g. "Angle") to
9072	// unconditionally include in API requests. By default, fields with
9073	// empty values are omitted from API requests. However, any non-pointer,
9074	// non-interface field appearing in ForceSendFields will be sent to the
9075	// server regardless of whether the field is empty or not. This may be
9076	// used to include empty fields in Patch requests.
9077	ForceSendFields []string `json:"-"`
9078
9079	// NullFields is a list of field names (e.g. "Angle") to include in API
9080	// requests with the JSON null value. By default, fields with empty
9081	// values are omitted from API requests. However, any field with an
9082	// empty value appearing in NullFields will be sent to the server as
9083	// null. It is an error if a field in this list has a non-empty value.
9084	// This may be used to include null fields in Patch requests.
9085	NullFields []string `json:"-"`
9086}
9087
9088func (s *TextRotation) MarshalJSON() ([]byte, error) {
9089	type NoMethod TextRotation
9090	raw := NoMethod(*s)
9091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9092}
9093
9094// TextToColumnsRequest: Splits a column of text into multiple
9095// columns,
9096// based on a delimiter in each cell.
9097type TextToColumnsRequest struct {
9098	// Delimiter: The delimiter to use. Used only if delimiterType
9099	// is
9100	// CUSTOM.
9101	Delimiter string `json:"delimiter,omitempty"`
9102
9103	// DelimiterType: The delimiter type to use.
9104	//
9105	// Possible values:
9106	//   "DELIMITER_TYPE_UNSPECIFIED" - Default value. This value must not
9107	// be used.
9108	//   "COMMA" - ","
9109	//   "SEMICOLON" - ";"
9110	//   "PERIOD" - "."
9111	//   "SPACE" - " "
9112	//   "CUSTOM" - A custom value as defined in delimiter.
9113	//   "AUTODETECT" - Automatically detect columns.
9114	DelimiterType string `json:"delimiterType,omitempty"`
9115
9116	// Source: The source data range.  This must span exactly one column.
9117	Source *GridRange `json:"source,omitempty"`
9118
9119	// ForceSendFields is a list of field names (e.g. "Delimiter") to
9120	// unconditionally include in API requests. By default, fields with
9121	// empty values are omitted from API requests. However, any non-pointer,
9122	// non-interface field appearing in ForceSendFields will be sent to the
9123	// server regardless of whether the field is empty or not. This may be
9124	// used to include empty fields in Patch requests.
9125	ForceSendFields []string `json:"-"`
9126
9127	// NullFields is a list of field names (e.g. "Delimiter") to include in
9128	// API requests with the JSON null value. By default, fields with empty
9129	// values are omitted from API requests. However, any field with an
9130	// empty value appearing in NullFields will be sent to the server as
9131	// null. It is an error if a field in this list has a non-empty value.
9132	// This may be used to include null fields in Patch requests.
9133	NullFields []string `json:"-"`
9134}
9135
9136func (s *TextToColumnsRequest) MarshalJSON() ([]byte, error) {
9137	type NoMethod TextToColumnsRequest
9138	raw := NoMethod(*s)
9139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9140}
9141
9142// ThemeColorPair: A pair mapping a spreadsheet theme color type to the
9143// concrete color it
9144// represents.
9145type ThemeColorPair struct {
9146	// Color: The concrete color corresponding to the theme color type.
9147	Color *ColorStyle `json:"color,omitempty"`
9148
9149	// ColorType: The type of the spreadsheet theme color.
9150	//
9151	// Possible values:
9152	//   "THEME_COLOR_TYPE_UNSPECIFIED" - Unspecified theme color
9153	//   "TEXT" - Represents the primary text color
9154	//   "BACKGROUND" - Represents the primary background color
9155	//   "ACCENT1" - Represents the first accent color
9156	//   "ACCENT2" - Represents the second accent color
9157	//   "ACCENT3" - Represents the third accent color
9158	//   "ACCENT4" - Represents the fourth accent color
9159	//   "ACCENT5" - Represents the fifth accent color
9160	//   "ACCENT6" - Represents the sixth accent color
9161	//   "LINK" - Represents the color to use for hyperlinks
9162	ColorType string `json:"colorType,omitempty"`
9163
9164	// ForceSendFields is a list of field names (e.g. "Color") to
9165	// unconditionally include in API requests. By default, fields with
9166	// empty values are omitted from API requests. However, any non-pointer,
9167	// non-interface field appearing in ForceSendFields will be sent to the
9168	// server regardless of whether the field is empty or not. This may be
9169	// used to include empty fields in Patch requests.
9170	ForceSendFields []string `json:"-"`
9171
9172	// NullFields is a list of field names (e.g. "Color") to include in API
9173	// requests with the JSON null value. By default, fields with empty
9174	// values are omitted from API requests. However, any field with an
9175	// empty value appearing in NullFields will be sent to the server as
9176	// null. It is an error if a field in this list has a non-empty value.
9177	// This may be used to include null fields in Patch requests.
9178	NullFields []string `json:"-"`
9179}
9180
9181func (s *ThemeColorPair) MarshalJSON() ([]byte, error) {
9182	type NoMethod ThemeColorPair
9183	raw := NoMethod(*s)
9184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9185}
9186
9187// TreemapChartColorScale: A color scale for a treemap chart.
9188type TreemapChartColorScale struct {
9189	// MaxValueColor: The background color for cells with a color value
9190	// greater than or equal
9191	// to maxValue. Defaults to #109618 if not
9192	// specified.
9193	MaxValueColor *Color `json:"maxValueColor,omitempty"`
9194
9195	// MaxValueColorStyle: The background color for cells with a color value
9196	// greater than or equal
9197	// to maxValue. Defaults to #109618 if not
9198	// specified.
9199	// If max_value_color is also set, this field takes precedence.
9200	MaxValueColorStyle *ColorStyle `json:"maxValueColorStyle,omitempty"`
9201
9202	// MidValueColor: The background color for cells with a color value at
9203	// the midpoint between
9204	// minValue and
9205	// maxValue. Defaults to #efe6dc if not
9206	// specified.
9207	MidValueColor *Color `json:"midValueColor,omitempty"`
9208
9209	// MidValueColorStyle: The background color for cells with a color value
9210	// at the midpoint between
9211	// minValue and
9212	// maxValue. Defaults to #efe6dc if not
9213	// specified.
9214	// If mid_value_color is also set, this field takes precedence.
9215	MidValueColorStyle *ColorStyle `json:"midValueColorStyle,omitempty"`
9216
9217	// MinValueColor: The background color for cells with a color value less
9218	// than or equal to
9219	// minValue. Defaults to #dc3912 if not
9220	// specified.
9221	MinValueColor *Color `json:"minValueColor,omitempty"`
9222
9223	// MinValueColorStyle: The background color for cells with a color value
9224	// less than or equal to
9225	// minValue. Defaults to #dc3912 if not
9226	// specified.
9227	// If min_value_color is also set, this field takes precedence.
9228	MinValueColorStyle *ColorStyle `json:"minValueColorStyle,omitempty"`
9229
9230	// NoDataColor: The background color for cells that have no color data
9231	// associated with
9232	// them. Defaults to #000000 if not specified.
9233	NoDataColor *Color `json:"noDataColor,omitempty"`
9234
9235	// NoDataColorStyle: The background color for cells that have no color
9236	// data associated with
9237	// them. Defaults to #000000 if not specified.
9238	// If no_data_color is also set, this field takes precedence.
9239	NoDataColorStyle *ColorStyle `json:"noDataColorStyle,omitempty"`
9240
9241	// ForceSendFields is a list of field names (e.g. "MaxValueColor") to
9242	// unconditionally include in API requests. By default, fields with
9243	// empty values are omitted from API requests. However, any non-pointer,
9244	// non-interface field appearing in ForceSendFields will be sent to the
9245	// server regardless of whether the field is empty or not. This may be
9246	// used to include empty fields in Patch requests.
9247	ForceSendFields []string `json:"-"`
9248
9249	// NullFields is a list of field names (e.g. "MaxValueColor") to include
9250	// in API requests with the JSON null value. By default, fields with
9251	// empty values are omitted from API requests. However, any field with
9252	// an empty value appearing in NullFields will be sent to the server as
9253	// null. It is an error if a field in this list has a non-empty value.
9254	// This may be used to include null fields in Patch requests.
9255	NullFields []string `json:"-"`
9256}
9257
9258func (s *TreemapChartColorScale) MarshalJSON() ([]byte, error) {
9259	type NoMethod TreemapChartColorScale
9260	raw := NoMethod(*s)
9261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9262}
9263
9264// TreemapChartSpec: A <a
9265// href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>.
9266type TreemapChartSpec struct {
9267	// ColorData: The data that determines the background color of each
9268	// treemap data cell.
9269	// This field is optional. If not specified, size_data is used
9270	// to
9271	// determine background colors. If specified, the data is expected to
9272	// be
9273	// numeric. color_scale will determine how the values in this data map
9274	// to
9275	// data cell background colors.
9276	ColorData *ChartData `json:"colorData,omitempty"`
9277
9278	// ColorScale: The color scale for data cells in the treemap chart. Data
9279	// cells are
9280	// assigned colors based on their color values. These color values come
9281	// from
9282	// color_data, or from size_data if color_data is not specified.
9283	// Cells with color values less than or equal to min_value will
9284	// have minValueColor as their
9285	// background color. Cells with color values greater than or equal
9286	// to
9287	// max_value will have
9288	// maxValueColor as their background
9289	// color. Cells with color values between min_value and max_value
9290	// will
9291	// have background colors on a gradient between
9292	// minValueColor and
9293	// maxValueColor, the midpoint of
9294	// the gradient being midValueColor.
9295	// Cells with missing or non-numeric color values will have
9296	// noDataColor as their background
9297	// color.
9298	ColorScale *TreemapChartColorScale `json:"colorScale,omitempty"`
9299
9300	// HeaderColor: The background color for header cells.
9301	HeaderColor *Color `json:"headerColor,omitempty"`
9302
9303	// HeaderColorStyle: The background color for header cells.
9304	// If header_color is also set, this field takes precedence.
9305	HeaderColorStyle *ColorStyle `json:"headerColorStyle,omitempty"`
9306
9307	// HideTooltips: True to hide tooltips.
9308	HideTooltips bool `json:"hideTooltips,omitempty"`
9309
9310	// HintedLevels: The number of additional data levels beyond the labeled
9311	// levels to be shown
9312	// on the treemap chart. These levels are not interactive and are
9313	// shown
9314	// without their labels. Defaults to 0 if not specified.
9315	HintedLevels int64 `json:"hintedLevels,omitempty"`
9316
9317	// Labels: The data that contains the treemap cell labels.
9318	Labels *ChartData `json:"labels,omitempty"`
9319
9320	// Levels: The number of data levels to show on the treemap chart. These
9321	// levels are
9322	// interactive and are shown with their labels. Defaults to 2 if
9323	// not
9324	// specified.
9325	Levels int64 `json:"levels,omitempty"`
9326
9327	// MaxValue: The maximum possible data value. Cells with values greater
9328	// than this will
9329	// have the same color as cells with this value. If not specified,
9330	// defaults
9331	// to the actual maximum value from color_data, or the maximum value
9332	// from
9333	// size_data if color_data is not specified.
9334	MaxValue float64 `json:"maxValue,omitempty"`
9335
9336	// MinValue: The minimum possible data value. Cells with values less
9337	// than this will
9338	// have the same color as cells with this value. If not specified,
9339	// defaults
9340	// to the actual minimum value from color_data, or the minimum value
9341	// from
9342	// size_data if color_data is not specified.
9343	MinValue float64 `json:"minValue,omitempty"`
9344
9345	// ParentLabels: The data the contains the treemap cells' parent labels.
9346	ParentLabels *ChartData `json:"parentLabels,omitempty"`
9347
9348	// SizeData: The data that determines the size of each treemap data
9349	// cell. This data is
9350	// expected to be numeric. The cells corresponding to non-numeric or
9351	// missing
9352	// data will not be rendered. If color_data is not specified, this
9353	// data
9354	// is used to determine data cell background colors as well.
9355	SizeData *ChartData `json:"sizeData,omitempty"`
9356
9357	// TextFormat: The text format for all labels on the chart.
9358	TextFormat *TextFormat `json:"textFormat,omitempty"`
9359
9360	// ForceSendFields is a list of field names (e.g. "ColorData") to
9361	// unconditionally include in API requests. By default, fields with
9362	// empty values are omitted from API requests. However, any non-pointer,
9363	// non-interface field appearing in ForceSendFields will be sent to the
9364	// server regardless of whether the field is empty or not. This may be
9365	// used to include empty fields in Patch requests.
9366	ForceSendFields []string `json:"-"`
9367
9368	// NullFields is a list of field names (e.g. "ColorData") to include in
9369	// API requests with the JSON null value. By default, fields with empty
9370	// values are omitted from API requests. However, any field with an
9371	// empty value appearing in NullFields will be sent to the server as
9372	// null. It is an error if a field in this list has a non-empty value.
9373	// This may be used to include null fields in Patch requests.
9374	NullFields []string `json:"-"`
9375}
9376
9377func (s *TreemapChartSpec) MarshalJSON() ([]byte, error) {
9378	type NoMethod TreemapChartSpec
9379	raw := NoMethod(*s)
9380	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9381}
9382
9383func (s *TreemapChartSpec) UnmarshalJSON(data []byte) error {
9384	type NoMethod TreemapChartSpec
9385	var s1 struct {
9386		MaxValue gensupport.JSONFloat64 `json:"maxValue"`
9387		MinValue gensupport.JSONFloat64 `json:"minValue"`
9388		*NoMethod
9389	}
9390	s1.NoMethod = (*NoMethod)(s)
9391	if err := json.Unmarshal(data, &s1); err != nil {
9392		return err
9393	}
9394	s.MaxValue = float64(s1.MaxValue)
9395	s.MinValue = float64(s1.MinValue)
9396	return nil
9397}
9398
9399// TrimWhitespaceRequest: Trims the whitespace (such as spaces, tabs, or
9400// new lines) in every cell in
9401// the specified range. This request removes all whitespace from the
9402// start and
9403// end of each cell's text, and reduces any subsequence of remaining
9404// whitespace
9405// characters to a single space. If the resulting trimmed text starts
9406// with a '+'
9407// or '=' character, the text remains as a string value and isn't
9408// interpreted
9409// as a formula.
9410type TrimWhitespaceRequest struct {
9411	// Range: The range whose cells to trim.
9412	Range *GridRange `json:"range,omitempty"`
9413
9414	// ForceSendFields is a list of field names (e.g. "Range") to
9415	// unconditionally include in API requests. By default, fields with
9416	// empty values are omitted from API requests. However, any non-pointer,
9417	// non-interface field appearing in ForceSendFields will be sent to the
9418	// server regardless of whether the field is empty or not. This may be
9419	// used to include empty fields in Patch requests.
9420	ForceSendFields []string `json:"-"`
9421
9422	// NullFields is a list of field names (e.g. "Range") to include in API
9423	// requests with the JSON null value. By default, fields with empty
9424	// values are omitted from API requests. However, any field with an
9425	// empty value appearing in NullFields will be sent to the server as
9426	// null. It is an error if a field in this list has a non-empty value.
9427	// This may be used to include null fields in Patch requests.
9428	NullFields []string `json:"-"`
9429}
9430
9431func (s *TrimWhitespaceRequest) MarshalJSON() ([]byte, error) {
9432	type NoMethod TrimWhitespaceRequest
9433	raw := NoMethod(*s)
9434	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9435}
9436
9437// TrimWhitespaceResponse: The result of trimming whitespace in cells.
9438type TrimWhitespaceResponse struct {
9439	// CellsChangedCount: The number of cells that were trimmed of
9440	// whitespace.
9441	CellsChangedCount int64 `json:"cellsChangedCount,omitempty"`
9442
9443	// ForceSendFields is a list of field names (e.g. "CellsChangedCount")
9444	// to unconditionally include in API requests. By default, fields with
9445	// empty values are omitted from API requests. However, any non-pointer,
9446	// non-interface field appearing in ForceSendFields will be sent to the
9447	// server regardless of whether the field is empty or not. This may be
9448	// used to include empty fields in Patch requests.
9449	ForceSendFields []string `json:"-"`
9450
9451	// NullFields is a list of field names (e.g. "CellsChangedCount") to
9452	// include in API requests with the JSON null value. By default, fields
9453	// with empty values are omitted from API requests. However, any field
9454	// with an empty value appearing in NullFields will be sent to the
9455	// server as null. It is an error if a field in this list has a
9456	// non-empty value. This may be used to include null fields in Patch
9457	// requests.
9458	NullFields []string `json:"-"`
9459}
9460
9461func (s *TrimWhitespaceResponse) MarshalJSON() ([]byte, error) {
9462	type NoMethod TrimWhitespaceResponse
9463	raw := NoMethod(*s)
9464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9465}
9466
9467// UnmergeCellsRequest: Unmerges cells in the given range.
9468type UnmergeCellsRequest struct {
9469	// Range: The range within which all cells should be unmerged.
9470	// If the range spans multiple merges, all will be unmerged.
9471	// The range must not partially span any merge.
9472	Range *GridRange `json:"range,omitempty"`
9473
9474	// ForceSendFields is a list of field names (e.g. "Range") to
9475	// unconditionally include in API requests. By default, fields with
9476	// empty values are omitted from API requests. However, any non-pointer,
9477	// non-interface field appearing in ForceSendFields will be sent to the
9478	// server regardless of whether the field is empty or not. This may be
9479	// used to include empty fields in Patch requests.
9480	ForceSendFields []string `json:"-"`
9481
9482	// NullFields is a list of field names (e.g. "Range") to include in API
9483	// requests with the JSON null value. By default, fields with empty
9484	// values are omitted from API requests. However, any field with an
9485	// empty value appearing in NullFields will be sent to the server as
9486	// null. It is an error if a field in this list has a non-empty value.
9487	// This may be used to include null fields in Patch requests.
9488	NullFields []string `json:"-"`
9489}
9490
9491func (s *UnmergeCellsRequest) MarshalJSON() ([]byte, error) {
9492	type NoMethod UnmergeCellsRequest
9493	raw := NoMethod(*s)
9494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9495}
9496
9497// UpdateBandingRequest: Updates properties of the supplied banded
9498// range.
9499type UpdateBandingRequest struct {
9500	// BandedRange: The banded range to update with the new properties.
9501	BandedRange *BandedRange `json:"bandedRange,omitempty"`
9502
9503	// Fields: The fields that should be updated.  At least one field must
9504	// be specified.
9505	// The root `bandedRange` is implied and should not be specified.
9506	// A single "*" can be used as short-hand for listing every field.
9507	Fields string `json:"fields,omitempty"`
9508
9509	// ForceSendFields is a list of field names (e.g. "BandedRange") to
9510	// unconditionally include in API requests. By default, fields with
9511	// empty values are omitted from API requests. However, any non-pointer,
9512	// non-interface field appearing in ForceSendFields will be sent to the
9513	// server regardless of whether the field is empty or not. This may be
9514	// used to include empty fields in Patch requests.
9515	ForceSendFields []string `json:"-"`
9516
9517	// NullFields is a list of field names (e.g. "BandedRange") to include
9518	// in API requests with the JSON null value. By default, fields with
9519	// empty values are omitted from API requests. However, any field with
9520	// an empty value appearing in NullFields will be sent to the server as
9521	// null. It is an error if a field in this list has a non-empty value.
9522	// This may be used to include null fields in Patch requests.
9523	NullFields []string `json:"-"`
9524}
9525
9526func (s *UpdateBandingRequest) MarshalJSON() ([]byte, error) {
9527	type NoMethod UpdateBandingRequest
9528	raw := NoMethod(*s)
9529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9530}
9531
9532// UpdateBordersRequest: Updates the borders of a range.
9533// If a field is not set in the request, that means the border remains
9534// as-is.
9535// For example, with two subsequent UpdateBordersRequest:
9536//
9537//  1. range: A1:A5 `{ top: RED, bottom: WHITE }`
9538//  2. range: A1:A5 `{ left: BLUE }`
9539//
9540// That would result in A1:A5 having a borders of
9541// `{ top: RED, bottom: WHITE, left: BLUE }`.
9542// If you want to clear a border, explicitly set the style to
9543// NONE.
9544type UpdateBordersRequest struct {
9545	// Bottom: The border to put at the bottom of the range.
9546	Bottom *Border `json:"bottom,omitempty"`
9547
9548	// InnerHorizontal: The horizontal border to put within the range.
9549	InnerHorizontal *Border `json:"innerHorizontal,omitempty"`
9550
9551	// InnerVertical: The vertical border to put within the range.
9552	InnerVertical *Border `json:"innerVertical,omitempty"`
9553
9554	// Left: The border to put at the left of the range.
9555	Left *Border `json:"left,omitempty"`
9556
9557	// Range: The range whose borders should be updated.
9558	Range *GridRange `json:"range,omitempty"`
9559
9560	// Right: The border to put at the right of the range.
9561	Right *Border `json:"right,omitempty"`
9562
9563	// Top: The border to put at the top of the range.
9564	Top *Border `json:"top,omitempty"`
9565
9566	// ForceSendFields is a list of field names (e.g. "Bottom") to
9567	// unconditionally include in API requests. By default, fields with
9568	// empty values are omitted from API requests. However, any non-pointer,
9569	// non-interface field appearing in ForceSendFields will be sent to the
9570	// server regardless of whether the field is empty or not. This may be
9571	// used to include empty fields in Patch requests.
9572	ForceSendFields []string `json:"-"`
9573
9574	// NullFields is a list of field names (e.g. "Bottom") to include in API
9575	// requests with the JSON null value. By default, fields with empty
9576	// values are omitted from API requests. However, any field with an
9577	// empty value appearing in NullFields will be sent to the server as
9578	// null. It is an error if a field in this list has a non-empty value.
9579	// This may be used to include null fields in Patch requests.
9580	NullFields []string `json:"-"`
9581}
9582
9583func (s *UpdateBordersRequest) MarshalJSON() ([]byte, error) {
9584	type NoMethod UpdateBordersRequest
9585	raw := NoMethod(*s)
9586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9587}
9588
9589// UpdateCellsRequest: Updates all cells in a range with new data.
9590type UpdateCellsRequest struct {
9591	// Fields: The fields of CellData that should be updated.
9592	// At least one field must be specified.
9593	// The root is the CellData; 'row.values.' should not be specified.
9594	// A single "*" can be used as short-hand for listing every field.
9595	Fields string `json:"fields,omitempty"`
9596
9597	// Range: The range to write data to.
9598	//
9599	// If the data in rows does not cover the entire requested range,
9600	// the fields matching those set in fields will be cleared.
9601	Range *GridRange `json:"range,omitempty"`
9602
9603	// Rows: The data to write.
9604	Rows []*RowData `json:"rows,omitempty"`
9605
9606	// Start: The coordinate to start writing data at.
9607	// Any number of rows and columns (including a different number
9608	// of
9609	// columns per row) may be written.
9610	Start *GridCoordinate `json:"start,omitempty"`
9611
9612	// ForceSendFields is a list of field names (e.g. "Fields") to
9613	// unconditionally include in API requests. By default, fields with
9614	// empty values are omitted from API requests. However, any non-pointer,
9615	// non-interface field appearing in ForceSendFields will be sent to the
9616	// server regardless of whether the field is empty or not. This may be
9617	// used to include empty fields in Patch requests.
9618	ForceSendFields []string `json:"-"`
9619
9620	// NullFields is a list of field names (e.g. "Fields") to include in API
9621	// requests with the JSON null value. By default, fields with empty
9622	// values are omitted from API requests. However, any field with an
9623	// empty value appearing in NullFields will be sent to the server as
9624	// null. It is an error if a field in this list has a non-empty value.
9625	// This may be used to include null fields in Patch requests.
9626	NullFields []string `json:"-"`
9627}
9628
9629func (s *UpdateCellsRequest) MarshalJSON() ([]byte, error) {
9630	type NoMethod UpdateCellsRequest
9631	raw := NoMethod(*s)
9632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9633}
9634
9635// UpdateChartSpecRequest: Updates a chart's specifications.
9636// (This does not move or resize a chart. To move or resize a chart,
9637// use
9638//  UpdateEmbeddedObjectPositionRequest.)
9639type UpdateChartSpecRequest struct {
9640	// ChartId: The ID of the chart to update.
9641	ChartId int64 `json:"chartId,omitempty"`
9642
9643	// Spec: The specification to apply to the chart.
9644	Spec *ChartSpec `json:"spec,omitempty"`
9645
9646	// ForceSendFields is a list of field names (e.g. "ChartId") to
9647	// unconditionally include in API requests. By default, fields with
9648	// empty values are omitted from API requests. However, any non-pointer,
9649	// non-interface field appearing in ForceSendFields will be sent to the
9650	// server regardless of whether the field is empty or not. This may be
9651	// used to include empty fields in Patch requests.
9652	ForceSendFields []string `json:"-"`
9653
9654	// NullFields is a list of field names (e.g. "ChartId") to include in
9655	// API requests with the JSON null value. By default, fields with empty
9656	// values are omitted from API requests. However, any field with an
9657	// empty value appearing in NullFields will be sent to the server as
9658	// null. It is an error if a field in this list has a non-empty value.
9659	// This may be used to include null fields in Patch requests.
9660	NullFields []string `json:"-"`
9661}
9662
9663func (s *UpdateChartSpecRequest) MarshalJSON() ([]byte, error) {
9664	type NoMethod UpdateChartSpecRequest
9665	raw := NoMethod(*s)
9666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9667}
9668
9669// UpdateConditionalFormatRuleRequest: Updates a conditional format rule
9670// at the given index,
9671// or moves a conditional format rule to another index.
9672type UpdateConditionalFormatRuleRequest struct {
9673	// Index: The zero-based index of the rule that should be replaced or
9674	// moved.
9675	Index int64 `json:"index,omitempty"`
9676
9677	// NewIndex: The zero-based new index the rule should end up at.
9678	NewIndex int64 `json:"newIndex,omitempty"`
9679
9680	// Rule: The rule that should replace the rule at the given index.
9681	Rule *ConditionalFormatRule `json:"rule,omitempty"`
9682
9683	// SheetId: The sheet of the rule to move.  Required if new_index is
9684	// set,
9685	// unused otherwise.
9686	SheetId int64 `json:"sheetId,omitempty"`
9687
9688	// ForceSendFields is a list of field names (e.g. "Index") to
9689	// unconditionally include in API requests. By default, fields with
9690	// empty values are omitted from API requests. However, any non-pointer,
9691	// non-interface field appearing in ForceSendFields will be sent to the
9692	// server regardless of whether the field is empty or not. This may be
9693	// used to include empty fields in Patch requests.
9694	ForceSendFields []string `json:"-"`
9695
9696	// NullFields is a list of field names (e.g. "Index") to include in API
9697	// requests with the JSON null value. By default, fields with empty
9698	// values are omitted from API requests. However, any field with an
9699	// empty value appearing in NullFields will be sent to the server as
9700	// null. It is an error if a field in this list has a non-empty value.
9701	// This may be used to include null fields in Patch requests.
9702	NullFields []string `json:"-"`
9703}
9704
9705func (s *UpdateConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
9706	type NoMethod UpdateConditionalFormatRuleRequest
9707	raw := NoMethod(*s)
9708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9709}
9710
9711// UpdateConditionalFormatRuleResponse: The result of updating a
9712// conditional format rule.
9713type UpdateConditionalFormatRuleResponse struct {
9714	// NewIndex: The index of the new rule.
9715	NewIndex int64 `json:"newIndex,omitempty"`
9716
9717	// NewRule: The new rule that replaced the old rule (if replacing),
9718	// or the rule that was moved (if moved)
9719	NewRule *ConditionalFormatRule `json:"newRule,omitempty"`
9720
9721	// OldIndex: The old index of the rule. Not set if a rule was
9722	// replaced
9723	// (because it is the same as new_index).
9724	OldIndex int64 `json:"oldIndex,omitempty"`
9725
9726	// OldRule: The old (deleted) rule. Not set if a rule was moved
9727	// (because it is the same as new_rule).
9728	OldRule *ConditionalFormatRule `json:"oldRule,omitempty"`
9729
9730	// ForceSendFields is a list of field names (e.g. "NewIndex") to
9731	// unconditionally include in API requests. By default, fields with
9732	// empty values are omitted from API requests. However, any non-pointer,
9733	// non-interface field appearing in ForceSendFields will be sent to the
9734	// server regardless of whether the field is empty or not. This may be
9735	// used to include empty fields in Patch requests.
9736	ForceSendFields []string `json:"-"`
9737
9738	// NullFields is a list of field names (e.g. "NewIndex") to include in
9739	// API requests with the JSON null value. By default, fields with empty
9740	// values are omitted from API requests. However, any field with an
9741	// empty value appearing in NullFields will be sent to the server as
9742	// null. It is an error if a field in this list has a non-empty value.
9743	// This may be used to include null fields in Patch requests.
9744	NullFields []string `json:"-"`
9745}
9746
9747func (s *UpdateConditionalFormatRuleResponse) MarshalJSON() ([]byte, error) {
9748	type NoMethod UpdateConditionalFormatRuleResponse
9749	raw := NoMethod(*s)
9750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9751}
9752
9753// UpdateDeveloperMetadataRequest: A request to update properties of
9754// developer metadata.
9755// Updates the properties of the developer metadata selected by the
9756// filters to
9757// the values provided in the DeveloperMetadata resource.  Callers
9758// must
9759// specify the properties they wish to update in the fields parameter,
9760// as well
9761// as specify at least one DataFilter matching the metadata they wish
9762// to
9763// update.
9764type UpdateDeveloperMetadataRequest struct {
9765	// DataFilters: The filters matching the developer metadata entries to
9766	// update.
9767	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
9768
9769	// DeveloperMetadata: The value that all metadata matched by the data
9770	// filters will be updated to.
9771	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
9772
9773	// Fields: The fields that should be updated.  At least one field must
9774	// be specified.
9775	// The root `developerMetadata` is implied and should not be
9776	// specified.
9777	// A single "*" can be used as short-hand for listing every field.
9778	Fields string `json:"fields,omitempty"`
9779
9780	// ForceSendFields is a list of field names (e.g. "DataFilters") to
9781	// unconditionally include in API requests. By default, fields with
9782	// empty values are omitted from API requests. However, any non-pointer,
9783	// non-interface field appearing in ForceSendFields will be sent to the
9784	// server regardless of whether the field is empty or not. This may be
9785	// used to include empty fields in Patch requests.
9786	ForceSendFields []string `json:"-"`
9787
9788	// NullFields is a list of field names (e.g. "DataFilters") to include
9789	// in API requests with the JSON null value. By default, fields with
9790	// empty values are omitted from API requests. However, any field with
9791	// an empty value appearing in NullFields will be sent to the server as
9792	// null. It is an error if a field in this list has a non-empty value.
9793	// This may be used to include null fields in Patch requests.
9794	NullFields []string `json:"-"`
9795}
9796
9797func (s *UpdateDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
9798	type NoMethod UpdateDeveloperMetadataRequest
9799	raw := NoMethod(*s)
9800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9801}
9802
9803// UpdateDeveloperMetadataResponse: The response from updating developer
9804// metadata.
9805type UpdateDeveloperMetadataResponse struct {
9806	// DeveloperMetadata: The updated developer metadata.
9807	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
9808
9809	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
9810	// to unconditionally include in API requests. By default, fields with
9811	// empty values are omitted from API requests. However, any non-pointer,
9812	// non-interface field appearing in ForceSendFields will be sent to the
9813	// server regardless of whether the field is empty or not. This may be
9814	// used to include empty fields in Patch requests.
9815	ForceSendFields []string `json:"-"`
9816
9817	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
9818	// include in API requests with the JSON null value. By default, fields
9819	// with empty values are omitted from API requests. However, any field
9820	// with an empty value appearing in NullFields will be sent to the
9821	// server as null. It is an error if a field in this list has a
9822	// non-empty value. This may be used to include null fields in Patch
9823	// requests.
9824	NullFields []string `json:"-"`
9825}
9826
9827func (s *UpdateDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
9828	type NoMethod UpdateDeveloperMetadataResponse
9829	raw := NoMethod(*s)
9830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9831}
9832
9833// UpdateDimensionGroupRequest: Updates the state of the specified
9834// group.
9835type UpdateDimensionGroupRequest struct {
9836	// DimensionGroup: The group whose state should be updated. The range
9837	// and depth of the group
9838	// should specify a valid group on the sheet, and all other fields
9839	// updated.
9840	DimensionGroup *DimensionGroup `json:"dimensionGroup,omitempty"`
9841
9842	// Fields: The fields that should be updated.  At least one field must
9843	// be specified.
9844	// The root `dimensionGroup` is implied and should not be specified.
9845	// A single "*" can be used as short-hand for listing every field.
9846	Fields string `json:"fields,omitempty"`
9847
9848	// ForceSendFields is a list of field names (e.g. "DimensionGroup") to
9849	// unconditionally include in API requests. By default, fields with
9850	// empty values are omitted from API requests. However, any non-pointer,
9851	// non-interface field appearing in ForceSendFields will be sent to the
9852	// server regardless of whether the field is empty or not. This may be
9853	// used to include empty fields in Patch requests.
9854	ForceSendFields []string `json:"-"`
9855
9856	// NullFields is a list of field names (e.g. "DimensionGroup") to
9857	// include in API requests with the JSON null value. By default, fields
9858	// with empty values are omitted from API requests. However, any field
9859	// with an empty value appearing in NullFields will be sent to the
9860	// server as null. It is an error if a field in this list has a
9861	// non-empty value. This may be used to include null fields in Patch
9862	// requests.
9863	NullFields []string `json:"-"`
9864}
9865
9866func (s *UpdateDimensionGroupRequest) MarshalJSON() ([]byte, error) {
9867	type NoMethod UpdateDimensionGroupRequest
9868	raw := NoMethod(*s)
9869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9870}
9871
9872// UpdateDimensionPropertiesRequest: Updates properties of dimensions
9873// within the specified range.
9874type UpdateDimensionPropertiesRequest struct {
9875	// Fields: The fields that should be updated.  At least one field must
9876	// be specified.
9877	// The root `properties` is implied and should not be specified.
9878	// A single "*" can be used as short-hand for listing every field.
9879	Fields string `json:"fields,omitempty"`
9880
9881	// Properties: Properties to update.
9882	Properties *DimensionProperties `json:"properties,omitempty"`
9883
9884	// Range: The rows or columns to update.
9885	Range *DimensionRange `json:"range,omitempty"`
9886
9887	// ForceSendFields is a list of field names (e.g. "Fields") to
9888	// unconditionally include in API requests. By default, fields with
9889	// empty values are omitted from API requests. However, any non-pointer,
9890	// non-interface field appearing in ForceSendFields will be sent to the
9891	// server regardless of whether the field is empty or not. This may be
9892	// used to include empty fields in Patch requests.
9893	ForceSendFields []string `json:"-"`
9894
9895	// NullFields is a list of field names (e.g. "Fields") to include in API
9896	// requests with the JSON null value. By default, fields with empty
9897	// values are omitted from API requests. However, any field with an
9898	// empty value appearing in NullFields will be sent to the server as
9899	// null. It is an error if a field in this list has a non-empty value.
9900	// This may be used to include null fields in Patch requests.
9901	NullFields []string `json:"-"`
9902}
9903
9904func (s *UpdateDimensionPropertiesRequest) MarshalJSON() ([]byte, error) {
9905	type NoMethod UpdateDimensionPropertiesRequest
9906	raw := NoMethod(*s)
9907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9908}
9909
9910// UpdateEmbeddedObjectPositionRequest: Update an embedded object's
9911// position (such as a moving or resizing a
9912// chart or image).
9913type UpdateEmbeddedObjectPositionRequest struct {
9914	// Fields: The fields of OverlayPosition
9915	// that should be updated when setting a new position. Used only
9916	// if
9917	// newPosition.overlayPosition
9918	// is set, in which case at least one field must
9919	// be specified.  The root `newPosition.overlayPosition` is implied
9920	// and
9921	// should not be specified.
9922	// A single "*" can be used as short-hand for listing every field.
9923	Fields string `json:"fields,omitempty"`
9924
9925	// NewPosition: An explicit position to move the embedded object to.
9926	// If newPosition.sheetId is set,
9927	// a new sheet with that ID will be created.
9928	// If newPosition.newSheet is set to true,
9929	// a new sheet will be created with an ID that will be chosen for you.
9930	NewPosition *EmbeddedObjectPosition `json:"newPosition,omitempty"`
9931
9932	// ObjectId: The ID of the object to moved.
9933	ObjectId int64 `json:"objectId,omitempty"`
9934
9935	// ForceSendFields is a list of field names (e.g. "Fields") to
9936	// unconditionally include in API requests. By default, fields with
9937	// empty values are omitted from API requests. However, any non-pointer,
9938	// non-interface field appearing in ForceSendFields will be sent to the
9939	// server regardless of whether the field is empty or not. This may be
9940	// used to include empty fields in Patch requests.
9941	ForceSendFields []string `json:"-"`
9942
9943	// NullFields is a list of field names (e.g. "Fields") to include in API
9944	// requests with the JSON null value. By default, fields with empty
9945	// values are omitted from API requests. However, any field with an
9946	// empty value appearing in NullFields will be sent to the server as
9947	// null. It is an error if a field in this list has a non-empty value.
9948	// This may be used to include null fields in Patch requests.
9949	NullFields []string `json:"-"`
9950}
9951
9952func (s *UpdateEmbeddedObjectPositionRequest) MarshalJSON() ([]byte, error) {
9953	type NoMethod UpdateEmbeddedObjectPositionRequest
9954	raw := NoMethod(*s)
9955	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9956}
9957
9958// UpdateEmbeddedObjectPositionResponse: The result of updating an
9959// embedded object's position.
9960type UpdateEmbeddedObjectPositionResponse struct {
9961	// Position: The new position of the embedded object.
9962	Position *EmbeddedObjectPosition `json:"position,omitempty"`
9963
9964	// ForceSendFields is a list of field names (e.g. "Position") to
9965	// unconditionally include in API requests. By default, fields with
9966	// empty values are omitted from API requests. However, any non-pointer,
9967	// non-interface field appearing in ForceSendFields will be sent to the
9968	// server regardless of whether the field is empty or not. This may be
9969	// used to include empty fields in Patch requests.
9970	ForceSendFields []string `json:"-"`
9971
9972	// NullFields is a list of field names (e.g. "Position") to include in
9973	// API requests with the JSON null value. By default, fields with empty
9974	// values are omitted from API requests. However, any field with an
9975	// empty value appearing in NullFields will be sent to the server as
9976	// null. It is an error if a field in this list has a non-empty value.
9977	// This may be used to include null fields in Patch requests.
9978	NullFields []string `json:"-"`
9979}
9980
9981func (s *UpdateEmbeddedObjectPositionResponse) MarshalJSON() ([]byte, error) {
9982	type NoMethod UpdateEmbeddedObjectPositionResponse
9983	raw := NoMethod(*s)
9984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9985}
9986
9987// UpdateFilterViewRequest: Updates properties of the filter view.
9988type UpdateFilterViewRequest struct {
9989	// Fields: The fields that should be updated.  At least one field must
9990	// be specified.
9991	// The root `filter` is implied and should not be specified.
9992	// A single "*" can be used as short-hand for listing every field.
9993	Fields string `json:"fields,omitempty"`
9994
9995	// Filter: The new properties of the filter view.
9996	Filter *FilterView `json:"filter,omitempty"`
9997
9998	// ForceSendFields is a list of field names (e.g. "Fields") to
9999	// unconditionally include in API requests. By default, fields with
10000	// empty values are omitted from API requests. However, any non-pointer,
10001	// non-interface field appearing in ForceSendFields will be sent to the
10002	// server regardless of whether the field is empty or not. This may be
10003	// used to include empty fields in Patch requests.
10004	ForceSendFields []string `json:"-"`
10005
10006	// NullFields is a list of field names (e.g. "Fields") to include in API
10007	// requests with the JSON null value. By default, fields with empty
10008	// values are omitted from API requests. However, any field with an
10009	// empty value appearing in NullFields will be sent to the server as
10010	// null. It is an error if a field in this list has a non-empty value.
10011	// This may be used to include null fields in Patch requests.
10012	NullFields []string `json:"-"`
10013}
10014
10015func (s *UpdateFilterViewRequest) MarshalJSON() ([]byte, error) {
10016	type NoMethod UpdateFilterViewRequest
10017	raw := NoMethod(*s)
10018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10019}
10020
10021// UpdateNamedRangeRequest: Updates properties of the named range with
10022// the specified
10023// namedRangeId.
10024type UpdateNamedRangeRequest struct {
10025	// Fields: The fields that should be updated.  At least one field must
10026	// be specified.
10027	// The root `namedRange` is implied and should not be specified.
10028	// A single "*" can be used as short-hand for listing every field.
10029	Fields string `json:"fields,omitempty"`
10030
10031	// NamedRange: The named range to update with the new properties.
10032	NamedRange *NamedRange `json:"namedRange,omitempty"`
10033
10034	// ForceSendFields is a list of field names (e.g. "Fields") to
10035	// unconditionally include in API requests. By default, fields with
10036	// empty values are omitted from API requests. However, any non-pointer,
10037	// non-interface field appearing in ForceSendFields will be sent to the
10038	// server regardless of whether the field is empty or not. This may be
10039	// used to include empty fields in Patch requests.
10040	ForceSendFields []string `json:"-"`
10041
10042	// NullFields is a list of field names (e.g. "Fields") to include in API
10043	// requests with the JSON null value. By default, fields with empty
10044	// values are omitted from API requests. However, any field with an
10045	// empty value appearing in NullFields will be sent to the server as
10046	// null. It is an error if a field in this list has a non-empty value.
10047	// This may be used to include null fields in Patch requests.
10048	NullFields []string `json:"-"`
10049}
10050
10051func (s *UpdateNamedRangeRequest) MarshalJSON() ([]byte, error) {
10052	type NoMethod UpdateNamedRangeRequest
10053	raw := NoMethod(*s)
10054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10055}
10056
10057// UpdateProtectedRangeRequest: Updates an existing protected range with
10058// the specified
10059// protectedRangeId.
10060type UpdateProtectedRangeRequest struct {
10061	// Fields: The fields that should be updated.  At least one field must
10062	// be specified.
10063	// The root `protectedRange` is implied and should not be specified.
10064	// A single "*" can be used as short-hand for listing every field.
10065	Fields string `json:"fields,omitempty"`
10066
10067	// ProtectedRange: The protected range to update with the new
10068	// properties.
10069	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
10070
10071	// ForceSendFields is a list of field names (e.g. "Fields") to
10072	// unconditionally include in API requests. By default, fields with
10073	// empty values are omitted from API requests. However, any non-pointer,
10074	// non-interface field appearing in ForceSendFields will be sent to the
10075	// server regardless of whether the field is empty or not. This may be
10076	// used to include empty fields in Patch requests.
10077	ForceSendFields []string `json:"-"`
10078
10079	// NullFields is a list of field names (e.g. "Fields") to include in API
10080	// requests with the JSON null value. By default, fields with empty
10081	// values are omitted from API requests. However, any field with an
10082	// empty value appearing in NullFields will be sent to the server as
10083	// null. It is an error if a field in this list has a non-empty value.
10084	// This may be used to include null fields in Patch requests.
10085	NullFields []string `json:"-"`
10086}
10087
10088func (s *UpdateProtectedRangeRequest) MarshalJSON() ([]byte, error) {
10089	type NoMethod UpdateProtectedRangeRequest
10090	raw := NoMethod(*s)
10091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10092}
10093
10094// UpdateSheetPropertiesRequest: Updates properties of the sheet with
10095// the specified
10096// sheetId.
10097type UpdateSheetPropertiesRequest struct {
10098	// Fields: The fields that should be updated.  At least one field must
10099	// be specified.
10100	// The root `properties` is implied and should not be specified.
10101	// A single "*" can be used as short-hand for listing every field.
10102	Fields string `json:"fields,omitempty"`
10103
10104	// Properties: The properties to update.
10105	Properties *SheetProperties `json:"properties,omitempty"`
10106
10107	// ForceSendFields is a list of field names (e.g. "Fields") to
10108	// unconditionally include in API requests. By default, fields with
10109	// empty values are omitted from API requests. However, any non-pointer,
10110	// non-interface field appearing in ForceSendFields will be sent to the
10111	// server regardless of whether the field is empty or not. This may be
10112	// used to include empty fields in Patch requests.
10113	ForceSendFields []string `json:"-"`
10114
10115	// NullFields is a list of field names (e.g. "Fields") to include in API
10116	// requests with the JSON null value. By default, fields with empty
10117	// values are omitted from API requests. However, any field with an
10118	// empty value appearing in NullFields will be sent to the server as
10119	// null. It is an error if a field in this list has a non-empty value.
10120	// This may be used to include null fields in Patch requests.
10121	NullFields []string `json:"-"`
10122}
10123
10124func (s *UpdateSheetPropertiesRequest) MarshalJSON() ([]byte, error) {
10125	type NoMethod UpdateSheetPropertiesRequest
10126	raw := NoMethod(*s)
10127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10128}
10129
10130// UpdateSlicerSpecRequest: Updates a slicer's specifications.
10131// (This does not move or resize a slicer. To move or resize a slicer
10132// use
10133// UpdateEmbeddedObjectPositionRequest.
10134type UpdateSlicerSpecRequest struct {
10135	// Fields: The fields that should be updated.  At least one field must
10136	// be specified.
10137	// The root `SlicerSpec` is implied and should not be specified. A
10138	// single "*"
10139	// can be used as short-hand for listing every field.
10140	Fields string `json:"fields,omitempty"`
10141
10142	// SlicerId: The id of the slicer to update.
10143	SlicerId int64 `json:"slicerId,omitempty"`
10144
10145	// Spec: The specification to apply to the slicer.
10146	Spec *SlicerSpec `json:"spec,omitempty"`
10147
10148	// ForceSendFields is a list of field names (e.g. "Fields") to
10149	// unconditionally include in API requests. By default, fields with
10150	// empty values are omitted from API requests. However, any non-pointer,
10151	// non-interface field appearing in ForceSendFields will be sent to the
10152	// server regardless of whether the field is empty or not. This may be
10153	// used to include empty fields in Patch requests.
10154	ForceSendFields []string `json:"-"`
10155
10156	// NullFields is a list of field names (e.g. "Fields") to include in API
10157	// requests with the JSON null value. By default, fields with empty
10158	// values are omitted from API requests. However, any field with an
10159	// empty value appearing in NullFields will be sent to the server as
10160	// null. It is an error if a field in this list has a non-empty value.
10161	// This may be used to include null fields in Patch requests.
10162	NullFields []string `json:"-"`
10163}
10164
10165func (s *UpdateSlicerSpecRequest) MarshalJSON() ([]byte, error) {
10166	type NoMethod UpdateSlicerSpecRequest
10167	raw := NoMethod(*s)
10168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10169}
10170
10171// UpdateSpreadsheetPropertiesRequest: Updates properties of a
10172// spreadsheet.
10173type UpdateSpreadsheetPropertiesRequest struct {
10174	// Fields: The fields that should be updated.  At least one field must
10175	// be specified.
10176	// The root 'properties' is implied and should not be specified.
10177	// A single "*" can be used as short-hand for listing every field.
10178	Fields string `json:"fields,omitempty"`
10179
10180	// Properties: The properties to update.
10181	Properties *SpreadsheetProperties `json:"properties,omitempty"`
10182
10183	// ForceSendFields is a list of field names (e.g. "Fields") to
10184	// unconditionally include in API requests. By default, fields with
10185	// empty values are omitted from API requests. However, any non-pointer,
10186	// non-interface field appearing in ForceSendFields will be sent to the
10187	// server regardless of whether the field is empty or not. This may be
10188	// used to include empty fields in Patch requests.
10189	ForceSendFields []string `json:"-"`
10190
10191	// NullFields is a list of field names (e.g. "Fields") to include in API
10192	// requests with the JSON null value. By default, fields with empty
10193	// values are omitted from API requests. However, any field with an
10194	// empty value appearing in NullFields will be sent to the server as
10195	// null. It is an error if a field in this list has a non-empty value.
10196	// This may be used to include null fields in Patch requests.
10197	NullFields []string `json:"-"`
10198}
10199
10200func (s *UpdateSpreadsheetPropertiesRequest) MarshalJSON() ([]byte, error) {
10201	type NoMethod UpdateSpreadsheetPropertiesRequest
10202	raw := NoMethod(*s)
10203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10204}
10205
10206// UpdateValuesByDataFilterResponse: The response when updating a range
10207// of values by a data filter in a
10208// spreadsheet.
10209type UpdateValuesByDataFilterResponse struct {
10210	// DataFilter: The data filter that selected the range that was updated.
10211	DataFilter *DataFilter `json:"dataFilter,omitempty"`
10212
10213	// UpdatedCells: The number of cells updated.
10214	UpdatedCells int64 `json:"updatedCells,omitempty"`
10215
10216	// UpdatedColumns: The number of columns where at least one cell in the
10217	// column was updated.
10218	UpdatedColumns int64 `json:"updatedColumns,omitempty"`
10219
10220	// UpdatedData: The values of the cells in the range matched by the
10221	// dataFilter after all
10222	// updates were applied. This is only included if the
10223	// request's
10224	// `includeValuesInResponse` field was `true`.
10225	UpdatedData *ValueRange `json:"updatedData,omitempty"`
10226
10227	// UpdatedRange: The range (in A1 notation) that updates were applied
10228	// to.
10229	UpdatedRange string `json:"updatedRange,omitempty"`
10230
10231	// UpdatedRows: The number of rows where at least one cell in the row
10232	// was updated.
10233	UpdatedRows int64 `json:"updatedRows,omitempty"`
10234
10235	// ForceSendFields is a list of field names (e.g. "DataFilter") to
10236	// unconditionally include in API requests. By default, fields with
10237	// empty values are omitted from API requests. However, any non-pointer,
10238	// non-interface field appearing in ForceSendFields will be sent to the
10239	// server regardless of whether the field is empty or not. This may be
10240	// used to include empty fields in Patch requests.
10241	ForceSendFields []string `json:"-"`
10242
10243	// NullFields is a list of field names (e.g. "DataFilter") to include in
10244	// API requests with the JSON null value. By default, fields with empty
10245	// values are omitted from API requests. However, any field with an
10246	// empty value appearing in NullFields will be sent to the server as
10247	// null. It is an error if a field in this list has a non-empty value.
10248	// This may be used to include null fields in Patch requests.
10249	NullFields []string `json:"-"`
10250}
10251
10252func (s *UpdateValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
10253	type NoMethod UpdateValuesByDataFilterResponse
10254	raw := NoMethod(*s)
10255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10256}
10257
10258// UpdateValuesResponse: The response when updating a range of values in
10259// a spreadsheet.
10260type UpdateValuesResponse struct {
10261	// SpreadsheetId: The spreadsheet the updates were applied to.
10262	SpreadsheetId string `json:"spreadsheetId,omitempty"`
10263
10264	// UpdatedCells: The number of cells updated.
10265	UpdatedCells int64 `json:"updatedCells,omitempty"`
10266
10267	// UpdatedColumns: The number of columns where at least one cell in the
10268	// column was updated.
10269	UpdatedColumns int64 `json:"updatedColumns,omitempty"`
10270
10271	// UpdatedData: The values of the cells after updates were applied.
10272	// This is only included if the request's `includeValuesInResponse`
10273	// field
10274	// was `true`.
10275	UpdatedData *ValueRange `json:"updatedData,omitempty"`
10276
10277	// UpdatedRange: The range (in A1 notation) that updates were applied
10278	// to.
10279	UpdatedRange string `json:"updatedRange,omitempty"`
10280
10281	// UpdatedRows: The number of rows where at least one cell in the row
10282	// was updated.
10283	UpdatedRows int64 `json:"updatedRows,omitempty"`
10284
10285	// ServerResponse contains the HTTP response code and headers from the
10286	// server.
10287	googleapi.ServerResponse `json:"-"`
10288
10289	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
10290	// unconditionally include in API requests. By default, fields with
10291	// empty values are omitted from API requests. However, any non-pointer,
10292	// non-interface field appearing in ForceSendFields will be sent to the
10293	// server regardless of whether the field is empty or not. This may be
10294	// used to include empty fields in Patch requests.
10295	ForceSendFields []string `json:"-"`
10296
10297	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
10298	// in API requests with the JSON null value. By default, fields with
10299	// empty values are omitted from API requests. However, any field with
10300	// an empty value appearing in NullFields will be sent to the server as
10301	// null. It is an error if a field in this list has a non-empty value.
10302	// This may be used to include null fields in Patch requests.
10303	NullFields []string `json:"-"`
10304}
10305
10306func (s *UpdateValuesResponse) MarshalJSON() ([]byte, error) {
10307	type NoMethod UpdateValuesResponse
10308	raw := NoMethod(*s)
10309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10310}
10311
10312// ValueRange: Data within a range of the spreadsheet.
10313type ValueRange struct {
10314	// MajorDimension: The major dimension of the values.
10315	//
10316	// For output, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
10317	// then requesting `range=A1:B2,majorDimension=ROWS` will
10318	// return
10319	// `[[1,2],[3,4]]`,
10320	// whereas requesting `range=A1:B2,majorDimension=COLUMNS` will
10321	// return
10322	// `[[1,3],[2,4]]`.
10323	//
10324	// For input, with `range=A1:B2,majorDimension=ROWS` then
10325	// `[[1,2],[3,4]]`
10326	// will set `A1=1,B1=2,A2=3,B2=4`. With
10327	// `range=A1:B2,majorDimension=COLUMNS`
10328	// then `[[1,2],[3,4]]` will set `A1=1,B1=3,A2=2,B2=4`.
10329	//
10330	// When writing, if this field is not set, it defaults to ROWS.
10331	//
10332	// Possible values:
10333	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
10334	//   "ROWS" - Operates on the rows of a sheet.
10335	//   "COLUMNS" - Operates on the columns of a sheet.
10336	MajorDimension string `json:"majorDimension,omitempty"`
10337
10338	// Range: The range the values cover, in A1 notation.
10339	// For output, this range indicates the entire requested range,
10340	// even though the values will exclude trailing rows and columns.
10341	// When appending values, this field represents the range to search for
10342	// a
10343	// table, after which values will be appended.
10344	Range string `json:"range,omitempty"`
10345
10346	// Values: The data that was read or to be written.  This is an array of
10347	// arrays,
10348	// the outer array representing all the data and each inner
10349	// array
10350	// representing a major dimension. Each item in the inner
10351	// array
10352	// corresponds with one cell.
10353	//
10354	// For output, empty trailing rows and columns will not be
10355	// included.
10356	//
10357	// For input, supported value types are: bool, string, and double.
10358	// Null values will be skipped.
10359	// To set a cell to an empty value, set the string value to an empty
10360	// string.
10361	Values [][]interface{} `json:"values,omitempty"`
10362
10363	// ServerResponse contains the HTTP response code and headers from the
10364	// server.
10365	googleapi.ServerResponse `json:"-"`
10366
10367	// ForceSendFields is a list of field names (e.g. "MajorDimension") to
10368	// unconditionally include in API requests. By default, fields with
10369	// empty values are omitted from API requests. However, any non-pointer,
10370	// non-interface field appearing in ForceSendFields will be sent to the
10371	// server regardless of whether the field is empty or not. This may be
10372	// used to include empty fields in Patch requests.
10373	ForceSendFields []string `json:"-"`
10374
10375	// NullFields is a list of field names (e.g. "MajorDimension") to
10376	// include in API requests with the JSON null value. By default, fields
10377	// with empty values are omitted from API requests. However, any field
10378	// with an empty value appearing in NullFields will be sent to the
10379	// server as null. It is an error if a field in this list has a
10380	// non-empty value. This may be used to include null fields in Patch
10381	// requests.
10382	NullFields []string `json:"-"`
10383}
10384
10385func (s *ValueRange) MarshalJSON() ([]byte, error) {
10386	type NoMethod ValueRange
10387	raw := NoMethod(*s)
10388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10389}
10390
10391// WaterfallChartColumnStyle: Styles for a waterfall chart column.
10392type WaterfallChartColumnStyle struct {
10393	// Color: The color of the column.
10394	Color *Color `json:"color,omitempty"`
10395
10396	// ColorStyle: The color of the column.
10397	// If color is also set, this field takes precedence.
10398	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
10399
10400	// Label: The label of the column's legend.
10401	Label string `json:"label,omitempty"`
10402
10403	// ForceSendFields is a list of field names (e.g. "Color") to
10404	// unconditionally include in API requests. By default, fields with
10405	// empty values are omitted from API requests. However, any non-pointer,
10406	// non-interface field appearing in ForceSendFields will be sent to the
10407	// server regardless of whether the field is empty or not. This may be
10408	// used to include empty fields in Patch requests.
10409	ForceSendFields []string `json:"-"`
10410
10411	// NullFields is a list of field names (e.g. "Color") to include in API
10412	// requests with the JSON null value. By default, fields with empty
10413	// values are omitted from API requests. However, any field with an
10414	// empty value appearing in NullFields will be sent to the server as
10415	// null. It is an error if a field in this list has a non-empty value.
10416	// This may be used to include null fields in Patch requests.
10417	NullFields []string `json:"-"`
10418}
10419
10420func (s *WaterfallChartColumnStyle) MarshalJSON() ([]byte, error) {
10421	type NoMethod WaterfallChartColumnStyle
10422	raw := NoMethod(*s)
10423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10424}
10425
10426// WaterfallChartCustomSubtotal: A custom subtotal column for a
10427// waterfall chart series.
10428type WaterfallChartCustomSubtotal struct {
10429	// DataIsSubtotal: True if the data point at subtotal_index is the
10430	// subtotal. If false,
10431	// the subtotal will be computed and appear after the data point.
10432	DataIsSubtotal bool `json:"dataIsSubtotal,omitempty"`
10433
10434	// Label: A label for the subtotal column.
10435	Label string `json:"label,omitempty"`
10436
10437	// SubtotalIndex: The 0-based index of a data point within the series.
10438	// If
10439	// data_is_subtotal is true, the data point at this index is
10440	// the
10441	// subtotal. Otherwise, the subtotal appears after the data point
10442	// with
10443	// this index. A series can have multiple subtotals at arbitrary
10444	// indices,
10445	// but subtotals do not affect the indices of the data points.
10446	// For
10447	// example, if a series has three data points, their indices will
10448	// always
10449	// be 0, 1, and 2, regardless of how many subtotals exist on the series
10450	// or
10451	// what data points they are associated with.
10452	SubtotalIndex int64 `json:"subtotalIndex,omitempty"`
10453
10454	// ForceSendFields is a list of field names (e.g. "DataIsSubtotal") to
10455	// unconditionally include in API requests. By default, fields with
10456	// empty values are omitted from API requests. However, any non-pointer,
10457	// non-interface field appearing in ForceSendFields will be sent to the
10458	// server regardless of whether the field is empty or not. This may be
10459	// used to include empty fields in Patch requests.
10460	ForceSendFields []string `json:"-"`
10461
10462	// NullFields is a list of field names (e.g. "DataIsSubtotal") to
10463	// include in API requests with the JSON null value. By default, fields
10464	// with empty values are omitted from API requests. However, any field
10465	// with an empty value appearing in NullFields will be sent to the
10466	// server as null. It is an error if a field in this list has a
10467	// non-empty value. This may be used to include null fields in Patch
10468	// requests.
10469	NullFields []string `json:"-"`
10470}
10471
10472func (s *WaterfallChartCustomSubtotal) MarshalJSON() ([]byte, error) {
10473	type NoMethod WaterfallChartCustomSubtotal
10474	raw := NoMethod(*s)
10475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10476}
10477
10478// WaterfallChartDomain: The domain of a waterfall chart.
10479type WaterfallChartDomain struct {
10480	// Data: The data of the WaterfallChartDomain.
10481	Data *ChartData `json:"data,omitempty"`
10482
10483	// Reversed: True to reverse the order of the domain values (horizontal
10484	// axis).
10485	Reversed bool `json:"reversed,omitempty"`
10486
10487	// ForceSendFields is a list of field names (e.g. "Data") to
10488	// unconditionally include in API requests. By default, fields with
10489	// empty values are omitted from API requests. However, any non-pointer,
10490	// non-interface field appearing in ForceSendFields will be sent to the
10491	// server regardless of whether the field is empty or not. This may be
10492	// used to include empty fields in Patch requests.
10493	ForceSendFields []string `json:"-"`
10494
10495	// NullFields is a list of field names (e.g. "Data") to include in API
10496	// requests with the JSON null value. By default, fields with empty
10497	// values are omitted from API requests. However, any field with an
10498	// empty value appearing in NullFields will be sent to the server as
10499	// null. It is an error if a field in this list has a non-empty value.
10500	// This may be used to include null fields in Patch requests.
10501	NullFields []string `json:"-"`
10502}
10503
10504func (s *WaterfallChartDomain) MarshalJSON() ([]byte, error) {
10505	type NoMethod WaterfallChartDomain
10506	raw := NoMethod(*s)
10507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10508}
10509
10510// WaterfallChartSeries: A single series of data for a waterfall chart.
10511type WaterfallChartSeries struct {
10512	// CustomSubtotals: Custom subtotal columns appearing in this series.
10513	// The order in which
10514	// subtotals are defined is not significant. Only one subtotal may
10515	// be
10516	// defined for each data point.
10517	CustomSubtotals []*WaterfallChartCustomSubtotal `json:"customSubtotals,omitempty"`
10518
10519	// Data: The data being visualized in this series.
10520	Data *ChartData `json:"data,omitempty"`
10521
10522	// HideTrailingSubtotal: True to hide the subtotal column from the end
10523	// of the series. By default,
10524	// a subtotal column will appear at the end of each series. Setting
10525	// this
10526	// field to true will hide that subtotal column for this series.
10527	HideTrailingSubtotal bool `json:"hideTrailingSubtotal,omitempty"`
10528
10529	// NegativeColumnsStyle: Styles for all columns in this series with
10530	// negative values.
10531	NegativeColumnsStyle *WaterfallChartColumnStyle `json:"negativeColumnsStyle,omitempty"`
10532
10533	// PositiveColumnsStyle: Styles for all columns in this series with
10534	// positive values.
10535	PositiveColumnsStyle *WaterfallChartColumnStyle `json:"positiveColumnsStyle,omitempty"`
10536
10537	// SubtotalColumnsStyle: Styles for all subtotal columns in this series.
10538	SubtotalColumnsStyle *WaterfallChartColumnStyle `json:"subtotalColumnsStyle,omitempty"`
10539
10540	// ForceSendFields is a list of field names (e.g. "CustomSubtotals") to
10541	// unconditionally include in API requests. By default, fields with
10542	// empty values are omitted from API requests. However, any non-pointer,
10543	// non-interface field appearing in ForceSendFields will be sent to the
10544	// server regardless of whether the field is empty or not. This may be
10545	// used to include empty fields in Patch requests.
10546	ForceSendFields []string `json:"-"`
10547
10548	// NullFields is a list of field names (e.g. "CustomSubtotals") to
10549	// include in API requests with the JSON null value. By default, fields
10550	// with empty values are omitted from API requests. However, any field
10551	// with an empty value appearing in NullFields will be sent to the
10552	// server as null. It is an error if a field in this list has a
10553	// non-empty value. This may be used to include null fields in Patch
10554	// requests.
10555	NullFields []string `json:"-"`
10556}
10557
10558func (s *WaterfallChartSeries) MarshalJSON() ([]byte, error) {
10559	type NoMethod WaterfallChartSeries
10560	raw := NoMethod(*s)
10561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10562}
10563
10564// WaterfallChartSpec: A waterfall chart.
10565type WaterfallChartSpec struct {
10566	// ConnectorLineStyle: The line style for the connector lines.
10567	ConnectorLineStyle *LineStyle `json:"connectorLineStyle,omitempty"`
10568
10569	// Domain: The domain data (horizontal axis) for the waterfall chart.
10570	Domain *WaterfallChartDomain `json:"domain,omitempty"`
10571
10572	// FirstValueIsTotal: True to interpret the first value as a total.
10573	FirstValueIsTotal bool `json:"firstValueIsTotal,omitempty"`
10574
10575	// HideConnectorLines: True to hide connector lines between columns.
10576	HideConnectorLines bool `json:"hideConnectorLines,omitempty"`
10577
10578	// Series: The data this waterfall chart is visualizing.
10579	Series []*WaterfallChartSeries `json:"series,omitempty"`
10580
10581	// StackedType: The stacked type.
10582	//
10583	// Possible values:
10584	//   "WATERFALL_STACKED_TYPE_UNSPECIFIED" - Default value, do not use.
10585	//   "STACKED" - Values corresponding to the same domain (horizontal
10586	// axis) value will be
10587	// stacked vertically.
10588	//   "SEQUENTIAL" - Series will spread out along the horizontal axis.
10589	StackedType string `json:"stackedType,omitempty"`
10590
10591	// ForceSendFields is a list of field names (e.g. "ConnectorLineStyle")
10592	// to unconditionally include in API requests. By default, fields with
10593	// empty values are omitted from API requests. However, any non-pointer,
10594	// non-interface field appearing in ForceSendFields will be sent to the
10595	// server regardless of whether the field is empty or not. This may be
10596	// used to include empty fields in Patch requests.
10597	ForceSendFields []string `json:"-"`
10598
10599	// NullFields is a list of field names (e.g. "ConnectorLineStyle") to
10600	// include in API requests with the JSON null value. By default, fields
10601	// with empty values are omitted from API requests. However, any field
10602	// with an empty value appearing in NullFields will be sent to the
10603	// server as null. It is an error if a field in this list has a
10604	// non-empty value. This may be used to include null fields in Patch
10605	// requests.
10606	NullFields []string `json:"-"`
10607}
10608
10609func (s *WaterfallChartSpec) MarshalJSON() ([]byte, error) {
10610	type NoMethod WaterfallChartSpec
10611	raw := NoMethod(*s)
10612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10613}
10614
10615// method id "sheets.spreadsheets.batchUpdate":
10616
10617type SpreadsheetsBatchUpdateCall struct {
10618	s                             *Service
10619	spreadsheetId                 string
10620	batchupdatespreadsheetrequest *BatchUpdateSpreadsheetRequest
10621	urlParams_                    gensupport.URLParams
10622	ctx_                          context.Context
10623	header_                       http.Header
10624}
10625
10626// BatchUpdate: Applies one or more updates to the spreadsheet.
10627//
10628// Each request is validated before
10629// being applied. If any request is not valid then the entire request
10630// will
10631// fail and nothing will be applied.
10632//
10633// Some requests have replies to
10634// give you some information about how
10635// they are applied. The replies will mirror the requests.  For
10636// example,
10637// if you applied 4 updates and the 3rd one had a reply, then
10638// the
10639// response will have 2 empty replies, the actual reply, and another
10640// empty
10641// reply, in that order.
10642//
10643// Due to the collaborative nature of spreadsheets, it is not guaranteed
10644// that
10645// the spreadsheet will reflect exactly your changes after this
10646// completes,
10647// however it is guaranteed that the updates in the request will
10648// be
10649// applied together atomically. Your changes may be altered with respect
10650// to
10651// collaborator changes. If there are no collaborators, the
10652// spreadsheet
10653// should reflect your changes.
10654func (r *SpreadsheetsService) BatchUpdate(spreadsheetId string, batchupdatespreadsheetrequest *BatchUpdateSpreadsheetRequest) *SpreadsheetsBatchUpdateCall {
10655	c := &SpreadsheetsBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10656	c.spreadsheetId = spreadsheetId
10657	c.batchupdatespreadsheetrequest = batchupdatespreadsheetrequest
10658	return c
10659}
10660
10661// Fields allows partial responses to be retrieved. See
10662// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10663// for more information.
10664func (c *SpreadsheetsBatchUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsBatchUpdateCall {
10665	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10666	return c
10667}
10668
10669// Context sets the context to be used in this call's Do method. Any
10670// pending HTTP request will be aborted if the provided context is
10671// canceled.
10672func (c *SpreadsheetsBatchUpdateCall) Context(ctx context.Context) *SpreadsheetsBatchUpdateCall {
10673	c.ctx_ = ctx
10674	return c
10675}
10676
10677// Header returns an http.Header that can be modified by the caller to
10678// add HTTP headers to the request.
10679func (c *SpreadsheetsBatchUpdateCall) Header() http.Header {
10680	if c.header_ == nil {
10681		c.header_ = make(http.Header)
10682	}
10683	return c.header_
10684}
10685
10686func (c *SpreadsheetsBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
10687	reqHeaders := make(http.Header)
10688	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
10689	for k, v := range c.header_ {
10690		reqHeaders[k] = v
10691	}
10692	reqHeaders.Set("User-Agent", c.s.userAgent())
10693	var body io.Reader = nil
10694	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatespreadsheetrequest)
10695	if err != nil {
10696		return nil, err
10697	}
10698	reqHeaders.Set("Content-Type", "application/json")
10699	c.urlParams_.Set("alt", alt)
10700	c.urlParams_.Set("prettyPrint", "false")
10701	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}:batchUpdate")
10702	urls += "?" + c.urlParams_.Encode()
10703	req, err := http.NewRequest("POST", urls, body)
10704	if err != nil {
10705		return nil, err
10706	}
10707	req.Header = reqHeaders
10708	googleapi.Expand(req.URL, map[string]string{
10709		"spreadsheetId": c.spreadsheetId,
10710	})
10711	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10712}
10713
10714// Do executes the "sheets.spreadsheets.batchUpdate" call.
10715// Exactly one of *BatchUpdateSpreadsheetResponse or error will be
10716// non-nil. Any non-2xx status code is an error. Response headers are in
10717// either *BatchUpdateSpreadsheetResponse.ServerResponse.Header or (if a
10718// response was returned at all) in error.(*googleapi.Error).Header. Use
10719// googleapi.IsNotModified to check whether the returned error was
10720// because http.StatusNotModified was returned.
10721func (c *SpreadsheetsBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdateSpreadsheetResponse, error) {
10722	gensupport.SetOptions(c.urlParams_, opts...)
10723	res, err := c.doRequest("json")
10724	if res != nil && res.StatusCode == http.StatusNotModified {
10725		if res.Body != nil {
10726			res.Body.Close()
10727		}
10728		return nil, &googleapi.Error{
10729			Code:   res.StatusCode,
10730			Header: res.Header,
10731		}
10732	}
10733	if err != nil {
10734		return nil, err
10735	}
10736	defer googleapi.CloseBody(res)
10737	if err := googleapi.CheckResponse(res); err != nil {
10738		return nil, err
10739	}
10740	ret := &BatchUpdateSpreadsheetResponse{
10741		ServerResponse: googleapi.ServerResponse{
10742			Header:         res.Header,
10743			HTTPStatusCode: res.StatusCode,
10744		},
10745	}
10746	target := &ret
10747	if err := gensupport.DecodeResponse(target, res); err != nil {
10748		return nil, err
10749	}
10750	return ret, nil
10751	// {
10752	//   "description": "Applies one or more updates to the spreadsheet.\n\nEach request is validated before\nbeing applied. If any request is not valid then the entire request will\nfail and nothing will be applied.\n\nSome requests have replies to\ngive you some information about how\nthey are applied. The replies will mirror the requests.  For example,\nif you applied 4 updates and the 3rd one had a reply, then the\nresponse will have 2 empty replies, the actual reply, and another empty\nreply, in that order.\n\nDue to the collaborative nature of spreadsheets, it is not guaranteed that\nthe spreadsheet will reflect exactly your changes after this completes,\nhowever it is guaranteed that the updates in the request will be\napplied together atomically. Your changes may be altered with respect to\ncollaborator changes. If there are no collaborators, the spreadsheet\nshould reflect your changes.",
10753	//   "flatPath": "v4/spreadsheets/{spreadsheetId}:batchUpdate",
10754	//   "httpMethod": "POST",
10755	//   "id": "sheets.spreadsheets.batchUpdate",
10756	//   "parameterOrder": [
10757	//     "spreadsheetId"
10758	//   ],
10759	//   "parameters": {
10760	//     "spreadsheetId": {
10761	//       "description": "The spreadsheet to apply the updates to.",
10762	//       "location": "path",
10763	//       "required": true,
10764	//       "type": "string"
10765	//     }
10766	//   },
10767	//   "path": "v4/spreadsheets/{spreadsheetId}:batchUpdate",
10768	//   "request": {
10769	//     "$ref": "BatchUpdateSpreadsheetRequest"
10770	//   },
10771	//   "response": {
10772	//     "$ref": "BatchUpdateSpreadsheetResponse"
10773	//   },
10774	//   "scopes": [
10775	//     "https://www.googleapis.com/auth/drive",
10776	//     "https://www.googleapis.com/auth/drive.file",
10777	//     "https://www.googleapis.com/auth/spreadsheets"
10778	//   ]
10779	// }
10780
10781}
10782
10783// method id "sheets.spreadsheets.create":
10784
10785type SpreadsheetsCreateCall struct {
10786	s           *Service
10787	spreadsheet *Spreadsheet
10788	urlParams_  gensupport.URLParams
10789	ctx_        context.Context
10790	header_     http.Header
10791}
10792
10793// Create: Creates a spreadsheet, returning the newly created
10794// spreadsheet.
10795func (r *SpreadsheetsService) Create(spreadsheet *Spreadsheet) *SpreadsheetsCreateCall {
10796	c := &SpreadsheetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10797	c.spreadsheet = spreadsheet
10798	return c
10799}
10800
10801// Fields allows partial responses to be retrieved. See
10802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10803// for more information.
10804func (c *SpreadsheetsCreateCall) Fields(s ...googleapi.Field) *SpreadsheetsCreateCall {
10805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10806	return c
10807}
10808
10809// Context sets the context to be used in this call's Do method. Any
10810// pending HTTP request will be aborted if the provided context is
10811// canceled.
10812func (c *SpreadsheetsCreateCall) Context(ctx context.Context) *SpreadsheetsCreateCall {
10813	c.ctx_ = ctx
10814	return c
10815}
10816
10817// Header returns an http.Header that can be modified by the caller to
10818// add HTTP headers to the request.
10819func (c *SpreadsheetsCreateCall) Header() http.Header {
10820	if c.header_ == nil {
10821		c.header_ = make(http.Header)
10822	}
10823	return c.header_
10824}
10825
10826func (c *SpreadsheetsCreateCall) doRequest(alt string) (*http.Response, error) {
10827	reqHeaders := make(http.Header)
10828	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
10829	for k, v := range c.header_ {
10830		reqHeaders[k] = v
10831	}
10832	reqHeaders.Set("User-Agent", c.s.userAgent())
10833	var body io.Reader = nil
10834	body, err := googleapi.WithoutDataWrapper.JSONReader(c.spreadsheet)
10835	if err != nil {
10836		return nil, err
10837	}
10838	reqHeaders.Set("Content-Type", "application/json")
10839	c.urlParams_.Set("alt", alt)
10840	c.urlParams_.Set("prettyPrint", "false")
10841	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets")
10842	urls += "?" + c.urlParams_.Encode()
10843	req, err := http.NewRequest("POST", urls, body)
10844	if err != nil {
10845		return nil, err
10846	}
10847	req.Header = reqHeaders
10848	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10849}
10850
10851// Do executes the "sheets.spreadsheets.create" call.
10852// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
10853// status code is an error. Response headers are in either
10854// *Spreadsheet.ServerResponse.Header or (if a response was returned at
10855// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10856// to check whether the returned error was because
10857// http.StatusNotModified was returned.
10858func (c *SpreadsheetsCreateCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
10859	gensupport.SetOptions(c.urlParams_, opts...)
10860	res, err := c.doRequest("json")
10861	if res != nil && res.StatusCode == http.StatusNotModified {
10862		if res.Body != nil {
10863			res.Body.Close()
10864		}
10865		return nil, &googleapi.Error{
10866			Code:   res.StatusCode,
10867			Header: res.Header,
10868		}
10869	}
10870	if err != nil {
10871		return nil, err
10872	}
10873	defer googleapi.CloseBody(res)
10874	if err := googleapi.CheckResponse(res); err != nil {
10875		return nil, err
10876	}
10877	ret := &Spreadsheet{
10878		ServerResponse: googleapi.ServerResponse{
10879			Header:         res.Header,
10880			HTTPStatusCode: res.StatusCode,
10881		},
10882	}
10883	target := &ret
10884	if err := gensupport.DecodeResponse(target, res); err != nil {
10885		return nil, err
10886	}
10887	return ret, nil
10888	// {
10889	//   "description": "Creates a spreadsheet, returning the newly created spreadsheet.",
10890	//   "flatPath": "v4/spreadsheets",
10891	//   "httpMethod": "POST",
10892	//   "id": "sheets.spreadsheets.create",
10893	//   "parameterOrder": [],
10894	//   "parameters": {},
10895	//   "path": "v4/spreadsheets",
10896	//   "request": {
10897	//     "$ref": "Spreadsheet"
10898	//   },
10899	//   "response": {
10900	//     "$ref": "Spreadsheet"
10901	//   },
10902	//   "scopes": [
10903	//     "https://www.googleapis.com/auth/drive",
10904	//     "https://www.googleapis.com/auth/drive.file",
10905	//     "https://www.googleapis.com/auth/spreadsheets"
10906	//   ]
10907	// }
10908
10909}
10910
10911// method id "sheets.spreadsheets.get":
10912
10913type SpreadsheetsGetCall struct {
10914	s             *Service
10915	spreadsheetId string
10916	urlParams_    gensupport.URLParams
10917	ifNoneMatch_  string
10918	ctx_          context.Context
10919	header_       http.Header
10920}
10921
10922// Get: Returns the spreadsheet at the given ID.
10923// The caller must specify the spreadsheet ID.
10924//
10925// By default, data within grids will not be returned.
10926// You can include grid data one of two ways:
10927//
10928// * Specify a field mask listing your desired fields using the `fields`
10929// URL
10930// parameter in HTTP
10931//
10932// * Set the includeGridData
10933// URL parameter to true.  If a field mask is set, the
10934// `includeGridData`
10935// parameter is ignored
10936//
10937// For large spreadsheets, it is recommended to retrieve only the
10938// specific
10939// fields of the spreadsheet that you want.
10940//
10941// To retrieve only subsets of the spreadsheet, use the
10942// ranges URL parameter.
10943// Multiple ranges can be specified.  Limiting the range will
10944// return only the portions of the spreadsheet that intersect the
10945// requested
10946// ranges. Ranges are specified using A1 notation.
10947func (r *SpreadsheetsService) Get(spreadsheetId string) *SpreadsheetsGetCall {
10948	c := &SpreadsheetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10949	c.spreadsheetId = spreadsheetId
10950	return c
10951}
10952
10953// IncludeGridData sets the optional parameter "includeGridData": True
10954// if grid data should be returned.
10955// This parameter is ignored if a field mask was set in the request.
10956func (c *SpreadsheetsGetCall) IncludeGridData(includeGridData bool) *SpreadsheetsGetCall {
10957	c.urlParams_.Set("includeGridData", fmt.Sprint(includeGridData))
10958	return c
10959}
10960
10961// Ranges sets the optional parameter "ranges": The ranges to retrieve
10962// from the spreadsheet.
10963func (c *SpreadsheetsGetCall) Ranges(ranges ...string) *SpreadsheetsGetCall {
10964	c.urlParams_.SetMulti("ranges", append([]string{}, ranges...))
10965	return c
10966}
10967
10968// Fields allows partial responses to be retrieved. See
10969// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10970// for more information.
10971func (c *SpreadsheetsGetCall) Fields(s ...googleapi.Field) *SpreadsheetsGetCall {
10972	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10973	return c
10974}
10975
10976// IfNoneMatch sets the optional parameter which makes the operation
10977// fail if the object's ETag matches the given value. This is useful for
10978// getting updates only after the object has changed since the last
10979// request. Use googleapi.IsNotModified to check whether the response
10980// error from Do is the result of In-None-Match.
10981func (c *SpreadsheetsGetCall) IfNoneMatch(entityTag string) *SpreadsheetsGetCall {
10982	c.ifNoneMatch_ = entityTag
10983	return c
10984}
10985
10986// Context sets the context to be used in this call's Do method. Any
10987// pending HTTP request will be aborted if the provided context is
10988// canceled.
10989func (c *SpreadsheetsGetCall) Context(ctx context.Context) *SpreadsheetsGetCall {
10990	c.ctx_ = ctx
10991	return c
10992}
10993
10994// Header returns an http.Header that can be modified by the caller to
10995// add HTTP headers to the request.
10996func (c *SpreadsheetsGetCall) Header() http.Header {
10997	if c.header_ == nil {
10998		c.header_ = make(http.Header)
10999	}
11000	return c.header_
11001}
11002
11003func (c *SpreadsheetsGetCall) doRequest(alt string) (*http.Response, error) {
11004	reqHeaders := make(http.Header)
11005	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
11006	for k, v := range c.header_ {
11007		reqHeaders[k] = v
11008	}
11009	reqHeaders.Set("User-Agent", c.s.userAgent())
11010	if c.ifNoneMatch_ != "" {
11011		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11012	}
11013	var body io.Reader = nil
11014	c.urlParams_.Set("alt", alt)
11015	c.urlParams_.Set("prettyPrint", "false")
11016	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}")
11017	urls += "?" + c.urlParams_.Encode()
11018	req, err := http.NewRequest("GET", urls, body)
11019	if err != nil {
11020		return nil, err
11021	}
11022	req.Header = reqHeaders
11023	googleapi.Expand(req.URL, map[string]string{
11024		"spreadsheetId": c.spreadsheetId,
11025	})
11026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11027}
11028
11029// Do executes the "sheets.spreadsheets.get" call.
11030// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
11031// status code is an error. Response headers are in either
11032// *Spreadsheet.ServerResponse.Header or (if a response was returned at
11033// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11034// to check whether the returned error was because
11035// http.StatusNotModified was returned.
11036func (c *SpreadsheetsGetCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
11037	gensupport.SetOptions(c.urlParams_, opts...)
11038	res, err := c.doRequest("json")
11039	if res != nil && res.StatusCode == http.StatusNotModified {
11040		if res.Body != nil {
11041			res.Body.Close()
11042		}
11043		return nil, &googleapi.Error{
11044			Code:   res.StatusCode,
11045			Header: res.Header,
11046		}
11047	}
11048	if err != nil {
11049		return nil, err
11050	}
11051	defer googleapi.CloseBody(res)
11052	if err := googleapi.CheckResponse(res); err != nil {
11053		return nil, err
11054	}
11055	ret := &Spreadsheet{
11056		ServerResponse: googleapi.ServerResponse{
11057			Header:         res.Header,
11058			HTTPStatusCode: res.StatusCode,
11059		},
11060	}
11061	target := &ret
11062	if err := gensupport.DecodeResponse(target, res); err != nil {
11063		return nil, err
11064	}
11065	return ret, nil
11066	// {
11067	//   "description": "Returns the spreadsheet at the given ID.\nThe caller must specify the spreadsheet ID.\n\nBy default, data within grids will not be returned.\nYou can include grid data one of two ways:\n\n* Specify a field mask listing your desired fields using the `fields` URL\nparameter in HTTP\n\n* Set the includeGridData\nURL parameter to true.  If a field mask is set, the `includeGridData`\nparameter is ignored\n\nFor large spreadsheets, it is recommended to retrieve only the specific\nfields of the spreadsheet that you want.\n\nTo retrieve only subsets of the spreadsheet, use the\nranges URL parameter.\nMultiple ranges can be specified.  Limiting the range will\nreturn only the portions of the spreadsheet that intersect the requested\nranges. Ranges are specified using A1 notation.",
11068	//   "flatPath": "v4/spreadsheets/{spreadsheetId}",
11069	//   "httpMethod": "GET",
11070	//   "id": "sheets.spreadsheets.get",
11071	//   "parameterOrder": [
11072	//     "spreadsheetId"
11073	//   ],
11074	//   "parameters": {
11075	//     "includeGridData": {
11076	//       "description": "True if grid data should be returned.\nThis parameter is ignored if a field mask was set in the request.",
11077	//       "location": "query",
11078	//       "type": "boolean"
11079	//     },
11080	//     "ranges": {
11081	//       "description": "The ranges to retrieve from the spreadsheet.",
11082	//       "location": "query",
11083	//       "repeated": true,
11084	//       "type": "string"
11085	//     },
11086	//     "spreadsheetId": {
11087	//       "description": "The spreadsheet to request.",
11088	//       "location": "path",
11089	//       "required": true,
11090	//       "type": "string"
11091	//     }
11092	//   },
11093	//   "path": "v4/spreadsheets/{spreadsheetId}",
11094	//   "response": {
11095	//     "$ref": "Spreadsheet"
11096	//   },
11097	//   "scopes": [
11098	//     "https://www.googleapis.com/auth/drive",
11099	//     "https://www.googleapis.com/auth/drive.file",
11100	//     "https://www.googleapis.com/auth/drive.readonly",
11101	//     "https://www.googleapis.com/auth/spreadsheets",
11102	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
11103	//   ]
11104	// }
11105
11106}
11107
11108// method id "sheets.spreadsheets.getByDataFilter":
11109
11110type SpreadsheetsGetByDataFilterCall struct {
11111	s                                 *Service
11112	spreadsheetId                     string
11113	getspreadsheetbydatafilterrequest *GetSpreadsheetByDataFilterRequest
11114	urlParams_                        gensupport.URLParams
11115	ctx_                              context.Context
11116	header_                           http.Header
11117}
11118
11119// GetByDataFilter: Returns the spreadsheet at the given ID.
11120// The caller must specify the spreadsheet ID.
11121//
11122// This method differs from GetSpreadsheet in that it allows
11123// selecting
11124// which subsets of spreadsheet data to return by specifying
11125// a
11126// dataFilters parameter.
11127// Multiple DataFilters can be specified.  Specifying one or
11128// more data filters will return the portions of the spreadsheet
11129// that
11130// intersect ranges matched by any of the filters.
11131//
11132// By default, data within grids will not be returned.
11133// You can include grid data one of two ways:
11134//
11135// * Specify a field mask listing your desired fields using the `fields`
11136// URL
11137// parameter in HTTP
11138//
11139// * Set the includeGridData
11140// parameter to true.  If a field mask is set, the
11141// `includeGridData`
11142// parameter is ignored
11143//
11144// For large spreadsheets, it is recommended to retrieve only the
11145// specific
11146// fields of the spreadsheet that you want.
11147func (r *SpreadsheetsService) GetByDataFilter(spreadsheetId string, getspreadsheetbydatafilterrequest *GetSpreadsheetByDataFilterRequest) *SpreadsheetsGetByDataFilterCall {
11148	c := &SpreadsheetsGetByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11149	c.spreadsheetId = spreadsheetId
11150	c.getspreadsheetbydatafilterrequest = getspreadsheetbydatafilterrequest
11151	return c
11152}
11153
11154// Fields allows partial responses to be retrieved. See
11155// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11156// for more information.
11157func (c *SpreadsheetsGetByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsGetByDataFilterCall {
11158	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11159	return c
11160}
11161
11162// Context sets the context to be used in this call's Do method. Any
11163// pending HTTP request will be aborted if the provided context is
11164// canceled.
11165func (c *SpreadsheetsGetByDataFilterCall) Context(ctx context.Context) *SpreadsheetsGetByDataFilterCall {
11166	c.ctx_ = ctx
11167	return c
11168}
11169
11170// Header returns an http.Header that can be modified by the caller to
11171// add HTTP headers to the request.
11172func (c *SpreadsheetsGetByDataFilterCall) Header() http.Header {
11173	if c.header_ == nil {
11174		c.header_ = make(http.Header)
11175	}
11176	return c.header_
11177}
11178
11179func (c *SpreadsheetsGetByDataFilterCall) doRequest(alt string) (*http.Response, error) {
11180	reqHeaders := make(http.Header)
11181	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
11182	for k, v := range c.header_ {
11183		reqHeaders[k] = v
11184	}
11185	reqHeaders.Set("User-Agent", c.s.userAgent())
11186	var body io.Reader = nil
11187	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getspreadsheetbydatafilterrequest)
11188	if err != nil {
11189		return nil, err
11190	}
11191	reqHeaders.Set("Content-Type", "application/json")
11192	c.urlParams_.Set("alt", alt)
11193	c.urlParams_.Set("prettyPrint", "false")
11194	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}:getByDataFilter")
11195	urls += "?" + c.urlParams_.Encode()
11196	req, err := http.NewRequest("POST", urls, body)
11197	if err != nil {
11198		return nil, err
11199	}
11200	req.Header = reqHeaders
11201	googleapi.Expand(req.URL, map[string]string{
11202		"spreadsheetId": c.spreadsheetId,
11203	})
11204	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11205}
11206
11207// Do executes the "sheets.spreadsheets.getByDataFilter" call.
11208// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
11209// status code is an error. Response headers are in either
11210// *Spreadsheet.ServerResponse.Header or (if a response was returned at
11211// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11212// to check whether the returned error was because
11213// http.StatusNotModified was returned.
11214func (c *SpreadsheetsGetByDataFilterCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
11215	gensupport.SetOptions(c.urlParams_, opts...)
11216	res, err := c.doRequest("json")
11217	if res != nil && res.StatusCode == http.StatusNotModified {
11218		if res.Body != nil {
11219			res.Body.Close()
11220		}
11221		return nil, &googleapi.Error{
11222			Code:   res.StatusCode,
11223			Header: res.Header,
11224		}
11225	}
11226	if err != nil {
11227		return nil, err
11228	}
11229	defer googleapi.CloseBody(res)
11230	if err := googleapi.CheckResponse(res); err != nil {
11231		return nil, err
11232	}
11233	ret := &Spreadsheet{
11234		ServerResponse: googleapi.ServerResponse{
11235			Header:         res.Header,
11236			HTTPStatusCode: res.StatusCode,
11237		},
11238	}
11239	target := &ret
11240	if err := gensupport.DecodeResponse(target, res); err != nil {
11241		return nil, err
11242	}
11243	return ret, nil
11244	// {
11245	//   "description": "Returns the spreadsheet at the given ID.\nThe caller must specify the spreadsheet ID.\n\nThis method differs from GetSpreadsheet in that it allows selecting\nwhich subsets of spreadsheet data to return by specifying a\ndataFilters parameter.\nMultiple DataFilters can be specified.  Specifying one or\nmore data filters will return the portions of the spreadsheet that\nintersect ranges matched by any of the filters.\n\nBy default, data within grids will not be returned.\nYou can include grid data one of two ways:\n\n* Specify a field mask listing your desired fields using the `fields` URL\nparameter in HTTP\n\n* Set the includeGridData\nparameter to true.  If a field mask is set, the `includeGridData`\nparameter is ignored\n\nFor large spreadsheets, it is recommended to retrieve only the specific\nfields of the spreadsheet that you want.",
11246	//   "flatPath": "v4/spreadsheets/{spreadsheetId}:getByDataFilter",
11247	//   "httpMethod": "POST",
11248	//   "id": "sheets.spreadsheets.getByDataFilter",
11249	//   "parameterOrder": [
11250	//     "spreadsheetId"
11251	//   ],
11252	//   "parameters": {
11253	//     "spreadsheetId": {
11254	//       "description": "The spreadsheet to request.",
11255	//       "location": "path",
11256	//       "required": true,
11257	//       "type": "string"
11258	//     }
11259	//   },
11260	//   "path": "v4/spreadsheets/{spreadsheetId}:getByDataFilter",
11261	//   "request": {
11262	//     "$ref": "GetSpreadsheetByDataFilterRequest"
11263	//   },
11264	//   "response": {
11265	//     "$ref": "Spreadsheet"
11266	//   },
11267	//   "scopes": [
11268	//     "https://www.googleapis.com/auth/drive",
11269	//     "https://www.googleapis.com/auth/drive.file",
11270	//     "https://www.googleapis.com/auth/spreadsheets"
11271	//   ]
11272	// }
11273
11274}
11275
11276// method id "sheets.spreadsheets.developerMetadata.get":
11277
11278type SpreadsheetsDeveloperMetadataGetCall struct {
11279	s             *Service
11280	spreadsheetId string
11281	metadataId    int64
11282	urlParams_    gensupport.URLParams
11283	ifNoneMatch_  string
11284	ctx_          context.Context
11285	header_       http.Header
11286}
11287
11288// Get: Returns the developer metadata with the specified ID.
11289// The caller must specify the spreadsheet ID and the developer
11290// metadata's
11291// unique metadataId.
11292func (r *SpreadsheetsDeveloperMetadataService) Get(spreadsheetId string, metadataId int64) *SpreadsheetsDeveloperMetadataGetCall {
11293	c := &SpreadsheetsDeveloperMetadataGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11294	c.spreadsheetId = spreadsheetId
11295	c.metadataId = metadataId
11296	return c
11297}
11298
11299// Fields allows partial responses to be retrieved. See
11300// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11301// for more information.
11302func (c *SpreadsheetsDeveloperMetadataGetCall) Fields(s ...googleapi.Field) *SpreadsheetsDeveloperMetadataGetCall {
11303	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11304	return c
11305}
11306
11307// IfNoneMatch sets the optional parameter which makes the operation
11308// fail if the object's ETag matches the given value. This is useful for
11309// getting updates only after the object has changed since the last
11310// request. Use googleapi.IsNotModified to check whether the response
11311// error from Do is the result of In-None-Match.
11312func (c *SpreadsheetsDeveloperMetadataGetCall) IfNoneMatch(entityTag string) *SpreadsheetsDeveloperMetadataGetCall {
11313	c.ifNoneMatch_ = entityTag
11314	return c
11315}
11316
11317// Context sets the context to be used in this call's Do method. Any
11318// pending HTTP request will be aborted if the provided context is
11319// canceled.
11320func (c *SpreadsheetsDeveloperMetadataGetCall) Context(ctx context.Context) *SpreadsheetsDeveloperMetadataGetCall {
11321	c.ctx_ = ctx
11322	return c
11323}
11324
11325// Header returns an http.Header that can be modified by the caller to
11326// add HTTP headers to the request.
11327func (c *SpreadsheetsDeveloperMetadataGetCall) Header() http.Header {
11328	if c.header_ == nil {
11329		c.header_ = make(http.Header)
11330	}
11331	return c.header_
11332}
11333
11334func (c *SpreadsheetsDeveloperMetadataGetCall) doRequest(alt string) (*http.Response, error) {
11335	reqHeaders := make(http.Header)
11336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
11337	for k, v := range c.header_ {
11338		reqHeaders[k] = v
11339	}
11340	reqHeaders.Set("User-Agent", c.s.userAgent())
11341	if c.ifNoneMatch_ != "" {
11342		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11343	}
11344	var body io.Reader = nil
11345	c.urlParams_.Set("alt", alt)
11346	c.urlParams_.Set("prettyPrint", "false")
11347	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}")
11348	urls += "?" + c.urlParams_.Encode()
11349	req, err := http.NewRequest("GET", urls, body)
11350	if err != nil {
11351		return nil, err
11352	}
11353	req.Header = reqHeaders
11354	googleapi.Expand(req.URL, map[string]string{
11355		"spreadsheetId": c.spreadsheetId,
11356		"metadataId":    strconv.FormatInt(c.metadataId, 10),
11357	})
11358	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11359}
11360
11361// Do executes the "sheets.spreadsheets.developerMetadata.get" call.
11362// Exactly one of *DeveloperMetadata or error will be non-nil. Any
11363// non-2xx status code is an error. Response headers are in either
11364// *DeveloperMetadata.ServerResponse.Header or (if a response was
11365// returned at all) in error.(*googleapi.Error).Header. Use
11366// googleapi.IsNotModified to check whether the returned error was
11367// because http.StatusNotModified was returned.
11368func (c *SpreadsheetsDeveloperMetadataGetCall) Do(opts ...googleapi.CallOption) (*DeveloperMetadata, error) {
11369	gensupport.SetOptions(c.urlParams_, opts...)
11370	res, err := c.doRequest("json")
11371	if res != nil && res.StatusCode == http.StatusNotModified {
11372		if res.Body != nil {
11373			res.Body.Close()
11374		}
11375		return nil, &googleapi.Error{
11376			Code:   res.StatusCode,
11377			Header: res.Header,
11378		}
11379	}
11380	if err != nil {
11381		return nil, err
11382	}
11383	defer googleapi.CloseBody(res)
11384	if err := googleapi.CheckResponse(res); err != nil {
11385		return nil, err
11386	}
11387	ret := &DeveloperMetadata{
11388		ServerResponse: googleapi.ServerResponse{
11389			Header:         res.Header,
11390			HTTPStatusCode: res.StatusCode,
11391		},
11392	}
11393	target := &ret
11394	if err := gensupport.DecodeResponse(target, res); err != nil {
11395		return nil, err
11396	}
11397	return ret, nil
11398	// {
11399	//   "description": "Returns the developer metadata with the specified ID.\nThe caller must specify the spreadsheet ID and the developer metadata's\nunique metadataId.",
11400	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}",
11401	//   "httpMethod": "GET",
11402	//   "id": "sheets.spreadsheets.developerMetadata.get",
11403	//   "parameterOrder": [
11404	//     "spreadsheetId",
11405	//     "metadataId"
11406	//   ],
11407	//   "parameters": {
11408	//     "metadataId": {
11409	//       "description": "The ID of the developer metadata to retrieve.",
11410	//       "format": "int32",
11411	//       "location": "path",
11412	//       "required": true,
11413	//       "type": "integer"
11414	//     },
11415	//     "spreadsheetId": {
11416	//       "description": "The ID of the spreadsheet to retrieve metadata from.",
11417	//       "location": "path",
11418	//       "required": true,
11419	//       "type": "string"
11420	//     }
11421	//   },
11422	//   "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}",
11423	//   "response": {
11424	//     "$ref": "DeveloperMetadata"
11425	//   },
11426	//   "scopes": [
11427	//     "https://www.googleapis.com/auth/drive",
11428	//     "https://www.googleapis.com/auth/drive.file",
11429	//     "https://www.googleapis.com/auth/spreadsheets"
11430	//   ]
11431	// }
11432
11433}
11434
11435// method id "sheets.spreadsheets.developerMetadata.search":
11436
11437type SpreadsheetsDeveloperMetadataSearchCall struct {
11438	s                              *Service
11439	spreadsheetId                  string
11440	searchdevelopermetadatarequest *SearchDeveloperMetadataRequest
11441	urlParams_                     gensupport.URLParams
11442	ctx_                           context.Context
11443	header_                        http.Header
11444}
11445
11446// Search: Returns all developer metadata matching the specified
11447// DataFilter.
11448// If the provided DataFilter represents a DeveloperMetadataLookup
11449// object,
11450// this will return all DeveloperMetadata entries selected by it. If
11451// the
11452// DataFilter represents a location in a spreadsheet, this will return
11453// all
11454// developer metadata associated with locations intersecting that
11455// region.
11456func (r *SpreadsheetsDeveloperMetadataService) Search(spreadsheetId string, searchdevelopermetadatarequest *SearchDeveloperMetadataRequest) *SpreadsheetsDeveloperMetadataSearchCall {
11457	c := &SpreadsheetsDeveloperMetadataSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11458	c.spreadsheetId = spreadsheetId
11459	c.searchdevelopermetadatarequest = searchdevelopermetadatarequest
11460	return c
11461}
11462
11463// Fields allows partial responses to be retrieved. See
11464// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11465// for more information.
11466func (c *SpreadsheetsDeveloperMetadataSearchCall) Fields(s ...googleapi.Field) *SpreadsheetsDeveloperMetadataSearchCall {
11467	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11468	return c
11469}
11470
11471// Context sets the context to be used in this call's Do method. Any
11472// pending HTTP request will be aborted if the provided context is
11473// canceled.
11474func (c *SpreadsheetsDeveloperMetadataSearchCall) Context(ctx context.Context) *SpreadsheetsDeveloperMetadataSearchCall {
11475	c.ctx_ = ctx
11476	return c
11477}
11478
11479// Header returns an http.Header that can be modified by the caller to
11480// add HTTP headers to the request.
11481func (c *SpreadsheetsDeveloperMetadataSearchCall) Header() http.Header {
11482	if c.header_ == nil {
11483		c.header_ = make(http.Header)
11484	}
11485	return c.header_
11486}
11487
11488func (c *SpreadsheetsDeveloperMetadataSearchCall) doRequest(alt string) (*http.Response, error) {
11489	reqHeaders := make(http.Header)
11490	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
11491	for k, v := range c.header_ {
11492		reqHeaders[k] = v
11493	}
11494	reqHeaders.Set("User-Agent", c.s.userAgent())
11495	var body io.Reader = nil
11496	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchdevelopermetadatarequest)
11497	if err != nil {
11498		return nil, err
11499	}
11500	reqHeaders.Set("Content-Type", "application/json")
11501	c.urlParams_.Set("alt", alt)
11502	c.urlParams_.Set("prettyPrint", "false")
11503	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/developerMetadata:search")
11504	urls += "?" + c.urlParams_.Encode()
11505	req, err := http.NewRequest("POST", urls, body)
11506	if err != nil {
11507		return nil, err
11508	}
11509	req.Header = reqHeaders
11510	googleapi.Expand(req.URL, map[string]string{
11511		"spreadsheetId": c.spreadsheetId,
11512	})
11513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11514}
11515
11516// Do executes the "sheets.spreadsheets.developerMetadata.search" call.
11517// Exactly one of *SearchDeveloperMetadataResponse or error will be
11518// non-nil. Any non-2xx status code is an error. Response headers are in
11519// either *SearchDeveloperMetadataResponse.ServerResponse.Header or (if
11520// a response was returned at all) in error.(*googleapi.Error).Header.
11521// Use googleapi.IsNotModified to check whether the returned error was
11522// because http.StatusNotModified was returned.
11523func (c *SpreadsheetsDeveloperMetadataSearchCall) Do(opts ...googleapi.CallOption) (*SearchDeveloperMetadataResponse, error) {
11524	gensupport.SetOptions(c.urlParams_, opts...)
11525	res, err := c.doRequest("json")
11526	if res != nil && res.StatusCode == http.StatusNotModified {
11527		if res.Body != nil {
11528			res.Body.Close()
11529		}
11530		return nil, &googleapi.Error{
11531			Code:   res.StatusCode,
11532			Header: res.Header,
11533		}
11534	}
11535	if err != nil {
11536		return nil, err
11537	}
11538	defer googleapi.CloseBody(res)
11539	if err := googleapi.CheckResponse(res); err != nil {
11540		return nil, err
11541	}
11542	ret := &SearchDeveloperMetadataResponse{
11543		ServerResponse: googleapi.ServerResponse{
11544			Header:         res.Header,
11545			HTTPStatusCode: res.StatusCode,
11546		},
11547	}
11548	target := &ret
11549	if err := gensupport.DecodeResponse(target, res); err != nil {
11550		return nil, err
11551	}
11552	return ret, nil
11553	// {
11554	//   "description": "Returns all developer metadata matching the specified DataFilter.\nIf the provided DataFilter represents a DeveloperMetadataLookup object,\nthis will return all DeveloperMetadata entries selected by it. If the\nDataFilter represents a location in a spreadsheet, this will return all\ndeveloper metadata associated with locations intersecting that region.",
11555	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search",
11556	//   "httpMethod": "POST",
11557	//   "id": "sheets.spreadsheets.developerMetadata.search",
11558	//   "parameterOrder": [
11559	//     "spreadsheetId"
11560	//   ],
11561	//   "parameters": {
11562	//     "spreadsheetId": {
11563	//       "description": "The ID of the spreadsheet to retrieve metadata from.",
11564	//       "location": "path",
11565	//       "required": true,
11566	//       "type": "string"
11567	//     }
11568	//   },
11569	//   "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search",
11570	//   "request": {
11571	//     "$ref": "SearchDeveloperMetadataRequest"
11572	//   },
11573	//   "response": {
11574	//     "$ref": "SearchDeveloperMetadataResponse"
11575	//   },
11576	//   "scopes": [
11577	//     "https://www.googleapis.com/auth/drive",
11578	//     "https://www.googleapis.com/auth/drive.file",
11579	//     "https://www.googleapis.com/auth/spreadsheets"
11580	//   ]
11581	// }
11582
11583}
11584
11585// method id "sheets.spreadsheets.sheets.copyTo":
11586
11587type SpreadsheetsSheetsCopyToCall struct {
11588	s                                    *Service
11589	spreadsheetId                        string
11590	sheetId                              int64
11591	copysheettoanotherspreadsheetrequest *CopySheetToAnotherSpreadsheetRequest
11592	urlParams_                           gensupport.URLParams
11593	ctx_                                 context.Context
11594	header_                              http.Header
11595}
11596
11597// CopyTo: Copies a single sheet from a spreadsheet to another
11598// spreadsheet.
11599// Returns the properties of the newly created sheet.
11600func (r *SpreadsheetsSheetsService) CopyTo(spreadsheetId string, sheetId int64, copysheettoanotherspreadsheetrequest *CopySheetToAnotherSpreadsheetRequest) *SpreadsheetsSheetsCopyToCall {
11601	c := &SpreadsheetsSheetsCopyToCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11602	c.spreadsheetId = spreadsheetId
11603	c.sheetId = sheetId
11604	c.copysheettoanotherspreadsheetrequest = copysheettoanotherspreadsheetrequest
11605	return c
11606}
11607
11608// Fields allows partial responses to be retrieved. See
11609// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11610// for more information.
11611func (c *SpreadsheetsSheetsCopyToCall) Fields(s ...googleapi.Field) *SpreadsheetsSheetsCopyToCall {
11612	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11613	return c
11614}
11615
11616// Context sets the context to be used in this call's Do method. Any
11617// pending HTTP request will be aborted if the provided context is
11618// canceled.
11619func (c *SpreadsheetsSheetsCopyToCall) Context(ctx context.Context) *SpreadsheetsSheetsCopyToCall {
11620	c.ctx_ = ctx
11621	return c
11622}
11623
11624// Header returns an http.Header that can be modified by the caller to
11625// add HTTP headers to the request.
11626func (c *SpreadsheetsSheetsCopyToCall) Header() http.Header {
11627	if c.header_ == nil {
11628		c.header_ = make(http.Header)
11629	}
11630	return c.header_
11631}
11632
11633func (c *SpreadsheetsSheetsCopyToCall) doRequest(alt string) (*http.Response, error) {
11634	reqHeaders := make(http.Header)
11635	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
11636	for k, v := range c.header_ {
11637		reqHeaders[k] = v
11638	}
11639	reqHeaders.Set("User-Agent", c.s.userAgent())
11640	var body io.Reader = nil
11641	body, err := googleapi.WithoutDataWrapper.JSONReader(c.copysheettoanotherspreadsheetrequest)
11642	if err != nil {
11643		return nil, err
11644	}
11645	reqHeaders.Set("Content-Type", "application/json")
11646	c.urlParams_.Set("alt", alt)
11647	c.urlParams_.Set("prettyPrint", "false")
11648	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo")
11649	urls += "?" + c.urlParams_.Encode()
11650	req, err := http.NewRequest("POST", urls, body)
11651	if err != nil {
11652		return nil, err
11653	}
11654	req.Header = reqHeaders
11655	googleapi.Expand(req.URL, map[string]string{
11656		"spreadsheetId": c.spreadsheetId,
11657		"sheetId":       strconv.FormatInt(c.sheetId, 10),
11658	})
11659	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11660}
11661
11662// Do executes the "sheets.spreadsheets.sheets.copyTo" call.
11663// Exactly one of *SheetProperties or error will be non-nil. Any non-2xx
11664// status code is an error. Response headers are in either
11665// *SheetProperties.ServerResponse.Header or (if a response was returned
11666// at all) in error.(*googleapi.Error).Header. Use
11667// googleapi.IsNotModified to check whether the returned error was
11668// because http.StatusNotModified was returned.
11669func (c *SpreadsheetsSheetsCopyToCall) Do(opts ...googleapi.CallOption) (*SheetProperties, error) {
11670	gensupport.SetOptions(c.urlParams_, opts...)
11671	res, err := c.doRequest("json")
11672	if res != nil && res.StatusCode == http.StatusNotModified {
11673		if res.Body != nil {
11674			res.Body.Close()
11675		}
11676		return nil, &googleapi.Error{
11677			Code:   res.StatusCode,
11678			Header: res.Header,
11679		}
11680	}
11681	if err != nil {
11682		return nil, err
11683	}
11684	defer googleapi.CloseBody(res)
11685	if err := googleapi.CheckResponse(res); err != nil {
11686		return nil, err
11687	}
11688	ret := &SheetProperties{
11689		ServerResponse: googleapi.ServerResponse{
11690			Header:         res.Header,
11691			HTTPStatusCode: res.StatusCode,
11692		},
11693	}
11694	target := &ret
11695	if err := gensupport.DecodeResponse(target, res); err != nil {
11696		return nil, err
11697	}
11698	return ret, nil
11699	// {
11700	//   "description": "Copies a single sheet from a spreadsheet to another spreadsheet.\nReturns the properties of the newly created sheet.",
11701	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo",
11702	//   "httpMethod": "POST",
11703	//   "id": "sheets.spreadsheets.sheets.copyTo",
11704	//   "parameterOrder": [
11705	//     "spreadsheetId",
11706	//     "sheetId"
11707	//   ],
11708	//   "parameters": {
11709	//     "sheetId": {
11710	//       "description": "The ID of the sheet to copy.",
11711	//       "format": "int32",
11712	//       "location": "path",
11713	//       "required": true,
11714	//       "type": "integer"
11715	//     },
11716	//     "spreadsheetId": {
11717	//       "description": "The ID of the spreadsheet containing the sheet to copy.",
11718	//       "location": "path",
11719	//       "required": true,
11720	//       "type": "string"
11721	//     }
11722	//   },
11723	//   "path": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo",
11724	//   "request": {
11725	//     "$ref": "CopySheetToAnotherSpreadsheetRequest"
11726	//   },
11727	//   "response": {
11728	//     "$ref": "SheetProperties"
11729	//   },
11730	//   "scopes": [
11731	//     "https://www.googleapis.com/auth/drive",
11732	//     "https://www.googleapis.com/auth/drive.file",
11733	//     "https://www.googleapis.com/auth/spreadsheets"
11734	//   ]
11735	// }
11736
11737}
11738
11739// method id "sheets.spreadsheets.values.append":
11740
11741type SpreadsheetsValuesAppendCall struct {
11742	s             *Service
11743	spreadsheetId string
11744	range_        string
11745	valuerange    *ValueRange
11746	urlParams_    gensupport.URLParams
11747	ctx_          context.Context
11748	header_       http.Header
11749}
11750
11751// Append: Appends values to a spreadsheet. The input range is used to
11752// search for
11753// existing data and find a "table" within that range. Values will
11754// be
11755// appended to the next row of the table, starting with the first column
11756// of
11757// the table. See
11758// the
11759// [guide](/sheets/api/guides/values#appending_values)
11760// and
11761// [sample code](/sheets/api/samples/writing#append_values)
11762// for specific details of how tables are detected and data is
11763// appended.
11764//
11765// The caller must specify the spreadsheet ID, range, and
11766// a valueInputOption.  The `valueInputOption` only
11767// controls how the input data will be added to the sheet (column-wise
11768// or
11769// row-wise), it does not influence what cell the data starts being
11770// written
11771// to.
11772func (r *SpreadsheetsValuesService) Append(spreadsheetId string, range_ string, valuerange *ValueRange) *SpreadsheetsValuesAppendCall {
11773	c := &SpreadsheetsValuesAppendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11774	c.spreadsheetId = spreadsheetId
11775	c.range_ = range_
11776	c.valuerange = valuerange
11777	return c
11778}
11779
11780// IncludeValuesInResponse sets the optional parameter
11781// "includeValuesInResponse": Determines if the update response should
11782// include the values
11783// of the cells that were appended. By default, responses
11784// do not include the updated values.
11785func (c *SpreadsheetsValuesAppendCall) IncludeValuesInResponse(includeValuesInResponse bool) *SpreadsheetsValuesAppendCall {
11786	c.urlParams_.Set("includeValuesInResponse", fmt.Sprint(includeValuesInResponse))
11787	return c
11788}
11789
11790// InsertDataOption sets the optional parameter "insertDataOption": How
11791// the input data should be inserted.
11792//
11793// Possible values:
11794//   "OVERWRITE"
11795//   "INSERT_ROWS"
11796func (c *SpreadsheetsValuesAppendCall) InsertDataOption(insertDataOption string) *SpreadsheetsValuesAppendCall {
11797	c.urlParams_.Set("insertDataOption", insertDataOption)
11798	return c
11799}
11800
11801// ResponseDateTimeRenderOption sets the optional parameter
11802// "responseDateTimeRenderOption": Determines how dates, times, and
11803// durations in the response should be
11804// rendered. This is ignored if response_value_render_option
11805// is
11806// FORMATTED_VALUE.
11807// The default dateTime render option is
11808// [DateTimeRenderOption.SERIAL_NUMBER].
11809//
11810// Possible values:
11811//   "SERIAL_NUMBER"
11812//   "FORMATTED_STRING"
11813func (c *SpreadsheetsValuesAppendCall) ResponseDateTimeRenderOption(responseDateTimeRenderOption string) *SpreadsheetsValuesAppendCall {
11814	c.urlParams_.Set("responseDateTimeRenderOption", responseDateTimeRenderOption)
11815	return c
11816}
11817
11818// ResponseValueRenderOption sets the optional parameter
11819// "responseValueRenderOption": Determines how values in the response
11820// should be rendered.
11821// The default render option is ValueRenderOption.FORMATTED_VALUE.
11822//
11823// Possible values:
11824//   "FORMATTED_VALUE"
11825//   "UNFORMATTED_VALUE"
11826//   "FORMULA"
11827func (c *SpreadsheetsValuesAppendCall) ResponseValueRenderOption(responseValueRenderOption string) *SpreadsheetsValuesAppendCall {
11828	c.urlParams_.Set("responseValueRenderOption", responseValueRenderOption)
11829	return c
11830}
11831
11832// ValueInputOption sets the optional parameter "valueInputOption": How
11833// the input data should be interpreted.
11834//
11835// Possible values:
11836//   "INPUT_VALUE_OPTION_UNSPECIFIED"
11837//   "RAW"
11838//   "USER_ENTERED"
11839func (c *SpreadsheetsValuesAppendCall) ValueInputOption(valueInputOption string) *SpreadsheetsValuesAppendCall {
11840	c.urlParams_.Set("valueInputOption", valueInputOption)
11841	return c
11842}
11843
11844// Fields allows partial responses to be retrieved. See
11845// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11846// for more information.
11847func (c *SpreadsheetsValuesAppendCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesAppendCall {
11848	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11849	return c
11850}
11851
11852// Context sets the context to be used in this call's Do method. Any
11853// pending HTTP request will be aborted if the provided context is
11854// canceled.
11855func (c *SpreadsheetsValuesAppendCall) Context(ctx context.Context) *SpreadsheetsValuesAppendCall {
11856	c.ctx_ = ctx
11857	return c
11858}
11859
11860// Header returns an http.Header that can be modified by the caller to
11861// add HTTP headers to the request.
11862func (c *SpreadsheetsValuesAppendCall) Header() http.Header {
11863	if c.header_ == nil {
11864		c.header_ = make(http.Header)
11865	}
11866	return c.header_
11867}
11868
11869func (c *SpreadsheetsValuesAppendCall) doRequest(alt string) (*http.Response, error) {
11870	reqHeaders := make(http.Header)
11871	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
11872	for k, v := range c.header_ {
11873		reqHeaders[k] = v
11874	}
11875	reqHeaders.Set("User-Agent", c.s.userAgent())
11876	var body io.Reader = nil
11877	body, err := googleapi.WithoutDataWrapper.JSONReader(c.valuerange)
11878	if err != nil {
11879		return nil, err
11880	}
11881	reqHeaders.Set("Content-Type", "application/json")
11882	c.urlParams_.Set("alt", alt)
11883	c.urlParams_.Set("prettyPrint", "false")
11884	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}:append")
11885	urls += "?" + c.urlParams_.Encode()
11886	req, err := http.NewRequest("POST", urls, body)
11887	if err != nil {
11888		return nil, err
11889	}
11890	req.Header = reqHeaders
11891	googleapi.Expand(req.URL, map[string]string{
11892		"spreadsheetId": c.spreadsheetId,
11893		"range":         c.range_,
11894	})
11895	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11896}
11897
11898// Do executes the "sheets.spreadsheets.values.append" call.
11899// Exactly one of *AppendValuesResponse or error will be non-nil. Any
11900// non-2xx status code is an error. Response headers are in either
11901// *AppendValuesResponse.ServerResponse.Header or (if a response was
11902// returned at all) in error.(*googleapi.Error).Header. Use
11903// googleapi.IsNotModified to check whether the returned error was
11904// because http.StatusNotModified was returned.
11905func (c *SpreadsheetsValuesAppendCall) Do(opts ...googleapi.CallOption) (*AppendValuesResponse, error) {
11906	gensupport.SetOptions(c.urlParams_, opts...)
11907	res, err := c.doRequest("json")
11908	if res != nil && res.StatusCode == http.StatusNotModified {
11909		if res.Body != nil {
11910			res.Body.Close()
11911		}
11912		return nil, &googleapi.Error{
11913			Code:   res.StatusCode,
11914			Header: res.Header,
11915		}
11916	}
11917	if err != nil {
11918		return nil, err
11919	}
11920	defer googleapi.CloseBody(res)
11921	if err := googleapi.CheckResponse(res); err != nil {
11922		return nil, err
11923	}
11924	ret := &AppendValuesResponse{
11925		ServerResponse: googleapi.ServerResponse{
11926			Header:         res.Header,
11927			HTTPStatusCode: res.StatusCode,
11928		},
11929	}
11930	target := &ret
11931	if err := gensupport.DecodeResponse(target, res); err != nil {
11932		return nil, err
11933	}
11934	return ret, nil
11935	// {
11936	//   "description": "Appends values to a spreadsheet. The input range is used to search for\nexisting data and find a \"table\" within that range. Values will be\nappended to the next row of the table, starting with the first column of\nthe table. See the\n[guide](/sheets/api/guides/values#appending_values)\nand\n[sample code](/sheets/api/samples/writing#append_values)\nfor specific details of how tables are detected and data is appended.\n\nThe caller must specify the spreadsheet ID, range, and\na valueInputOption.  The `valueInputOption` only\ncontrols how the input data will be added to the sheet (column-wise or\nrow-wise), it does not influence what cell the data starts being written\nto.",
11937	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:append",
11938	//   "httpMethod": "POST",
11939	//   "id": "sheets.spreadsheets.values.append",
11940	//   "parameterOrder": [
11941	//     "spreadsheetId",
11942	//     "range"
11943	//   ],
11944	//   "parameters": {
11945	//     "includeValuesInResponse": {
11946	//       "description": "Determines if the update response should include the values\nof the cells that were appended. By default, responses\ndo not include the updated values.",
11947	//       "location": "query",
11948	//       "type": "boolean"
11949	//     },
11950	//     "insertDataOption": {
11951	//       "description": "How the input data should be inserted.",
11952	//       "enum": [
11953	//         "OVERWRITE",
11954	//         "INSERT_ROWS"
11955	//       ],
11956	//       "location": "query",
11957	//       "type": "string"
11958	//     },
11959	//     "range": {
11960	//       "description": "The A1 notation of a range to search for a logical table of data.\nValues are appended after the last row of the table.",
11961	//       "location": "path",
11962	//       "required": true,
11963	//       "type": "string"
11964	//     },
11965	//     "responseDateTimeRenderOption": {
11966	//       "description": "Determines how dates, times, and durations in the response should be\nrendered. This is ignored if response_value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].",
11967	//       "enum": [
11968	//         "SERIAL_NUMBER",
11969	//         "FORMATTED_STRING"
11970	//       ],
11971	//       "location": "query",
11972	//       "type": "string"
11973	//     },
11974	//     "responseValueRenderOption": {
11975	//       "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
11976	//       "enum": [
11977	//         "FORMATTED_VALUE",
11978	//         "UNFORMATTED_VALUE",
11979	//         "FORMULA"
11980	//       ],
11981	//       "location": "query",
11982	//       "type": "string"
11983	//     },
11984	//     "spreadsheetId": {
11985	//       "description": "The ID of the spreadsheet to update.",
11986	//       "location": "path",
11987	//       "required": true,
11988	//       "type": "string"
11989	//     },
11990	//     "valueInputOption": {
11991	//       "description": "How the input data should be interpreted.",
11992	//       "enum": [
11993	//         "INPUT_VALUE_OPTION_UNSPECIFIED",
11994	//         "RAW",
11995	//         "USER_ENTERED"
11996	//       ],
11997	//       "location": "query",
11998	//       "type": "string"
11999	//     }
12000	//   },
12001	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:append",
12002	//   "request": {
12003	//     "$ref": "ValueRange"
12004	//   },
12005	//   "response": {
12006	//     "$ref": "AppendValuesResponse"
12007	//   },
12008	//   "scopes": [
12009	//     "https://www.googleapis.com/auth/drive",
12010	//     "https://www.googleapis.com/auth/drive.file",
12011	//     "https://www.googleapis.com/auth/spreadsheets"
12012	//   ]
12013	// }
12014
12015}
12016
12017// method id "sheets.spreadsheets.values.batchClear":
12018
12019type SpreadsheetsValuesBatchClearCall struct {
12020	s                       *Service
12021	spreadsheetId           string
12022	batchclearvaluesrequest *BatchClearValuesRequest
12023	urlParams_              gensupport.URLParams
12024	ctx_                    context.Context
12025	header_                 http.Header
12026}
12027
12028// BatchClear: Clears one or more ranges of values from a
12029// spreadsheet.
12030// The caller must specify the spreadsheet ID and one or more
12031// ranges.
12032// Only values are cleared -- all other properties of the cell (such
12033// as
12034// formatting, data validation, etc..) are kept.
12035func (r *SpreadsheetsValuesService) BatchClear(spreadsheetId string, batchclearvaluesrequest *BatchClearValuesRequest) *SpreadsheetsValuesBatchClearCall {
12036	c := &SpreadsheetsValuesBatchClearCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12037	c.spreadsheetId = spreadsheetId
12038	c.batchclearvaluesrequest = batchclearvaluesrequest
12039	return c
12040}
12041
12042// Fields allows partial responses to be retrieved. See
12043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12044// for more information.
12045func (c *SpreadsheetsValuesBatchClearCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchClearCall {
12046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12047	return c
12048}
12049
12050// Context sets the context to be used in this call's Do method. Any
12051// pending HTTP request will be aborted if the provided context is
12052// canceled.
12053func (c *SpreadsheetsValuesBatchClearCall) Context(ctx context.Context) *SpreadsheetsValuesBatchClearCall {
12054	c.ctx_ = ctx
12055	return c
12056}
12057
12058// Header returns an http.Header that can be modified by the caller to
12059// add HTTP headers to the request.
12060func (c *SpreadsheetsValuesBatchClearCall) Header() http.Header {
12061	if c.header_ == nil {
12062		c.header_ = make(http.Header)
12063	}
12064	return c.header_
12065}
12066
12067func (c *SpreadsheetsValuesBatchClearCall) doRequest(alt string) (*http.Response, error) {
12068	reqHeaders := make(http.Header)
12069	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
12070	for k, v := range c.header_ {
12071		reqHeaders[k] = v
12072	}
12073	reqHeaders.Set("User-Agent", c.s.userAgent())
12074	var body io.Reader = nil
12075	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchclearvaluesrequest)
12076	if err != nil {
12077		return nil, err
12078	}
12079	reqHeaders.Set("Content-Type", "application/json")
12080	c.urlParams_.Set("alt", alt)
12081	c.urlParams_.Set("prettyPrint", "false")
12082	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchClear")
12083	urls += "?" + c.urlParams_.Encode()
12084	req, err := http.NewRequest("POST", urls, body)
12085	if err != nil {
12086		return nil, err
12087	}
12088	req.Header = reqHeaders
12089	googleapi.Expand(req.URL, map[string]string{
12090		"spreadsheetId": c.spreadsheetId,
12091	})
12092	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12093}
12094
12095// Do executes the "sheets.spreadsheets.values.batchClear" call.
12096// Exactly one of *BatchClearValuesResponse or error will be non-nil.
12097// Any non-2xx status code is an error. Response headers are in either
12098// *BatchClearValuesResponse.ServerResponse.Header or (if a response was
12099// returned at all) in error.(*googleapi.Error).Header. Use
12100// googleapi.IsNotModified to check whether the returned error was
12101// because http.StatusNotModified was returned.
12102func (c *SpreadsheetsValuesBatchClearCall) Do(opts ...googleapi.CallOption) (*BatchClearValuesResponse, error) {
12103	gensupport.SetOptions(c.urlParams_, opts...)
12104	res, err := c.doRequest("json")
12105	if res != nil && res.StatusCode == http.StatusNotModified {
12106		if res.Body != nil {
12107			res.Body.Close()
12108		}
12109		return nil, &googleapi.Error{
12110			Code:   res.StatusCode,
12111			Header: res.Header,
12112		}
12113	}
12114	if err != nil {
12115		return nil, err
12116	}
12117	defer googleapi.CloseBody(res)
12118	if err := googleapi.CheckResponse(res); err != nil {
12119		return nil, err
12120	}
12121	ret := &BatchClearValuesResponse{
12122		ServerResponse: googleapi.ServerResponse{
12123			Header:         res.Header,
12124			HTTPStatusCode: res.StatusCode,
12125		},
12126	}
12127	target := &ret
12128	if err := gensupport.DecodeResponse(target, res); err != nil {
12129		return nil, err
12130	}
12131	return ret, nil
12132	// {
12133	//   "description": "Clears one or more ranges of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and one or more ranges.\nOnly values are cleared -- all other properties of the cell (such as\nformatting, data validation, etc..) are kept.",
12134	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClear",
12135	//   "httpMethod": "POST",
12136	//   "id": "sheets.spreadsheets.values.batchClear",
12137	//   "parameterOrder": [
12138	//     "spreadsheetId"
12139	//   ],
12140	//   "parameters": {
12141	//     "spreadsheetId": {
12142	//       "description": "The ID of the spreadsheet to update.",
12143	//       "location": "path",
12144	//       "required": true,
12145	//       "type": "string"
12146	//     }
12147	//   },
12148	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchClear",
12149	//   "request": {
12150	//     "$ref": "BatchClearValuesRequest"
12151	//   },
12152	//   "response": {
12153	//     "$ref": "BatchClearValuesResponse"
12154	//   },
12155	//   "scopes": [
12156	//     "https://www.googleapis.com/auth/drive",
12157	//     "https://www.googleapis.com/auth/drive.file",
12158	//     "https://www.googleapis.com/auth/spreadsheets"
12159	//   ]
12160	// }
12161
12162}
12163
12164// method id "sheets.spreadsheets.values.batchClearByDataFilter":
12165
12166type SpreadsheetsValuesBatchClearByDataFilterCall struct {
12167	s                                   *Service
12168	spreadsheetId                       string
12169	batchclearvaluesbydatafilterrequest *BatchClearValuesByDataFilterRequest
12170	urlParams_                          gensupport.URLParams
12171	ctx_                                context.Context
12172	header_                             http.Header
12173}
12174
12175// BatchClearByDataFilter: Clears one or more ranges of values from a
12176// spreadsheet.
12177// The caller must specify the spreadsheet ID and one or
12178// more
12179// DataFilters. Ranges matching any of the specified data
12180// filters will be cleared.  Only values are cleared -- all other
12181// properties
12182// of the cell (such as formatting, data validation, etc..) are kept.
12183func (r *SpreadsheetsValuesService) BatchClearByDataFilter(spreadsheetId string, batchclearvaluesbydatafilterrequest *BatchClearValuesByDataFilterRequest) *SpreadsheetsValuesBatchClearByDataFilterCall {
12184	c := &SpreadsheetsValuesBatchClearByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12185	c.spreadsheetId = spreadsheetId
12186	c.batchclearvaluesbydatafilterrequest = batchclearvaluesbydatafilterrequest
12187	return c
12188}
12189
12190// Fields allows partial responses to be retrieved. See
12191// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12192// for more information.
12193func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchClearByDataFilterCall {
12194	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12195	return c
12196}
12197
12198// Context sets the context to be used in this call's Do method. Any
12199// pending HTTP request will be aborted if the provided context is
12200// canceled.
12201func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchClearByDataFilterCall {
12202	c.ctx_ = ctx
12203	return c
12204}
12205
12206// Header returns an http.Header that can be modified by the caller to
12207// add HTTP headers to the request.
12208func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Header() http.Header {
12209	if c.header_ == nil {
12210		c.header_ = make(http.Header)
12211	}
12212	return c.header_
12213}
12214
12215func (c *SpreadsheetsValuesBatchClearByDataFilterCall) doRequest(alt string) (*http.Response, error) {
12216	reqHeaders := make(http.Header)
12217	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
12218	for k, v := range c.header_ {
12219		reqHeaders[k] = v
12220	}
12221	reqHeaders.Set("User-Agent", c.s.userAgent())
12222	var body io.Reader = nil
12223	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchclearvaluesbydatafilterrequest)
12224	if err != nil {
12225		return nil, err
12226	}
12227	reqHeaders.Set("Content-Type", "application/json")
12228	c.urlParams_.Set("alt", alt)
12229	c.urlParams_.Set("prettyPrint", "false")
12230	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter")
12231	urls += "?" + c.urlParams_.Encode()
12232	req, err := http.NewRequest("POST", urls, body)
12233	if err != nil {
12234		return nil, err
12235	}
12236	req.Header = reqHeaders
12237	googleapi.Expand(req.URL, map[string]string{
12238		"spreadsheetId": c.spreadsheetId,
12239	})
12240	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12241}
12242
12243// Do executes the "sheets.spreadsheets.values.batchClearByDataFilter" call.
12244// Exactly one of *BatchClearValuesByDataFilterResponse or error will be
12245// non-nil. Any non-2xx status code is an error. Response headers are in
12246// either *BatchClearValuesByDataFilterResponse.ServerResponse.Header or
12247// (if a response was returned at all) in
12248// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
12249// whether the returned error was because http.StatusNotModified was
12250// returned.
12251func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchClearValuesByDataFilterResponse, error) {
12252	gensupport.SetOptions(c.urlParams_, opts...)
12253	res, err := c.doRequest("json")
12254	if res != nil && res.StatusCode == http.StatusNotModified {
12255		if res.Body != nil {
12256			res.Body.Close()
12257		}
12258		return nil, &googleapi.Error{
12259			Code:   res.StatusCode,
12260			Header: res.Header,
12261		}
12262	}
12263	if err != nil {
12264		return nil, err
12265	}
12266	defer googleapi.CloseBody(res)
12267	if err := googleapi.CheckResponse(res); err != nil {
12268		return nil, err
12269	}
12270	ret := &BatchClearValuesByDataFilterResponse{
12271		ServerResponse: googleapi.ServerResponse{
12272			Header:         res.Header,
12273			HTTPStatusCode: res.StatusCode,
12274		},
12275	}
12276	target := &ret
12277	if err := gensupport.DecodeResponse(target, res); err != nil {
12278		return nil, err
12279	}
12280	return ret, nil
12281	// {
12282	//   "description": "Clears one or more ranges of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and one or more\nDataFilters. Ranges matching any of the specified data\nfilters will be cleared.  Only values are cleared -- all other properties\nof the cell (such as formatting, data validation, etc..) are kept.",
12283	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter",
12284	//   "httpMethod": "POST",
12285	//   "id": "sheets.spreadsheets.values.batchClearByDataFilter",
12286	//   "parameterOrder": [
12287	//     "spreadsheetId"
12288	//   ],
12289	//   "parameters": {
12290	//     "spreadsheetId": {
12291	//       "description": "The ID of the spreadsheet to update.",
12292	//       "location": "path",
12293	//       "required": true,
12294	//       "type": "string"
12295	//     }
12296	//   },
12297	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter",
12298	//   "request": {
12299	//     "$ref": "BatchClearValuesByDataFilterRequest"
12300	//   },
12301	//   "response": {
12302	//     "$ref": "BatchClearValuesByDataFilterResponse"
12303	//   },
12304	//   "scopes": [
12305	//     "https://www.googleapis.com/auth/drive",
12306	//     "https://www.googleapis.com/auth/drive.file",
12307	//     "https://www.googleapis.com/auth/spreadsheets"
12308	//   ]
12309	// }
12310
12311}
12312
12313// method id "sheets.spreadsheets.values.batchGet":
12314
12315type SpreadsheetsValuesBatchGetCall struct {
12316	s             *Service
12317	spreadsheetId string
12318	urlParams_    gensupport.URLParams
12319	ifNoneMatch_  string
12320	ctx_          context.Context
12321	header_       http.Header
12322}
12323
12324// BatchGet: Returns one or more ranges of values from a
12325// spreadsheet.
12326// The caller must specify the spreadsheet ID and one or more ranges.
12327func (r *SpreadsheetsValuesService) BatchGet(spreadsheetId string) *SpreadsheetsValuesBatchGetCall {
12328	c := &SpreadsheetsValuesBatchGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12329	c.spreadsheetId = spreadsheetId
12330	return c
12331}
12332
12333// DateTimeRenderOption sets the optional parameter
12334// "dateTimeRenderOption": How dates, times, and durations should be
12335// represented in the output.
12336// This is ignored if value_render_option is
12337// FORMATTED_VALUE.
12338// The default dateTime render option is
12339// [DateTimeRenderOption.SERIAL_NUMBER].
12340//
12341// Possible values:
12342//   "SERIAL_NUMBER"
12343//   "FORMATTED_STRING"
12344func (c *SpreadsheetsValuesBatchGetCall) DateTimeRenderOption(dateTimeRenderOption string) *SpreadsheetsValuesBatchGetCall {
12345	c.urlParams_.Set("dateTimeRenderOption", dateTimeRenderOption)
12346	return c
12347}
12348
12349// MajorDimension sets the optional parameter "majorDimension": The
12350// major dimension that results should use.
12351//
12352// For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
12353// then requesting `range=A1:B2,majorDimension=ROWS` returns
12354// `[[1,2],[3,4]]`,
12355// whereas requesting `range=A1:B2,majorDimension=COLUMNS`
12356// returns
12357// `[[1,3],[2,4]]`.
12358//
12359// Possible values:
12360//   "DIMENSION_UNSPECIFIED"
12361//   "ROWS"
12362//   "COLUMNS"
12363func (c *SpreadsheetsValuesBatchGetCall) MajorDimension(majorDimension string) *SpreadsheetsValuesBatchGetCall {
12364	c.urlParams_.Set("majorDimension", majorDimension)
12365	return c
12366}
12367
12368// Ranges sets the optional parameter "ranges": The A1 notation of the
12369// values to retrieve.
12370func (c *SpreadsheetsValuesBatchGetCall) Ranges(ranges ...string) *SpreadsheetsValuesBatchGetCall {
12371	c.urlParams_.SetMulti("ranges", append([]string{}, ranges...))
12372	return c
12373}
12374
12375// ValueRenderOption sets the optional parameter "valueRenderOption":
12376// How values should be represented in the output.
12377// The default render option is ValueRenderOption.FORMATTED_VALUE.
12378//
12379// Possible values:
12380//   "FORMATTED_VALUE"
12381//   "UNFORMATTED_VALUE"
12382//   "FORMULA"
12383func (c *SpreadsheetsValuesBatchGetCall) ValueRenderOption(valueRenderOption string) *SpreadsheetsValuesBatchGetCall {
12384	c.urlParams_.Set("valueRenderOption", valueRenderOption)
12385	return c
12386}
12387
12388// Fields allows partial responses to be retrieved. See
12389// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12390// for more information.
12391func (c *SpreadsheetsValuesBatchGetCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchGetCall {
12392	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12393	return c
12394}
12395
12396// IfNoneMatch sets the optional parameter which makes the operation
12397// fail if the object's ETag matches the given value. This is useful for
12398// getting updates only after the object has changed since the last
12399// request. Use googleapi.IsNotModified to check whether the response
12400// error from Do is the result of In-None-Match.
12401func (c *SpreadsheetsValuesBatchGetCall) IfNoneMatch(entityTag string) *SpreadsheetsValuesBatchGetCall {
12402	c.ifNoneMatch_ = entityTag
12403	return c
12404}
12405
12406// Context sets the context to be used in this call's Do method. Any
12407// pending HTTP request will be aborted if the provided context is
12408// canceled.
12409func (c *SpreadsheetsValuesBatchGetCall) Context(ctx context.Context) *SpreadsheetsValuesBatchGetCall {
12410	c.ctx_ = ctx
12411	return c
12412}
12413
12414// Header returns an http.Header that can be modified by the caller to
12415// add HTTP headers to the request.
12416func (c *SpreadsheetsValuesBatchGetCall) Header() http.Header {
12417	if c.header_ == nil {
12418		c.header_ = make(http.Header)
12419	}
12420	return c.header_
12421}
12422
12423func (c *SpreadsheetsValuesBatchGetCall) doRequest(alt string) (*http.Response, error) {
12424	reqHeaders := make(http.Header)
12425	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
12426	for k, v := range c.header_ {
12427		reqHeaders[k] = v
12428	}
12429	reqHeaders.Set("User-Agent", c.s.userAgent())
12430	if c.ifNoneMatch_ != "" {
12431		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12432	}
12433	var body io.Reader = nil
12434	c.urlParams_.Set("alt", alt)
12435	c.urlParams_.Set("prettyPrint", "false")
12436	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchGet")
12437	urls += "?" + c.urlParams_.Encode()
12438	req, err := http.NewRequest("GET", urls, body)
12439	if err != nil {
12440		return nil, err
12441	}
12442	req.Header = reqHeaders
12443	googleapi.Expand(req.URL, map[string]string{
12444		"spreadsheetId": c.spreadsheetId,
12445	})
12446	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12447}
12448
12449// Do executes the "sheets.spreadsheets.values.batchGet" call.
12450// Exactly one of *BatchGetValuesResponse or error will be non-nil. Any
12451// non-2xx status code is an error. Response headers are in either
12452// *BatchGetValuesResponse.ServerResponse.Header or (if a response was
12453// returned at all) in error.(*googleapi.Error).Header. Use
12454// googleapi.IsNotModified to check whether the returned error was
12455// because http.StatusNotModified was returned.
12456func (c *SpreadsheetsValuesBatchGetCall) Do(opts ...googleapi.CallOption) (*BatchGetValuesResponse, error) {
12457	gensupport.SetOptions(c.urlParams_, opts...)
12458	res, err := c.doRequest("json")
12459	if res != nil && res.StatusCode == http.StatusNotModified {
12460		if res.Body != nil {
12461			res.Body.Close()
12462		}
12463		return nil, &googleapi.Error{
12464			Code:   res.StatusCode,
12465			Header: res.Header,
12466		}
12467	}
12468	if err != nil {
12469		return nil, err
12470	}
12471	defer googleapi.CloseBody(res)
12472	if err := googleapi.CheckResponse(res); err != nil {
12473		return nil, err
12474	}
12475	ret := &BatchGetValuesResponse{
12476		ServerResponse: googleapi.ServerResponse{
12477			Header:         res.Header,
12478			HTTPStatusCode: res.StatusCode,
12479		},
12480	}
12481	target := &ret
12482	if err := gensupport.DecodeResponse(target, res); err != nil {
12483		return nil, err
12484	}
12485	return ret, nil
12486	// {
12487	//   "description": "Returns one or more ranges of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and one or more ranges.",
12488	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGet",
12489	//   "httpMethod": "GET",
12490	//   "id": "sheets.spreadsheets.values.batchGet",
12491	//   "parameterOrder": [
12492	//     "spreadsheetId"
12493	//   ],
12494	//   "parameters": {
12495	//     "dateTimeRenderOption": {
12496	//       "description": "How dates, times, and durations should be represented in the output.\nThis is ignored if value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].",
12497	//       "enum": [
12498	//         "SERIAL_NUMBER",
12499	//         "FORMATTED_STRING"
12500	//       ],
12501	//       "location": "query",
12502	//       "type": "string"
12503	//     },
12504	//     "majorDimension": {
12505	//       "description": "The major dimension that results should use.\n\nFor example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,\nthen requesting `range=A1:B2,majorDimension=ROWS` returns `[[1,2],[3,4]]`,\nwhereas requesting `range=A1:B2,majorDimension=COLUMNS` returns\n`[[1,3],[2,4]]`.",
12506	//       "enum": [
12507	//         "DIMENSION_UNSPECIFIED",
12508	//         "ROWS",
12509	//         "COLUMNS"
12510	//       ],
12511	//       "location": "query",
12512	//       "type": "string"
12513	//     },
12514	//     "ranges": {
12515	//       "description": "The A1 notation of the values to retrieve.",
12516	//       "location": "query",
12517	//       "repeated": true,
12518	//       "type": "string"
12519	//     },
12520	//     "spreadsheetId": {
12521	//       "description": "The ID of the spreadsheet to retrieve data from.",
12522	//       "location": "path",
12523	//       "required": true,
12524	//       "type": "string"
12525	//     },
12526	//     "valueRenderOption": {
12527	//       "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
12528	//       "enum": [
12529	//         "FORMATTED_VALUE",
12530	//         "UNFORMATTED_VALUE",
12531	//         "FORMULA"
12532	//       ],
12533	//       "location": "query",
12534	//       "type": "string"
12535	//     }
12536	//   },
12537	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchGet",
12538	//   "response": {
12539	//     "$ref": "BatchGetValuesResponse"
12540	//   },
12541	//   "scopes": [
12542	//     "https://www.googleapis.com/auth/drive",
12543	//     "https://www.googleapis.com/auth/drive.file",
12544	//     "https://www.googleapis.com/auth/drive.readonly",
12545	//     "https://www.googleapis.com/auth/spreadsheets",
12546	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
12547	//   ]
12548	// }
12549
12550}
12551
12552// method id "sheets.spreadsheets.values.batchGetByDataFilter":
12553
12554type SpreadsheetsValuesBatchGetByDataFilterCall struct {
12555	s                                 *Service
12556	spreadsheetId                     string
12557	batchgetvaluesbydatafilterrequest *BatchGetValuesByDataFilterRequest
12558	urlParams_                        gensupport.URLParams
12559	ctx_                              context.Context
12560	header_                           http.Header
12561}
12562
12563// BatchGetByDataFilter: Returns one or more ranges of values that match
12564// the specified data filters.
12565// The caller must specify the spreadsheet ID and one or
12566// more
12567// DataFilters.  Ranges that match any of the data filters in
12568// the request will be returned.
12569func (r *SpreadsheetsValuesService) BatchGetByDataFilter(spreadsheetId string, batchgetvaluesbydatafilterrequest *BatchGetValuesByDataFilterRequest) *SpreadsheetsValuesBatchGetByDataFilterCall {
12570	c := &SpreadsheetsValuesBatchGetByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12571	c.spreadsheetId = spreadsheetId
12572	c.batchgetvaluesbydatafilterrequest = batchgetvaluesbydatafilterrequest
12573	return c
12574}
12575
12576// Fields allows partial responses to be retrieved. See
12577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12578// for more information.
12579func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchGetByDataFilterCall {
12580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12581	return c
12582}
12583
12584// Context sets the context to be used in this call's Do method. Any
12585// pending HTTP request will be aborted if the provided context is
12586// canceled.
12587func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchGetByDataFilterCall {
12588	c.ctx_ = ctx
12589	return c
12590}
12591
12592// Header returns an http.Header that can be modified by the caller to
12593// add HTTP headers to the request.
12594func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Header() http.Header {
12595	if c.header_ == nil {
12596		c.header_ = make(http.Header)
12597	}
12598	return c.header_
12599}
12600
12601func (c *SpreadsheetsValuesBatchGetByDataFilterCall) doRequest(alt string) (*http.Response, error) {
12602	reqHeaders := make(http.Header)
12603	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
12604	for k, v := range c.header_ {
12605		reqHeaders[k] = v
12606	}
12607	reqHeaders.Set("User-Agent", c.s.userAgent())
12608	var body io.Reader = nil
12609	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchgetvaluesbydatafilterrequest)
12610	if err != nil {
12611		return nil, err
12612	}
12613	reqHeaders.Set("Content-Type", "application/json")
12614	c.urlParams_.Set("alt", alt)
12615	c.urlParams_.Set("prettyPrint", "false")
12616	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter")
12617	urls += "?" + c.urlParams_.Encode()
12618	req, err := http.NewRequest("POST", urls, body)
12619	if err != nil {
12620		return nil, err
12621	}
12622	req.Header = reqHeaders
12623	googleapi.Expand(req.URL, map[string]string{
12624		"spreadsheetId": c.spreadsheetId,
12625	})
12626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12627}
12628
12629// Do executes the "sheets.spreadsheets.values.batchGetByDataFilter" call.
12630// Exactly one of *BatchGetValuesByDataFilterResponse or error will be
12631// non-nil. Any non-2xx status code is an error. Response headers are in
12632// either *BatchGetValuesByDataFilterResponse.ServerResponse.Header or
12633// (if a response was returned at all) in
12634// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
12635// whether the returned error was because http.StatusNotModified was
12636// returned.
12637func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchGetValuesByDataFilterResponse, error) {
12638	gensupport.SetOptions(c.urlParams_, opts...)
12639	res, err := c.doRequest("json")
12640	if res != nil && res.StatusCode == http.StatusNotModified {
12641		if res.Body != nil {
12642			res.Body.Close()
12643		}
12644		return nil, &googleapi.Error{
12645			Code:   res.StatusCode,
12646			Header: res.Header,
12647		}
12648	}
12649	if err != nil {
12650		return nil, err
12651	}
12652	defer googleapi.CloseBody(res)
12653	if err := googleapi.CheckResponse(res); err != nil {
12654		return nil, err
12655	}
12656	ret := &BatchGetValuesByDataFilterResponse{
12657		ServerResponse: googleapi.ServerResponse{
12658			Header:         res.Header,
12659			HTTPStatusCode: res.StatusCode,
12660		},
12661	}
12662	target := &ret
12663	if err := gensupport.DecodeResponse(target, res); err != nil {
12664		return nil, err
12665	}
12666	return ret, nil
12667	// {
12668	//   "description": "Returns one or more ranges of values that match the specified data filters.\nThe caller must specify the spreadsheet ID and one or more\nDataFilters.  Ranges that match any of the data filters in\nthe request will be returned.",
12669	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter",
12670	//   "httpMethod": "POST",
12671	//   "id": "sheets.spreadsheets.values.batchGetByDataFilter",
12672	//   "parameterOrder": [
12673	//     "spreadsheetId"
12674	//   ],
12675	//   "parameters": {
12676	//     "spreadsheetId": {
12677	//       "description": "The ID of the spreadsheet to retrieve data from.",
12678	//       "location": "path",
12679	//       "required": true,
12680	//       "type": "string"
12681	//     }
12682	//   },
12683	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter",
12684	//   "request": {
12685	//     "$ref": "BatchGetValuesByDataFilterRequest"
12686	//   },
12687	//   "response": {
12688	//     "$ref": "BatchGetValuesByDataFilterResponse"
12689	//   },
12690	//   "scopes": [
12691	//     "https://www.googleapis.com/auth/drive",
12692	//     "https://www.googleapis.com/auth/drive.file",
12693	//     "https://www.googleapis.com/auth/spreadsheets"
12694	//   ]
12695	// }
12696
12697}
12698
12699// method id "sheets.spreadsheets.values.batchUpdate":
12700
12701type SpreadsheetsValuesBatchUpdateCall struct {
12702	s                        *Service
12703	spreadsheetId            string
12704	batchupdatevaluesrequest *BatchUpdateValuesRequest
12705	urlParams_               gensupport.URLParams
12706	ctx_                     context.Context
12707	header_                  http.Header
12708}
12709
12710// BatchUpdate: Sets values in one or more ranges of a spreadsheet.
12711// The caller must specify the spreadsheet ID,
12712// a valueInputOption, and one or more
12713// ValueRanges.
12714func (r *SpreadsheetsValuesService) BatchUpdate(spreadsheetId string, batchupdatevaluesrequest *BatchUpdateValuesRequest) *SpreadsheetsValuesBatchUpdateCall {
12715	c := &SpreadsheetsValuesBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12716	c.spreadsheetId = spreadsheetId
12717	c.batchupdatevaluesrequest = batchupdatevaluesrequest
12718	return c
12719}
12720
12721// Fields allows partial responses to be retrieved. See
12722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12723// for more information.
12724func (c *SpreadsheetsValuesBatchUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchUpdateCall {
12725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12726	return c
12727}
12728
12729// Context sets the context to be used in this call's Do method. Any
12730// pending HTTP request will be aborted if the provided context is
12731// canceled.
12732func (c *SpreadsheetsValuesBatchUpdateCall) Context(ctx context.Context) *SpreadsheetsValuesBatchUpdateCall {
12733	c.ctx_ = ctx
12734	return c
12735}
12736
12737// Header returns an http.Header that can be modified by the caller to
12738// add HTTP headers to the request.
12739func (c *SpreadsheetsValuesBatchUpdateCall) Header() http.Header {
12740	if c.header_ == nil {
12741		c.header_ = make(http.Header)
12742	}
12743	return c.header_
12744}
12745
12746func (c *SpreadsheetsValuesBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
12747	reqHeaders := make(http.Header)
12748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
12749	for k, v := range c.header_ {
12750		reqHeaders[k] = v
12751	}
12752	reqHeaders.Set("User-Agent", c.s.userAgent())
12753	var body io.Reader = nil
12754	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatevaluesrequest)
12755	if err != nil {
12756		return nil, err
12757	}
12758	reqHeaders.Set("Content-Type", "application/json")
12759	c.urlParams_.Set("alt", alt)
12760	c.urlParams_.Set("prettyPrint", "false")
12761	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchUpdate")
12762	urls += "?" + c.urlParams_.Encode()
12763	req, err := http.NewRequest("POST", urls, body)
12764	if err != nil {
12765		return nil, err
12766	}
12767	req.Header = reqHeaders
12768	googleapi.Expand(req.URL, map[string]string{
12769		"spreadsheetId": c.spreadsheetId,
12770	})
12771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12772}
12773
12774// Do executes the "sheets.spreadsheets.values.batchUpdate" call.
12775// Exactly one of *BatchUpdateValuesResponse or error will be non-nil.
12776// Any non-2xx status code is an error. Response headers are in either
12777// *BatchUpdateValuesResponse.ServerResponse.Header or (if a response
12778// was 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 *SpreadsheetsValuesBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdateValuesResponse, 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 := &BatchUpdateValuesResponse{
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": "Sets values in one or more ranges of a spreadsheet.\nThe caller must specify the spreadsheet ID,\na valueInputOption, and one or more\nValueRanges.",
12813	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate",
12814	//   "httpMethod": "POST",
12815	//   "id": "sheets.spreadsheets.values.batchUpdate",
12816	//   "parameterOrder": [
12817	//     "spreadsheetId"
12818	//   ],
12819	//   "parameters": {
12820	//     "spreadsheetId": {
12821	//       "description": "The ID of the spreadsheet to update.",
12822	//       "location": "path",
12823	//       "required": true,
12824	//       "type": "string"
12825	//     }
12826	//   },
12827	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate",
12828	//   "request": {
12829	//     "$ref": "BatchUpdateValuesRequest"
12830	//   },
12831	//   "response": {
12832	//     "$ref": "BatchUpdateValuesResponse"
12833	//   },
12834	//   "scopes": [
12835	//     "https://www.googleapis.com/auth/drive",
12836	//     "https://www.googleapis.com/auth/drive.file",
12837	//     "https://www.googleapis.com/auth/spreadsheets"
12838	//   ]
12839	// }
12840
12841}
12842
12843// method id "sheets.spreadsheets.values.batchUpdateByDataFilter":
12844
12845type SpreadsheetsValuesBatchUpdateByDataFilterCall struct {
12846	s                                    *Service
12847	spreadsheetId                        string
12848	batchupdatevaluesbydatafilterrequest *BatchUpdateValuesByDataFilterRequest
12849	urlParams_                           gensupport.URLParams
12850	ctx_                                 context.Context
12851	header_                              http.Header
12852}
12853
12854// BatchUpdateByDataFilter: Sets values in one or more ranges of a
12855// spreadsheet.
12856// The caller must specify the spreadsheet ID,
12857// a valueInputOption, and one or more
12858// DataFilterValueRanges.
12859func (r *SpreadsheetsValuesService) BatchUpdateByDataFilter(spreadsheetId string, batchupdatevaluesbydatafilterrequest *BatchUpdateValuesByDataFilterRequest) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
12860	c := &SpreadsheetsValuesBatchUpdateByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12861	c.spreadsheetId = spreadsheetId
12862	c.batchupdatevaluesbydatafilterrequest = batchupdatevaluesbydatafilterrequest
12863	return c
12864}
12865
12866// Fields allows partial responses to be retrieved. See
12867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12868// for more information.
12869func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
12870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12871	return c
12872}
12873
12874// Context sets the context to be used in this call's Do method. Any
12875// pending HTTP request will be aborted if the provided context is
12876// canceled.
12877func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
12878	c.ctx_ = ctx
12879	return c
12880}
12881
12882// Header returns an http.Header that can be modified by the caller to
12883// add HTTP headers to the request.
12884func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Header() http.Header {
12885	if c.header_ == nil {
12886		c.header_ = make(http.Header)
12887	}
12888	return c.header_
12889}
12890
12891func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) doRequest(alt string) (*http.Response, error) {
12892	reqHeaders := make(http.Header)
12893	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
12894	for k, v := range c.header_ {
12895		reqHeaders[k] = v
12896	}
12897	reqHeaders.Set("User-Agent", c.s.userAgent())
12898	var body io.Reader = nil
12899	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatevaluesbydatafilterrequest)
12900	if err != nil {
12901		return nil, err
12902	}
12903	reqHeaders.Set("Content-Type", "application/json")
12904	c.urlParams_.Set("alt", alt)
12905	c.urlParams_.Set("prettyPrint", "false")
12906	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter")
12907	urls += "?" + c.urlParams_.Encode()
12908	req, err := http.NewRequest("POST", urls, body)
12909	if err != nil {
12910		return nil, err
12911	}
12912	req.Header = reqHeaders
12913	googleapi.Expand(req.URL, map[string]string{
12914		"spreadsheetId": c.spreadsheetId,
12915	})
12916	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12917}
12918
12919// Do executes the "sheets.spreadsheets.values.batchUpdateByDataFilter" call.
12920// Exactly one of *BatchUpdateValuesByDataFilterResponse or error will
12921// be non-nil. Any non-2xx status code is an error. Response headers are
12922// in either
12923// *BatchUpdateValuesByDataFilterResponse.ServerResponse.Header or (if a
12924// response was returned at all) in error.(*googleapi.Error).Header. Use
12925// googleapi.IsNotModified to check whether the returned error was
12926// because http.StatusNotModified was returned.
12927func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchUpdateValuesByDataFilterResponse, error) {
12928	gensupport.SetOptions(c.urlParams_, opts...)
12929	res, err := c.doRequest("json")
12930	if res != nil && res.StatusCode == http.StatusNotModified {
12931		if res.Body != nil {
12932			res.Body.Close()
12933		}
12934		return nil, &googleapi.Error{
12935			Code:   res.StatusCode,
12936			Header: res.Header,
12937		}
12938	}
12939	if err != nil {
12940		return nil, err
12941	}
12942	defer googleapi.CloseBody(res)
12943	if err := googleapi.CheckResponse(res); err != nil {
12944		return nil, err
12945	}
12946	ret := &BatchUpdateValuesByDataFilterResponse{
12947		ServerResponse: googleapi.ServerResponse{
12948			Header:         res.Header,
12949			HTTPStatusCode: res.StatusCode,
12950		},
12951	}
12952	target := &ret
12953	if err := gensupport.DecodeResponse(target, res); err != nil {
12954		return nil, err
12955	}
12956	return ret, nil
12957	// {
12958	//   "description": "Sets values in one or more ranges of a spreadsheet.\nThe caller must specify the spreadsheet ID,\na valueInputOption, and one or more\nDataFilterValueRanges.",
12959	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter",
12960	//   "httpMethod": "POST",
12961	//   "id": "sheets.spreadsheets.values.batchUpdateByDataFilter",
12962	//   "parameterOrder": [
12963	//     "spreadsheetId"
12964	//   ],
12965	//   "parameters": {
12966	//     "spreadsheetId": {
12967	//       "description": "The ID of the spreadsheet to update.",
12968	//       "location": "path",
12969	//       "required": true,
12970	//       "type": "string"
12971	//     }
12972	//   },
12973	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter",
12974	//   "request": {
12975	//     "$ref": "BatchUpdateValuesByDataFilterRequest"
12976	//   },
12977	//   "response": {
12978	//     "$ref": "BatchUpdateValuesByDataFilterResponse"
12979	//   },
12980	//   "scopes": [
12981	//     "https://www.googleapis.com/auth/drive",
12982	//     "https://www.googleapis.com/auth/drive.file",
12983	//     "https://www.googleapis.com/auth/spreadsheets"
12984	//   ]
12985	// }
12986
12987}
12988
12989// method id "sheets.spreadsheets.values.clear":
12990
12991type SpreadsheetsValuesClearCall struct {
12992	s                  *Service
12993	spreadsheetId      string
12994	range_             string
12995	clearvaluesrequest *ClearValuesRequest
12996	urlParams_         gensupport.URLParams
12997	ctx_               context.Context
12998	header_            http.Header
12999}
13000
13001// Clear: Clears values from a spreadsheet.
13002// The caller must specify the spreadsheet ID and range.
13003// Only values are cleared -- all other properties of the cell (such
13004// as
13005// formatting, data validation, etc..) are kept.
13006func (r *SpreadsheetsValuesService) Clear(spreadsheetId string, range_ string, clearvaluesrequest *ClearValuesRequest) *SpreadsheetsValuesClearCall {
13007	c := &SpreadsheetsValuesClearCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13008	c.spreadsheetId = spreadsheetId
13009	c.range_ = range_
13010	c.clearvaluesrequest = clearvaluesrequest
13011	return c
13012}
13013
13014// Fields allows partial responses to be retrieved. See
13015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13016// for more information.
13017func (c *SpreadsheetsValuesClearCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesClearCall {
13018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13019	return c
13020}
13021
13022// Context sets the context to be used in this call's Do method. Any
13023// pending HTTP request will be aborted if the provided context is
13024// canceled.
13025func (c *SpreadsheetsValuesClearCall) Context(ctx context.Context) *SpreadsheetsValuesClearCall {
13026	c.ctx_ = ctx
13027	return c
13028}
13029
13030// Header returns an http.Header that can be modified by the caller to
13031// add HTTP headers to the request.
13032func (c *SpreadsheetsValuesClearCall) Header() http.Header {
13033	if c.header_ == nil {
13034		c.header_ = make(http.Header)
13035	}
13036	return c.header_
13037}
13038
13039func (c *SpreadsheetsValuesClearCall) doRequest(alt string) (*http.Response, error) {
13040	reqHeaders := make(http.Header)
13041	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
13042	for k, v := range c.header_ {
13043		reqHeaders[k] = v
13044	}
13045	reqHeaders.Set("User-Agent", c.s.userAgent())
13046	var body io.Reader = nil
13047	body, err := googleapi.WithoutDataWrapper.JSONReader(c.clearvaluesrequest)
13048	if err != nil {
13049		return nil, err
13050	}
13051	reqHeaders.Set("Content-Type", "application/json")
13052	c.urlParams_.Set("alt", alt)
13053	c.urlParams_.Set("prettyPrint", "false")
13054	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}:clear")
13055	urls += "?" + c.urlParams_.Encode()
13056	req, err := http.NewRequest("POST", urls, body)
13057	if err != nil {
13058		return nil, err
13059	}
13060	req.Header = reqHeaders
13061	googleapi.Expand(req.URL, map[string]string{
13062		"spreadsheetId": c.spreadsheetId,
13063		"range":         c.range_,
13064	})
13065	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13066}
13067
13068// Do executes the "sheets.spreadsheets.values.clear" call.
13069// Exactly one of *ClearValuesResponse or error will be non-nil. Any
13070// non-2xx status code is an error. Response headers are in either
13071// *ClearValuesResponse.ServerResponse.Header or (if a response was
13072// returned at all) in error.(*googleapi.Error).Header. Use
13073// googleapi.IsNotModified to check whether the returned error was
13074// because http.StatusNotModified was returned.
13075func (c *SpreadsheetsValuesClearCall) Do(opts ...googleapi.CallOption) (*ClearValuesResponse, error) {
13076	gensupport.SetOptions(c.urlParams_, opts...)
13077	res, err := c.doRequest("json")
13078	if res != nil && res.StatusCode == http.StatusNotModified {
13079		if res.Body != nil {
13080			res.Body.Close()
13081		}
13082		return nil, &googleapi.Error{
13083			Code:   res.StatusCode,
13084			Header: res.Header,
13085		}
13086	}
13087	if err != nil {
13088		return nil, err
13089	}
13090	defer googleapi.CloseBody(res)
13091	if err := googleapi.CheckResponse(res); err != nil {
13092		return nil, err
13093	}
13094	ret := &ClearValuesResponse{
13095		ServerResponse: googleapi.ServerResponse{
13096			Header:         res.Header,
13097			HTTPStatusCode: res.StatusCode,
13098		},
13099	}
13100	target := &ret
13101	if err := gensupport.DecodeResponse(target, res); err != nil {
13102		return nil, err
13103	}
13104	return ret, nil
13105	// {
13106	//   "description": "Clears values from a spreadsheet.\nThe caller must specify the spreadsheet ID and range.\nOnly values are cleared -- all other properties of the cell (such as\nformatting, data validation, etc..) are kept.",
13107	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear",
13108	//   "httpMethod": "POST",
13109	//   "id": "sheets.spreadsheets.values.clear",
13110	//   "parameterOrder": [
13111	//     "spreadsheetId",
13112	//     "range"
13113	//   ],
13114	//   "parameters": {
13115	//     "range": {
13116	//       "description": "The A1 notation of the values to clear.",
13117	//       "location": "path",
13118	//       "required": true,
13119	//       "type": "string"
13120	//     },
13121	//     "spreadsheetId": {
13122	//       "description": "The ID of the spreadsheet to update.",
13123	//       "location": "path",
13124	//       "required": true,
13125	//       "type": "string"
13126	//     }
13127	//   },
13128	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear",
13129	//   "request": {
13130	//     "$ref": "ClearValuesRequest"
13131	//   },
13132	//   "response": {
13133	//     "$ref": "ClearValuesResponse"
13134	//   },
13135	//   "scopes": [
13136	//     "https://www.googleapis.com/auth/drive",
13137	//     "https://www.googleapis.com/auth/drive.file",
13138	//     "https://www.googleapis.com/auth/spreadsheets"
13139	//   ]
13140	// }
13141
13142}
13143
13144// method id "sheets.spreadsheets.values.get":
13145
13146type SpreadsheetsValuesGetCall struct {
13147	s             *Service
13148	spreadsheetId string
13149	range_        string
13150	urlParams_    gensupport.URLParams
13151	ifNoneMatch_  string
13152	ctx_          context.Context
13153	header_       http.Header
13154}
13155
13156// Get: Returns a range of values from a spreadsheet.
13157// The caller must specify the spreadsheet ID and a range.
13158func (r *SpreadsheetsValuesService) Get(spreadsheetId string, range_ string) *SpreadsheetsValuesGetCall {
13159	c := &SpreadsheetsValuesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13160	c.spreadsheetId = spreadsheetId
13161	c.range_ = range_
13162	return c
13163}
13164
13165// DateTimeRenderOption sets the optional parameter
13166// "dateTimeRenderOption": How dates, times, and durations should be
13167// represented in the output.
13168// This is ignored if value_render_option is
13169// FORMATTED_VALUE.
13170// The default dateTime render option is
13171// [DateTimeRenderOption.SERIAL_NUMBER].
13172//
13173// Possible values:
13174//   "SERIAL_NUMBER"
13175//   "FORMATTED_STRING"
13176func (c *SpreadsheetsValuesGetCall) DateTimeRenderOption(dateTimeRenderOption string) *SpreadsheetsValuesGetCall {
13177	c.urlParams_.Set("dateTimeRenderOption", dateTimeRenderOption)
13178	return c
13179}
13180
13181// MajorDimension sets the optional parameter "majorDimension": The
13182// major dimension that results should use.
13183//
13184// For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
13185// then
13186// requesting `range=A1:B2,majorDimension=ROWS` returns
13187// `[[1,2],[3,4]]`,
13188// whereas requesting `range=A1:B2,majorDimension=COLUMNS`
13189// returns
13190// `[[1,3],[2,4]]`.
13191//
13192// Possible values:
13193//   "DIMENSION_UNSPECIFIED"
13194//   "ROWS"
13195//   "COLUMNS"
13196func (c *SpreadsheetsValuesGetCall) MajorDimension(majorDimension string) *SpreadsheetsValuesGetCall {
13197	c.urlParams_.Set("majorDimension", majorDimension)
13198	return c
13199}
13200
13201// ValueRenderOption sets the optional parameter "valueRenderOption":
13202// How values should be represented in the output.
13203// The default render option is ValueRenderOption.FORMATTED_VALUE.
13204//
13205// Possible values:
13206//   "FORMATTED_VALUE"
13207//   "UNFORMATTED_VALUE"
13208//   "FORMULA"
13209func (c *SpreadsheetsValuesGetCall) ValueRenderOption(valueRenderOption string) *SpreadsheetsValuesGetCall {
13210	c.urlParams_.Set("valueRenderOption", valueRenderOption)
13211	return c
13212}
13213
13214// Fields allows partial responses to be retrieved. See
13215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13216// for more information.
13217func (c *SpreadsheetsValuesGetCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesGetCall {
13218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13219	return c
13220}
13221
13222// IfNoneMatch sets the optional parameter which makes the operation
13223// fail if the object's ETag matches the given value. This is useful for
13224// getting updates only after the object has changed since the last
13225// request. Use googleapi.IsNotModified to check whether the response
13226// error from Do is the result of In-None-Match.
13227func (c *SpreadsheetsValuesGetCall) IfNoneMatch(entityTag string) *SpreadsheetsValuesGetCall {
13228	c.ifNoneMatch_ = entityTag
13229	return c
13230}
13231
13232// Context sets the context to be used in this call's Do method. Any
13233// pending HTTP request will be aborted if the provided context is
13234// canceled.
13235func (c *SpreadsheetsValuesGetCall) Context(ctx context.Context) *SpreadsheetsValuesGetCall {
13236	c.ctx_ = ctx
13237	return c
13238}
13239
13240// Header returns an http.Header that can be modified by the caller to
13241// add HTTP headers to the request.
13242func (c *SpreadsheetsValuesGetCall) Header() http.Header {
13243	if c.header_ == nil {
13244		c.header_ = make(http.Header)
13245	}
13246	return c.header_
13247}
13248
13249func (c *SpreadsheetsValuesGetCall) doRequest(alt string) (*http.Response, error) {
13250	reqHeaders := make(http.Header)
13251	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
13252	for k, v := range c.header_ {
13253		reqHeaders[k] = v
13254	}
13255	reqHeaders.Set("User-Agent", c.s.userAgent())
13256	if c.ifNoneMatch_ != "" {
13257		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13258	}
13259	var body io.Reader = nil
13260	c.urlParams_.Set("alt", alt)
13261	c.urlParams_.Set("prettyPrint", "false")
13262	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}")
13263	urls += "?" + c.urlParams_.Encode()
13264	req, err := http.NewRequest("GET", urls, body)
13265	if err != nil {
13266		return nil, err
13267	}
13268	req.Header = reqHeaders
13269	googleapi.Expand(req.URL, map[string]string{
13270		"spreadsheetId": c.spreadsheetId,
13271		"range":         c.range_,
13272	})
13273	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13274}
13275
13276// Do executes the "sheets.spreadsheets.values.get" call.
13277// Exactly one of *ValueRange or error will be non-nil. Any non-2xx
13278// status code is an error. Response headers are in either
13279// *ValueRange.ServerResponse.Header or (if a response was returned at
13280// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13281// to check whether the returned error was because
13282// http.StatusNotModified was returned.
13283func (c *SpreadsheetsValuesGetCall) Do(opts ...googleapi.CallOption) (*ValueRange, error) {
13284	gensupport.SetOptions(c.urlParams_, opts...)
13285	res, err := c.doRequest("json")
13286	if res != nil && res.StatusCode == http.StatusNotModified {
13287		if res.Body != nil {
13288			res.Body.Close()
13289		}
13290		return nil, &googleapi.Error{
13291			Code:   res.StatusCode,
13292			Header: res.Header,
13293		}
13294	}
13295	if err != nil {
13296		return nil, err
13297	}
13298	defer googleapi.CloseBody(res)
13299	if err := googleapi.CheckResponse(res); err != nil {
13300		return nil, err
13301	}
13302	ret := &ValueRange{
13303		ServerResponse: googleapi.ServerResponse{
13304			Header:         res.Header,
13305			HTTPStatusCode: res.StatusCode,
13306		},
13307	}
13308	target := &ret
13309	if err := gensupport.DecodeResponse(target, res); err != nil {
13310		return nil, err
13311	}
13312	return ret, nil
13313	// {
13314	//   "description": "Returns a range of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and a range.",
13315	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}",
13316	//   "httpMethod": "GET",
13317	//   "id": "sheets.spreadsheets.values.get",
13318	//   "parameterOrder": [
13319	//     "spreadsheetId",
13320	//     "range"
13321	//   ],
13322	//   "parameters": {
13323	//     "dateTimeRenderOption": {
13324	//       "description": "How dates, times, and durations should be represented in the output.\nThis is ignored if value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].",
13325	//       "enum": [
13326	//         "SERIAL_NUMBER",
13327	//         "FORMATTED_STRING"
13328	//       ],
13329	//       "location": "query",
13330	//       "type": "string"
13331	//     },
13332	//     "majorDimension": {
13333	//       "description": "The major dimension that results should use.\n\nFor example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then\nrequesting `range=A1:B2,majorDimension=ROWS` returns `[[1,2],[3,4]]`,\nwhereas requesting `range=A1:B2,majorDimension=COLUMNS` returns\n`[[1,3],[2,4]]`.",
13334	//       "enum": [
13335	//         "DIMENSION_UNSPECIFIED",
13336	//         "ROWS",
13337	//         "COLUMNS"
13338	//       ],
13339	//       "location": "query",
13340	//       "type": "string"
13341	//     },
13342	//     "range": {
13343	//       "description": "The A1 notation of the values to retrieve.",
13344	//       "location": "path",
13345	//       "required": true,
13346	//       "type": "string"
13347	//     },
13348	//     "spreadsheetId": {
13349	//       "description": "The ID of the spreadsheet to retrieve data from.",
13350	//       "location": "path",
13351	//       "required": true,
13352	//       "type": "string"
13353	//     },
13354	//     "valueRenderOption": {
13355	//       "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
13356	//       "enum": [
13357	//         "FORMATTED_VALUE",
13358	//         "UNFORMATTED_VALUE",
13359	//         "FORMULA"
13360	//       ],
13361	//       "location": "query",
13362	//       "type": "string"
13363	//     }
13364	//   },
13365	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}",
13366	//   "response": {
13367	//     "$ref": "ValueRange"
13368	//   },
13369	//   "scopes": [
13370	//     "https://www.googleapis.com/auth/drive",
13371	//     "https://www.googleapis.com/auth/drive.file",
13372	//     "https://www.googleapis.com/auth/drive.readonly",
13373	//     "https://www.googleapis.com/auth/spreadsheets",
13374	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
13375	//   ]
13376	// }
13377
13378}
13379
13380// method id "sheets.spreadsheets.values.update":
13381
13382type SpreadsheetsValuesUpdateCall struct {
13383	s             *Service
13384	spreadsheetId string
13385	range_        string
13386	valuerange    *ValueRange
13387	urlParams_    gensupport.URLParams
13388	ctx_          context.Context
13389	header_       http.Header
13390}
13391
13392// Update: Sets values in a range of a spreadsheet.
13393// The caller must specify the spreadsheet ID, range, and
13394// a valueInputOption.
13395func (r *SpreadsheetsValuesService) Update(spreadsheetId string, range_ string, valuerange *ValueRange) *SpreadsheetsValuesUpdateCall {
13396	c := &SpreadsheetsValuesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13397	c.spreadsheetId = spreadsheetId
13398	c.range_ = range_
13399	c.valuerange = valuerange
13400	return c
13401}
13402
13403// IncludeValuesInResponse sets the optional parameter
13404// "includeValuesInResponse": Determines if the update response should
13405// include the values
13406// of the cells that were updated. By default, responses
13407// do not include the updated values.
13408// If the range to write was larger than the range actually written,
13409// the
13410// response includes all values in the requested range (excluding
13411// trailing
13412// empty rows and columns).
13413func (c *SpreadsheetsValuesUpdateCall) IncludeValuesInResponse(includeValuesInResponse bool) *SpreadsheetsValuesUpdateCall {
13414	c.urlParams_.Set("includeValuesInResponse", fmt.Sprint(includeValuesInResponse))
13415	return c
13416}
13417
13418// ResponseDateTimeRenderOption sets the optional parameter
13419// "responseDateTimeRenderOption": Determines how dates, times, and
13420// durations in the response should be
13421// rendered. This is ignored if response_value_render_option
13422// is
13423// FORMATTED_VALUE.
13424// The default dateTime render option
13425// is
13426// DateTimeRenderOption.SERIAL_NUMBER.
13427//
13428// Possible values:
13429//   "SERIAL_NUMBER"
13430//   "FORMATTED_STRING"
13431func (c *SpreadsheetsValuesUpdateCall) ResponseDateTimeRenderOption(responseDateTimeRenderOption string) *SpreadsheetsValuesUpdateCall {
13432	c.urlParams_.Set("responseDateTimeRenderOption", responseDateTimeRenderOption)
13433	return c
13434}
13435
13436// ResponseValueRenderOption sets the optional parameter
13437// "responseValueRenderOption": Determines how values in the response
13438// should be rendered.
13439// The default render option is ValueRenderOption.FORMATTED_VALUE.
13440//
13441// Possible values:
13442//   "FORMATTED_VALUE"
13443//   "UNFORMATTED_VALUE"
13444//   "FORMULA"
13445func (c *SpreadsheetsValuesUpdateCall) ResponseValueRenderOption(responseValueRenderOption string) *SpreadsheetsValuesUpdateCall {
13446	c.urlParams_.Set("responseValueRenderOption", responseValueRenderOption)
13447	return c
13448}
13449
13450// ValueInputOption sets the optional parameter "valueInputOption": How
13451// the input data should be interpreted.
13452//
13453// Possible values:
13454//   "INPUT_VALUE_OPTION_UNSPECIFIED"
13455//   "RAW"
13456//   "USER_ENTERED"
13457func (c *SpreadsheetsValuesUpdateCall) ValueInputOption(valueInputOption string) *SpreadsheetsValuesUpdateCall {
13458	c.urlParams_.Set("valueInputOption", valueInputOption)
13459	return c
13460}
13461
13462// Fields allows partial responses to be retrieved. See
13463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13464// for more information.
13465func (c *SpreadsheetsValuesUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesUpdateCall {
13466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13467	return c
13468}
13469
13470// Context sets the context to be used in this call's Do method. Any
13471// pending HTTP request will be aborted if the provided context is
13472// canceled.
13473func (c *SpreadsheetsValuesUpdateCall) Context(ctx context.Context) *SpreadsheetsValuesUpdateCall {
13474	c.ctx_ = ctx
13475	return c
13476}
13477
13478// Header returns an http.Header that can be modified by the caller to
13479// add HTTP headers to the request.
13480func (c *SpreadsheetsValuesUpdateCall) Header() http.Header {
13481	if c.header_ == nil {
13482		c.header_ = make(http.Header)
13483	}
13484	return c.header_
13485}
13486
13487func (c *SpreadsheetsValuesUpdateCall) doRequest(alt string) (*http.Response, error) {
13488	reqHeaders := make(http.Header)
13489	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
13490	for k, v := range c.header_ {
13491		reqHeaders[k] = v
13492	}
13493	reqHeaders.Set("User-Agent", c.s.userAgent())
13494	var body io.Reader = nil
13495	body, err := googleapi.WithoutDataWrapper.JSONReader(c.valuerange)
13496	if err != nil {
13497		return nil, err
13498	}
13499	reqHeaders.Set("Content-Type", "application/json")
13500	c.urlParams_.Set("alt", alt)
13501	c.urlParams_.Set("prettyPrint", "false")
13502	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}")
13503	urls += "?" + c.urlParams_.Encode()
13504	req, err := http.NewRequest("PUT", urls, body)
13505	if err != nil {
13506		return nil, err
13507	}
13508	req.Header = reqHeaders
13509	googleapi.Expand(req.URL, map[string]string{
13510		"spreadsheetId": c.spreadsheetId,
13511		"range":         c.range_,
13512	})
13513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13514}
13515
13516// Do executes the "sheets.spreadsheets.values.update" call.
13517// Exactly one of *UpdateValuesResponse or error will be non-nil. Any
13518// non-2xx status code is an error. Response headers are in either
13519// *UpdateValuesResponse.ServerResponse.Header or (if a response was
13520// returned at all) in error.(*googleapi.Error).Header. Use
13521// googleapi.IsNotModified to check whether the returned error was
13522// because http.StatusNotModified was returned.
13523func (c *SpreadsheetsValuesUpdateCall) Do(opts ...googleapi.CallOption) (*UpdateValuesResponse, error) {
13524	gensupport.SetOptions(c.urlParams_, opts...)
13525	res, err := c.doRequest("json")
13526	if res != nil && res.StatusCode == http.StatusNotModified {
13527		if res.Body != nil {
13528			res.Body.Close()
13529		}
13530		return nil, &googleapi.Error{
13531			Code:   res.StatusCode,
13532			Header: res.Header,
13533		}
13534	}
13535	if err != nil {
13536		return nil, err
13537	}
13538	defer googleapi.CloseBody(res)
13539	if err := googleapi.CheckResponse(res); err != nil {
13540		return nil, err
13541	}
13542	ret := &UpdateValuesResponse{
13543		ServerResponse: googleapi.ServerResponse{
13544			Header:         res.Header,
13545			HTTPStatusCode: res.StatusCode,
13546		},
13547	}
13548	target := &ret
13549	if err := gensupport.DecodeResponse(target, res); err != nil {
13550		return nil, err
13551	}
13552	return ret, nil
13553	// {
13554	//   "description": "Sets values in a range of a spreadsheet.\nThe caller must specify the spreadsheet ID, range, and\na valueInputOption.",
13555	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}",
13556	//   "httpMethod": "PUT",
13557	//   "id": "sheets.spreadsheets.values.update",
13558	//   "parameterOrder": [
13559	//     "spreadsheetId",
13560	//     "range"
13561	//   ],
13562	//   "parameters": {
13563	//     "includeValuesInResponse": {
13564	//       "description": "Determines if the update response should include the values\nof the cells that were updated. By default, responses\ndo not include the updated values.\nIf the range to write was larger than the range actually written, the\nresponse includes all values in the requested range (excluding trailing\nempty rows and columns).",
13565	//       "location": "query",
13566	//       "type": "boolean"
13567	//     },
13568	//     "range": {
13569	//       "description": "The A1 notation of the values to update.",
13570	//       "location": "path",
13571	//       "required": true,
13572	//       "type": "string"
13573	//     },
13574	//     "responseDateTimeRenderOption": {
13575	//       "description": "Determines how dates, times, and durations in the response should be\nrendered. This is ignored if response_value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is\nDateTimeRenderOption.SERIAL_NUMBER.",
13576	//       "enum": [
13577	//         "SERIAL_NUMBER",
13578	//         "FORMATTED_STRING"
13579	//       ],
13580	//       "location": "query",
13581	//       "type": "string"
13582	//     },
13583	//     "responseValueRenderOption": {
13584	//       "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
13585	//       "enum": [
13586	//         "FORMATTED_VALUE",
13587	//         "UNFORMATTED_VALUE",
13588	//         "FORMULA"
13589	//       ],
13590	//       "location": "query",
13591	//       "type": "string"
13592	//     },
13593	//     "spreadsheetId": {
13594	//       "description": "The ID of the spreadsheet to update.",
13595	//       "location": "path",
13596	//       "required": true,
13597	//       "type": "string"
13598	//     },
13599	//     "valueInputOption": {
13600	//       "description": "How the input data should be interpreted.",
13601	//       "enum": [
13602	//         "INPUT_VALUE_OPTION_UNSPECIFIED",
13603	//         "RAW",
13604	//         "USER_ENTERED"
13605	//       ],
13606	//       "location": "query",
13607	//       "type": "string"
13608	//     }
13609	//   },
13610	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}",
13611	//   "request": {
13612	//     "$ref": "ValueRange"
13613	//   },
13614	//   "response": {
13615	//     "$ref": "UpdateValuesResponse"
13616	//   },
13617	//   "scopes": [
13618	//     "https://www.googleapis.com/auth/drive",
13619	//     "https://www.googleapis.com/auth/drive.file",
13620	//     "https://www.googleapis.com/auth/spreadsheets"
13621	//   ]
13622	// }
13623
13624}
13625