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/"
82
83// OAuth2 scopes used by this API.
84const (
85	// See, edit, create, and delete all of your Google Drive files
86	DriveScope = "https://www.googleapis.com/auth/drive"
87
88	// View and manage Google Drive files and folders that you have opened
89	// or created with this app
90	DriveFileScope = "https://www.googleapis.com/auth/drive.file"
91
92	// See and download all your Google Drive files
93	DriveReadonlyScope = "https://www.googleapis.com/auth/drive.readonly"
94
95	// See, edit, create, and delete your spreadsheets in Google Drive
96	SpreadsheetsScope = "https://www.googleapis.com/auth/spreadsheets"
97
98	// View your Google Spreadsheets
99	SpreadsheetsReadonlyScope = "https://www.googleapis.com/auth/spreadsheets.readonly"
100)
101
102// NewService creates a new Service.
103func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
104	scopesOption := option.WithScopes(
105		"https://www.googleapis.com/auth/drive",
106		"https://www.googleapis.com/auth/drive.file",
107		"https://www.googleapis.com/auth/drive.readonly",
108		"https://www.googleapis.com/auth/spreadsheets",
109		"https://www.googleapis.com/auth/spreadsheets.readonly",
110	)
111	// NOTE: prepend, so we don't override user-specified scopes.
112	opts = append([]option.ClientOption{scopesOption}, opts...)
113	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
114	client, endpoint, err := htransport.NewClient(ctx, opts...)
115	if err != nil {
116		return nil, err
117	}
118	s, err := New(client)
119	if err != nil {
120		return nil, err
121	}
122	if endpoint != "" {
123		s.BasePath = endpoint
124	}
125	return s, nil
126}
127
128// New creates a new Service. It uses the provided http.Client for requests.
129//
130// Deprecated: please use NewService instead.
131// To provide a custom HTTP client, use option.WithHTTPClient.
132// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
133func New(client *http.Client) (*Service, error) {
134	if client == nil {
135		return nil, errors.New("client is nil")
136	}
137	s := &Service{client: client, BasePath: basePath}
138	s.Spreadsheets = NewSpreadsheetsService(s)
139	return s, nil
140}
141
142type Service struct {
143	client    *http.Client
144	BasePath  string // API endpoint base URL
145	UserAgent string // optional additional User-Agent fragment
146
147	Spreadsheets *SpreadsheetsService
148}
149
150func (s *Service) userAgent() string {
151	if s.UserAgent == "" {
152		return googleapi.UserAgent
153	}
154	return googleapi.UserAgent + " " + s.UserAgent
155}
156
157func NewSpreadsheetsService(s *Service) *SpreadsheetsService {
158	rs := &SpreadsheetsService{s: s}
159	rs.DeveloperMetadata = NewSpreadsheetsDeveloperMetadataService(s)
160	rs.Sheets = NewSpreadsheetsSheetsService(s)
161	rs.Values = NewSpreadsheetsValuesService(s)
162	return rs
163}
164
165type SpreadsheetsService struct {
166	s *Service
167
168	DeveloperMetadata *SpreadsheetsDeveloperMetadataService
169
170	Sheets *SpreadsheetsSheetsService
171
172	Values *SpreadsheetsValuesService
173}
174
175func NewSpreadsheetsDeveloperMetadataService(s *Service) *SpreadsheetsDeveloperMetadataService {
176	rs := &SpreadsheetsDeveloperMetadataService{s: s}
177	return rs
178}
179
180type SpreadsheetsDeveloperMetadataService struct {
181	s *Service
182}
183
184func NewSpreadsheetsSheetsService(s *Service) *SpreadsheetsSheetsService {
185	rs := &SpreadsheetsSheetsService{s: s}
186	return rs
187}
188
189type SpreadsheetsSheetsService struct {
190	s *Service
191}
192
193func NewSpreadsheetsValuesService(s *Service) *SpreadsheetsValuesService {
194	rs := &SpreadsheetsValuesService{s: s}
195	return rs
196}
197
198type SpreadsheetsValuesService struct {
199	s *Service
200}
201
202// AddBandingRequest: Adds a new banded range to the spreadsheet.
203type AddBandingRequest struct {
204	// BandedRange: The banded range to add. The bandedRangeId
205	// field is optional; if one is not set, an id will be randomly
206	// generated. (It
207	// is an error to specify the ID of a range that already exists.)
208	BandedRange *BandedRange `json:"bandedRange,omitempty"`
209
210	// ForceSendFields is a list of field names (e.g. "BandedRange") to
211	// unconditionally include in API requests. By default, fields with
212	// empty values are omitted from API requests. However, any non-pointer,
213	// non-interface field appearing in ForceSendFields will be sent to the
214	// server regardless of whether the field is empty or not. This may be
215	// used to include empty fields in Patch requests.
216	ForceSendFields []string `json:"-"`
217
218	// NullFields is a list of field names (e.g. "BandedRange") to include
219	// in API requests with the JSON null value. By default, fields with
220	// empty values are omitted from API requests. However, any field with
221	// an empty value appearing in NullFields will be sent to the server as
222	// null. It is an error if a field in this list has a non-empty value.
223	// This may be used to include null fields in Patch requests.
224	NullFields []string `json:"-"`
225}
226
227func (s *AddBandingRequest) MarshalJSON() ([]byte, error) {
228	type NoMethod AddBandingRequest
229	raw := NoMethod(*s)
230	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
231}
232
233// AddBandingResponse: The result of adding a banded range.
234type AddBandingResponse struct {
235	// BandedRange: The banded range that was added.
236	BandedRange *BandedRange `json:"bandedRange,omitempty"`
237
238	// ForceSendFields is a list of field names (e.g. "BandedRange") to
239	// unconditionally include in API requests. By default, fields with
240	// empty values are omitted from API requests. However, any non-pointer,
241	// non-interface field appearing in ForceSendFields will be sent to the
242	// server regardless of whether the field is empty or not. This may be
243	// used to include empty fields in Patch requests.
244	ForceSendFields []string `json:"-"`
245
246	// NullFields is a list of field names (e.g. "BandedRange") to include
247	// in API requests with the JSON null value. By default, fields with
248	// empty values are omitted from API requests. However, any field with
249	// an empty value appearing in NullFields will be sent to the server as
250	// null. It is an error if a field in this list has a non-empty value.
251	// This may be used to include null fields in Patch requests.
252	NullFields []string `json:"-"`
253}
254
255func (s *AddBandingResponse) MarshalJSON() ([]byte, error) {
256	type NoMethod AddBandingResponse
257	raw := NoMethod(*s)
258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
259}
260
261// AddChartRequest: Adds a chart to a sheet in the spreadsheet.
262type AddChartRequest struct {
263	// Chart: The chart that should be added to the spreadsheet, including
264	// the position
265	// where it should be placed. The chartId
266	// field is optional; if one is not set, an id will be randomly
267	// generated. (It
268	// is an error to specify the ID of an embedded object that already
269	// exists.)
270	Chart *EmbeddedChart `json:"chart,omitempty"`
271
272	// ForceSendFields is a list of field names (e.g. "Chart") to
273	// unconditionally include in API requests. By default, fields with
274	// empty values are omitted from API requests. However, any non-pointer,
275	// non-interface field appearing in ForceSendFields will be sent to the
276	// server regardless of whether the field is empty or not. This may be
277	// used to include empty fields in Patch requests.
278	ForceSendFields []string `json:"-"`
279
280	// NullFields is a list of field names (e.g. "Chart") to include in API
281	// requests with the JSON null value. By default, fields with empty
282	// values are omitted from API requests. However, any field with an
283	// empty value appearing in NullFields will be sent to the server as
284	// null. It is an error if a field in this list has a non-empty value.
285	// This may be used to include null fields in Patch requests.
286	NullFields []string `json:"-"`
287}
288
289func (s *AddChartRequest) MarshalJSON() ([]byte, error) {
290	type NoMethod AddChartRequest
291	raw := NoMethod(*s)
292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
293}
294
295// AddChartResponse: The result of adding a chart to a spreadsheet.
296type AddChartResponse struct {
297	// Chart: The newly added chart.
298	Chart *EmbeddedChart `json:"chart,omitempty"`
299
300	// ForceSendFields is a list of field names (e.g. "Chart") to
301	// unconditionally include in API requests. By default, fields with
302	// empty values are omitted from API requests. However, any non-pointer,
303	// non-interface field appearing in ForceSendFields will be sent to the
304	// server regardless of whether the field is empty or not. This may be
305	// used to include empty fields in Patch requests.
306	ForceSendFields []string `json:"-"`
307
308	// NullFields is a list of field names (e.g. "Chart") to include in API
309	// requests with the JSON null value. By default, fields with empty
310	// values are omitted from API requests. However, any field with an
311	// empty value appearing in NullFields will be sent to the server as
312	// null. It is an error if a field in this list has a non-empty value.
313	// This may be used to include null fields in Patch requests.
314	NullFields []string `json:"-"`
315}
316
317func (s *AddChartResponse) MarshalJSON() ([]byte, error) {
318	type NoMethod AddChartResponse
319	raw := NoMethod(*s)
320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
321}
322
323// AddConditionalFormatRuleRequest: Adds a new conditional format rule
324// at the given index.
325// All subsequent rules' indexes are incremented.
326type AddConditionalFormatRuleRequest struct {
327	// Index: The zero-based index where the rule should be inserted.
328	Index int64 `json:"index,omitempty"`
329
330	// Rule: The rule to add.
331	Rule *ConditionalFormatRule `json:"rule,omitempty"`
332
333	// ForceSendFields is a list of field names (e.g. "Index") to
334	// unconditionally include in API requests. By default, fields with
335	// empty values are omitted from API requests. However, any non-pointer,
336	// non-interface field appearing in ForceSendFields will be sent to the
337	// server regardless of whether the field is empty or not. This may be
338	// used to include empty fields in Patch requests.
339	ForceSendFields []string `json:"-"`
340
341	// NullFields is a list of field names (e.g. "Index") to include in API
342	// requests with the JSON null value. By default, fields with empty
343	// values are omitted from API requests. However, any field with an
344	// empty value appearing in NullFields will be sent to the server as
345	// null. It is an error if a field in this list has a non-empty value.
346	// This may be used to include null fields in Patch requests.
347	NullFields []string `json:"-"`
348}
349
350func (s *AddConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
351	type NoMethod AddConditionalFormatRuleRequest
352	raw := NoMethod(*s)
353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
354}
355
356// AddDimensionGroupRequest: Creates a group over the specified
357// range.
358//
359// If the requested range is a superset of the range of an existing
360// group G,
361// then the depth of G is incremented and this new group G' has
362// the
363// depth of that group. For example, a group [C:D, depth 1] + [B:E]
364// results in
365// groups [B:E, depth 1] and [C:D, depth 2].
366// If the requested range is a subset of the range of an existing group
367// G,
368// then the depth of the new group G' becomes one greater than the depth
369// of G.
370// For example, a group [B:E, depth 1] + [C:D] results in groups [B:E,
371// depth 1]
372// and [C:D, depth 2].
373// If the requested range starts before and ends within, or starts
374// within and
375// ends after, the range of an existing group G, then the range of the
376// existing
377// group G becomes the union of the ranges, and the new group G'
378// has
379// depth one greater than the depth of G and range as the intersection
380// of the
381// ranges. For example, a group [B:D, depth 1] + [C:E] results in groups
382// [B:E,
383// depth 1] and [C:D, depth 2].
384type AddDimensionGroupRequest struct {
385	// Range: The range over which to create a group.
386	Range *DimensionRange `json:"range,omitempty"`
387
388	// ForceSendFields is a list of field names (e.g. "Range") to
389	// unconditionally include in API requests. By default, fields with
390	// empty values are omitted from API requests. However, any non-pointer,
391	// non-interface field appearing in ForceSendFields will be sent to the
392	// server regardless of whether the field is empty or not. This may be
393	// used to include empty fields in Patch requests.
394	ForceSendFields []string `json:"-"`
395
396	// NullFields is a list of field names (e.g. "Range") to include in API
397	// requests with the JSON null value. By default, fields with empty
398	// values are omitted from API requests. However, any field with an
399	// empty value appearing in NullFields will be sent to the server as
400	// null. It is an error if a field in this list has a non-empty value.
401	// This may be used to include null fields in Patch requests.
402	NullFields []string `json:"-"`
403}
404
405func (s *AddDimensionGroupRequest) MarshalJSON() ([]byte, error) {
406	type NoMethod AddDimensionGroupRequest
407	raw := NoMethod(*s)
408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
409}
410
411// AddDimensionGroupResponse: The result of adding a group.
412type AddDimensionGroupResponse struct {
413	// DimensionGroups: All groups of a dimension after adding a group to
414	// that dimension.
415	DimensionGroups []*DimensionGroup `json:"dimensionGroups,omitempty"`
416
417	// ForceSendFields is a list of field names (e.g. "DimensionGroups") to
418	// unconditionally include in API requests. By default, fields with
419	// empty values are omitted from API requests. However, any non-pointer,
420	// non-interface field appearing in ForceSendFields will be sent to the
421	// server regardless of whether the field is empty or not. This may be
422	// used to include empty fields in Patch requests.
423	ForceSendFields []string `json:"-"`
424
425	// NullFields is a list of field names (e.g. "DimensionGroups") to
426	// include in API requests with the JSON null value. By default, fields
427	// with empty values are omitted from API requests. However, any field
428	// with an empty value appearing in NullFields will be sent to the
429	// server as null. It is an error if a field in this list has a
430	// non-empty value. This may be used to include null fields in Patch
431	// requests.
432	NullFields []string `json:"-"`
433}
434
435func (s *AddDimensionGroupResponse) MarshalJSON() ([]byte, error) {
436	type NoMethod AddDimensionGroupResponse
437	raw := NoMethod(*s)
438	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
439}
440
441// AddFilterViewRequest: Adds a filter view.
442type AddFilterViewRequest struct {
443	// Filter: The filter to add. The filterViewId
444	// field is optional; if one is not set, an id will be randomly
445	// generated. (It
446	// is an error to specify the ID of a filter that already exists.)
447	Filter *FilterView `json:"filter,omitempty"`
448
449	// ForceSendFields is a list of field names (e.g. "Filter") to
450	// unconditionally include in API requests. By default, fields with
451	// empty values are omitted from API requests. However, any non-pointer,
452	// non-interface field appearing in ForceSendFields will be sent to the
453	// server regardless of whether the field is empty or not. This may be
454	// used to include empty fields in Patch requests.
455	ForceSendFields []string `json:"-"`
456
457	// NullFields is a list of field names (e.g. "Filter") to include in API
458	// requests with the JSON null value. By default, fields with empty
459	// values are omitted from API requests. However, any field with an
460	// empty value appearing in NullFields will be sent to the server as
461	// null. It is an error if a field in this list has a non-empty value.
462	// This may be used to include null fields in Patch requests.
463	NullFields []string `json:"-"`
464}
465
466func (s *AddFilterViewRequest) MarshalJSON() ([]byte, error) {
467	type NoMethod AddFilterViewRequest
468	raw := NoMethod(*s)
469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
470}
471
472// AddFilterViewResponse: The result of adding a filter view.
473type AddFilterViewResponse struct {
474	// Filter: The newly added filter view.
475	Filter *FilterView `json:"filter,omitempty"`
476
477	// ForceSendFields is a list of field names (e.g. "Filter") to
478	// unconditionally include in API requests. By default, fields with
479	// empty values are omitted from API requests. However, any non-pointer,
480	// non-interface field appearing in ForceSendFields will be sent to the
481	// server regardless of whether the field is empty or not. This may be
482	// used to include empty fields in Patch requests.
483	ForceSendFields []string `json:"-"`
484
485	// NullFields is a list of field names (e.g. "Filter") to include in API
486	// requests with the JSON null value. By default, fields with empty
487	// values are omitted from API requests. However, any field with an
488	// empty value appearing in NullFields will be sent to the server as
489	// null. It is an error if a field in this list has a non-empty value.
490	// This may be used to include null fields in Patch requests.
491	NullFields []string `json:"-"`
492}
493
494func (s *AddFilterViewResponse) MarshalJSON() ([]byte, error) {
495	type NoMethod AddFilterViewResponse
496	raw := NoMethod(*s)
497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
498}
499
500// AddNamedRangeRequest: Adds a named range to the spreadsheet.
501type AddNamedRangeRequest struct {
502	// NamedRange: The named range to add. The namedRangeId
503	// field is optional; if one is not set, an id will be randomly
504	// generated. (It
505	// is an error to specify the ID of a range that already exists.)
506	NamedRange *NamedRange `json:"namedRange,omitempty"`
507
508	// ForceSendFields is a list of field names (e.g. "NamedRange") to
509	// unconditionally include in API requests. By default, fields with
510	// empty values are omitted from API requests. However, any non-pointer,
511	// non-interface field appearing in ForceSendFields will be sent to the
512	// server regardless of whether the field is empty or not. This may be
513	// used to include empty fields in Patch requests.
514	ForceSendFields []string `json:"-"`
515
516	// NullFields is a list of field names (e.g. "NamedRange") to include in
517	// API requests with the JSON null value. By default, fields with empty
518	// values are omitted from API requests. However, any field with an
519	// empty value appearing in NullFields will be sent to the server as
520	// null. It is an error if a field in this list has a non-empty value.
521	// This may be used to include null fields in Patch requests.
522	NullFields []string `json:"-"`
523}
524
525func (s *AddNamedRangeRequest) MarshalJSON() ([]byte, error) {
526	type NoMethod AddNamedRangeRequest
527	raw := NoMethod(*s)
528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
529}
530
531// AddNamedRangeResponse: The result of adding a named range.
532type AddNamedRangeResponse struct {
533	// NamedRange: The named range to add.
534	NamedRange *NamedRange `json:"namedRange,omitempty"`
535
536	// ForceSendFields is a list of field names (e.g. "NamedRange") to
537	// unconditionally include in API requests. By default, fields with
538	// empty values are omitted from API requests. However, any non-pointer,
539	// non-interface field appearing in ForceSendFields will be sent to the
540	// server regardless of whether the field is empty or not. This may be
541	// used to include empty fields in Patch requests.
542	ForceSendFields []string `json:"-"`
543
544	// NullFields is a list of field names (e.g. "NamedRange") to include in
545	// API requests with the JSON null value. By default, fields with empty
546	// values are omitted from API requests. However, any field with an
547	// empty value appearing in NullFields will be sent to the server as
548	// null. It is an error if a field in this list has a non-empty value.
549	// This may be used to include null fields in Patch requests.
550	NullFields []string `json:"-"`
551}
552
553func (s *AddNamedRangeResponse) MarshalJSON() ([]byte, error) {
554	type NoMethod AddNamedRangeResponse
555	raw := NoMethod(*s)
556	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
557}
558
559// AddProtectedRangeRequest: Adds a new protected range.
560type AddProtectedRangeRequest struct {
561	// ProtectedRange: The protected range to be added. The
562	// protectedRangeId field is optional; if
563	// one is not set, an id will be randomly generated. (It is an error
564	// to
565	// specify the ID of a range that already exists.)
566	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
567
568	// ForceSendFields is a list of field names (e.g. "ProtectedRange") to
569	// unconditionally include in API requests. By default, fields with
570	// empty values are omitted from API requests. However, any non-pointer,
571	// non-interface field appearing in ForceSendFields will be sent to the
572	// server regardless of whether the field is empty or not. This may be
573	// used to include empty fields in Patch requests.
574	ForceSendFields []string `json:"-"`
575
576	// NullFields is a list of field names (e.g. "ProtectedRange") to
577	// include in API requests with the JSON null value. By default, fields
578	// with empty values are omitted from API requests. However, any field
579	// with an empty value appearing in NullFields will be sent to the
580	// server as null. It is an error if a field in this list has a
581	// non-empty value. This may be used to include null fields in Patch
582	// requests.
583	NullFields []string `json:"-"`
584}
585
586func (s *AddProtectedRangeRequest) MarshalJSON() ([]byte, error) {
587	type NoMethod AddProtectedRangeRequest
588	raw := NoMethod(*s)
589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
590}
591
592// AddProtectedRangeResponse: The result of adding a new protected
593// range.
594type AddProtectedRangeResponse struct {
595	// ProtectedRange: The newly added protected range.
596	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
597
598	// ForceSendFields is a list of field names (e.g. "ProtectedRange") to
599	// unconditionally include in API requests. By default, fields with
600	// empty values are omitted from API requests. However, any non-pointer,
601	// non-interface field appearing in ForceSendFields will be sent to the
602	// server regardless of whether the field is empty or not. This may be
603	// used to include empty fields in Patch requests.
604	ForceSendFields []string `json:"-"`
605
606	// NullFields is a list of field names (e.g. "ProtectedRange") to
607	// include in API requests with the JSON null value. By default, fields
608	// with empty values are omitted from API requests. However, any field
609	// with an empty value appearing in NullFields will be sent to the
610	// server as null. It is an error if a field in this list has a
611	// non-empty value. This may be used to include null fields in Patch
612	// requests.
613	NullFields []string `json:"-"`
614}
615
616func (s *AddProtectedRangeResponse) MarshalJSON() ([]byte, error) {
617	type NoMethod AddProtectedRangeResponse
618	raw := NoMethod(*s)
619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
620}
621
622// AddSheetRequest: Adds a new sheet.
623// When a sheet is added at a given index,
624// all subsequent sheets' indexes are incremented.
625// To add an object sheet, use AddChartRequest instead and
626// specify
627// EmbeddedObjectPosition.sheetId or
628// EmbeddedObjectPosition.newSheet.
629type AddSheetRequest struct {
630	// Properties: The properties the new sheet should have.
631	// All properties are optional.
632	// The sheetId field is optional; if one is not
633	// set, an id will be randomly generated. (It is an error to specify the
634	// ID
635	// of a sheet that already exists.)
636	Properties *SheetProperties `json:"properties,omitempty"`
637
638	// ForceSendFields is a list of field names (e.g. "Properties") to
639	// unconditionally include in API requests. By default, fields with
640	// empty values are omitted from API requests. However, any non-pointer,
641	// non-interface field appearing in ForceSendFields will be sent to the
642	// server regardless of whether the field is empty or not. This may be
643	// used to include empty fields in Patch requests.
644	ForceSendFields []string `json:"-"`
645
646	// NullFields is a list of field names (e.g. "Properties") to include in
647	// API requests with the JSON null value. By default, fields with empty
648	// values are omitted from API requests. However, any field with an
649	// empty value appearing in NullFields will be sent to the server as
650	// null. It is an error if a field in this list has a non-empty value.
651	// This may be used to include null fields in Patch requests.
652	NullFields []string `json:"-"`
653}
654
655func (s *AddSheetRequest) MarshalJSON() ([]byte, error) {
656	type NoMethod AddSheetRequest
657	raw := NoMethod(*s)
658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
659}
660
661// AddSheetResponse: The result of adding a sheet.
662type AddSheetResponse struct {
663	// Properties: The properties of the newly added sheet.
664	Properties *SheetProperties `json:"properties,omitempty"`
665
666	// ForceSendFields is a list of field names (e.g. "Properties") to
667	// unconditionally include in API requests. By default, fields with
668	// empty values are omitted from API requests. However, any non-pointer,
669	// non-interface field appearing in ForceSendFields will be sent to the
670	// server regardless of whether the field is empty or not. This may be
671	// used to include empty fields in Patch requests.
672	ForceSendFields []string `json:"-"`
673
674	// NullFields is a list of field names (e.g. "Properties") to include in
675	// API requests with the JSON null value. By default, fields with empty
676	// values are omitted from API requests. However, any field with an
677	// empty value appearing in NullFields will be sent to the server as
678	// null. It is an error if a field in this list has a non-empty value.
679	// This may be used to include null fields in Patch requests.
680	NullFields []string `json:"-"`
681}
682
683func (s *AddSheetResponse) MarshalJSON() ([]byte, error) {
684	type NoMethod AddSheetResponse
685	raw := NoMethod(*s)
686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
687}
688
689// AddSlicerRequest: Adds a slicer to a sheet in the spreadsheet.
690type AddSlicerRequest struct {
691	// Slicer: The slicer that should be added to the spreadsheet,
692	// including
693	// the position where it should be placed. The slicerId field is
694	// optional; if one is not set, an id
695	// will be randomly generated. (It is an error to specify the ID
696	// of a slicer that already exists.)
697	Slicer *Slicer `json:"slicer,omitempty"`
698
699	// ForceSendFields is a list of field names (e.g. "Slicer") to
700	// unconditionally include in API requests. By default, fields with
701	// empty values are omitted from API requests. However, any non-pointer,
702	// non-interface field appearing in ForceSendFields will be sent to the
703	// server regardless of whether the field is empty or not. This may be
704	// used to include empty fields in Patch requests.
705	ForceSendFields []string `json:"-"`
706
707	// NullFields is a list of field names (e.g. "Slicer") to include in API
708	// requests with the JSON null value. By default, fields with empty
709	// values are omitted from API requests. However, any field with an
710	// empty value appearing in NullFields will be sent to the server as
711	// null. It is an error if a field in this list has a non-empty value.
712	// This may be used to include null fields in Patch requests.
713	NullFields []string `json:"-"`
714}
715
716func (s *AddSlicerRequest) MarshalJSON() ([]byte, error) {
717	type NoMethod AddSlicerRequest
718	raw := NoMethod(*s)
719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
720}
721
722// AddSlicerResponse: The result of adding a slicer to a spreadsheet.
723type AddSlicerResponse struct {
724	// Slicer: The newly added slicer.
725	Slicer *Slicer `json:"slicer,omitempty"`
726
727	// ForceSendFields is a list of field names (e.g. "Slicer") to
728	// unconditionally include in API requests. By default, fields with
729	// empty values are omitted from API requests. However, any non-pointer,
730	// non-interface field appearing in ForceSendFields will be sent to the
731	// server regardless of whether the field is empty or not. This may be
732	// used to include empty fields in Patch requests.
733	ForceSendFields []string `json:"-"`
734
735	// NullFields is a list of field names (e.g. "Slicer") to include in API
736	// requests with the JSON null value. By default, fields with empty
737	// values are omitted from API requests. However, any field with an
738	// empty value appearing in NullFields will be sent to the server as
739	// null. It is an error if a field in this list has a non-empty value.
740	// This may be used to include null fields in Patch requests.
741	NullFields []string `json:"-"`
742}
743
744func (s *AddSlicerResponse) MarshalJSON() ([]byte, error) {
745	type NoMethod AddSlicerResponse
746	raw := NoMethod(*s)
747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
748}
749
750// AppendCellsRequest: Adds new cells after the last row with data in a
751// sheet,
752// inserting new rows into the sheet if necessary.
753type AppendCellsRequest struct {
754	// Fields: The fields of CellData that should be updated.
755	// At least one field must be specified.
756	// The root is the CellData; 'row.values.' should not be specified.
757	// A single "*" can be used as short-hand for listing every field.
758	Fields string `json:"fields,omitempty"`
759
760	// Rows: The data to append.
761	Rows []*RowData `json:"rows,omitempty"`
762
763	// SheetId: The sheet ID to append the data to.
764	SheetId int64 `json:"sheetId,omitempty"`
765
766	// ForceSendFields is a list of field names (e.g. "Fields") to
767	// unconditionally include in API requests. By default, fields with
768	// empty values are omitted from API requests. However, any non-pointer,
769	// non-interface field appearing in ForceSendFields will be sent to the
770	// server regardless of whether the field is empty or not. This may be
771	// used to include empty fields in Patch requests.
772	ForceSendFields []string `json:"-"`
773
774	// NullFields is a list of field names (e.g. "Fields") to include in API
775	// requests with the JSON null value. By default, fields with empty
776	// values are omitted from API requests. However, any field with an
777	// empty value appearing in NullFields will be sent to the server as
778	// null. It is an error if a field in this list has a non-empty value.
779	// This may be used to include null fields in Patch requests.
780	NullFields []string `json:"-"`
781}
782
783func (s *AppendCellsRequest) MarshalJSON() ([]byte, error) {
784	type NoMethod AppendCellsRequest
785	raw := NoMethod(*s)
786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
787}
788
789// AppendDimensionRequest: Appends rows or columns to the end of a
790// sheet.
791type AppendDimensionRequest struct {
792	// Dimension: Whether rows or columns should be appended.
793	//
794	// Possible values:
795	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
796	//   "ROWS" - Operates on the rows of a sheet.
797	//   "COLUMNS" - Operates on the columns of a sheet.
798	Dimension string `json:"dimension,omitempty"`
799
800	// Length: The number of rows or columns to append.
801	Length int64 `json:"length,omitempty"`
802
803	// SheetId: The sheet to append rows or columns to.
804	SheetId int64 `json:"sheetId,omitempty"`
805
806	// ForceSendFields is a list of field names (e.g. "Dimension") to
807	// unconditionally include in API requests. By default, fields with
808	// empty values are omitted from API requests. However, any non-pointer,
809	// non-interface field appearing in ForceSendFields will be sent to the
810	// server regardless of whether the field is empty or not. This may be
811	// used to include empty fields in Patch requests.
812	ForceSendFields []string `json:"-"`
813
814	// NullFields is a list of field names (e.g. "Dimension") to include in
815	// API requests with the JSON null value. By default, fields with empty
816	// values are omitted from API requests. However, any field with an
817	// empty value appearing in NullFields will be sent to the server as
818	// null. It is an error if a field in this list has a non-empty value.
819	// This may be used to include null fields in Patch requests.
820	NullFields []string `json:"-"`
821}
822
823func (s *AppendDimensionRequest) MarshalJSON() ([]byte, error) {
824	type NoMethod AppendDimensionRequest
825	raw := NoMethod(*s)
826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
827}
828
829// AppendValuesResponse: The response when updating a range of values in
830// a spreadsheet.
831type AppendValuesResponse struct {
832	// SpreadsheetId: The spreadsheet the updates were applied to.
833	SpreadsheetId string `json:"spreadsheetId,omitempty"`
834
835	// TableRange: The range (in A1 notation) of the table that values are
836	// being appended to
837	// (before the values were appended).
838	// Empty if no table was found.
839	TableRange string `json:"tableRange,omitempty"`
840
841	// Updates: Information about the updates that were applied.
842	Updates *UpdateValuesResponse `json:"updates,omitempty"`
843
844	// ServerResponse contains the HTTP response code and headers from the
845	// server.
846	googleapi.ServerResponse `json:"-"`
847
848	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
849	// unconditionally include in API requests. By default, fields with
850	// empty values are omitted from API requests. However, any non-pointer,
851	// non-interface field appearing in ForceSendFields will be sent to the
852	// server regardless of whether the field is empty or not. This may be
853	// used to include empty fields in Patch requests.
854	ForceSendFields []string `json:"-"`
855
856	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
857	// in API requests with the JSON null value. By default, fields with
858	// empty values are omitted from API requests. However, any field with
859	// an empty value appearing in NullFields will be sent to the server as
860	// null. It is an error if a field in this list has a non-empty value.
861	// This may be used to include null fields in Patch requests.
862	NullFields []string `json:"-"`
863}
864
865func (s *AppendValuesResponse) MarshalJSON() ([]byte, error) {
866	type NoMethod AppendValuesResponse
867	raw := NoMethod(*s)
868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
869}
870
871// AutoFillRequest: Fills in more data based on existing data.
872type AutoFillRequest struct {
873	// Range: The range to autofill. This will examine the range and
874	// detect
875	// the location that has data and automatically fill that data
876	// in to the rest of the range.
877	Range *GridRange `json:"range,omitempty"`
878
879	// SourceAndDestination: The source and destination areas to
880	// autofill.
881	// This explicitly lists the source of the autofill and where to
882	// extend that data.
883	SourceAndDestination *SourceAndDestination `json:"sourceAndDestination,omitempty"`
884
885	// UseAlternateSeries: True if we should generate data with the
886	// "alternate" series.
887	// This differs based on the type and amount of source data.
888	UseAlternateSeries bool `json:"useAlternateSeries,omitempty"`
889
890	// ForceSendFields is a list of field names (e.g. "Range") to
891	// unconditionally include in API requests. By default, fields with
892	// empty values are omitted from API requests. However, any non-pointer,
893	// non-interface field appearing in ForceSendFields will be sent to the
894	// server regardless of whether the field is empty or not. This may be
895	// used to include empty fields in Patch requests.
896	ForceSendFields []string `json:"-"`
897
898	// NullFields is a list of field names (e.g. "Range") to include in API
899	// requests with the JSON null value. By default, fields with empty
900	// values are omitted from API requests. However, any field with an
901	// empty value appearing in NullFields will be sent to the server as
902	// null. It is an error if a field in this list has a non-empty value.
903	// This may be used to include null fields in Patch requests.
904	NullFields []string `json:"-"`
905}
906
907func (s *AutoFillRequest) MarshalJSON() ([]byte, error) {
908	type NoMethod AutoFillRequest
909	raw := NoMethod(*s)
910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
911}
912
913// AutoResizeDimensionsRequest: Automatically resizes one or more
914// dimensions based on the contents
915// of the cells in that dimension.
916type AutoResizeDimensionsRequest struct {
917	// Dimensions: The dimensions to automatically resize.
918	Dimensions *DimensionRange `json:"dimensions,omitempty"`
919
920	// ForceSendFields is a list of field names (e.g. "Dimensions") to
921	// unconditionally include in API requests. By default, fields with
922	// empty values are omitted from API requests. However, any non-pointer,
923	// non-interface field appearing in ForceSendFields will be sent to the
924	// server regardless of whether the field is empty or not. This may be
925	// used to include empty fields in Patch requests.
926	ForceSendFields []string `json:"-"`
927
928	// NullFields is a list of field names (e.g. "Dimensions") to include in
929	// API requests with the JSON null value. By default, fields with empty
930	// values are omitted from API requests. However, any field with an
931	// empty value appearing in NullFields will be sent to the server as
932	// null. It is an error if a field in this list has a non-empty value.
933	// This may be used to include null fields in Patch requests.
934	NullFields []string `json:"-"`
935}
936
937func (s *AutoResizeDimensionsRequest) MarshalJSON() ([]byte, error) {
938	type NoMethod AutoResizeDimensionsRequest
939	raw := NoMethod(*s)
940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
941}
942
943// BandedRange: A banded (alternating colors) range in a sheet.
944type BandedRange struct {
945	// BandedRangeId: The id of the banded range.
946	BandedRangeId int64 `json:"bandedRangeId,omitempty"`
947
948	// ColumnProperties: Properties for column bands. These properties are
949	// applied on a column-
950	// by-column basis throughout all the columns in the range. At least one
951	// of
952	// row_properties or column_properties must be specified.
953	ColumnProperties *BandingProperties `json:"columnProperties,omitempty"`
954
955	// Range: The range over which these properties are applied.
956	Range *GridRange `json:"range,omitempty"`
957
958	// RowProperties: Properties for row bands. These properties are applied
959	// on a row-by-row
960	// basis throughout all the rows in the range. At least one
961	// of
962	// row_properties or column_properties must be specified.
963	RowProperties *BandingProperties `json:"rowProperties,omitempty"`
964
965	// ForceSendFields is a list of field names (e.g. "BandedRangeId") to
966	// unconditionally include in API requests. By default, fields with
967	// empty values are omitted from API requests. However, any non-pointer,
968	// non-interface field appearing in ForceSendFields will be sent to the
969	// server regardless of whether the field is empty or not. This may be
970	// used to include empty fields in Patch requests.
971	ForceSendFields []string `json:"-"`
972
973	// NullFields is a list of field names (e.g. "BandedRangeId") to include
974	// in API requests with the JSON null value. By default, fields with
975	// empty values are omitted from API requests. However, any field with
976	// an empty value appearing in NullFields will be sent to the server as
977	// null. It is an error if a field in this list has a non-empty value.
978	// This may be used to include null fields in Patch requests.
979	NullFields []string `json:"-"`
980}
981
982func (s *BandedRange) MarshalJSON() ([]byte, error) {
983	type NoMethod BandedRange
984	raw := NoMethod(*s)
985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
986}
987
988// BandingProperties: Properties referring a single dimension (either
989// row or column). If both
990// BandedRange.row_properties and BandedRange.column_properties are
991// set, the fill colors are applied to cells according to the following
992// rules:
993//
994// * header_color and footer_color take priority over band colors.
995// * first_band_color takes priority over second_band_color.
996// * row_properties takes priority over column_properties.
997//
998// For example, the first row color takes priority over the first
999// column
1000// color, but the first column color takes priority over the second row
1001// color.
1002// Similarly, the row header takes priority over the column header in
1003// the
1004// top left cell, but the column header takes priority over the first
1005// row
1006// color if the row header is not set.
1007type BandingProperties struct {
1008	// FirstBandColor: The first color that is alternating. (Required)
1009	FirstBandColor *Color `json:"firstBandColor,omitempty"`
1010
1011	// FirstBandColorStyle: The first color that is alternating.
1012	// (Required)
1013	// If first_band_color is also set, this field takes precedence.
1014	FirstBandColorStyle *ColorStyle `json:"firstBandColorStyle,omitempty"`
1015
1016	// FooterColor: The color of the last row or column. If this field is
1017	// not set, the last
1018	// row or column is filled with either first_band_color
1019	// or
1020	// second_band_color, depending on the color of the previous row
1021	// or
1022	// column.
1023	FooterColor *Color `json:"footerColor,omitempty"`
1024
1025	// FooterColorStyle: The color of the last row or column. If this field
1026	// is not set, the last
1027	// row or column is filled with either first_band_color
1028	// or
1029	// second_band_color, depending on the color of the previous row
1030	// or
1031	// column.
1032	// If footer_color is also set, this field takes precedence.
1033	FooterColorStyle *ColorStyle `json:"footerColorStyle,omitempty"`
1034
1035	// HeaderColor: The color of the first row or column. If this field is
1036	// set, the first row
1037	// or column is filled with this color and the colors alternate
1038	// between
1039	// first_band_color and second_band_color starting from the second
1040	// row or column. Otherwise, the first row or column is filled
1041	// with
1042	// first_band_color and the colors proceed to alternate as they
1043	// normally
1044	// would.
1045	HeaderColor *Color `json:"headerColor,omitempty"`
1046
1047	// HeaderColorStyle: The color of the first row or column. If this field
1048	// is set, the first row
1049	// or column is filled with this color and the colors alternate
1050	// between
1051	// first_band_color and second_band_color starting from the second
1052	// row or column. Otherwise, the first row or column is filled
1053	// with
1054	// first_band_color and the colors proceed to alternate as they
1055	// normally
1056	// would. If header_color is also set, this field takes precedence.
1057	HeaderColorStyle *ColorStyle `json:"headerColorStyle,omitempty"`
1058
1059	// SecondBandColor: The second color that is alternating. (Required)
1060	SecondBandColor *Color `json:"secondBandColor,omitempty"`
1061
1062	// SecondBandColorStyle: The second color that is alternating.
1063	// (Required)
1064	// If second_band_color is also set, this field takes precedence.
1065	SecondBandColorStyle *ColorStyle `json:"secondBandColorStyle,omitempty"`
1066
1067	// ForceSendFields is a list of field names (e.g. "FirstBandColor") to
1068	// unconditionally include in API requests. By default, fields with
1069	// empty values are omitted from API requests. However, any non-pointer,
1070	// non-interface field appearing in ForceSendFields will be sent to the
1071	// server regardless of whether the field is empty or not. This may be
1072	// used to include empty fields in Patch requests.
1073	ForceSendFields []string `json:"-"`
1074
1075	// NullFields is a list of field names (e.g. "FirstBandColor") to
1076	// include in API requests with the JSON null value. By default, fields
1077	// with empty values are omitted from API requests. However, any field
1078	// with an empty value appearing in NullFields will be sent to the
1079	// server as null. It is an error if a field in this list has a
1080	// non-empty value. This may be used to include null fields in Patch
1081	// requests.
1082	NullFields []string `json:"-"`
1083}
1084
1085func (s *BandingProperties) MarshalJSON() ([]byte, error) {
1086	type NoMethod BandingProperties
1087	raw := NoMethod(*s)
1088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1089}
1090
1091// BaselineValueFormat: Formatting options for baseline value.
1092type BaselineValueFormat struct {
1093	// ComparisonType: The comparison type of key value with baseline value.
1094	//
1095	// Possible values:
1096	//   "COMPARISON_TYPE_UNDEFINED" - Default value, do not use.
1097	//   "ABSOLUTE_DIFFERENCE" - Use absolute difference between key and
1098	// baseline value.
1099	//   "PERCENTAGE_DIFFERENCE" - Use percentage difference between key and
1100	// baseline value.
1101	ComparisonType string `json:"comparisonType,omitempty"`
1102
1103	// Description: Description which is appended after the baseline
1104	// value.
1105	// This field is optional.
1106	Description string `json:"description,omitempty"`
1107
1108	// NegativeColor: Color to be used, in case baseline value represents a
1109	// negative change for
1110	// key value. This field is optional.
1111	NegativeColor *Color `json:"negativeColor,omitempty"`
1112
1113	// NegativeColorStyle: Color to be used, in case baseline value
1114	// represents a negative change for
1115	// key value. This field is optional.
1116	// If negative_color is also set, this field takes precedence.
1117	NegativeColorStyle *ColorStyle `json:"negativeColorStyle,omitempty"`
1118
1119	// Position: Specifies the horizontal text positioning of baseline
1120	// value.
1121	// This field is optional. If not specified, default positioning is
1122	// used.
1123	Position *TextPosition `json:"position,omitempty"`
1124
1125	// PositiveColor: Color to be used, in case baseline value represents a
1126	// positive change for
1127	// key value. This field is optional.
1128	PositiveColor *Color `json:"positiveColor,omitempty"`
1129
1130	// PositiveColorStyle: Color to be used, in case baseline value
1131	// represents a positive change for
1132	// key value. This field is optional.
1133	// If positive_color is also set, this field takes precedence.
1134	PositiveColorStyle *ColorStyle `json:"positiveColorStyle,omitempty"`
1135
1136	// TextFormat: Text formatting options for baseline value.
1137	TextFormat *TextFormat `json:"textFormat,omitempty"`
1138
1139	// ForceSendFields is a list of field names (e.g. "ComparisonType") to
1140	// unconditionally include in API requests. By default, fields with
1141	// empty values are omitted from API requests. However, any non-pointer,
1142	// non-interface field appearing in ForceSendFields will be sent to the
1143	// server regardless of whether the field is empty or not. This may be
1144	// used to include empty fields in Patch requests.
1145	ForceSendFields []string `json:"-"`
1146
1147	// NullFields is a list of field names (e.g. "ComparisonType") to
1148	// include in API requests with the JSON null value. By default, fields
1149	// with empty values are omitted from API requests. However, any field
1150	// with an empty value appearing in NullFields will be sent to the
1151	// server as null. It is an error if a field in this list has a
1152	// non-empty value. This may be used to include null fields in Patch
1153	// requests.
1154	NullFields []string `json:"-"`
1155}
1156
1157func (s *BaselineValueFormat) MarshalJSON() ([]byte, error) {
1158	type NoMethod BaselineValueFormat
1159	raw := NoMethod(*s)
1160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1161}
1162
1163// BasicChartAxis: An axis of the chart.
1164// A chart may not have more than one axis per
1165// axis position.
1166type BasicChartAxis struct {
1167	// Format: The format of the title.
1168	// Only valid if the axis is not associated with the domain.
1169	Format *TextFormat `json:"format,omitempty"`
1170
1171	// Position: The position of this axis.
1172	//
1173	// Possible values:
1174	//   "BASIC_CHART_AXIS_POSITION_UNSPECIFIED" - Default value, do not
1175	// use.
1176	//   "BOTTOM_AXIS" - The axis rendered at the bottom of a chart.
1177	// For most charts, this is the standard major axis.
1178	// For bar charts, this is a minor axis.
1179	//   "LEFT_AXIS" - The axis rendered at the left of a chart.
1180	// For most charts, this is a minor axis.
1181	// For bar charts, this is the standard major axis.
1182	//   "RIGHT_AXIS" - The axis rendered at the right of a chart.
1183	// For most charts, this is a minor axis.
1184	// For bar charts, this is an unusual major axis.
1185	Position string `json:"position,omitempty"`
1186
1187	// Title: The title of this axis. If set, this overrides any title
1188	// inferred
1189	// from headers of the data.
1190	Title string `json:"title,omitempty"`
1191
1192	// TitleTextPosition: The axis title text position.
1193	TitleTextPosition *TextPosition `json:"titleTextPosition,omitempty"`
1194
1195	// ViewWindowOptions: The view window options for this axis.
1196	ViewWindowOptions *ChartAxisViewWindowOptions `json:"viewWindowOptions,omitempty"`
1197
1198	// ForceSendFields is a list of field names (e.g. "Format") to
1199	// unconditionally include in API requests. By default, fields with
1200	// empty values are omitted from API requests. However, any non-pointer,
1201	// non-interface field appearing in ForceSendFields will be sent to the
1202	// server regardless of whether the field is empty or not. This may be
1203	// used to include empty fields in Patch requests.
1204	ForceSendFields []string `json:"-"`
1205
1206	// NullFields is a list of field names (e.g. "Format") to include in API
1207	// requests with the JSON null value. By default, fields with empty
1208	// values are omitted from API requests. However, any field with an
1209	// empty value appearing in NullFields will be sent to the server as
1210	// null. It is an error if a field in this list has a non-empty value.
1211	// This may be used to include null fields in Patch requests.
1212	NullFields []string `json:"-"`
1213}
1214
1215func (s *BasicChartAxis) MarshalJSON() ([]byte, error) {
1216	type NoMethod BasicChartAxis
1217	raw := NoMethod(*s)
1218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1219}
1220
1221// BasicChartDomain: The domain of a chart.
1222// For example, if charting stock prices over time, this would be the
1223// date.
1224type BasicChartDomain struct {
1225	// Domain: The data of the domain. For example, if charting stock prices
1226	// over time,
1227	// this is the data representing the dates.
1228	Domain *ChartData `json:"domain,omitempty"`
1229
1230	// Reversed: True to reverse the order of the domain values (horizontal
1231	// axis).
1232	Reversed bool `json:"reversed,omitempty"`
1233
1234	// ForceSendFields is a list of field names (e.g. "Domain") to
1235	// unconditionally include in API requests. By default, fields with
1236	// empty values are omitted from API requests. However, any non-pointer,
1237	// non-interface field appearing in ForceSendFields will be sent to the
1238	// server regardless of whether the field is empty or not. This may be
1239	// used to include empty fields in Patch requests.
1240	ForceSendFields []string `json:"-"`
1241
1242	// NullFields is a list of field names (e.g. "Domain") to include in API
1243	// requests with the JSON null value. By default, fields with empty
1244	// values are omitted from API requests. However, any field with an
1245	// empty value appearing in NullFields will be sent to the server as
1246	// null. It is an error if a field in this list has a non-empty value.
1247	// This may be used to include null fields in Patch requests.
1248	NullFields []string `json:"-"`
1249}
1250
1251func (s *BasicChartDomain) MarshalJSON() ([]byte, error) {
1252	type NoMethod BasicChartDomain
1253	raw := NoMethod(*s)
1254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1255}
1256
1257// BasicChartSeries: A single series of data in a chart.
1258// For example, if charting stock prices over time, multiple series may
1259// exist,
1260// one for the "Open Price", "High Price", "Low Price" and "Close
1261// Price".
1262type BasicChartSeries struct {
1263	// Color: The color for elements (such as bars, lines, and points)
1264	// associated with
1265	// this series.  If empty, a default color is used.
1266	Color *Color `json:"color,omitempty"`
1267
1268	// ColorStyle: The color for elements (such as bars, lines, and points)
1269	// associated with
1270	// this series.  If empty, a default color is used.
1271	// If color is also set, this field takes precedence.
1272	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
1273
1274	// LineStyle: The line style of this series. Valid only if the
1275	// chartType is AREA,
1276	// LINE, or SCATTER.
1277	// COMBO charts are also supported if the
1278	// series chart type is
1279	// AREA or LINE.
1280	LineStyle *LineStyle `json:"lineStyle,omitempty"`
1281
1282	// Series: The data being visualized in this chart series.
1283	Series *ChartData `json:"series,omitempty"`
1284
1285	// TargetAxis: The minor axis that will specify the range of values for
1286	// this series.
1287	// For example, if charting stocks over time, the "Volume" series
1288	// may want to be pinned to the right with the prices pinned to the
1289	// left,
1290	// because the scale of trading volume is different than the scale
1291	// of
1292	// prices.
1293	// It is an error to specify an axis that isn't a valid minor axis
1294	// for the chart's type.
1295	//
1296	// Possible values:
1297	//   "BASIC_CHART_AXIS_POSITION_UNSPECIFIED" - Default value, do not
1298	// use.
1299	//   "BOTTOM_AXIS" - The axis rendered at the bottom of a chart.
1300	// For most charts, this is the standard major axis.
1301	// For bar charts, this is a minor axis.
1302	//   "LEFT_AXIS" - The axis rendered at the left of a chart.
1303	// For most charts, this is a minor axis.
1304	// For bar charts, this is the standard major axis.
1305	//   "RIGHT_AXIS" - The axis rendered at the right of a chart.
1306	// For most charts, this is a minor axis.
1307	// For bar charts, this is an unusual major axis.
1308	TargetAxis string `json:"targetAxis,omitempty"`
1309
1310	// Type: The type of this series. Valid only if the
1311	// chartType is
1312	// COMBO.
1313	// Different types will change the way the series is visualized.
1314	// Only LINE, AREA,
1315	// and COLUMN are supported.
1316	//
1317	// Possible values:
1318	//   "BASIC_CHART_TYPE_UNSPECIFIED" - Default value, do not use.
1319	//   "BAR" - A <a href="/chart/interactive/docs/gallery/barchart">bar
1320	// chart</a>.
1321	//   "LINE" - A <a href="/chart/interactive/docs/gallery/linechart">line
1322	// chart</a>.
1323	//   "AREA" - An <a
1324	// href="/chart/interactive/docs/gallery/areachart">area chart</a>.
1325	//   "COLUMN" - A <a
1326	// href="/chart/interactive/docs/gallery/columnchart">column chart</a>.
1327	//   "SCATTER" - A <a
1328	// href="/chart/interactive/docs/gallery/scatterchart">scatter
1329	// chart</a>.
1330	//   "COMBO" - A <a
1331	// href="/chart/interactive/docs/gallery/combochart">combo chart</a>.
1332	//   "STEPPED_AREA" - A <a
1333	// href="/chart/interactive/docs/gallery/steppedareachart">stepped
1334	// area
1335	// chart</a>.
1336	Type string `json:"type,omitempty"`
1337
1338	// ForceSendFields is a list of field names (e.g. "Color") to
1339	// unconditionally include in API requests. By default, fields with
1340	// empty values are omitted from API requests. However, any non-pointer,
1341	// non-interface field appearing in ForceSendFields will be sent to the
1342	// server regardless of whether the field is empty or not. This may be
1343	// used to include empty fields in Patch requests.
1344	ForceSendFields []string `json:"-"`
1345
1346	// NullFields is a list of field names (e.g. "Color") to include in API
1347	// requests with the JSON null value. By default, fields with empty
1348	// values are omitted from API requests. However, any field with an
1349	// empty value appearing in NullFields will be sent to the server as
1350	// null. It is an error if a field in this list has a non-empty value.
1351	// This may be used to include null fields in Patch requests.
1352	NullFields []string `json:"-"`
1353}
1354
1355func (s *BasicChartSeries) MarshalJSON() ([]byte, error) {
1356	type NoMethod BasicChartSeries
1357	raw := NoMethod(*s)
1358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1359}
1360
1361// BasicChartSpec: The specification for a basic chart.  See
1362// BasicChartType for the list
1363// of charts this supports.
1364type BasicChartSpec struct {
1365	// Axis: The axis on the chart.
1366	Axis []*BasicChartAxis `json:"axis,omitempty"`
1367
1368	// ChartType: The type of the chart.
1369	//
1370	// Possible values:
1371	//   "BASIC_CHART_TYPE_UNSPECIFIED" - Default value, do not use.
1372	//   "BAR" - A <a href="/chart/interactive/docs/gallery/barchart">bar
1373	// chart</a>.
1374	//   "LINE" - A <a href="/chart/interactive/docs/gallery/linechart">line
1375	// chart</a>.
1376	//   "AREA" - An <a
1377	// href="/chart/interactive/docs/gallery/areachart">area chart</a>.
1378	//   "COLUMN" - A <a
1379	// href="/chart/interactive/docs/gallery/columnchart">column chart</a>.
1380	//   "SCATTER" - A <a
1381	// href="/chart/interactive/docs/gallery/scatterchart">scatter
1382	// chart</a>.
1383	//   "COMBO" - A <a
1384	// href="/chart/interactive/docs/gallery/combochart">combo chart</a>.
1385	//   "STEPPED_AREA" - A <a
1386	// href="/chart/interactive/docs/gallery/steppedareachart">stepped
1387	// area
1388	// chart</a>.
1389	ChartType string `json:"chartType,omitempty"`
1390
1391	// CompareMode: The behavior of tooltips and data highlighting when
1392	// hovering on data and
1393	// chart area.
1394	//
1395	// Possible values:
1396	//   "BASIC_CHART_COMPARE_MODE_UNSPECIFIED" - Default value, do not use.
1397	//   "DATUM" - Only the focused data element is highlighted and shown in
1398	// the tooltip.
1399	//   "CATEGORY" - All data elements with the same category (e.g., domain
1400	// value) are
1401	// highlighted and shown in the tooltip.
1402	CompareMode string `json:"compareMode,omitempty"`
1403
1404	// Domains: The domain of data this is charting.
1405	// Only a single domain is supported.
1406	Domains []*BasicChartDomain `json:"domains,omitempty"`
1407
1408	// HeaderCount: The number of rows or columns in the data that are
1409	// "headers".
1410	// If not set, Google Sheets will guess how many rows are headers
1411	// based
1412	// on the data.
1413	//
1414	// (Note that BasicChartAxis.title may override the axis title
1415	//  inferred from the header values.)
1416	HeaderCount int64 `json:"headerCount,omitempty"`
1417
1418	// InterpolateNulls: If some values in a series are missing, gaps may
1419	// appear in the chart (e.g,
1420	// segments of lines in a line chart will be missing).  To eliminate
1421	// these
1422	// gaps set this to true.
1423	// Applies to Line, Area, and Combo charts.
1424	InterpolateNulls bool `json:"interpolateNulls,omitempty"`
1425
1426	// LegendPosition: The position of the chart legend.
1427	//
1428	// Possible values:
1429	//   "BASIC_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
1430	// use.
1431	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
1432	// chart.
1433	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
1434	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
1435	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
1436	//   "NO_LEGEND" - No legend is rendered.
1437	LegendPosition string `json:"legendPosition,omitempty"`
1438
1439	// LineSmoothing: Gets whether all lines should be rendered smooth or
1440	// straight by default.
1441	// Applies to Line charts.
1442	LineSmoothing bool `json:"lineSmoothing,omitempty"`
1443
1444	// Series: The data this chart is visualizing.
1445	Series []*BasicChartSeries `json:"series,omitempty"`
1446
1447	// StackedType: The stacked type for charts that support vertical
1448	// stacking.
1449	// Applies to Area, Bar, Column, Combo, and Stepped Area charts.
1450	//
1451	// Possible values:
1452	//   "BASIC_CHART_STACKED_TYPE_UNSPECIFIED" - Default value, do not use.
1453	//   "NOT_STACKED" - Series are not stacked.
1454	//   "STACKED" - Series values are stacked, each value is rendered
1455	// vertically beginning
1456	// from the top of the value below it.
1457	//   "PERCENT_STACKED" - Vertical stacks are stretched to reach the top
1458	// of the chart, with
1459	// values laid out as percentages of each other.
1460	StackedType string `json:"stackedType,omitempty"`
1461
1462	// ThreeDimensional: True to make the chart 3D.
1463	// Applies to Bar and Column charts.
1464	ThreeDimensional bool `json:"threeDimensional,omitempty"`
1465
1466	// ForceSendFields is a list of field names (e.g. "Axis") to
1467	// unconditionally include in API requests. By default, fields with
1468	// empty values are omitted from API requests. However, any non-pointer,
1469	// non-interface field appearing in ForceSendFields will be sent to the
1470	// server regardless of whether the field is empty or not. This may be
1471	// used to include empty fields in Patch requests.
1472	ForceSendFields []string `json:"-"`
1473
1474	// NullFields is a list of field names (e.g. "Axis") to include in API
1475	// requests with the JSON null value. By default, fields with empty
1476	// values are omitted from API requests. However, any field with an
1477	// empty value appearing in NullFields will be sent to the server as
1478	// null. It is an error if a field in this list has a non-empty value.
1479	// This may be used to include null fields in Patch requests.
1480	NullFields []string `json:"-"`
1481}
1482
1483func (s *BasicChartSpec) MarshalJSON() ([]byte, error) {
1484	type NoMethod BasicChartSpec
1485	raw := NoMethod(*s)
1486	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1487}
1488
1489// BasicFilter: The default filter associated with a sheet.
1490type BasicFilter struct {
1491	// Criteria: The criteria for showing/hiding values per column.
1492	// The map's key is the column index, and the value is the criteria
1493	// for
1494	// that column.
1495	Criteria map[string]FilterCriteria `json:"criteria,omitempty"`
1496
1497	// Range: The range the filter covers.
1498	Range *GridRange `json:"range,omitempty"`
1499
1500	// SortSpecs: The sort order per column. Later specifications are used
1501	// when values
1502	// are equal in the earlier specifications.
1503	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
1504
1505	// ForceSendFields is a list of field names (e.g. "Criteria") to
1506	// unconditionally include in API requests. By default, fields with
1507	// empty values are omitted from API requests. However, any non-pointer,
1508	// non-interface field appearing in ForceSendFields will be sent to the
1509	// server regardless of whether the field is empty or not. This may be
1510	// used to include empty fields in Patch requests.
1511	ForceSendFields []string `json:"-"`
1512
1513	// NullFields is a list of field names (e.g. "Criteria") to include in
1514	// API requests with the JSON null value. By default, fields with empty
1515	// values are omitted from API requests. However, any field with an
1516	// empty value appearing in NullFields will be sent to the server as
1517	// null. It is an error if a field in this list has a non-empty value.
1518	// This may be used to include null fields in Patch requests.
1519	NullFields []string `json:"-"`
1520}
1521
1522func (s *BasicFilter) MarshalJSON() ([]byte, error) {
1523	type NoMethod BasicFilter
1524	raw := NoMethod(*s)
1525	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1526}
1527
1528// BatchClearValuesByDataFilterRequest: The request for clearing more
1529// than one range selected by a
1530// DataFilter in a spreadsheet.
1531type BatchClearValuesByDataFilterRequest struct {
1532	// DataFilters: The DataFilters used to determine which ranges to clear.
1533	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
1534
1535	// ForceSendFields is a list of field names (e.g. "DataFilters") to
1536	// unconditionally include in API requests. By default, fields with
1537	// empty values are omitted from API requests. However, any non-pointer,
1538	// non-interface field appearing in ForceSendFields will be sent to the
1539	// server regardless of whether the field is empty or not. This may be
1540	// used to include empty fields in Patch requests.
1541	ForceSendFields []string `json:"-"`
1542
1543	// NullFields is a list of field names (e.g. "DataFilters") to include
1544	// in API requests with the JSON null value. By default, fields with
1545	// empty values are omitted from API requests. However, any field with
1546	// an empty value appearing in NullFields will be sent to the server as
1547	// null. It is an error if a field in this list has a non-empty value.
1548	// This may be used to include null fields in Patch requests.
1549	NullFields []string `json:"-"`
1550}
1551
1552func (s *BatchClearValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
1553	type NoMethod BatchClearValuesByDataFilterRequest
1554	raw := NoMethod(*s)
1555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1556}
1557
1558// BatchClearValuesByDataFilterResponse: The response when clearing a
1559// range of values selected with
1560// DataFilters in a spreadsheet.
1561type BatchClearValuesByDataFilterResponse struct {
1562	// ClearedRanges: The ranges that were cleared, in A1 notation. If the
1563	// requests are for an
1564	// unbounded range or a ranger larger than the bounds of the sheet, this
1565	// is
1566	// the actual ranges that were cleared, bounded to the sheet's limits.
1567	ClearedRanges []string `json:"clearedRanges,omitempty"`
1568
1569	// SpreadsheetId: The spreadsheet the updates were applied to.
1570	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1571
1572	// ServerResponse contains the HTTP response code and headers from the
1573	// server.
1574	googleapi.ServerResponse `json:"-"`
1575
1576	// ForceSendFields is a list of field names (e.g. "ClearedRanges") to
1577	// unconditionally include in API requests. By default, fields with
1578	// empty values are omitted from API requests. However, any non-pointer,
1579	// non-interface field appearing in ForceSendFields will be sent to the
1580	// server regardless of whether the field is empty or not. This may be
1581	// used to include empty fields in Patch requests.
1582	ForceSendFields []string `json:"-"`
1583
1584	// NullFields is a list of field names (e.g. "ClearedRanges") to include
1585	// in API requests with the JSON null value. By default, fields with
1586	// empty values are omitted from API requests. However, any field with
1587	// an empty value appearing in NullFields will be sent to the server as
1588	// null. It is an error if a field in this list has a non-empty value.
1589	// This may be used to include null fields in Patch requests.
1590	NullFields []string `json:"-"`
1591}
1592
1593func (s *BatchClearValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
1594	type NoMethod BatchClearValuesByDataFilterResponse
1595	raw := NoMethod(*s)
1596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1597}
1598
1599// BatchClearValuesRequest: The request for clearing more than one range
1600// of values in a spreadsheet.
1601type BatchClearValuesRequest struct {
1602	// Ranges: The ranges to clear, in A1 notation.
1603	Ranges []string `json:"ranges,omitempty"`
1604
1605	// ForceSendFields is a list of field names (e.g. "Ranges") to
1606	// unconditionally include in API requests. By default, fields with
1607	// empty values are omitted from API requests. However, any non-pointer,
1608	// non-interface field appearing in ForceSendFields will be sent to the
1609	// server regardless of whether the field is empty or not. This may be
1610	// used to include empty fields in Patch requests.
1611	ForceSendFields []string `json:"-"`
1612
1613	// NullFields is a list of field names (e.g. "Ranges") to include in API
1614	// requests with the JSON null value. By default, fields with empty
1615	// values are omitted from API requests. However, any field with an
1616	// empty value appearing in NullFields will be sent to the server as
1617	// null. It is an error if a field in this list has a non-empty value.
1618	// This may be used to include null fields in Patch requests.
1619	NullFields []string `json:"-"`
1620}
1621
1622func (s *BatchClearValuesRequest) MarshalJSON() ([]byte, error) {
1623	type NoMethod BatchClearValuesRequest
1624	raw := NoMethod(*s)
1625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1626}
1627
1628// BatchClearValuesResponse: The response when clearing a range of
1629// values in a spreadsheet.
1630type BatchClearValuesResponse struct {
1631	// ClearedRanges: The ranges that were cleared, in A1 notation. If the
1632	// requests are for an
1633	// unbounded range or a ranger larger than the bounds of the sheet, this
1634	// is
1635	// the actual ranges that were cleared, bounded to the sheet's limits.
1636	ClearedRanges []string `json:"clearedRanges,omitempty"`
1637
1638	// SpreadsheetId: The spreadsheet the updates were applied to.
1639	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1640
1641	// ServerResponse contains the HTTP response code and headers from the
1642	// server.
1643	googleapi.ServerResponse `json:"-"`
1644
1645	// ForceSendFields is a list of field names (e.g. "ClearedRanges") to
1646	// unconditionally include in API requests. By default, fields with
1647	// empty values are omitted from API requests. However, any non-pointer,
1648	// non-interface field appearing in ForceSendFields will be sent to the
1649	// server regardless of whether the field is empty or not. This may be
1650	// used to include empty fields in Patch requests.
1651	ForceSendFields []string `json:"-"`
1652
1653	// NullFields is a list of field names (e.g. "ClearedRanges") to include
1654	// in API requests with the JSON null value. By default, fields with
1655	// empty values are omitted from API requests. However, any field with
1656	// an empty value appearing in NullFields will be sent to the server as
1657	// null. It is an error if a field in this list has a non-empty value.
1658	// This may be used to include null fields in Patch requests.
1659	NullFields []string `json:"-"`
1660}
1661
1662func (s *BatchClearValuesResponse) MarshalJSON() ([]byte, error) {
1663	type NoMethod BatchClearValuesResponse
1664	raw := NoMethod(*s)
1665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1666}
1667
1668// BatchGetValuesByDataFilterRequest: The request for retrieving a range
1669// of values in a spreadsheet selected by a
1670// set of DataFilters.
1671type BatchGetValuesByDataFilterRequest struct {
1672	// DataFilters: The data filters used to match the ranges of values to
1673	// retrieve. Ranges
1674	// that match any of the specified data filters are included in the
1675	// response.
1676	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
1677
1678	// DateTimeRenderOption: How dates, times, and durations should be
1679	// represented in the output.
1680	// This is ignored if value_render_option is
1681	// FORMATTED_VALUE.
1682	// The default dateTime render option is
1683	// [DateTimeRenderOption.SERIAL_NUMBER].
1684	//
1685	// Possible values:
1686	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
1687	// fields to be output
1688	// as doubles in "serial number" format, as popularized by Lotus
1689	// 1-2-3.
1690	// The whole number portion of the value (left of the decimal)
1691	// counts
1692	// the days since December 30th 1899. The fractional portion (right
1693	// of
1694	// the decimal) counts the time as a fraction of the day. For
1695	// example,
1696	// January 1st 1900 at noon would be 2.5, 2 because it's 2 days
1697	// after
1698	// December 30st 1899, and .5 because noon is half a day.  February
1699	// 1st
1700	// 1900 at 3pm would be 33.625. This correctly treats the year 1900
1701	// as
1702	// not a leap year.
1703	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
1704	// fields to be output
1705	// as strings in their given number format (which is dependent
1706	// on the spreadsheet locale).
1707	DateTimeRenderOption string `json:"dateTimeRenderOption,omitempty"`
1708
1709	// MajorDimension: The major dimension that results should use.
1710	//
1711	// For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
1712	// then a request that selects that range and sets
1713	// `majorDimension=ROWS`
1714	// returns `[[1,2],[3,4]]`, whereas a request that
1715	// sets
1716	// `majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.
1717	//
1718	// Possible values:
1719	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
1720	//   "ROWS" - Operates on the rows of a sheet.
1721	//   "COLUMNS" - Operates on the columns of a sheet.
1722	MajorDimension string `json:"majorDimension,omitempty"`
1723
1724	// ValueRenderOption: How values should be represented in the
1725	// output.
1726	// The default render option is ValueRenderOption.FORMATTED_VALUE.
1727	//
1728	// Possible values:
1729	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
1730	// reply according to the
1731	// cell's formatting.  Formatting is based on the spreadsheet's
1732	// locale,
1733	// not the requesting user's locale.
1734	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1735	// currency,
1736	// then `A2` would return "$1.23".
1737	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
1738	// in the reply.
1739	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1740	// currency,
1741	// then `A2` would return the number `1.23`.
1742	//   "FORMULA" - Values will not be calculated.  The reply will include
1743	// the formulas.
1744	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1745	// currency,
1746	// then A2 would return "=A1".
1747	ValueRenderOption string `json:"valueRenderOption,omitempty"`
1748
1749	// ForceSendFields is a list of field names (e.g. "DataFilters") to
1750	// unconditionally include in API requests. By default, fields with
1751	// empty values are omitted from API requests. However, any non-pointer,
1752	// non-interface field appearing in ForceSendFields will be sent to the
1753	// server regardless of whether the field is empty or not. This may be
1754	// used to include empty fields in Patch requests.
1755	ForceSendFields []string `json:"-"`
1756
1757	// NullFields is a list of field names (e.g. "DataFilters") to include
1758	// in API requests with the JSON null value. By default, fields with
1759	// empty values are omitted from API requests. However, any field with
1760	// an empty value appearing in NullFields will be sent to the server as
1761	// null. It is an error if a field in this list has a non-empty value.
1762	// This may be used to include null fields in Patch requests.
1763	NullFields []string `json:"-"`
1764}
1765
1766func (s *BatchGetValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
1767	type NoMethod BatchGetValuesByDataFilterRequest
1768	raw := NoMethod(*s)
1769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1770}
1771
1772// BatchGetValuesByDataFilterResponse: The response when retrieving more
1773// than one range of values in a spreadsheet
1774// selected by DataFilters.
1775type BatchGetValuesByDataFilterResponse struct {
1776	// SpreadsheetId: The ID of the spreadsheet the data was retrieved from.
1777	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1778
1779	// ValueRanges: The requested values with the list of data filters that
1780	// matched them.
1781	ValueRanges []*MatchedValueRange `json:"valueRanges,omitempty"`
1782
1783	// ServerResponse contains the HTTP response code and headers from the
1784	// server.
1785	googleapi.ServerResponse `json:"-"`
1786
1787	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
1788	// unconditionally include in API requests. By default, fields with
1789	// empty values are omitted from API requests. However, any non-pointer,
1790	// non-interface field appearing in ForceSendFields will be sent to the
1791	// server regardless of whether the field is empty or not. This may be
1792	// used to include empty fields in Patch requests.
1793	ForceSendFields []string `json:"-"`
1794
1795	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
1796	// in API requests with the JSON null value. By default, fields with
1797	// empty values are omitted from API requests. However, any field with
1798	// an empty value appearing in NullFields will be sent to the server as
1799	// null. It is an error if a field in this list has a non-empty value.
1800	// This may be used to include null fields in Patch requests.
1801	NullFields []string `json:"-"`
1802}
1803
1804func (s *BatchGetValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
1805	type NoMethod BatchGetValuesByDataFilterResponse
1806	raw := NoMethod(*s)
1807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1808}
1809
1810// BatchGetValuesResponse: The response when retrieving more than one
1811// range of values in a spreadsheet.
1812type BatchGetValuesResponse struct {
1813	// SpreadsheetId: The ID of the spreadsheet the data was retrieved from.
1814	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1815
1816	// ValueRanges: The requested values. The order of the ValueRanges is
1817	// the same as the
1818	// order of the requested ranges.
1819	ValueRanges []*ValueRange `json:"valueRanges,omitempty"`
1820
1821	// ServerResponse contains the HTTP response code and headers from the
1822	// server.
1823	googleapi.ServerResponse `json:"-"`
1824
1825	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
1826	// unconditionally include in API requests. By default, fields with
1827	// empty values are omitted from API requests. However, any non-pointer,
1828	// non-interface field appearing in ForceSendFields will be sent to the
1829	// server regardless of whether the field is empty or not. This may be
1830	// used to include empty fields in Patch requests.
1831	ForceSendFields []string `json:"-"`
1832
1833	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
1834	// in API requests with the JSON null value. By default, fields with
1835	// empty values are omitted from API requests. However, any field with
1836	// an empty value appearing in NullFields will be sent to the server as
1837	// null. It is an error if a field in this list has a non-empty value.
1838	// This may be used to include null fields in Patch requests.
1839	NullFields []string `json:"-"`
1840}
1841
1842func (s *BatchGetValuesResponse) MarshalJSON() ([]byte, error) {
1843	type NoMethod BatchGetValuesResponse
1844	raw := NoMethod(*s)
1845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1846}
1847
1848// BatchUpdateSpreadsheetRequest: The request for updating any aspect of
1849// a spreadsheet.
1850type BatchUpdateSpreadsheetRequest struct {
1851	// IncludeSpreadsheetInResponse: Determines if the update response
1852	// should include the spreadsheet
1853	// resource.
1854	IncludeSpreadsheetInResponse bool `json:"includeSpreadsheetInResponse,omitempty"`
1855
1856	// Requests: A list of updates to apply to the spreadsheet.
1857	// Requests will be applied in the order they are specified.
1858	// If any request is not valid, no requests will be applied.
1859	Requests []*Request `json:"requests,omitempty"`
1860
1861	// ResponseIncludeGridData: True if grid data should be returned.
1862	// Meaningful only if
1863	// if include_spreadsheet_in_response is 'true'.
1864	// This parameter is ignored if a field mask was set in the request.
1865	ResponseIncludeGridData bool `json:"responseIncludeGridData,omitempty"`
1866
1867	// ResponseRanges: Limits the ranges included in the response
1868	// spreadsheet.
1869	// Meaningful only if include_spreadsheet_response is 'true'.
1870	ResponseRanges []string `json:"responseRanges,omitempty"`
1871
1872	// ForceSendFields is a list of field names (e.g.
1873	// "IncludeSpreadsheetInResponse") to unconditionally include in API
1874	// requests. By default, fields with empty values are omitted from API
1875	// requests. However, any non-pointer, non-interface field appearing in
1876	// ForceSendFields will be sent to the server regardless of whether the
1877	// field is empty or not. This may be used to include empty fields in
1878	// Patch requests.
1879	ForceSendFields []string `json:"-"`
1880
1881	// NullFields is a list of field names (e.g.
1882	// "IncludeSpreadsheetInResponse") to include in API requests with the
1883	// JSON null value. By default, fields with empty values are omitted
1884	// from API requests. However, any field with an empty value appearing
1885	// in NullFields will be sent to the server as null. It is an error if a
1886	// field in this list has a non-empty value. This may be used to include
1887	// null fields in Patch requests.
1888	NullFields []string `json:"-"`
1889}
1890
1891func (s *BatchUpdateSpreadsheetRequest) MarshalJSON() ([]byte, error) {
1892	type NoMethod BatchUpdateSpreadsheetRequest
1893	raw := NoMethod(*s)
1894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1895}
1896
1897// BatchUpdateSpreadsheetResponse: The reply for batch updating a
1898// spreadsheet.
1899type BatchUpdateSpreadsheetResponse struct {
1900	// Replies: The reply of the updates.  This maps 1:1 with the updates,
1901	// although
1902	// replies to some requests may be empty.
1903	Replies []*Response `json:"replies,omitempty"`
1904
1905	// SpreadsheetId: The spreadsheet the updates were applied to.
1906	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1907
1908	// UpdatedSpreadsheet: The spreadsheet after updates were applied. This
1909	// is only set
1910	// if
1911	// [BatchUpdateSpreadsheetRequest.include_spreadsheet_in_response] is
1912	// `true`.
1913	UpdatedSpreadsheet *Spreadsheet `json:"updatedSpreadsheet,omitempty"`
1914
1915	// ServerResponse contains the HTTP response code and headers from the
1916	// server.
1917	googleapi.ServerResponse `json:"-"`
1918
1919	// ForceSendFields is a list of field names (e.g. "Replies") to
1920	// unconditionally include in API requests. By default, fields with
1921	// empty values are omitted from API requests. However, any non-pointer,
1922	// non-interface field appearing in ForceSendFields will be sent to the
1923	// server regardless of whether the field is empty or not. This may be
1924	// used to include empty fields in Patch requests.
1925	ForceSendFields []string `json:"-"`
1926
1927	// NullFields is a list of field names (e.g. "Replies") to include in
1928	// API requests with the JSON null value. By default, fields with empty
1929	// values are omitted from API requests. However, any field with an
1930	// empty value appearing in NullFields will be sent to the server as
1931	// null. It is an error if a field in this list has a non-empty value.
1932	// This may be used to include null fields in Patch requests.
1933	NullFields []string `json:"-"`
1934}
1935
1936func (s *BatchUpdateSpreadsheetResponse) MarshalJSON() ([]byte, error) {
1937	type NoMethod BatchUpdateSpreadsheetResponse
1938	raw := NoMethod(*s)
1939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1940}
1941
1942// BatchUpdateValuesByDataFilterRequest: The request for updating more
1943// than one range of values in a spreadsheet.
1944type BatchUpdateValuesByDataFilterRequest struct {
1945	// Data: The new values to apply to the spreadsheet.  If more than one
1946	// range is
1947	// matched by the specified DataFilter the specified values are applied
1948	// to
1949	// all of those ranges.
1950	Data []*DataFilterValueRange `json:"data,omitempty"`
1951
1952	// IncludeValuesInResponse: Determines if the update response should
1953	// include the values
1954	// of the cells that were updated. By default, responses
1955	// do not include the updated values. The `updatedData` field
1956	// within
1957	// each of the BatchUpdateValuesResponse.responses contains the
1958	// updated
1959	// values. If the range to write was larger than the range actually
1960	// written,
1961	// the response includes all values in the requested range (excluding
1962	// trailing
1963	// empty rows and columns).
1964	IncludeValuesInResponse bool `json:"includeValuesInResponse,omitempty"`
1965
1966	// ResponseDateTimeRenderOption: Determines how dates, times, and
1967	// durations in the response should be
1968	// rendered. This is ignored if response_value_render_option
1969	// is
1970	// FORMATTED_VALUE.
1971	// The default dateTime render option
1972	// is
1973	// DateTimeRenderOption.SERIAL_NUMBER.
1974	//
1975	// Possible values:
1976	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
1977	// fields to be output
1978	// as doubles in "serial number" format, as popularized by Lotus
1979	// 1-2-3.
1980	// The whole number portion of the value (left of the decimal)
1981	// counts
1982	// the days since December 30th 1899. The fractional portion (right
1983	// of
1984	// the decimal) counts the time as a fraction of the day. For
1985	// example,
1986	// January 1st 1900 at noon would be 2.5, 2 because it's 2 days
1987	// after
1988	// December 30st 1899, and .5 because noon is half a day.  February
1989	// 1st
1990	// 1900 at 3pm would be 33.625. This correctly treats the year 1900
1991	// as
1992	// not a leap year.
1993	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
1994	// fields to be output
1995	// as strings in their given number format (which is dependent
1996	// on the spreadsheet locale).
1997	ResponseDateTimeRenderOption string `json:"responseDateTimeRenderOption,omitempty"`
1998
1999	// ResponseValueRenderOption: Determines how values in the response
2000	// should be rendered.
2001	// The default render option is ValueRenderOption.FORMATTED_VALUE.
2002	//
2003	// Possible values:
2004	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
2005	// reply according to the
2006	// cell's formatting.  Formatting is based on the spreadsheet's
2007	// locale,
2008	// not the requesting user's locale.
2009	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2010	// currency,
2011	// then `A2` would return "$1.23".
2012	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
2013	// in the reply.
2014	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2015	// currency,
2016	// then `A2` would return the number `1.23`.
2017	//   "FORMULA" - Values will not be calculated.  The reply will include
2018	// the formulas.
2019	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2020	// currency,
2021	// then A2 would return "=A1".
2022	ResponseValueRenderOption string `json:"responseValueRenderOption,omitempty"`
2023
2024	// ValueInputOption: How the input data should be interpreted.
2025	//
2026	// Possible values:
2027	//   "INPUT_VALUE_OPTION_UNSPECIFIED" - Default input value. This value
2028	// must not be used.
2029	//   "RAW" - The values the user has entered will not be parsed and will
2030	// be stored
2031	// as-is.
2032	//   "USER_ENTERED" - The values will be parsed as if the user typed
2033	// them into the UI.
2034	// Numbers will stay as numbers, but strings may be converted to
2035	// numbers,
2036	// dates, etc. following the same rules that are applied when
2037	// entering
2038	// text into a cell via the Google Sheets UI.
2039	ValueInputOption string `json:"valueInputOption,omitempty"`
2040
2041	// ForceSendFields is a list of field names (e.g. "Data") to
2042	// unconditionally include in API requests. By default, fields with
2043	// empty values are omitted from API requests. However, any non-pointer,
2044	// non-interface field appearing in ForceSendFields will be sent to the
2045	// server regardless of whether the field is empty or not. This may be
2046	// used to include empty fields in Patch requests.
2047	ForceSendFields []string `json:"-"`
2048
2049	// NullFields is a list of field names (e.g. "Data") to include in API
2050	// requests with the JSON null value. By default, fields with empty
2051	// values are omitted from API requests. However, any field with an
2052	// empty value appearing in NullFields will be sent to the server as
2053	// null. It is an error if a field in this list has a non-empty value.
2054	// This may be used to include null fields in Patch requests.
2055	NullFields []string `json:"-"`
2056}
2057
2058func (s *BatchUpdateValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
2059	type NoMethod BatchUpdateValuesByDataFilterRequest
2060	raw := NoMethod(*s)
2061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2062}
2063
2064// BatchUpdateValuesByDataFilterResponse: The response when updating a
2065// range of values in a spreadsheet.
2066type BatchUpdateValuesByDataFilterResponse struct {
2067	// Responses: The response for each range updated.
2068	Responses []*UpdateValuesByDataFilterResponse `json:"responses,omitempty"`
2069
2070	// SpreadsheetId: The spreadsheet the updates were applied to.
2071	SpreadsheetId string `json:"spreadsheetId,omitempty"`
2072
2073	// TotalUpdatedCells: The total number of cells updated.
2074	TotalUpdatedCells int64 `json:"totalUpdatedCells,omitempty"`
2075
2076	// TotalUpdatedColumns: The total number of columns where at least one
2077	// cell in the column was
2078	// updated.
2079	TotalUpdatedColumns int64 `json:"totalUpdatedColumns,omitempty"`
2080
2081	// TotalUpdatedRows: The total number of rows where at least one cell in
2082	// the row was updated.
2083	TotalUpdatedRows int64 `json:"totalUpdatedRows,omitempty"`
2084
2085	// TotalUpdatedSheets: The total number of sheets where at least one
2086	// cell in the sheet was
2087	// updated.
2088	TotalUpdatedSheets int64 `json:"totalUpdatedSheets,omitempty"`
2089
2090	// ServerResponse contains the HTTP response code and headers from the
2091	// server.
2092	googleapi.ServerResponse `json:"-"`
2093
2094	// ForceSendFields is a list of field names (e.g. "Responses") to
2095	// unconditionally include in API requests. By default, fields with
2096	// empty values are omitted from API requests. However, any non-pointer,
2097	// non-interface field appearing in ForceSendFields will be sent to the
2098	// server regardless of whether the field is empty or not. This may be
2099	// used to include empty fields in Patch requests.
2100	ForceSendFields []string `json:"-"`
2101
2102	// NullFields is a list of field names (e.g. "Responses") to include in
2103	// API requests with the JSON null value. By default, fields with empty
2104	// values are omitted from API requests. However, any field with an
2105	// empty value appearing in NullFields will be sent to the server as
2106	// null. It is an error if a field in this list has a non-empty value.
2107	// This may be used to include null fields in Patch requests.
2108	NullFields []string `json:"-"`
2109}
2110
2111func (s *BatchUpdateValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
2112	type NoMethod BatchUpdateValuesByDataFilterResponse
2113	raw := NoMethod(*s)
2114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2115}
2116
2117// BatchUpdateValuesRequest: The request for updating more than one
2118// range of values in a spreadsheet.
2119type BatchUpdateValuesRequest struct {
2120	// Data: The new values to apply to the spreadsheet.
2121	Data []*ValueRange `json:"data,omitempty"`
2122
2123	// IncludeValuesInResponse: Determines if the update response should
2124	// include the values
2125	// of the cells that were updated. By default, responses
2126	// do not include the updated values. The `updatedData` field
2127	// within
2128	// each of the BatchUpdateValuesResponse.responses contains the
2129	// updated
2130	// values. If the range to write was larger than the range actually
2131	// written,
2132	// the response includes all values in the requested range (excluding
2133	// trailing
2134	// empty rows and columns).
2135	IncludeValuesInResponse bool `json:"includeValuesInResponse,omitempty"`
2136
2137	// ResponseDateTimeRenderOption: Determines how dates, times, and
2138	// durations in the response should be
2139	// rendered. This is ignored if response_value_render_option
2140	// is
2141	// FORMATTED_VALUE.
2142	// The default dateTime render option
2143	// is
2144	// DateTimeRenderOption.SERIAL_NUMBER.
2145	//
2146	// Possible values:
2147	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
2148	// fields to be output
2149	// as doubles in "serial number" format, as popularized by Lotus
2150	// 1-2-3.
2151	// The whole number portion of the value (left of the decimal)
2152	// counts
2153	// the days since December 30th 1899. The fractional portion (right
2154	// of
2155	// the decimal) counts the time as a fraction of the day. For
2156	// example,
2157	// January 1st 1900 at noon would be 2.5, 2 because it's 2 days
2158	// after
2159	// December 30st 1899, and .5 because noon is half a day.  February
2160	// 1st
2161	// 1900 at 3pm would be 33.625. This correctly treats the year 1900
2162	// as
2163	// not a leap year.
2164	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
2165	// fields to be output
2166	// as strings in their given number format (which is dependent
2167	// on the spreadsheet locale).
2168	ResponseDateTimeRenderOption string `json:"responseDateTimeRenderOption,omitempty"`
2169
2170	// ResponseValueRenderOption: Determines how values in the response
2171	// should be rendered.
2172	// The default render option is ValueRenderOption.FORMATTED_VALUE.
2173	//
2174	// Possible values:
2175	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
2176	// reply according to the
2177	// cell's formatting.  Formatting is based on the spreadsheet's
2178	// locale,
2179	// not the requesting user's locale.
2180	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2181	// currency,
2182	// then `A2` would return "$1.23".
2183	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
2184	// in the reply.
2185	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2186	// currency,
2187	// then `A2` would return the number `1.23`.
2188	//   "FORMULA" - Values will not be calculated.  The reply will include
2189	// the formulas.
2190	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
2191	// currency,
2192	// then A2 would return "=A1".
2193	ResponseValueRenderOption string `json:"responseValueRenderOption,omitempty"`
2194
2195	// ValueInputOption: How the input data should be interpreted.
2196	//
2197	// Possible values:
2198	//   "INPUT_VALUE_OPTION_UNSPECIFIED" - Default input value. This value
2199	// must not be used.
2200	//   "RAW" - The values the user has entered will not be parsed and will
2201	// be stored
2202	// as-is.
2203	//   "USER_ENTERED" - The values will be parsed as if the user typed
2204	// them into the UI.
2205	// Numbers will stay as numbers, but strings may be converted to
2206	// numbers,
2207	// dates, etc. following the same rules that are applied when
2208	// entering
2209	// text into a cell via the Google Sheets UI.
2210	ValueInputOption string `json:"valueInputOption,omitempty"`
2211
2212	// ForceSendFields is a list of field names (e.g. "Data") to
2213	// unconditionally include in API requests. By default, fields with
2214	// empty values are omitted from API requests. However, any non-pointer,
2215	// non-interface field appearing in ForceSendFields will be sent to the
2216	// server regardless of whether the field is empty or not. This may be
2217	// used to include empty fields in Patch requests.
2218	ForceSendFields []string `json:"-"`
2219
2220	// NullFields is a list of field names (e.g. "Data") to include in API
2221	// requests with the JSON null value. By default, fields with empty
2222	// values are omitted from API requests. However, any field with an
2223	// empty value appearing in NullFields will be sent to the server as
2224	// null. It is an error if a field in this list has a non-empty value.
2225	// This may be used to include null fields in Patch requests.
2226	NullFields []string `json:"-"`
2227}
2228
2229func (s *BatchUpdateValuesRequest) MarshalJSON() ([]byte, error) {
2230	type NoMethod BatchUpdateValuesRequest
2231	raw := NoMethod(*s)
2232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2233}
2234
2235// BatchUpdateValuesResponse: The response when updating a range of
2236// values in a spreadsheet.
2237type BatchUpdateValuesResponse struct {
2238	// Responses: One UpdateValuesResponse per requested range, in the same
2239	// order as
2240	// the requests appeared.
2241	Responses []*UpdateValuesResponse `json:"responses,omitempty"`
2242
2243	// SpreadsheetId: The spreadsheet the updates were applied to.
2244	SpreadsheetId string `json:"spreadsheetId,omitempty"`
2245
2246	// TotalUpdatedCells: The total number of cells updated.
2247	TotalUpdatedCells int64 `json:"totalUpdatedCells,omitempty"`
2248
2249	// TotalUpdatedColumns: The total number of columns where at least one
2250	// cell in the column was
2251	// updated.
2252	TotalUpdatedColumns int64 `json:"totalUpdatedColumns,omitempty"`
2253
2254	// TotalUpdatedRows: The total number of rows where at least one cell in
2255	// the row was updated.
2256	TotalUpdatedRows int64 `json:"totalUpdatedRows,omitempty"`
2257
2258	// TotalUpdatedSheets: The total number of sheets where at least one
2259	// cell in the sheet was
2260	// updated.
2261	TotalUpdatedSheets int64 `json:"totalUpdatedSheets,omitempty"`
2262
2263	// ServerResponse contains the HTTP response code and headers from the
2264	// server.
2265	googleapi.ServerResponse `json:"-"`
2266
2267	// ForceSendFields is a list of field names (e.g. "Responses") to
2268	// unconditionally include in API requests. By default, fields with
2269	// empty values are omitted from API requests. However, any non-pointer,
2270	// non-interface field appearing in ForceSendFields will be sent to the
2271	// server regardless of whether the field is empty or not. This may be
2272	// used to include empty fields in Patch requests.
2273	ForceSendFields []string `json:"-"`
2274
2275	// NullFields is a list of field names (e.g. "Responses") to include in
2276	// API requests with the JSON null value. By default, fields with empty
2277	// values are omitted from API requests. However, any field with an
2278	// empty value appearing in NullFields will be sent to the server as
2279	// null. It is an error if a field in this list has a non-empty value.
2280	// This may be used to include null fields in Patch requests.
2281	NullFields []string `json:"-"`
2282}
2283
2284func (s *BatchUpdateValuesResponse) MarshalJSON() ([]byte, error) {
2285	type NoMethod BatchUpdateValuesResponse
2286	raw := NoMethod(*s)
2287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2288}
2289
2290// BooleanCondition: A condition that can evaluate to true or
2291// false.
2292// BooleanConditions are used by conditional formatting,
2293// data validation, and the criteria in filters.
2294type BooleanCondition struct {
2295	// Type: The type of condition.
2296	//
2297	// Possible values:
2298	//   "CONDITION_TYPE_UNSPECIFIED" - The default value, do not use.
2299	//   "NUMBER_GREATER" - The cell's value must be greater than the
2300	// condition's value.
2301	// Supported by data validation, conditional formatting and
2302	// filters.
2303	// Requires a single ConditionValue.
2304	//   "NUMBER_GREATER_THAN_EQ" - The cell's value must be greater than or
2305	// equal to the condition's value.
2306	// Supported by data validation, conditional formatting and
2307	// filters.
2308	// Requires a single ConditionValue.
2309	//   "NUMBER_LESS" - The cell's value must be less than the condition's
2310	// value.
2311	// Supported by data validation, conditional formatting and
2312	// filters.
2313	// Requires a single ConditionValue.
2314	//   "NUMBER_LESS_THAN_EQ" - The cell's value must be less than or equal
2315	// to the condition's value.
2316	// Supported by data validation, conditional formatting and
2317	// filters.
2318	// Requires a single ConditionValue.
2319	//   "NUMBER_EQ" - The cell's value must be equal to the condition's
2320	// value.
2321	// Supported by data validation, conditional formatting and
2322	// filters.
2323	// Requires a single ConditionValue.
2324	//   "NUMBER_NOT_EQ" - The cell's value must be not equal to the
2325	// condition's value.
2326	// Supported by data validation, conditional formatting and
2327	// filters.
2328	// Requires a single ConditionValue.
2329	//   "NUMBER_BETWEEN" - The cell's value must be between the two
2330	// condition values.
2331	// Supported by data validation, conditional formatting and
2332	// filters.
2333	// Requires exactly two ConditionValues.
2334	//   "NUMBER_NOT_BETWEEN" - The cell's value must not be between the two
2335	// condition values.
2336	// Supported by data validation, conditional formatting and
2337	// filters.
2338	// Requires exactly two ConditionValues.
2339	//   "TEXT_CONTAINS" - The cell's value must contain the condition's
2340	// value.
2341	// Supported by data validation, conditional formatting and
2342	// filters.
2343	// Requires a single ConditionValue.
2344	//   "TEXT_NOT_CONTAINS" - The cell's value must not contain the
2345	// condition's value.
2346	// Supported by data validation, conditional formatting and
2347	// filters.
2348	// Requires a single ConditionValue.
2349	//   "TEXT_STARTS_WITH" - The cell's value must start with the
2350	// condition's value.
2351	// Supported by conditional formatting and filters.
2352	// Requires a single ConditionValue.
2353	//   "TEXT_ENDS_WITH" - The cell's value must end with the condition's
2354	// value.
2355	// Supported by conditional formatting and filters.
2356	// Requires a single ConditionValue.
2357	//   "TEXT_EQ" - The cell's value must be exactly the condition's
2358	// value.
2359	// Supported by data validation, conditional formatting and
2360	// filters.
2361	// Requires a single ConditionValue.
2362	//   "TEXT_IS_EMAIL" - The cell's value must be a valid email
2363	// address.
2364	// Supported by data validation.
2365	// Requires no ConditionValues.
2366	//   "TEXT_IS_URL" - The cell's value must be a valid URL.
2367	// Supported by data validation.
2368	// Requires no ConditionValues.
2369	//   "DATE_EQ" - The cell's value must be the same date as the
2370	// condition's value.
2371	// Supported by data validation, conditional formatting and
2372	// filters.
2373	// Requires a single ConditionValue.
2374	//   "DATE_BEFORE" - The cell's value must be before the date of the
2375	// condition's value.
2376	// Supported by data validation, conditional formatting and
2377	// filters.
2378	// Requires a single ConditionValue
2379	// that may be a relative date.
2380	//   "DATE_AFTER" - The cell's value must be after the date of the
2381	// condition's value.
2382	// Supported by data validation, conditional formatting and
2383	// filters.
2384	// Requires a single ConditionValue
2385	// that may be a relative date.
2386	//   "DATE_ON_OR_BEFORE" - The cell's value must be on or before the
2387	// date of the condition's value.
2388	// Supported by data validation.
2389	// Requires a single ConditionValue
2390	// that may be a relative date.
2391	//   "DATE_ON_OR_AFTER" - The cell's value must be on or after the date
2392	// of the condition's value.
2393	// Supported by data validation.
2394	// Requires a single ConditionValue
2395	// that may be a relative date.
2396	//   "DATE_BETWEEN" - The cell's value must be between the dates of the
2397	// two condition values.
2398	// Supported by data validation.
2399	// Requires exactly two ConditionValues.
2400	//   "DATE_NOT_BETWEEN" - The cell's value must be outside the dates of
2401	// the two condition values.
2402	// Supported by data validation.
2403	// Requires exactly two ConditionValues.
2404	//   "DATE_IS_VALID" - The cell's value must be a date.
2405	// Supported by data validation.
2406	// Requires no ConditionValues.
2407	//   "ONE_OF_RANGE" - The cell's value must be listed in the grid in
2408	// condition value's range.
2409	// Supported by data validation.
2410	// Requires a single ConditionValue,
2411	// and the value must be a valid range in A1 notation.
2412	//   "ONE_OF_LIST" - The cell's value must be in the list of condition
2413	// values.
2414	// Supported by data validation.
2415	// Supports any number of condition values,
2416	// one per item in the list.
2417	// Formulas are not supported in the values.
2418	//   "BLANK" - The cell's value must be empty.
2419	// Supported by conditional formatting and filters.
2420	// Requires no ConditionValues.
2421	//   "NOT_BLANK" - The cell's value must not be empty.
2422	// Supported by conditional formatting and filters.
2423	// Requires no ConditionValues.
2424	//   "CUSTOM_FORMULA" - The condition's formula must evaluate to
2425	// true.
2426	// Supported by data validation, conditional formatting and
2427	// filters.
2428	// Requires a single ConditionValue.
2429	//   "BOOLEAN" - The cell's value must be TRUE/FALSE or in the list of
2430	// condition values.
2431	// Supported by data validation.
2432	// Renders as a cell checkbox.
2433	// Supports zero, one or two ConditionValues.  No
2434	// values indicates the cell must be TRUE or FALSE, where TRUE renders
2435	// as
2436	// checked and FALSE renders as unchecked.  One value indicates the
2437	// cell
2438	// will render as checked when it contains that value and unchecked when
2439	// it
2440	// is blank.  Two values indicate that the cell will render as checked
2441	// when
2442	// it contains the first value and unchecked when it contains the
2443	// second
2444	// value.  For example, ["Yes","No"] indicates that the cell will render
2445	// a
2446	// checked box when it has the value "Yes" and an unchecked box when it
2447	// has
2448	// the value "No".
2449	Type string `json:"type,omitempty"`
2450
2451	// Values: The values of the condition. The number of supported values
2452	// depends
2453	// on the condition type.  Some support zero values,
2454	// others one or two values,
2455	// and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
2456	Values []*ConditionValue `json:"values,omitempty"`
2457
2458	// ForceSendFields is a list of field names (e.g. "Type") to
2459	// unconditionally include in API requests. By default, fields with
2460	// empty values are omitted from API requests. However, any non-pointer,
2461	// non-interface field appearing in ForceSendFields will be sent to the
2462	// server regardless of whether the field is empty or not. This may be
2463	// used to include empty fields in Patch requests.
2464	ForceSendFields []string `json:"-"`
2465
2466	// NullFields is a list of field names (e.g. "Type") to include in API
2467	// requests with the JSON null value. By default, fields with empty
2468	// values are omitted from API requests. However, any field with an
2469	// empty value appearing in NullFields will be sent to the server as
2470	// null. It is an error if a field in this list has a non-empty value.
2471	// This may be used to include null fields in Patch requests.
2472	NullFields []string `json:"-"`
2473}
2474
2475func (s *BooleanCondition) MarshalJSON() ([]byte, error) {
2476	type NoMethod BooleanCondition
2477	raw := NoMethod(*s)
2478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2479}
2480
2481// BooleanRule: A rule that may or may not match, depending on the
2482// condition.
2483type BooleanRule struct {
2484	// Condition: The condition of the rule. If the condition evaluates to
2485	// true,
2486	// the format is applied.
2487	Condition *BooleanCondition `json:"condition,omitempty"`
2488
2489	// Format: The format to apply.
2490	// Conditional formatting can only apply a subset of formatting:
2491	// bold, italic,
2492	// strikethrough,
2493	// foreground color &
2494	// background color.
2495	Format *CellFormat `json:"format,omitempty"`
2496
2497	// ForceSendFields is a list of field names (e.g. "Condition") to
2498	// unconditionally include in API requests. By default, fields with
2499	// empty values are omitted from API requests. However, any non-pointer,
2500	// non-interface field appearing in ForceSendFields will be sent to the
2501	// server regardless of whether the field is empty or not. This may be
2502	// used to include empty fields in Patch requests.
2503	ForceSendFields []string `json:"-"`
2504
2505	// NullFields is a list of field names (e.g. "Condition") to include in
2506	// API requests with the JSON null value. By default, fields with empty
2507	// values are omitted from API requests. However, any field with an
2508	// empty value appearing in NullFields will be sent to the server as
2509	// null. It is an error if a field in this list has a non-empty value.
2510	// This may be used to include null fields in Patch requests.
2511	NullFields []string `json:"-"`
2512}
2513
2514func (s *BooleanRule) MarshalJSON() ([]byte, error) {
2515	type NoMethod BooleanRule
2516	raw := NoMethod(*s)
2517	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2518}
2519
2520// Border: A border along a cell.
2521type Border struct {
2522	// Color: The color of the border.
2523	Color *Color `json:"color,omitempty"`
2524
2525	// ColorStyle: The color of the border.
2526	// If color is also set, this field takes precedence.
2527	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
2528
2529	// Style: The style of the border.
2530	//
2531	// Possible values:
2532	//   "STYLE_UNSPECIFIED" - The style is not specified. Do not use this.
2533	//   "DOTTED" - The border is dotted.
2534	//   "DASHED" - The border is dashed.
2535	//   "SOLID" - The border is a thin solid line.
2536	//   "SOLID_MEDIUM" - The border is a medium solid line.
2537	//   "SOLID_THICK" - The border is a thick solid line.
2538	//   "NONE" - No border.
2539	// Used only when updating a border in order to erase it.
2540	//   "DOUBLE" - The border is two solid lines.
2541	Style string `json:"style,omitempty"`
2542
2543	// Width: The width of the border, in pixels.
2544	// Deprecated; the width is determined by the "style" field.
2545	Width int64 `json:"width,omitempty"`
2546
2547	// ForceSendFields is a list of field names (e.g. "Color") to
2548	// unconditionally include in API requests. By default, fields with
2549	// empty values are omitted from API requests. However, any non-pointer,
2550	// non-interface field appearing in ForceSendFields will be sent to the
2551	// server regardless of whether the field is empty or not. This may be
2552	// used to include empty fields in Patch requests.
2553	ForceSendFields []string `json:"-"`
2554
2555	// NullFields is a list of field names (e.g. "Color") to include in API
2556	// requests with the JSON null value. By default, fields with empty
2557	// values are omitted from API requests. However, any field with an
2558	// empty value appearing in NullFields will be sent to the server as
2559	// null. It is an error if a field in this list has a non-empty value.
2560	// This may be used to include null fields in Patch requests.
2561	NullFields []string `json:"-"`
2562}
2563
2564func (s *Border) MarshalJSON() ([]byte, error) {
2565	type NoMethod Border
2566	raw := NoMethod(*s)
2567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2568}
2569
2570// Borders: The borders of the cell.
2571type Borders struct {
2572	// Bottom: The bottom border of the cell.
2573	Bottom *Border `json:"bottom,omitempty"`
2574
2575	// Left: The left border of the cell.
2576	Left *Border `json:"left,omitempty"`
2577
2578	// Right: The right border of the cell.
2579	Right *Border `json:"right,omitempty"`
2580
2581	// Top: The top border of the cell.
2582	Top *Border `json:"top,omitempty"`
2583
2584	// ForceSendFields is a list of field names (e.g. "Bottom") to
2585	// unconditionally include in API requests. By default, fields with
2586	// empty values are omitted from API requests. However, any non-pointer,
2587	// non-interface field appearing in ForceSendFields will be sent to the
2588	// server regardless of whether the field is empty or not. This may be
2589	// used to include empty fields in Patch requests.
2590	ForceSendFields []string `json:"-"`
2591
2592	// NullFields is a list of field names (e.g. "Bottom") to include in API
2593	// requests with the JSON null value. By default, fields with empty
2594	// values are omitted from API requests. However, any field with an
2595	// empty value appearing in NullFields will be sent to the server as
2596	// null. It is an error if a field in this list has a non-empty value.
2597	// This may be used to include null fields in Patch requests.
2598	NullFields []string `json:"-"`
2599}
2600
2601func (s *Borders) MarshalJSON() ([]byte, error) {
2602	type NoMethod Borders
2603	raw := NoMethod(*s)
2604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2605}
2606
2607// BubbleChartSpec: A <a
2608// href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>.
2609type BubbleChartSpec struct {
2610	// BubbleBorderColor: The bubble border color.
2611	BubbleBorderColor *Color `json:"bubbleBorderColor,omitempty"`
2612
2613	// BubbleBorderColorStyle: The bubble border color.
2614	// If bubble_border_color is also set, this field takes precedence.
2615	BubbleBorderColorStyle *ColorStyle `json:"bubbleBorderColorStyle,omitempty"`
2616
2617	// BubbleLabels: The data containing the bubble labels.  These do not
2618	// need to be unique.
2619	BubbleLabels *ChartData `json:"bubbleLabels,omitempty"`
2620
2621	// BubbleMaxRadiusSize: The max radius size of the bubbles, in
2622	// pixels.
2623	// If specified, the field must be a positive value.
2624	BubbleMaxRadiusSize int64 `json:"bubbleMaxRadiusSize,omitempty"`
2625
2626	// BubbleMinRadiusSize: The minimum radius size of the bubbles, in
2627	// pixels.
2628	// If specific, the field must be a positive value.
2629	BubbleMinRadiusSize int64 `json:"bubbleMinRadiusSize,omitempty"`
2630
2631	// BubbleOpacity: The opacity of the bubbles between 0 and 1.0.
2632	// 0 is fully transparent and 1 is fully opaque.
2633	BubbleOpacity float64 `json:"bubbleOpacity,omitempty"`
2634
2635	// BubbleSizes: The data contianing the bubble sizes.  Bubble sizes are
2636	// used to draw
2637	// the bubbles at different sizes relative to each other.
2638	// If specified, group_ids must also be specified.  This field
2639	// is
2640	// optional.
2641	BubbleSizes *ChartData `json:"bubbleSizes,omitempty"`
2642
2643	// BubbleTextStyle: The format of the text inside the bubbles.
2644	// Underline and Strikethrough are not supported.
2645	BubbleTextStyle *TextFormat `json:"bubbleTextStyle,omitempty"`
2646
2647	// Domain: The data containing the bubble x-values.  These values locate
2648	// the bubbles
2649	// in the chart horizontally.
2650	Domain *ChartData `json:"domain,omitempty"`
2651
2652	// GroupIds: The data containing the bubble group IDs. All bubbles with
2653	// the same group
2654	// ID are drawn in the same color. If bubble_sizes is specified
2655	// then
2656	// this field must also be specified but may contain blank values.
2657	// This field is optional.
2658	GroupIds *ChartData `json:"groupIds,omitempty"`
2659
2660	// LegendPosition: Where the legend of the chart should be drawn.
2661	//
2662	// Possible values:
2663	//   "BUBBLE_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
2664	// use.
2665	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
2666	// chart.
2667	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
2668	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
2669	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
2670	//   "NO_LEGEND" - No legend is rendered.
2671	//   "INSIDE_LEGEND" - The legend is rendered inside the chart area.
2672	LegendPosition string `json:"legendPosition,omitempty"`
2673
2674	// Series: The data contianing the bubble y-values.  These values locate
2675	// the bubbles
2676	// in the chart vertically.
2677	Series *ChartData `json:"series,omitempty"`
2678
2679	// ForceSendFields is a list of field names (e.g. "BubbleBorderColor")
2680	// to unconditionally include in API requests. By default, fields with
2681	// empty values are omitted from API requests. However, any non-pointer,
2682	// non-interface field appearing in ForceSendFields will be sent to the
2683	// server regardless of whether the field is empty or not. This may be
2684	// used to include empty fields in Patch requests.
2685	ForceSendFields []string `json:"-"`
2686
2687	// NullFields is a list of field names (e.g. "BubbleBorderColor") to
2688	// include in API requests with the JSON null value. By default, fields
2689	// with empty values are omitted from API requests. However, any field
2690	// with an empty value appearing in NullFields will be sent to the
2691	// server as null. It is an error if a field in this list has a
2692	// non-empty value. This may be used to include null fields in Patch
2693	// requests.
2694	NullFields []string `json:"-"`
2695}
2696
2697func (s *BubbleChartSpec) MarshalJSON() ([]byte, error) {
2698	type NoMethod BubbleChartSpec
2699	raw := NoMethod(*s)
2700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2701}
2702
2703func (s *BubbleChartSpec) UnmarshalJSON(data []byte) error {
2704	type NoMethod BubbleChartSpec
2705	var s1 struct {
2706		BubbleOpacity gensupport.JSONFloat64 `json:"bubbleOpacity"`
2707		*NoMethod
2708	}
2709	s1.NoMethod = (*NoMethod)(s)
2710	if err := json.Unmarshal(data, &s1); err != nil {
2711		return err
2712	}
2713	s.BubbleOpacity = float64(s1.BubbleOpacity)
2714	return nil
2715}
2716
2717// CandlestickChartSpec: A <a
2718// href="/chart/interactive/docs/gallery/candlestickchart">candlestick
2719// ch
2720// art</a>.
2721type CandlestickChartSpec struct {
2722	// Data: The Candlestick chart data.
2723	// Only one CandlestickData is supported.
2724	Data []*CandlestickData `json:"data,omitempty"`
2725
2726	// Domain: The domain data (horizontal axis) for the candlestick chart.
2727	// String data
2728	// will be treated as discrete labels, other data will be treated
2729	// as
2730	// continuous values.
2731	Domain *CandlestickDomain `json:"domain,omitempty"`
2732
2733	// ForceSendFields is a list of field names (e.g. "Data") to
2734	// unconditionally include in API requests. By default, fields with
2735	// empty values are omitted from API requests. However, any non-pointer,
2736	// non-interface field appearing in ForceSendFields will be sent to the
2737	// server regardless of whether the field is empty or not. This may be
2738	// used to include empty fields in Patch requests.
2739	ForceSendFields []string `json:"-"`
2740
2741	// NullFields is a list of field names (e.g. "Data") to include in API
2742	// requests with the JSON null value. By default, fields with empty
2743	// values are omitted from API requests. However, any field with an
2744	// empty value appearing in NullFields will be sent to the server as
2745	// null. It is an error if a field in this list has a non-empty value.
2746	// This may be used to include null fields in Patch requests.
2747	NullFields []string `json:"-"`
2748}
2749
2750func (s *CandlestickChartSpec) MarshalJSON() ([]byte, error) {
2751	type NoMethod CandlestickChartSpec
2752	raw := NoMethod(*s)
2753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2754}
2755
2756// CandlestickData: The Candlestick chart data, each containing the low,
2757// open, close, and high
2758// values for a series.
2759type CandlestickData struct {
2760	// CloseSeries: The range data (vertical axis) for the close/final value
2761	// for each candle.
2762	// This is the top of the candle body.  If greater than the open value
2763	// the
2764	// candle will be filled.  Otherwise the candle will be hollow.
2765	CloseSeries *CandlestickSeries `json:"closeSeries,omitempty"`
2766
2767	// HighSeries: The range data (vertical axis) for the high/maximum value
2768	// for each
2769	// candle. This is the top of the candle's center line.
2770	HighSeries *CandlestickSeries `json:"highSeries,omitempty"`
2771
2772	// LowSeries: The range data (vertical axis) for the low/minimum value
2773	// for each candle.
2774	// This is the bottom of the candle's center line.
2775	LowSeries *CandlestickSeries `json:"lowSeries,omitempty"`
2776
2777	// OpenSeries: The range data (vertical axis) for the open/initial value
2778	// for each
2779	// candle. This is the bottom of the candle body.  If less than the
2780	// close
2781	// value the candle will be filled.  Otherwise the candle will be
2782	// hollow.
2783	OpenSeries *CandlestickSeries `json:"openSeries,omitempty"`
2784
2785	// ForceSendFields is a list of field names (e.g. "CloseSeries") to
2786	// unconditionally include in API requests. By default, fields with
2787	// empty values are omitted from API requests. However, any non-pointer,
2788	// non-interface field appearing in ForceSendFields will be sent to the
2789	// server regardless of whether the field is empty or not. This may be
2790	// used to include empty fields in Patch requests.
2791	ForceSendFields []string `json:"-"`
2792
2793	// NullFields is a list of field names (e.g. "CloseSeries") to include
2794	// in API requests with the JSON null value. By default, fields with
2795	// empty values are omitted from API requests. However, any field with
2796	// an empty value appearing in NullFields will be sent to the server as
2797	// null. It is an error if a field in this list has a non-empty value.
2798	// This may be used to include null fields in Patch requests.
2799	NullFields []string `json:"-"`
2800}
2801
2802func (s *CandlestickData) MarshalJSON() ([]byte, error) {
2803	type NoMethod CandlestickData
2804	raw := NoMethod(*s)
2805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2806}
2807
2808// CandlestickDomain: The domain of a CandlestickChart.
2809type CandlestickDomain struct {
2810	// Data: The data of the CandlestickDomain.
2811	Data *ChartData `json:"data,omitempty"`
2812
2813	// Reversed: True to reverse the order of the domain values (horizontal
2814	// axis).
2815	Reversed bool `json:"reversed,omitempty"`
2816
2817	// ForceSendFields is a list of field names (e.g. "Data") to
2818	// unconditionally include in API requests. By default, fields with
2819	// empty values are omitted from API requests. However, any non-pointer,
2820	// non-interface field appearing in ForceSendFields will be sent to the
2821	// server regardless of whether the field is empty or not. This may be
2822	// used to include empty fields in Patch requests.
2823	ForceSendFields []string `json:"-"`
2824
2825	// NullFields is a list of field names (e.g. "Data") to include in API
2826	// requests with the JSON null value. By default, fields with empty
2827	// values are omitted from API requests. However, any field with an
2828	// empty value appearing in NullFields will be sent to the server as
2829	// null. It is an error if a field in this list has a non-empty value.
2830	// This may be used to include null fields in Patch requests.
2831	NullFields []string `json:"-"`
2832}
2833
2834func (s *CandlestickDomain) MarshalJSON() ([]byte, error) {
2835	type NoMethod CandlestickDomain
2836	raw := NoMethod(*s)
2837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2838}
2839
2840// CandlestickSeries: The series of a CandlestickData.
2841type CandlestickSeries struct {
2842	// Data: The data of the CandlestickSeries.
2843	Data *ChartData `json:"data,omitempty"`
2844
2845	// ForceSendFields is a list of field names (e.g. "Data") to
2846	// unconditionally include in API requests. By default, fields with
2847	// empty values are omitted from API requests. However, any non-pointer,
2848	// non-interface field appearing in ForceSendFields will be sent to the
2849	// server regardless of whether the field is empty or not. This may be
2850	// used to include empty fields in Patch requests.
2851	ForceSendFields []string `json:"-"`
2852
2853	// NullFields is a list of field names (e.g. "Data") to include in API
2854	// requests with the JSON null value. By default, fields with empty
2855	// values are omitted from API requests. However, any field with an
2856	// empty value appearing in NullFields will be sent to the server as
2857	// null. It is an error if a field in this list has a non-empty value.
2858	// This may be used to include null fields in Patch requests.
2859	NullFields []string `json:"-"`
2860}
2861
2862func (s *CandlestickSeries) MarshalJSON() ([]byte, error) {
2863	type NoMethod CandlestickSeries
2864	raw := NoMethod(*s)
2865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2866}
2867
2868// CellData: Data about a specific cell.
2869type CellData struct {
2870	// DataValidation: A data validation rule on the cell, if any.
2871	//
2872	// When writing, the new data validation rule will overwrite any prior
2873	// rule.
2874	DataValidation *DataValidationRule `json:"dataValidation,omitempty"`
2875
2876	// EffectiveFormat: The effective format being used by the cell.
2877	// This includes the results of applying any conditional formatting
2878	// and,
2879	// if the cell contains a formula, the computed number format.
2880	// If the effective format is the default format, effective format
2881	// will
2882	// not be written.
2883	// This field is read-only.
2884	EffectiveFormat *CellFormat `json:"effectiveFormat,omitempty"`
2885
2886	// EffectiveValue: The effective value of the cell. For cells with
2887	// formulas, this is
2888	// the calculated value.  For cells with literals, this is
2889	// the same as the user_entered_value.
2890	// This field is read-only.
2891	EffectiveValue *ExtendedValue `json:"effectiveValue,omitempty"`
2892
2893	// FormattedValue: The formatted value of the cell.
2894	// This is the value as it's shown to the user.
2895	// This field is read-only.
2896	FormattedValue string `json:"formattedValue,omitempty"`
2897
2898	// Hyperlink: A hyperlink this cell points to, if any.
2899	// This field is read-only.  (To set it, use a `=HYPERLINK` formula
2900	// in the userEnteredValue.formulaValue
2901	// field.)
2902	Hyperlink string `json:"hyperlink,omitempty"`
2903
2904	// Note: Any note on the cell.
2905	Note string `json:"note,omitempty"`
2906
2907	// PivotTable: A pivot table anchored at this cell. The size of pivot
2908	// table itself
2909	// is computed dynamically based on its data, grouping, filters,
2910	// values,
2911	// etc. Only the top-left cell of the pivot table contains the pivot
2912	// table
2913	// definition. The other cells will contain the calculated values of
2914	// the
2915	// results of the pivot in their effective_value fields.
2916	PivotTable *PivotTable `json:"pivotTable,omitempty"`
2917
2918	// TextFormatRuns: Runs of rich text applied to subsections of the cell.
2919	//  Runs are only valid
2920	// on user entered strings, not formulas, bools, or numbers.
2921	// Runs start at specific indexes in the text and continue until the
2922	// next
2923	// run. Properties of a run will continue unless explicitly changed
2924	// in a subsequent run (and properties of the first run will
2925	// continue
2926	// the properties of the cell unless explicitly changed).
2927	//
2928	// When writing, the new runs will overwrite any prior runs.  When
2929	// writing a
2930	// new user_entered_value, previous runs are erased.
2931	TextFormatRuns []*TextFormatRun `json:"textFormatRuns,omitempty"`
2932
2933	// UserEnteredFormat: The format the user entered for the cell.
2934	//
2935	// When writing, the new format will be merged with the existing format.
2936	UserEnteredFormat *CellFormat `json:"userEnteredFormat,omitempty"`
2937
2938	// UserEnteredValue: The value the user entered in the cell. e.g,
2939	// `1234`, `'Hello'`, or `=NOW()`
2940	// Note: Dates, Times and DateTimes are represented as doubles in
2941	// serial number format.
2942	UserEnteredValue *ExtendedValue `json:"userEnteredValue,omitempty"`
2943
2944	// ForceSendFields is a list of field names (e.g. "DataValidation") to
2945	// unconditionally include in API requests. By default, fields with
2946	// empty values are omitted from API requests. However, any non-pointer,
2947	// non-interface field appearing in ForceSendFields will be sent to the
2948	// server regardless of whether the field is empty or not. This may be
2949	// used to include empty fields in Patch requests.
2950	ForceSendFields []string `json:"-"`
2951
2952	// NullFields is a list of field names (e.g. "DataValidation") to
2953	// include in API requests with the JSON null value. By default, fields
2954	// with empty values are omitted from API requests. However, any field
2955	// with an empty value appearing in NullFields will be sent to the
2956	// server as null. It is an error if a field in this list has a
2957	// non-empty value. This may be used to include null fields in Patch
2958	// requests.
2959	NullFields []string `json:"-"`
2960}
2961
2962func (s *CellData) MarshalJSON() ([]byte, error) {
2963	type NoMethod CellData
2964	raw := NoMethod(*s)
2965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2966}
2967
2968// CellFormat: The format of a cell.
2969type CellFormat struct {
2970	// BackgroundColor: The background color of the cell.
2971	BackgroundColor *Color `json:"backgroundColor,omitempty"`
2972
2973	// BackgroundColorStyle: The background color of the cell.
2974	// If background_color is also set, this field takes precedence.
2975	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
2976
2977	// Borders: The borders of the cell.
2978	Borders *Borders `json:"borders,omitempty"`
2979
2980	// HorizontalAlignment: The horizontal alignment of the value in the
2981	// cell.
2982	//
2983	// Possible values:
2984	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
2985	// specified. Do not use this.
2986	//   "LEFT" - The text is explicitly aligned to the left of the cell.
2987	//   "CENTER" - The text is explicitly aligned to the center of the
2988	// cell.
2989	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
2990	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
2991
2992	// HyperlinkDisplayType: How a hyperlink, if it exists, should be
2993	// displayed in the cell.
2994	//
2995	// Possible values:
2996	//   "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED" - The default value: the
2997	// hyperlink is rendered. Do not use this.
2998	//   "LINKED" - A hyperlink should be explicitly rendered.
2999	//   "PLAIN_TEXT" - A hyperlink should not be rendered.
3000	HyperlinkDisplayType string `json:"hyperlinkDisplayType,omitempty"`
3001
3002	// NumberFormat: A format describing how number values should be
3003	// represented to the user.
3004	NumberFormat *NumberFormat `json:"numberFormat,omitempty"`
3005
3006	// Padding: The padding of the cell.
3007	Padding *Padding `json:"padding,omitempty"`
3008
3009	// TextDirection: The direction of the text in the cell.
3010	//
3011	// Possible values:
3012	//   "TEXT_DIRECTION_UNSPECIFIED" - The text direction is not specified.
3013	// Do not use this.
3014	//   "LEFT_TO_RIGHT" - The text direction of left-to-right was set by
3015	// the user.
3016	//   "RIGHT_TO_LEFT" - The text direction of right-to-left was set by
3017	// the user.
3018	TextDirection string `json:"textDirection,omitempty"`
3019
3020	// TextFormat: The format of the text in the cell (unless overridden by
3021	// a format run).
3022	TextFormat *TextFormat `json:"textFormat,omitempty"`
3023
3024	// TextRotation: The rotation applied to text in a cell
3025	TextRotation *TextRotation `json:"textRotation,omitempty"`
3026
3027	// VerticalAlignment: The vertical alignment of the value in the cell.
3028	//
3029	// Possible values:
3030	//   "VERTICAL_ALIGN_UNSPECIFIED" - The vertical alignment is not
3031	// specified.  Do not use this.
3032	//   "TOP" - The text is explicitly aligned to the top of the cell.
3033	//   "MIDDLE" - The text is explicitly aligned to the middle of the
3034	// cell.
3035	//   "BOTTOM" - The text is explicitly aligned to the bottom of the
3036	// cell.
3037	VerticalAlignment string `json:"verticalAlignment,omitempty"`
3038
3039	// WrapStrategy: The wrap strategy for the value in the cell.
3040	//
3041	// Possible values:
3042	//   "WRAP_STRATEGY_UNSPECIFIED" - The default value, do not use.
3043	//   "OVERFLOW_CELL" - Lines that are longer than the cell width will be
3044	// written in the next
3045	// cell over, so long as that cell is empty. If the next cell over
3046	// is
3047	// non-empty, this behaves the same as CLIP. The text will never wrap
3048	// to the next line unless the user manually inserts a new
3049	// line.
3050	// Example:
3051	//
3052	//     | First sentence. |
3053	//     | Manual newline that is very long. <- Text continues into next
3054	// cell
3055	//     | Next newline.   |
3056	//   "LEGACY_WRAP" - This wrap strategy represents the old Google Sheets
3057	// wrap strategy where
3058	// words that are longer than a line are clipped rather than broken.
3059	// This
3060	// strategy is not supported on all platforms and is being phased
3061	// out.
3062	// Example:
3063	//
3064	//     | Cell has a |
3065	//     | loooooooooo| <- Word is clipped.
3066	//     | word.      |
3067	//   "CLIP" - Lines that are longer than the cell width will be
3068	// clipped.
3069	// The text will never wrap to the next line unless the user
3070	// manually
3071	// inserts a new line.
3072	// Example:
3073	//
3074	//     | First sentence. |
3075	//     | Manual newline t| <- Text is clipped
3076	//     | Next newline.   |
3077	//   "WRAP" - Words that are longer than a line are wrapped at the
3078	// character level
3079	// rather than clipped.
3080	// Example:
3081	//
3082	//     | Cell has a |
3083	//     | loooooooooo| <- Word is broken.
3084	//     | ong word.  |
3085	WrapStrategy string `json:"wrapStrategy,omitempty"`
3086
3087	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
3088	// unconditionally include in API requests. By default, fields with
3089	// empty values are omitted from API requests. However, any non-pointer,
3090	// non-interface field appearing in ForceSendFields will be sent to the
3091	// server regardless of whether the field is empty or not. This may be
3092	// used to include empty fields in Patch requests.
3093	ForceSendFields []string `json:"-"`
3094
3095	// NullFields is a list of field names (e.g. "BackgroundColor") to
3096	// include in API requests with the JSON null value. By default, fields
3097	// with empty values are omitted from API requests. However, any field
3098	// with an empty value appearing in NullFields will be sent to the
3099	// server as null. It is an error if a field in this list has a
3100	// non-empty value. This may be used to include null fields in Patch
3101	// requests.
3102	NullFields []string `json:"-"`
3103}
3104
3105func (s *CellFormat) MarshalJSON() ([]byte, error) {
3106	type NoMethod CellFormat
3107	raw := NoMethod(*s)
3108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3109}
3110
3111// ChartAxisViewWindowOptions: The options that define a "view window"
3112// for a chart (such as the visible
3113// values in an axis).
3114type ChartAxisViewWindowOptions struct {
3115	// ViewWindowMax: The maximum numeric value to be shown in this view
3116	// window. If unset, will
3117	// automatically determine a maximum value that looks good for the data.
3118	ViewWindowMax float64 `json:"viewWindowMax,omitempty"`
3119
3120	// ViewWindowMin: The minimum numeric value to be shown in this view
3121	// window. If unset, will
3122	// automatically determine a minimum value that looks good for the data.
3123	ViewWindowMin float64 `json:"viewWindowMin,omitempty"`
3124
3125	// ViewWindowMode: The view window's mode.
3126	//
3127	// Possible values:
3128	//   "DEFAULT_VIEW_WINDOW_MODE" - The default view window mode used in
3129	// the Sheets editor for this chart
3130	// type. In most cases, if set, the default mode is equivalent
3131	// to
3132	// `PRETTY`.
3133	//   "VIEW_WINDOW_MODE_UNSUPPORTED" - Do not use. Represents that the
3134	// currently set mode is not supported by
3135	// the API.
3136	//   "EXPLICIT" - Follows the min and max exactly if specified. If a
3137	// value is unspecified,
3138	// it will fall back to the `PRETTY` value.
3139	//   "PRETTY" - Chooses a min and max that make the chart look good.
3140	// Both min and max are
3141	// ignored in this mode.
3142	ViewWindowMode string `json:"viewWindowMode,omitempty"`
3143
3144	// ForceSendFields is a list of field names (e.g. "ViewWindowMax") to
3145	// unconditionally include in API requests. By default, fields with
3146	// empty values are omitted from API requests. However, any non-pointer,
3147	// non-interface field appearing in ForceSendFields will be sent to the
3148	// server regardless of whether the field is empty or not. This may be
3149	// used to include empty fields in Patch requests.
3150	ForceSendFields []string `json:"-"`
3151
3152	// NullFields is a list of field names (e.g. "ViewWindowMax") to include
3153	// in API requests with the JSON null value. By default, fields with
3154	// empty values are omitted from API requests. However, any field with
3155	// an empty value appearing in NullFields will be sent to the server as
3156	// null. It is an error if a field in this list has a non-empty value.
3157	// This may be used to include null fields in Patch requests.
3158	NullFields []string `json:"-"`
3159}
3160
3161func (s *ChartAxisViewWindowOptions) MarshalJSON() ([]byte, error) {
3162	type NoMethod ChartAxisViewWindowOptions
3163	raw := NoMethod(*s)
3164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3165}
3166
3167func (s *ChartAxisViewWindowOptions) UnmarshalJSON(data []byte) error {
3168	type NoMethod ChartAxisViewWindowOptions
3169	var s1 struct {
3170		ViewWindowMax gensupport.JSONFloat64 `json:"viewWindowMax"`
3171		ViewWindowMin gensupport.JSONFloat64 `json:"viewWindowMin"`
3172		*NoMethod
3173	}
3174	s1.NoMethod = (*NoMethod)(s)
3175	if err := json.Unmarshal(data, &s1); err != nil {
3176		return err
3177	}
3178	s.ViewWindowMax = float64(s1.ViewWindowMax)
3179	s.ViewWindowMin = float64(s1.ViewWindowMin)
3180	return nil
3181}
3182
3183// ChartCustomNumberFormatOptions: Custom number formatting options for
3184// chart attributes.
3185type ChartCustomNumberFormatOptions struct {
3186	// Prefix: Custom prefix to be prepended to the chart attribute.
3187	// This field is optional.
3188	Prefix string `json:"prefix,omitempty"`
3189
3190	// Suffix: Custom suffix to be appended to the chart attribute.
3191	// This field is optional.
3192	Suffix string `json:"suffix,omitempty"`
3193
3194	// ForceSendFields is a list of field names (e.g. "Prefix") to
3195	// unconditionally include in API requests. By default, fields with
3196	// empty values are omitted from API requests. However, any non-pointer,
3197	// non-interface field appearing in ForceSendFields will be sent to the
3198	// server regardless of whether the field is empty or not. This may be
3199	// used to include empty fields in Patch requests.
3200	ForceSendFields []string `json:"-"`
3201
3202	// NullFields is a list of field names (e.g. "Prefix") to include in API
3203	// requests with the JSON null value. By default, fields with empty
3204	// values are omitted from API requests. However, any field with an
3205	// empty value appearing in NullFields will be sent to the server as
3206	// null. It is an error if a field in this list has a non-empty value.
3207	// This may be used to include null fields in Patch requests.
3208	NullFields []string `json:"-"`
3209}
3210
3211func (s *ChartCustomNumberFormatOptions) MarshalJSON() ([]byte, error) {
3212	type NoMethod ChartCustomNumberFormatOptions
3213	raw := NoMethod(*s)
3214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3215}
3216
3217// ChartData: The data included in a domain or series.
3218type ChartData struct {
3219	// SourceRange: The source ranges of the data.
3220	SourceRange *ChartSourceRange `json:"sourceRange,omitempty"`
3221
3222	// ForceSendFields is a list of field names (e.g. "SourceRange") to
3223	// unconditionally include in API requests. By default, fields with
3224	// empty values are omitted from API requests. However, any non-pointer,
3225	// non-interface field appearing in ForceSendFields will be sent to the
3226	// server regardless of whether the field is empty or not. This may be
3227	// used to include empty fields in Patch requests.
3228	ForceSendFields []string `json:"-"`
3229
3230	// NullFields is a list of field names (e.g. "SourceRange") to include
3231	// in API requests with the JSON null value. By default, fields with
3232	// empty values are omitted from API requests. However, any field with
3233	// an empty value appearing in NullFields will be sent to the server as
3234	// null. It is an error if a field in this list has a non-empty value.
3235	// This may be used to include null fields in Patch requests.
3236	NullFields []string `json:"-"`
3237}
3238
3239func (s *ChartData) MarshalJSON() ([]byte, error) {
3240	type NoMethod ChartData
3241	raw := NoMethod(*s)
3242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3243}
3244
3245// ChartSourceRange: Source ranges for a chart.
3246type ChartSourceRange struct {
3247	// Sources: The ranges of data for a series or domain.
3248	// Exactly one dimension must have a length of 1,
3249	// and all sources in the list must have the same dimension
3250	// with length 1.
3251	// The domain (if it exists) & all series must have the same number
3252	// of source ranges. If using more than one source range, then the
3253	// source
3254	// range at a given offset must be in order and contiguous across the
3255	// domain
3256	// and series.
3257	//
3258	// For example, these are valid configurations:
3259	//
3260	//     domain sources: A1:A5
3261	//     series1 sources: B1:B5
3262	//     series2 sources: D6:D10
3263	//
3264	//     domain sources: A1:A5, C10:C12
3265	//     series1 sources: B1:B5, D10:D12
3266	//     series2 sources: C1:C5, E10:E12
3267	Sources []*GridRange `json:"sources,omitempty"`
3268
3269	// ForceSendFields is a list of field names (e.g. "Sources") to
3270	// unconditionally include in API requests. By default, fields with
3271	// empty values are omitted from API requests. However, any non-pointer,
3272	// non-interface field appearing in ForceSendFields will be sent to the
3273	// server regardless of whether the field is empty or not. This may be
3274	// used to include empty fields in Patch requests.
3275	ForceSendFields []string `json:"-"`
3276
3277	// NullFields is a list of field names (e.g. "Sources") to include in
3278	// API requests with the JSON null value. By default, fields with empty
3279	// values are omitted from API requests. However, any field with an
3280	// empty value appearing in NullFields will be sent to the server as
3281	// null. It is an error if a field in this list has a non-empty value.
3282	// This may be used to include null fields in Patch requests.
3283	NullFields []string `json:"-"`
3284}
3285
3286func (s *ChartSourceRange) MarshalJSON() ([]byte, error) {
3287	type NoMethod ChartSourceRange
3288	raw := NoMethod(*s)
3289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3290}
3291
3292// ChartSpec: The specifications of a chart.
3293type ChartSpec struct {
3294	// AltText: The alternative text that describes the chart.  This is
3295	// often used
3296	// for accessibility.
3297	AltText string `json:"altText,omitempty"`
3298
3299	// BackgroundColor: The background color of the entire chart.
3300	// Not applicable to Org charts.
3301	BackgroundColor *Color `json:"backgroundColor,omitempty"`
3302
3303	// BackgroundColorStyle: The background color of the entire chart.
3304	// Not applicable to Org charts.
3305	// If background_color is also set, this field takes precedence.
3306	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
3307
3308	// BasicChart: A basic chart specification, can be one of many kinds of
3309	// charts.
3310	// See BasicChartType for the list of all
3311	// charts this supports.
3312	BasicChart *BasicChartSpec `json:"basicChart,omitempty"`
3313
3314	// BubbleChart: A bubble chart specification.
3315	BubbleChart *BubbleChartSpec `json:"bubbleChart,omitempty"`
3316
3317	// CandlestickChart: A candlestick chart specification.
3318	CandlestickChart *CandlestickChartSpec `json:"candlestickChart,omitempty"`
3319
3320	// FontName: The name of the font to use by default for all chart text
3321	// (e.g. title,
3322	// axis labels, legend).  If a font is specified for a specific part of
3323	// the
3324	// chart it will override this font name.
3325	FontName string `json:"fontName,omitempty"`
3326
3327	// HiddenDimensionStrategy: Determines how the charts will use hidden
3328	// rows or columns.
3329	//
3330	// Possible values:
3331	//   "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED" - Default value, do
3332	// not use.
3333	//   "SKIP_HIDDEN_ROWS_AND_COLUMNS" - Charts will skip hidden rows and
3334	// columns.
3335	//   "SKIP_HIDDEN_ROWS" - Charts will skip hidden rows only.
3336	//   "SKIP_HIDDEN_COLUMNS" - Charts will skip hidden columns only.
3337	//   "SHOW_ALL" - Charts will not skip any hidden rows or columns.
3338	HiddenDimensionStrategy string `json:"hiddenDimensionStrategy,omitempty"`
3339
3340	// HistogramChart: A histogram chart specification.
3341	HistogramChart *HistogramChartSpec `json:"histogramChart,omitempty"`
3342
3343	// Maximized: True to make a chart fill the entire space in which it's
3344	// rendered with
3345	// minimum padding.  False to use the default padding.
3346	// (Not applicable to Geo and Org charts.)
3347	Maximized bool `json:"maximized,omitempty"`
3348
3349	// OrgChart: An org chart specification.
3350	OrgChart *OrgChartSpec `json:"orgChart,omitempty"`
3351
3352	// PieChart: A pie chart specification.
3353	PieChart *PieChartSpec `json:"pieChart,omitempty"`
3354
3355	// ScorecardChart: A scorecard chart specification.
3356	ScorecardChart *ScorecardChartSpec `json:"scorecardChart,omitempty"`
3357
3358	// Subtitle: The subtitle of the chart.
3359	Subtitle string `json:"subtitle,omitempty"`
3360
3361	// SubtitleTextFormat: The subtitle text format.
3362	// Strikethrough and underline are not supported.
3363	SubtitleTextFormat *TextFormat `json:"subtitleTextFormat,omitempty"`
3364
3365	// SubtitleTextPosition: The subtitle text position.
3366	// This field is optional.
3367	SubtitleTextPosition *TextPosition `json:"subtitleTextPosition,omitempty"`
3368
3369	// Title: The title of the chart.
3370	Title string `json:"title,omitempty"`
3371
3372	// TitleTextFormat: The title text format.
3373	// Strikethrough and underline are not supported.
3374	TitleTextFormat *TextFormat `json:"titleTextFormat,omitempty"`
3375
3376	// TitleTextPosition: The title text position.
3377	// This field is optional.
3378	TitleTextPosition *TextPosition `json:"titleTextPosition,omitempty"`
3379
3380	// TreemapChart: A treemap chart specification.
3381	TreemapChart *TreemapChartSpec `json:"treemapChart,omitempty"`
3382
3383	// WaterfallChart: A waterfall chart specification.
3384	WaterfallChart *WaterfallChartSpec `json:"waterfallChart,omitempty"`
3385
3386	// ForceSendFields is a list of field names (e.g. "AltText") to
3387	// unconditionally include in API requests. By default, fields with
3388	// empty values are omitted from API requests. However, any non-pointer,
3389	// non-interface field appearing in ForceSendFields will be sent to the
3390	// server regardless of whether the field is empty or not. This may be
3391	// used to include empty fields in Patch requests.
3392	ForceSendFields []string `json:"-"`
3393
3394	// NullFields is a list of field names (e.g. "AltText") to include in
3395	// API requests with the JSON null value. By default, fields with empty
3396	// values are omitted from API requests. However, any field with an
3397	// empty value appearing in NullFields will be sent to the server as
3398	// null. It is an error if a field in this list has a non-empty value.
3399	// This may be used to include null fields in Patch requests.
3400	NullFields []string `json:"-"`
3401}
3402
3403func (s *ChartSpec) MarshalJSON() ([]byte, error) {
3404	type NoMethod ChartSpec
3405	raw := NoMethod(*s)
3406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3407}
3408
3409// ClearBasicFilterRequest: Clears the basic filter, if any exists on
3410// the sheet.
3411type ClearBasicFilterRequest struct {
3412	// SheetId: The sheet ID on which the basic filter should be cleared.
3413	SheetId int64 `json:"sheetId,omitempty"`
3414
3415	// ForceSendFields is a list of field names (e.g. "SheetId") to
3416	// unconditionally include in API requests. By default, fields with
3417	// empty values are omitted from API requests. However, any non-pointer,
3418	// non-interface field appearing in ForceSendFields will be sent to the
3419	// server regardless of whether the field is empty or not. This may be
3420	// used to include empty fields in Patch requests.
3421	ForceSendFields []string `json:"-"`
3422
3423	// NullFields is a list of field names (e.g. "SheetId") to include in
3424	// API requests with the JSON null value. By default, fields with empty
3425	// values are omitted from API requests. However, any field with an
3426	// empty value appearing in NullFields will be sent to the server as
3427	// null. It is an error if a field in this list has a non-empty value.
3428	// This may be used to include null fields in Patch requests.
3429	NullFields []string `json:"-"`
3430}
3431
3432func (s *ClearBasicFilterRequest) MarshalJSON() ([]byte, error) {
3433	type NoMethod ClearBasicFilterRequest
3434	raw := NoMethod(*s)
3435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3436}
3437
3438// ClearValuesRequest: The request for clearing a range of values in a
3439// spreadsheet.
3440type ClearValuesRequest struct {
3441}
3442
3443// ClearValuesResponse: The response when clearing a range of values in
3444// a spreadsheet.
3445type ClearValuesResponse struct {
3446	// ClearedRange: The range (in A1 notation) that was cleared.
3447	// (If the request was for an unbounded range or a ranger larger
3448	//  than the bounds of the sheet, this will be the actual range
3449	//  that was cleared, bounded to the sheet's limits.)
3450	ClearedRange string `json:"clearedRange,omitempty"`
3451
3452	// SpreadsheetId: The spreadsheet the updates were applied to.
3453	SpreadsheetId string `json:"spreadsheetId,omitempty"`
3454
3455	// ServerResponse contains the HTTP response code and headers from the
3456	// server.
3457	googleapi.ServerResponse `json:"-"`
3458
3459	// ForceSendFields is a list of field names (e.g. "ClearedRange") to
3460	// unconditionally include in API requests. By default, fields with
3461	// empty values are omitted from API requests. However, any non-pointer,
3462	// non-interface field appearing in ForceSendFields will be sent to the
3463	// server regardless of whether the field is empty or not. This may be
3464	// used to include empty fields in Patch requests.
3465	ForceSendFields []string `json:"-"`
3466
3467	// NullFields is a list of field names (e.g. "ClearedRange") to include
3468	// in API requests with the JSON null value. By default, fields with
3469	// empty values are omitted from API requests. However, any field with
3470	// an empty value appearing in NullFields will be sent to the server as
3471	// null. It is an error if a field in this list has a non-empty value.
3472	// This may be used to include null fields in Patch requests.
3473	NullFields []string `json:"-"`
3474}
3475
3476func (s *ClearValuesResponse) MarshalJSON() ([]byte, error) {
3477	type NoMethod ClearValuesResponse
3478	raw := NoMethod(*s)
3479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3480}
3481
3482// Color: Represents a color in the RGBA color space. This
3483// representation is designed
3484// for simplicity of conversion to/from color representations in
3485// various
3486// languages over compactness; for example, the fields of this
3487// representation
3488// can be trivially provided to the constructor of "java.awt.Color" in
3489// Java; it
3490// can also be trivially provided to UIColor's
3491// "+colorWithRed:green:blue:alpha"
3492// method in iOS; and, with just a little work, it can be easily
3493// formatted into
3494// a CSS "rgba()" string in JavaScript, as well.
3495//
3496// Note: this proto does not carry information about the absolute color
3497// space
3498// that should be used to interpret the RGB value (e.g. sRGB, Adobe
3499// RGB,
3500// DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the
3501// sRGB color
3502// space.
3503//
3504// Example (Java):
3505//
3506//      import com.google.type.Color;
3507//
3508//      // ...
3509//      public static java.awt.Color fromProto(Color protocolor) {
3510//        float alpha = protocolor.hasAlpha()
3511//            ? protocolor.getAlpha().getValue()
3512//            : 1.0;
3513//
3514//        return new java.awt.Color(
3515//            protocolor.getRed(),
3516//            protocolor.getGreen(),
3517//            protocolor.getBlue(),
3518//            alpha);
3519//      }
3520//
3521//      public static Color toProto(java.awt.Color color) {
3522//        float red = (float) color.getRed();
3523//        float green = (float) color.getGreen();
3524//        float blue = (float) color.getBlue();
3525//        float denominator = 255.0;
3526//        Color.Builder resultBuilder =
3527//            Color
3528//                .newBuilder()
3529//                .setRed(red / denominator)
3530//                .setGreen(green / denominator)
3531//                .setBlue(blue / denominator);
3532//        int alpha = color.getAlpha();
3533//        if (alpha != 255) {
3534//          result.setAlpha(
3535//              FloatValue
3536//                  .newBuilder()
3537//                  .setValue(((float) alpha) / denominator)
3538//                  .build());
3539//        }
3540//        return resultBuilder.build();
3541//      }
3542//      // ...
3543//
3544// Example (iOS / Obj-C):
3545//
3546//      // ...
3547//      static UIColor* fromProto(Color* protocolor) {
3548//         float red = [protocolor red];
3549//         float green = [protocolor green];
3550//         float blue = [protocolor blue];
3551//         FloatValue* alpha_wrapper = [protocolor alpha];
3552//         float alpha = 1.0;
3553//         if (alpha_wrapper != nil) {
3554//           alpha = [alpha_wrapper value];
3555//         }
3556//         return [UIColor colorWithRed:red green:green blue:blue
3557// alpha:alpha];
3558//      }
3559//
3560//      static Color* toProto(UIColor* color) {
3561//          CGFloat red, green, blue, alpha;
3562//          if (![color getRed:&red green:&green blue:&blue
3563// alpha:&alpha]) {
3564//            return nil;
3565//          }
3566//          Color* result = [[Color alloc] init];
3567//          [result setRed:red];
3568//          [result setGreen:green];
3569//          [result setBlue:blue];
3570//          if (alpha <= 0.9999) {
3571//            [result setAlpha:floatWrapperWithValue(alpha)];
3572//          }
3573//          [result autorelease];
3574//          return result;
3575//     }
3576//     // ...
3577//
3578//  Example (JavaScript):
3579//
3580//     // ...
3581//
3582//     var protoToCssColor = function(rgb_color) {
3583//        var redFrac = rgb_color.red || 0.0;
3584//        var greenFrac = rgb_color.green || 0.0;
3585//        var blueFrac = rgb_color.blue || 0.0;
3586//        var red = Math.floor(redFrac * 255);
3587//        var green = Math.floor(greenFrac * 255);
3588//        var blue = Math.floor(blueFrac * 255);
3589//
3590//        if (!('alpha' in rgb_color)) {
3591//           return rgbToCssColor_(red, green, blue);
3592//        }
3593//
3594//        var alphaFrac = rgb_color.alpha.value || 0.0;
3595//        var rgbParams = [red, green, blue].join(',');
3596//        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
3597//     };
3598//
3599//     var rgbToCssColor_ = function(red, green, blue) {
3600//       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
3601//       var hexString = rgbNumber.toString(16);
3602//       var missingZeros = 6 - hexString.length;
3603//       var resultBuilder = ['#'];
3604//       for (var i = 0; i < missingZeros; i++) {
3605//          resultBuilder.push('0');
3606//       }
3607//       resultBuilder.push(hexString);
3608//       return resultBuilder.join('');
3609//     };
3610//
3611//     // ...
3612type Color struct {
3613	// Alpha: The fraction of this color that should be applied to the
3614	// pixel. That is,
3615	// the final pixel color is defined by the equation:
3616	//
3617	//   pixel color = alpha * (this color) + (1.0 - alpha) * (background
3618	// color)
3619	//
3620	// This means that a value of 1.0 corresponds to a solid color,
3621	// whereas
3622	// a value of 0.0 corresponds to a completely transparent color.
3623	// This
3624	// uses a wrapper message rather than a simple float scalar so that it
3625	// is
3626	// possible to distinguish between a default value and the value being
3627	// unset.
3628	// If omitted, this color object is to be rendered as a solid color
3629	// (as if the alpha value had been explicitly given with a value of
3630	// 1.0).
3631	Alpha float64 `json:"alpha,omitempty"`
3632
3633	// Blue: The amount of blue in the color as a value in the interval [0,
3634	// 1].
3635	Blue float64 `json:"blue,omitempty"`
3636
3637	// Green: The amount of green in the color as a value in the interval
3638	// [0, 1].
3639	Green float64 `json:"green,omitempty"`
3640
3641	// Red: The amount of red in the color as a value in the interval [0,
3642	// 1].
3643	Red float64 `json:"red,omitempty"`
3644
3645	// ForceSendFields is a list of field names (e.g. "Alpha") to
3646	// unconditionally include in API requests. By default, fields with
3647	// empty values are omitted from API requests. However, any non-pointer,
3648	// non-interface field appearing in ForceSendFields will be sent to the
3649	// server regardless of whether the field is empty or not. This may be
3650	// used to include empty fields in Patch requests.
3651	ForceSendFields []string `json:"-"`
3652
3653	// NullFields is a list of field names (e.g. "Alpha") to include in API
3654	// requests with the JSON null value. By default, fields with empty
3655	// values are omitted from API requests. However, any field with an
3656	// empty value appearing in NullFields will be sent to the server as
3657	// null. It is an error if a field in this list has a non-empty value.
3658	// This may be used to include null fields in Patch requests.
3659	NullFields []string `json:"-"`
3660}
3661
3662func (s *Color) MarshalJSON() ([]byte, error) {
3663	type NoMethod Color
3664	raw := NoMethod(*s)
3665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3666}
3667
3668func (s *Color) UnmarshalJSON(data []byte) error {
3669	type NoMethod Color
3670	var s1 struct {
3671		Alpha gensupport.JSONFloat64 `json:"alpha"`
3672		Blue  gensupport.JSONFloat64 `json:"blue"`
3673		Green gensupport.JSONFloat64 `json:"green"`
3674		Red   gensupport.JSONFloat64 `json:"red"`
3675		*NoMethod
3676	}
3677	s1.NoMethod = (*NoMethod)(s)
3678	if err := json.Unmarshal(data, &s1); err != nil {
3679		return err
3680	}
3681	s.Alpha = float64(s1.Alpha)
3682	s.Blue = float64(s1.Blue)
3683	s.Green = float64(s1.Green)
3684	s.Red = float64(s1.Red)
3685	return nil
3686}
3687
3688// ColorStyle: A color value.
3689type ColorStyle struct {
3690	// RgbColor: RGB color.
3691	RgbColor *Color `json:"rgbColor,omitempty"`
3692
3693	// ThemeColor: Theme color.
3694	//
3695	// Possible values:
3696	//   "THEME_COLOR_TYPE_UNSPECIFIED" - Unspecified theme color
3697	//   "TEXT" - Represents the primary text color
3698	//   "BACKGROUND" - Represents the primary background color
3699	//   "ACCENT1" - Represents the first accent color
3700	//   "ACCENT2" - Represents the second accent color
3701	//   "ACCENT3" - Represents the third accent color
3702	//   "ACCENT4" - Represents the fourth accent color
3703	//   "ACCENT5" - Represents the fifth accent color
3704	//   "ACCENT6" - Represents the sixth accent color
3705	//   "LINK" - Represents the color to use for hyperlinks
3706	ThemeColor string `json:"themeColor,omitempty"`
3707
3708	// ForceSendFields is a list of field names (e.g. "RgbColor") to
3709	// unconditionally include in API requests. By default, fields with
3710	// empty values are omitted from API requests. However, any non-pointer,
3711	// non-interface field appearing in ForceSendFields will be sent to the
3712	// server regardless of whether the field is empty or not. This may be
3713	// used to include empty fields in Patch requests.
3714	ForceSendFields []string `json:"-"`
3715
3716	// NullFields is a list of field names (e.g. "RgbColor") to include in
3717	// API requests with the JSON null value. By default, fields with empty
3718	// values are omitted from API requests. However, any field with an
3719	// empty value appearing in NullFields will be sent to the server as
3720	// null. It is an error if a field in this list has a non-empty value.
3721	// This may be used to include null fields in Patch requests.
3722	NullFields []string `json:"-"`
3723}
3724
3725func (s *ColorStyle) MarshalJSON() ([]byte, error) {
3726	type NoMethod ColorStyle
3727	raw := NoMethod(*s)
3728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3729}
3730
3731// ConditionValue: The value of the condition.
3732type ConditionValue struct {
3733	// RelativeDate: A relative date (based on the current date).
3734	// Valid only if the type is
3735	// DATE_BEFORE,
3736	// DATE_AFTER,
3737	// DATE_ON_OR_BEFORE or
3738	// DATE_ON_OR_AFTER.
3739	//
3740	// Relative dates are not supported in data validation.
3741	// They are supported only in conditional formatting and
3742	// conditional filters.
3743	//
3744	// Possible values:
3745	//   "RELATIVE_DATE_UNSPECIFIED" - Default value, do not use.
3746	//   "PAST_YEAR" - The value is one year before today.
3747	//   "PAST_MONTH" - The value is one month before today.
3748	//   "PAST_WEEK" - The value is one week before today.
3749	//   "YESTERDAY" - The value is yesterday.
3750	//   "TODAY" - The value is today.
3751	//   "TOMORROW" - The value is tomorrow.
3752	RelativeDate string `json:"relativeDate,omitempty"`
3753
3754	// UserEnteredValue: A value the condition is based on.
3755	// The value is parsed as if the user typed into a cell.
3756	// Formulas are supported (and must begin with an `=` or a '+').
3757	UserEnteredValue string `json:"userEnteredValue,omitempty"`
3758
3759	// ForceSendFields is a list of field names (e.g. "RelativeDate") to
3760	// unconditionally include in API requests. By default, fields with
3761	// empty values are omitted from API requests. However, any non-pointer,
3762	// non-interface field appearing in ForceSendFields will be sent to the
3763	// server regardless of whether the field is empty or not. This may be
3764	// used to include empty fields in Patch requests.
3765	ForceSendFields []string `json:"-"`
3766
3767	// NullFields is a list of field names (e.g. "RelativeDate") to include
3768	// in API requests with the JSON null value. By default, fields with
3769	// empty values are omitted from API requests. However, any field with
3770	// an empty value appearing in NullFields will be sent to the server as
3771	// null. It is an error if a field in this list has a non-empty value.
3772	// This may be used to include null fields in Patch requests.
3773	NullFields []string `json:"-"`
3774}
3775
3776func (s *ConditionValue) MarshalJSON() ([]byte, error) {
3777	type NoMethod ConditionValue
3778	raw := NoMethod(*s)
3779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3780}
3781
3782// ConditionalFormatRule: A rule describing a conditional format.
3783type ConditionalFormatRule struct {
3784	// BooleanRule: The formatting is either "on" or "off" according to the
3785	// rule.
3786	BooleanRule *BooleanRule `json:"booleanRule,omitempty"`
3787
3788	// GradientRule: The formatting will vary based on the gradients in the
3789	// rule.
3790	GradientRule *GradientRule `json:"gradientRule,omitempty"`
3791
3792	// Ranges: The ranges that are formatted if the condition is true.
3793	// All the ranges must be on the same grid.
3794	Ranges []*GridRange `json:"ranges,omitempty"`
3795
3796	// ForceSendFields is a list of field names (e.g. "BooleanRule") to
3797	// unconditionally include in API requests. By default, fields with
3798	// empty values are omitted from API requests. However, any non-pointer,
3799	// non-interface field appearing in ForceSendFields will be sent to the
3800	// server regardless of whether the field is empty or not. This may be
3801	// used to include empty fields in Patch requests.
3802	ForceSendFields []string `json:"-"`
3803
3804	// NullFields is a list of field names (e.g. "BooleanRule") to include
3805	// in API requests with the JSON null value. By default, fields with
3806	// empty values are omitted from API requests. However, any field with
3807	// an empty value appearing in NullFields will be sent to the server as
3808	// null. It is an error if a field in this list has a non-empty value.
3809	// This may be used to include null fields in Patch requests.
3810	NullFields []string `json:"-"`
3811}
3812
3813func (s *ConditionalFormatRule) MarshalJSON() ([]byte, error) {
3814	type NoMethod ConditionalFormatRule
3815	raw := NoMethod(*s)
3816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3817}
3818
3819// CopyPasteRequest: Copies data from the source to the destination.
3820type CopyPasteRequest struct {
3821	// Destination: The location to paste to. If the range covers a span
3822	// that's
3823	// a multiple of the source's height or width, then the
3824	// data will be repeated to fill in the destination range.
3825	// If the range is smaller than the source range, the entire
3826	// source data will still be copied (beyond the end of the destination
3827	// range).
3828	Destination *GridRange `json:"destination,omitempty"`
3829
3830	// PasteOrientation: How that data should be oriented when pasting.
3831	//
3832	// Possible values:
3833	//   "NORMAL" - Paste normally.
3834	//   "TRANSPOSE" - Paste transposed, where all rows become columns and
3835	// vice versa.
3836	PasteOrientation string `json:"pasteOrientation,omitempty"`
3837
3838	// PasteType: What kind of data to paste.
3839	//
3840	// Possible values:
3841	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
3842	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
3843	// or merges.
3844	//   "PASTE_FORMAT" - Paste the format and data validation only.
3845	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
3846	//   "PASTE_FORMULA" - Paste the formulas only.
3847	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
3848	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
3849	// rules only.
3850	PasteType string `json:"pasteType,omitempty"`
3851
3852	// Source: The source range to copy.
3853	Source *GridRange `json:"source,omitempty"`
3854
3855	// ForceSendFields is a list of field names (e.g. "Destination") to
3856	// unconditionally include in API requests. By default, fields with
3857	// empty values are omitted from API requests. However, any non-pointer,
3858	// non-interface field appearing in ForceSendFields will be sent to the
3859	// server regardless of whether the field is empty or not. This may be
3860	// used to include empty fields in Patch requests.
3861	ForceSendFields []string `json:"-"`
3862
3863	// NullFields is a list of field names (e.g. "Destination") to include
3864	// in API requests with the JSON null value. By default, fields with
3865	// empty values are omitted from API requests. However, any field with
3866	// an empty value appearing in NullFields will be sent to the server as
3867	// null. It is an error if a field in this list has a non-empty value.
3868	// This may be used to include null fields in Patch requests.
3869	NullFields []string `json:"-"`
3870}
3871
3872func (s *CopyPasteRequest) MarshalJSON() ([]byte, error) {
3873	type NoMethod CopyPasteRequest
3874	raw := NoMethod(*s)
3875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3876}
3877
3878// CopySheetToAnotherSpreadsheetRequest: The request to copy a sheet
3879// across spreadsheets.
3880type CopySheetToAnotherSpreadsheetRequest struct {
3881	// DestinationSpreadsheetId: The ID of the spreadsheet to copy the sheet
3882	// to.
3883	DestinationSpreadsheetId string `json:"destinationSpreadsheetId,omitempty"`
3884
3885	// ForceSendFields is a list of field names (e.g.
3886	// "DestinationSpreadsheetId") to unconditionally include in API
3887	// requests. By default, fields with empty values are omitted from API
3888	// requests. However, any non-pointer, non-interface field appearing in
3889	// ForceSendFields will be sent to the server regardless of whether the
3890	// field is empty or not. This may be used to include empty fields in
3891	// Patch requests.
3892	ForceSendFields []string `json:"-"`
3893
3894	// NullFields is a list of field names (e.g. "DestinationSpreadsheetId")
3895	// to include in API requests with the JSON null value. By default,
3896	// fields with empty values are omitted from API requests. However, any
3897	// field with an empty value appearing in NullFields will be sent to the
3898	// server as null. It is an error if a field in this list has a
3899	// non-empty value. This may be used to include null fields in Patch
3900	// requests.
3901	NullFields []string `json:"-"`
3902}
3903
3904func (s *CopySheetToAnotherSpreadsheetRequest) MarshalJSON() ([]byte, error) {
3905	type NoMethod CopySheetToAnotherSpreadsheetRequest
3906	raw := NoMethod(*s)
3907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3908}
3909
3910// CreateDeveloperMetadataRequest: A request to create developer
3911// metadata.
3912type CreateDeveloperMetadataRequest struct {
3913	// DeveloperMetadata: The developer metadata to create.
3914	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
3915
3916	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
3917	// to unconditionally include in API requests. By default, fields with
3918	// empty values are omitted from API requests. However, any non-pointer,
3919	// non-interface field appearing in ForceSendFields will be sent to the
3920	// server regardless of whether the field is empty or not. This may be
3921	// used to include empty fields in Patch requests.
3922	ForceSendFields []string `json:"-"`
3923
3924	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
3925	// include in API requests with the JSON null value. By default, fields
3926	// with empty values are omitted from API requests. However, any field
3927	// with an empty value appearing in NullFields will be sent to the
3928	// server as null. It is an error if a field in this list has a
3929	// non-empty value. This may be used to include null fields in Patch
3930	// requests.
3931	NullFields []string `json:"-"`
3932}
3933
3934func (s *CreateDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
3935	type NoMethod CreateDeveloperMetadataRequest
3936	raw := NoMethod(*s)
3937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3938}
3939
3940// CreateDeveloperMetadataResponse: The response from creating developer
3941// metadata.
3942type CreateDeveloperMetadataResponse struct {
3943	// DeveloperMetadata: The developer metadata that was created.
3944	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
3945
3946	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
3947	// to unconditionally include in API requests. By default, fields with
3948	// empty values are omitted from API requests. However, any non-pointer,
3949	// non-interface field appearing in ForceSendFields will be sent to the
3950	// server regardless of whether the field is empty or not. This may be
3951	// used to include empty fields in Patch requests.
3952	ForceSendFields []string `json:"-"`
3953
3954	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
3955	// include in API requests with the JSON null value. By default, fields
3956	// with empty values are omitted from API requests. However, any field
3957	// with an empty value appearing in NullFields will be sent to the
3958	// server as null. It is an error if a field in this list has a
3959	// non-empty value. This may be used to include null fields in Patch
3960	// requests.
3961	NullFields []string `json:"-"`
3962}
3963
3964func (s *CreateDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
3965	type NoMethod CreateDeveloperMetadataResponse
3966	raw := NoMethod(*s)
3967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3968}
3969
3970// CutPasteRequest: Moves data from the source to the destination.
3971type CutPasteRequest struct {
3972	// Destination: The top-left coordinate where the data should be pasted.
3973	Destination *GridCoordinate `json:"destination,omitempty"`
3974
3975	// PasteType: What kind of data to paste.  All the source data will be
3976	// cut, regardless
3977	// of what is pasted.
3978	//
3979	// Possible values:
3980	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
3981	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
3982	// or merges.
3983	//   "PASTE_FORMAT" - Paste the format and data validation only.
3984	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
3985	//   "PASTE_FORMULA" - Paste the formulas only.
3986	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
3987	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
3988	// rules only.
3989	PasteType string `json:"pasteType,omitempty"`
3990
3991	// Source: The source data to cut.
3992	Source *GridRange `json:"source,omitempty"`
3993
3994	// ForceSendFields is a list of field names (e.g. "Destination") to
3995	// unconditionally include in API requests. By default, fields with
3996	// empty values are omitted from API requests. However, any non-pointer,
3997	// non-interface field appearing in ForceSendFields will be sent to the
3998	// server regardless of whether the field is empty or not. This may be
3999	// used to include empty fields in Patch requests.
4000	ForceSendFields []string `json:"-"`
4001
4002	// NullFields is a list of field names (e.g. "Destination") to include
4003	// in API requests with the JSON null value. By default, fields with
4004	// empty values are omitted from API requests. However, any field with
4005	// an empty value appearing in NullFields will be sent to the server as
4006	// null. It is an error if a field in this list has a non-empty value.
4007	// This may be used to include null fields in Patch requests.
4008	NullFields []string `json:"-"`
4009}
4010
4011func (s *CutPasteRequest) MarshalJSON() ([]byte, error) {
4012	type NoMethod CutPasteRequest
4013	raw := NoMethod(*s)
4014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4015}
4016
4017// DataFilter: Filter that describes what data should be selected or
4018// returned from a
4019// request.
4020type DataFilter struct {
4021	// A1Range: Selects data that matches the specified A1 range.
4022	A1Range string `json:"a1Range,omitempty"`
4023
4024	// DeveloperMetadataLookup: Selects data associated with the developer
4025	// metadata matching the criteria
4026	// described by this DeveloperMetadataLookup.
4027	DeveloperMetadataLookup *DeveloperMetadataLookup `json:"developerMetadataLookup,omitempty"`
4028
4029	// GridRange: Selects data that matches the range described by the
4030	// GridRange.
4031	GridRange *GridRange `json:"gridRange,omitempty"`
4032
4033	// ForceSendFields is a list of field names (e.g. "A1Range") to
4034	// unconditionally include in API requests. By default, fields with
4035	// empty values are omitted from API requests. However, any non-pointer,
4036	// non-interface field appearing in ForceSendFields will be sent to the
4037	// server regardless of whether the field is empty or not. This may be
4038	// used to include empty fields in Patch requests.
4039	ForceSendFields []string `json:"-"`
4040
4041	// NullFields is a list of field names (e.g. "A1Range") to include in
4042	// API requests with the JSON null value. By default, fields with empty
4043	// values are omitted from API requests. However, any field with an
4044	// empty value appearing in NullFields will be sent to the server as
4045	// null. It is an error if a field in this list has a non-empty value.
4046	// This may be used to include null fields in Patch requests.
4047	NullFields []string `json:"-"`
4048}
4049
4050func (s *DataFilter) MarshalJSON() ([]byte, error) {
4051	type NoMethod DataFilter
4052	raw := NoMethod(*s)
4053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4054}
4055
4056// DataFilterValueRange: A range of values whose location is specified
4057// by a DataFilter.
4058type DataFilterValueRange struct {
4059	// DataFilter: The data filter describing the location of the values in
4060	// the spreadsheet.
4061	DataFilter *DataFilter `json:"dataFilter,omitempty"`
4062
4063	// MajorDimension: The major dimension of the values.
4064	//
4065	// Possible values:
4066	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
4067	//   "ROWS" - Operates on the rows of a sheet.
4068	//   "COLUMNS" - Operates on the columns of a sheet.
4069	MajorDimension string `json:"majorDimension,omitempty"`
4070
4071	// Values: The data to be written.  If the provided values exceed any of
4072	// the ranges
4073	// matched by the data filter then the request fails.  If the provided
4074	// values
4075	// are less than the matched ranges only the specified values are
4076	// written,
4077	// existing values in the matched ranges remain unaffected.
4078	Values [][]interface{} `json:"values,omitempty"`
4079
4080	// ForceSendFields is a list of field names (e.g. "DataFilter") to
4081	// unconditionally include in API requests. By default, fields with
4082	// empty values are omitted from API requests. However, any non-pointer,
4083	// non-interface field appearing in ForceSendFields will be sent to the
4084	// server regardless of whether the field is empty or not. This may be
4085	// used to include empty fields in Patch requests.
4086	ForceSendFields []string `json:"-"`
4087
4088	// NullFields is a list of field names (e.g. "DataFilter") to include in
4089	// API requests with the JSON null value. By default, fields with empty
4090	// values are omitted from API requests. However, any field with an
4091	// empty value appearing in NullFields will be sent to the server as
4092	// null. It is an error if a field in this list has a non-empty value.
4093	// This may be used to include null fields in Patch requests.
4094	NullFields []string `json:"-"`
4095}
4096
4097func (s *DataFilterValueRange) MarshalJSON() ([]byte, error) {
4098	type NoMethod DataFilterValueRange
4099	raw := NoMethod(*s)
4100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4101}
4102
4103// DataValidationRule: A data validation rule.
4104type DataValidationRule struct {
4105	// Condition: The condition that data in the cell must match.
4106	Condition *BooleanCondition `json:"condition,omitempty"`
4107
4108	// InputMessage: A message to show the user when adding data to the
4109	// cell.
4110	InputMessage string `json:"inputMessage,omitempty"`
4111
4112	// ShowCustomUi: True if the UI should be customized based on the kind
4113	// of condition.
4114	// If true, "List" conditions will show a dropdown.
4115	ShowCustomUi bool `json:"showCustomUi,omitempty"`
4116
4117	// Strict: True if invalid data should be rejected.
4118	Strict bool `json:"strict,omitempty"`
4119
4120	// ForceSendFields is a list of field names (e.g. "Condition") to
4121	// unconditionally include in API requests. By default, fields with
4122	// empty values are omitted from API requests. However, any non-pointer,
4123	// non-interface field appearing in ForceSendFields will be sent to the
4124	// server regardless of whether the field is empty or not. This may be
4125	// used to include empty fields in Patch requests.
4126	ForceSendFields []string `json:"-"`
4127
4128	// NullFields is a list of field names (e.g. "Condition") to include in
4129	// API requests with the JSON null value. By default, fields with empty
4130	// values are omitted from API requests. However, any field with an
4131	// empty value appearing in NullFields will be sent to the server as
4132	// null. It is an error if a field in this list has a non-empty value.
4133	// This may be used to include null fields in Patch requests.
4134	NullFields []string `json:"-"`
4135}
4136
4137func (s *DataValidationRule) MarshalJSON() ([]byte, error) {
4138	type NoMethod DataValidationRule
4139	raw := NoMethod(*s)
4140	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4141}
4142
4143// DateTimeRule: Allows you to organize the date-time values in a source
4144// data column into
4145// buckets based on selected parts of their date or time values. For
4146// example,
4147// consider a pivot table showing sales transactions by date:
4148//
4149//     +----------+--------------+
4150//     | Date     | SUM of Sales |
4151//     +----------+--------------+
4152//     | 1/1/2017 |      $621.14 |
4153//     | 2/3/2017 |      $708.84 |
4154//     | 5/8/2017 |      $326.84 |
4155//     ...
4156//     +----------+--------------+
4157// Applying a date-time group rule with a DateTimeRuleType of
4158// YEAR_MONTH
4159// results in the following pivot table.
4160//
4161//     +--------------+--------------+
4162//     | Grouped Date | SUM of Sales |
4163//     +--------------+--------------+
4164//     | 2017-Jan     |   $53,731.78 |
4165//     | 2017-Feb     |   $83,475.32 |
4166//     | 2017-Mar     |   $94,385.05 |
4167//     ...
4168//     +--------------+--------------+
4169type DateTimeRule struct {
4170	// Type: The type of date-time grouping to apply.
4171	//
4172	// Possible values:
4173	//   "DATE_TIME_RULE_TYPE_UNSPECIFIED" - The default type, do not use.
4174	//   "SECOND" - Group dates by second, from 0 to 59.
4175	//   "MINUTE" - Group dates by minute, from 0 to 59.
4176	//   "HOUR" - Group dates by hour using a 24-hour system, from 0 to 23.
4177	//   "HOUR_MINUTE" - Group dates by hour and minute using a 24-hour
4178	// system, for example 19:45.
4179	//   "HOUR_MINUTE_AMPM" - Group dates by hour and minute using a 12-hour
4180	// system, for example 7:45
4181	// PM. The AM/PM designation is translated based on the
4182	// spreadsheet
4183	// locale.
4184	//   "DAY_OF_WEEK" - Group dates by day of week, for example Sunday. The
4185	// days of the week will
4186	// be translated based on the spreadsheet locale.
4187	//   "DAY_OF_YEAR" - Group dates by day of year, from 1 to 366. Note
4188	// that dates after Feb. 29
4189	// fall in different buckets in leap years than in non-leap years.
4190	//   "DAY_OF_MONTH" - Group dates by day of month, from 1 to 31.
4191	//   "DAY_MONTH" - Group dates by day and month, for example 22-Nov. The
4192	// month is
4193	// translated based on the spreadsheet locale.
4194	//   "MONTH" - Group dates by month, for example Nov. The month is
4195	// translated based
4196	// on the spreadsheet locale.
4197	//   "QUARTER" - Group dates by quarter, for example Q1 (which
4198	// represents Jan-Mar).
4199	//   "YEAR" - Group dates by year, for example 2008.
4200	//   "YEAR_MONTH" - Group dates by year and month, for example 2008-Nov.
4201	// The month is
4202	// translated based on the spreadsheet locale.
4203	//   "YEAR_QUARTER" - Group dates by year and quarter, for example 2008
4204	// Q4.
4205	//   "YEAR_MONTH_DAY" - Group dates by year, month, and day, for example
4206	// 2008-11-22.
4207	Type string `json:"type,omitempty"`
4208
4209	// ForceSendFields is a list of field names (e.g. "Type") to
4210	// unconditionally include in API requests. By default, fields with
4211	// empty values are omitted from API requests. However, any non-pointer,
4212	// non-interface field appearing in ForceSendFields will be sent to the
4213	// server regardless of whether the field is empty or not. This may be
4214	// used to include empty fields in Patch requests.
4215	ForceSendFields []string `json:"-"`
4216
4217	// NullFields is a list of field names (e.g. "Type") to include in API
4218	// requests with the JSON null value. By default, fields with empty
4219	// values are omitted from API requests. However, any field with an
4220	// empty value appearing in NullFields will be sent to the server as
4221	// null. It is an error if a field in this list has a non-empty value.
4222	// This may be used to include null fields in Patch requests.
4223	NullFields []string `json:"-"`
4224}
4225
4226func (s *DateTimeRule) MarshalJSON() ([]byte, error) {
4227	type NoMethod DateTimeRule
4228	raw := NoMethod(*s)
4229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4230}
4231
4232// DeleteBandingRequest: Removes the banded range with the given ID from
4233// the spreadsheet.
4234type DeleteBandingRequest struct {
4235	// BandedRangeId: The ID of the banded range to delete.
4236	BandedRangeId int64 `json:"bandedRangeId,omitempty"`
4237
4238	// ForceSendFields is a list of field names (e.g. "BandedRangeId") to
4239	// unconditionally include in API requests. By default, fields with
4240	// empty values are omitted from API requests. However, any non-pointer,
4241	// non-interface field appearing in ForceSendFields will be sent to the
4242	// server regardless of whether the field is empty or not. This may be
4243	// used to include empty fields in Patch requests.
4244	ForceSendFields []string `json:"-"`
4245
4246	// NullFields is a list of field names (e.g. "BandedRangeId") to include
4247	// in API requests with the JSON null value. By default, fields with
4248	// empty values are omitted from API requests. However, any field with
4249	// an empty value appearing in NullFields will be sent to the server as
4250	// null. It is an error if a field in this list has a non-empty value.
4251	// This may be used to include null fields in Patch requests.
4252	NullFields []string `json:"-"`
4253}
4254
4255func (s *DeleteBandingRequest) MarshalJSON() ([]byte, error) {
4256	type NoMethod DeleteBandingRequest
4257	raw := NoMethod(*s)
4258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4259}
4260
4261// DeleteConditionalFormatRuleRequest: Deletes a conditional format rule
4262// at the given index.
4263// All subsequent rules' indexes are decremented.
4264type DeleteConditionalFormatRuleRequest struct {
4265	// Index: The zero-based index of the rule to be deleted.
4266	Index int64 `json:"index,omitempty"`
4267
4268	// SheetId: The sheet the rule is being deleted from.
4269	SheetId int64 `json:"sheetId,omitempty"`
4270
4271	// ForceSendFields is a list of field names (e.g. "Index") to
4272	// unconditionally include in API requests. By default, fields with
4273	// empty values are omitted from API requests. However, any non-pointer,
4274	// non-interface field appearing in ForceSendFields will be sent to the
4275	// server regardless of whether the field is empty or not. This may be
4276	// used to include empty fields in Patch requests.
4277	ForceSendFields []string `json:"-"`
4278
4279	// NullFields is a list of field names (e.g. "Index") to include in API
4280	// requests with the JSON null value. By default, fields with empty
4281	// values are omitted from API requests. However, any field with an
4282	// empty value appearing in NullFields will be sent to the server as
4283	// null. It is an error if a field in this list has a non-empty value.
4284	// This may be used to include null fields in Patch requests.
4285	NullFields []string `json:"-"`
4286}
4287
4288func (s *DeleteConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
4289	type NoMethod DeleteConditionalFormatRuleRequest
4290	raw := NoMethod(*s)
4291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4292}
4293
4294// DeleteConditionalFormatRuleResponse: The result of deleting a
4295// conditional format rule.
4296type DeleteConditionalFormatRuleResponse struct {
4297	// Rule: The rule that was deleted.
4298	Rule *ConditionalFormatRule `json:"rule,omitempty"`
4299
4300	// ForceSendFields is a list of field names (e.g. "Rule") to
4301	// unconditionally include in API requests. By default, fields with
4302	// empty values are omitted from API requests. However, any non-pointer,
4303	// non-interface field appearing in ForceSendFields will be sent to the
4304	// server regardless of whether the field is empty or not. This may be
4305	// used to include empty fields in Patch requests.
4306	ForceSendFields []string `json:"-"`
4307
4308	// NullFields is a list of field names (e.g. "Rule") to include in API
4309	// requests with the JSON null value. By default, fields with empty
4310	// values are omitted from API requests. However, any field with an
4311	// empty value appearing in NullFields will be sent to the server as
4312	// null. It is an error if a field in this list has a non-empty value.
4313	// This may be used to include null fields in Patch requests.
4314	NullFields []string `json:"-"`
4315}
4316
4317func (s *DeleteConditionalFormatRuleResponse) MarshalJSON() ([]byte, error) {
4318	type NoMethod DeleteConditionalFormatRuleResponse
4319	raw := NoMethod(*s)
4320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4321}
4322
4323// DeleteDeveloperMetadataRequest: A request to delete developer
4324// metadata.
4325type DeleteDeveloperMetadataRequest struct {
4326	// DataFilter: The data filter describing the criteria used to select
4327	// which developer
4328	// metadata entry to delete.
4329	DataFilter *DataFilter `json:"dataFilter,omitempty"`
4330
4331	// ForceSendFields is a list of field names (e.g. "DataFilter") to
4332	// unconditionally include in API requests. By default, fields with
4333	// empty values are omitted from API requests. However, any non-pointer,
4334	// non-interface field appearing in ForceSendFields will be sent to the
4335	// server regardless of whether the field is empty or not. This may be
4336	// used to include empty fields in Patch requests.
4337	ForceSendFields []string `json:"-"`
4338
4339	// NullFields is a list of field names (e.g. "DataFilter") to include in
4340	// API requests with the JSON null value. By default, fields with empty
4341	// values are omitted from API requests. However, any field with an
4342	// empty value appearing in NullFields will be sent to the server as
4343	// null. It is an error if a field in this list has a non-empty value.
4344	// This may be used to include null fields in Patch requests.
4345	NullFields []string `json:"-"`
4346}
4347
4348func (s *DeleteDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
4349	type NoMethod DeleteDeveloperMetadataRequest
4350	raw := NoMethod(*s)
4351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4352}
4353
4354// DeleteDeveloperMetadataResponse: The response from deleting developer
4355// metadata.
4356type DeleteDeveloperMetadataResponse struct {
4357	// DeletedDeveloperMetadata: The metadata that was deleted.
4358	DeletedDeveloperMetadata []*DeveloperMetadata `json:"deletedDeveloperMetadata,omitempty"`
4359
4360	// ForceSendFields is a list of field names (e.g.
4361	// "DeletedDeveloperMetadata") to unconditionally include in API
4362	// requests. By default, fields with empty values are omitted from API
4363	// requests. However, any non-pointer, non-interface field appearing in
4364	// ForceSendFields will be sent to the server regardless of whether the
4365	// field is empty or not. This may be used to include empty fields in
4366	// Patch requests.
4367	ForceSendFields []string `json:"-"`
4368
4369	// NullFields is a list of field names (e.g. "DeletedDeveloperMetadata")
4370	// to include in API requests with the JSON null value. By default,
4371	// fields with empty values are omitted from API requests. However, any
4372	// field with an empty value appearing in NullFields will be sent to the
4373	// server as null. It is an error if a field in this list has a
4374	// non-empty value. This may be used to include null fields in Patch
4375	// requests.
4376	NullFields []string `json:"-"`
4377}
4378
4379func (s *DeleteDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
4380	type NoMethod DeleteDeveloperMetadataResponse
4381	raw := NoMethod(*s)
4382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4383}
4384
4385// DeleteDimensionGroupRequest: Deletes a group over the specified range
4386// by decrementing the depth of the
4387// dimensions in the range.
4388//
4389// For example, assume the sheet has a depth-1 group over B:E and a
4390// depth-2
4391// group over C:D. Deleting a group over D:E leaves the sheet with
4392// a
4393// depth-1 group over B:D and a depth-2 group over C:C.
4394type DeleteDimensionGroupRequest struct {
4395	// Range: The range of the group to be deleted.
4396	Range *DimensionRange `json:"range,omitempty"`
4397
4398	// ForceSendFields is a list of field names (e.g. "Range") to
4399	// unconditionally include in API requests. By default, fields with
4400	// empty values are omitted from API requests. However, any non-pointer,
4401	// non-interface field appearing in ForceSendFields will be sent to the
4402	// server regardless of whether the field is empty or not. This may be
4403	// used to include empty fields in Patch requests.
4404	ForceSendFields []string `json:"-"`
4405
4406	// NullFields is a list of field names (e.g. "Range") to include in API
4407	// requests with the JSON null value. By default, fields with empty
4408	// values are omitted from API requests. However, any field with an
4409	// empty value appearing in NullFields will be sent to the server as
4410	// null. It is an error if a field in this list has a non-empty value.
4411	// This may be used to include null fields in Patch requests.
4412	NullFields []string `json:"-"`
4413}
4414
4415func (s *DeleteDimensionGroupRequest) MarshalJSON() ([]byte, error) {
4416	type NoMethod DeleteDimensionGroupRequest
4417	raw := NoMethod(*s)
4418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4419}
4420
4421// DeleteDimensionGroupResponse: The result of deleting a group.
4422type DeleteDimensionGroupResponse struct {
4423	// DimensionGroups: All groups of a dimension after deleting a group
4424	// from that dimension.
4425	DimensionGroups []*DimensionGroup `json:"dimensionGroups,omitempty"`
4426
4427	// ForceSendFields is a list of field names (e.g. "DimensionGroups") to
4428	// unconditionally include in API requests. By default, fields with
4429	// empty values are omitted from API requests. However, any non-pointer,
4430	// non-interface field appearing in ForceSendFields will be sent to the
4431	// server regardless of whether the field is empty or not. This may be
4432	// used to include empty fields in Patch requests.
4433	ForceSendFields []string `json:"-"`
4434
4435	// NullFields is a list of field names (e.g. "DimensionGroups") to
4436	// include in API requests with the JSON null value. By default, fields
4437	// with empty values are omitted from API requests. However, any field
4438	// with an empty value appearing in NullFields will be sent to the
4439	// server as null. It is an error if a field in this list has a
4440	// non-empty value. This may be used to include null fields in Patch
4441	// requests.
4442	NullFields []string `json:"-"`
4443}
4444
4445func (s *DeleteDimensionGroupResponse) MarshalJSON() ([]byte, error) {
4446	type NoMethod DeleteDimensionGroupResponse
4447	raw := NoMethod(*s)
4448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4449}
4450
4451// DeleteDimensionRequest: Deletes the dimensions from the sheet.
4452type DeleteDimensionRequest struct {
4453	// Range: The dimensions to delete from the sheet.
4454	Range *DimensionRange `json:"range,omitempty"`
4455
4456	// ForceSendFields is a list of field names (e.g. "Range") to
4457	// unconditionally include in API requests. By default, fields with
4458	// empty values are omitted from API requests. However, any non-pointer,
4459	// non-interface field appearing in ForceSendFields will be sent to the
4460	// server regardless of whether the field is empty or not. This may be
4461	// used to include empty fields in Patch requests.
4462	ForceSendFields []string `json:"-"`
4463
4464	// NullFields is a list of field names (e.g. "Range") to include in API
4465	// requests with the JSON null value. By default, fields with empty
4466	// values are omitted from API requests. However, any field with an
4467	// empty value appearing in NullFields will be sent to the server as
4468	// null. It is an error if a field in this list has a non-empty value.
4469	// This may be used to include null fields in Patch requests.
4470	NullFields []string `json:"-"`
4471}
4472
4473func (s *DeleteDimensionRequest) MarshalJSON() ([]byte, error) {
4474	type NoMethod DeleteDimensionRequest
4475	raw := NoMethod(*s)
4476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4477}
4478
4479// DeleteDuplicatesRequest: Removes rows within this range that contain
4480// values in the specified columns
4481// that are duplicates of values in any previous row. Rows with
4482// identical values
4483// but different letter cases, formatting, or formulas are considered to
4484// be
4485// duplicates.
4486//
4487// This request also removes duplicate rows hidden from view (for
4488// example, due
4489// to a filter). When removing duplicates, the first instance of each
4490// duplicate
4491// row scanning from the top downwards is kept in the resulting range.
4492// Content
4493// outside of the specified range isn't removed, and rows considered
4494// duplicates
4495// do not have to be adjacent to each other in the range.
4496type DeleteDuplicatesRequest struct {
4497	// ComparisonColumns: The columns in the range to analyze for duplicate
4498	// values. If no columns are
4499	// selected then all columns are analyzed for duplicates.
4500	ComparisonColumns []*DimensionRange `json:"comparisonColumns,omitempty"`
4501
4502	// Range: The range to remove duplicates rows from.
4503	Range *GridRange `json:"range,omitempty"`
4504
4505	// ForceSendFields is a list of field names (e.g. "ComparisonColumns")
4506	// to unconditionally include in API requests. By default, fields with
4507	// empty values are omitted from API requests. However, any non-pointer,
4508	// non-interface field appearing in ForceSendFields will be sent to the
4509	// server regardless of whether the field is empty or not. This may be
4510	// used to include empty fields in Patch requests.
4511	ForceSendFields []string `json:"-"`
4512
4513	// NullFields is a list of field names (e.g. "ComparisonColumns") to
4514	// include in API requests with the JSON null value. By default, fields
4515	// with empty values are omitted from API requests. However, any field
4516	// with an empty value appearing in NullFields will be sent to the
4517	// server as null. It is an error if a field in this list has a
4518	// non-empty value. This may be used to include null fields in Patch
4519	// requests.
4520	NullFields []string `json:"-"`
4521}
4522
4523func (s *DeleteDuplicatesRequest) MarshalJSON() ([]byte, error) {
4524	type NoMethod DeleteDuplicatesRequest
4525	raw := NoMethod(*s)
4526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4527}
4528
4529// DeleteDuplicatesResponse: The result of removing duplicates in a
4530// range.
4531type DeleteDuplicatesResponse struct {
4532	// DuplicatesRemovedCount: The number of duplicate rows removed.
4533	DuplicatesRemovedCount int64 `json:"duplicatesRemovedCount,omitempty"`
4534
4535	// ForceSendFields is a list of field names (e.g.
4536	// "DuplicatesRemovedCount") to unconditionally include in API requests.
4537	// By default, fields with empty values are omitted from API requests.
4538	// However, any non-pointer, non-interface field appearing in
4539	// ForceSendFields will be sent to the server regardless of whether the
4540	// field is empty or not. This may be used to include empty fields in
4541	// Patch requests.
4542	ForceSendFields []string `json:"-"`
4543
4544	// NullFields is a list of field names (e.g. "DuplicatesRemovedCount")
4545	// to include in API requests with the JSON null value. By default,
4546	// fields with empty values are omitted from API requests. However, any
4547	// field with an empty value appearing in NullFields will be sent to the
4548	// server as null. It is an error if a field in this list has a
4549	// non-empty value. This may be used to include null fields in Patch
4550	// requests.
4551	NullFields []string `json:"-"`
4552}
4553
4554func (s *DeleteDuplicatesResponse) MarshalJSON() ([]byte, error) {
4555	type NoMethod DeleteDuplicatesResponse
4556	raw := NoMethod(*s)
4557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4558}
4559
4560// DeleteEmbeddedObjectRequest: Deletes the embedded object with the
4561// given ID.
4562type DeleteEmbeddedObjectRequest struct {
4563	// ObjectId: The ID of the embedded object to delete.
4564	ObjectId int64 `json:"objectId,omitempty"`
4565
4566	// ForceSendFields is a list of field names (e.g. "ObjectId") to
4567	// unconditionally include in API requests. By default, fields with
4568	// empty values are omitted from API requests. However, any non-pointer,
4569	// non-interface field appearing in ForceSendFields will be sent to the
4570	// server regardless of whether the field is empty or not. This may be
4571	// used to include empty fields in Patch requests.
4572	ForceSendFields []string `json:"-"`
4573
4574	// NullFields is a list of field names (e.g. "ObjectId") to include in
4575	// API requests with the JSON null value. By default, fields with empty
4576	// values are omitted from API requests. However, any field with an
4577	// empty value appearing in NullFields will be sent to the server as
4578	// null. It is an error if a field in this list has a non-empty value.
4579	// This may be used to include null fields in Patch requests.
4580	NullFields []string `json:"-"`
4581}
4582
4583func (s *DeleteEmbeddedObjectRequest) MarshalJSON() ([]byte, error) {
4584	type NoMethod DeleteEmbeddedObjectRequest
4585	raw := NoMethod(*s)
4586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4587}
4588
4589// DeleteFilterViewRequest: Deletes a particular filter view.
4590type DeleteFilterViewRequest struct {
4591	// FilterId: The ID of the filter to delete.
4592	FilterId int64 `json:"filterId,omitempty"`
4593
4594	// ForceSendFields is a list of field names (e.g. "FilterId") to
4595	// unconditionally include in API requests. By default, fields with
4596	// empty values are omitted from API requests. However, any non-pointer,
4597	// non-interface field appearing in ForceSendFields will be sent to the
4598	// server regardless of whether the field is empty or not. This may be
4599	// used to include empty fields in Patch requests.
4600	ForceSendFields []string `json:"-"`
4601
4602	// NullFields is a list of field names (e.g. "FilterId") to include in
4603	// API requests with the JSON null value. By default, fields with empty
4604	// values are omitted from API requests. However, any field with an
4605	// empty value appearing in NullFields will be sent to the server as
4606	// null. It is an error if a field in this list has a non-empty value.
4607	// This may be used to include null fields in Patch requests.
4608	NullFields []string `json:"-"`
4609}
4610
4611func (s *DeleteFilterViewRequest) MarshalJSON() ([]byte, error) {
4612	type NoMethod DeleteFilterViewRequest
4613	raw := NoMethod(*s)
4614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4615}
4616
4617// DeleteNamedRangeRequest: Removes the named range with the given ID
4618// from the spreadsheet.
4619type DeleteNamedRangeRequest struct {
4620	// NamedRangeId: The ID of the named range to delete.
4621	NamedRangeId string `json:"namedRangeId,omitempty"`
4622
4623	// ForceSendFields is a list of field names (e.g. "NamedRangeId") to
4624	// unconditionally include in API requests. By default, fields with
4625	// empty values are omitted from API requests. However, any non-pointer,
4626	// non-interface field appearing in ForceSendFields will be sent to the
4627	// server regardless of whether the field is empty or not. This may be
4628	// used to include empty fields in Patch requests.
4629	ForceSendFields []string `json:"-"`
4630
4631	// NullFields is a list of field names (e.g. "NamedRangeId") to include
4632	// in API requests with the JSON null value. By default, fields with
4633	// empty values are omitted from API requests. However, any field with
4634	// an empty value appearing in NullFields will be sent to the server as
4635	// null. It is an error if a field in this list has a non-empty value.
4636	// This may be used to include null fields in Patch requests.
4637	NullFields []string `json:"-"`
4638}
4639
4640func (s *DeleteNamedRangeRequest) MarshalJSON() ([]byte, error) {
4641	type NoMethod DeleteNamedRangeRequest
4642	raw := NoMethod(*s)
4643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4644}
4645
4646// DeleteProtectedRangeRequest: Deletes the protected range with the
4647// given ID.
4648type DeleteProtectedRangeRequest struct {
4649	// ProtectedRangeId: The ID of the protected range to delete.
4650	ProtectedRangeId int64 `json:"protectedRangeId,omitempty"`
4651
4652	// ForceSendFields is a list of field names (e.g. "ProtectedRangeId") to
4653	// unconditionally include in API requests. By default, fields with
4654	// empty values are omitted from API requests. However, any non-pointer,
4655	// non-interface field appearing in ForceSendFields will be sent to the
4656	// server regardless of whether the field is empty or not. This may be
4657	// used to include empty fields in Patch requests.
4658	ForceSendFields []string `json:"-"`
4659
4660	// NullFields is a list of field names (e.g. "ProtectedRangeId") to
4661	// include in API requests with the JSON null value. By default, fields
4662	// with empty values are omitted from API requests. However, any field
4663	// with an empty value appearing in NullFields will be sent to the
4664	// server as null. It is an error if a field in this list has a
4665	// non-empty value. This may be used to include null fields in Patch
4666	// requests.
4667	NullFields []string `json:"-"`
4668}
4669
4670func (s *DeleteProtectedRangeRequest) MarshalJSON() ([]byte, error) {
4671	type NoMethod DeleteProtectedRangeRequest
4672	raw := NoMethod(*s)
4673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4674}
4675
4676// DeleteRangeRequest: Deletes a range of cells, shifting other cells
4677// into the deleted area.
4678type DeleteRangeRequest struct {
4679	// Range: The range of cells to delete.
4680	Range *GridRange `json:"range,omitempty"`
4681
4682	// ShiftDimension: The dimension from which deleted cells will be
4683	// replaced with.
4684	// If ROWS, existing cells will be shifted upward to
4685	// replace the deleted cells. If COLUMNS, existing cells
4686	// will be shifted left to replace the deleted cells.
4687	//
4688	// Possible values:
4689	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
4690	//   "ROWS" - Operates on the rows of a sheet.
4691	//   "COLUMNS" - Operates on the columns of a sheet.
4692	ShiftDimension string `json:"shiftDimension,omitempty"`
4693
4694	// ForceSendFields is a list of field names (e.g. "Range") to
4695	// unconditionally include in API requests. By default, fields with
4696	// empty values are omitted from API requests. However, any non-pointer,
4697	// non-interface field appearing in ForceSendFields will be sent to the
4698	// server regardless of whether the field is empty or not. This may be
4699	// used to include empty fields in Patch requests.
4700	ForceSendFields []string `json:"-"`
4701
4702	// NullFields is a list of field names (e.g. "Range") to include in API
4703	// requests with the JSON null value. By default, fields with empty
4704	// values are omitted from API requests. However, any field with an
4705	// empty value appearing in NullFields will be sent to the server as
4706	// null. It is an error if a field in this list has a non-empty value.
4707	// This may be used to include null fields in Patch requests.
4708	NullFields []string `json:"-"`
4709}
4710
4711func (s *DeleteRangeRequest) MarshalJSON() ([]byte, error) {
4712	type NoMethod DeleteRangeRequest
4713	raw := NoMethod(*s)
4714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4715}
4716
4717// DeleteSheetRequest: Deletes the requested sheet.
4718type DeleteSheetRequest struct {
4719	// SheetId: The ID of the sheet to delete.
4720	SheetId int64 `json:"sheetId,omitempty"`
4721
4722	// ForceSendFields is a list of field names (e.g. "SheetId") to
4723	// unconditionally include in API requests. By default, fields with
4724	// empty values are omitted from API requests. However, any non-pointer,
4725	// non-interface field appearing in ForceSendFields will be sent to the
4726	// server regardless of whether the field is empty or not. This may be
4727	// used to include empty fields in Patch requests.
4728	ForceSendFields []string `json:"-"`
4729
4730	// NullFields is a list of field names (e.g. "SheetId") to include in
4731	// API requests with the JSON null value. By default, fields with empty
4732	// values are omitted from API requests. However, any field with an
4733	// empty value appearing in NullFields will be sent to the server as
4734	// null. It is an error if a field in this list has a non-empty value.
4735	// This may be used to include null fields in Patch requests.
4736	NullFields []string `json:"-"`
4737}
4738
4739func (s *DeleteSheetRequest) MarshalJSON() ([]byte, error) {
4740	type NoMethod DeleteSheetRequest
4741	raw := NoMethod(*s)
4742	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4743}
4744
4745// DeveloperMetadata: Developer metadata associated with a location or
4746// object in a spreadsheet.
4747// Developer metadata may be used to associate arbitrary data with
4748// various
4749// parts of a spreadsheet and will remain associated at those locations
4750// as they
4751// move around and the spreadsheet is edited.  For example, if
4752// developer
4753// metadata is associated with row 5 and another row is then
4754// subsequently
4755// inserted above row 5, that original metadata will still be associated
4756// with
4757// the row it was first associated with (what is now row 6). If the
4758// associated
4759// object is deleted its metadata is deleted too.
4760type DeveloperMetadata struct {
4761	// Location: The location where the metadata is associated.
4762	Location *DeveloperMetadataLocation `json:"location,omitempty"`
4763
4764	// MetadataId: The spreadsheet-scoped unique ID that identifies the
4765	// metadata. IDs may be
4766	// specified when metadata is created, otherwise one will be
4767	// randomly
4768	// generated and assigned. Must be positive.
4769	MetadataId int64 `json:"metadataId,omitempty"`
4770
4771	// MetadataKey: The metadata key. There may be multiple metadata in a
4772	// spreadsheet with the
4773	// same key.  Developer metadata must always have a key specified.
4774	MetadataKey string `json:"metadataKey,omitempty"`
4775
4776	// MetadataValue: Data associated with the metadata's key.
4777	MetadataValue string `json:"metadataValue,omitempty"`
4778
4779	// Visibility: The metadata visibility.  Developer metadata must always
4780	// have a visibility
4781	// specified.
4782	//
4783	// Possible values:
4784	//   "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED" - Default value.
4785	//   "DOCUMENT" - Document-visible metadata is accessible from any
4786	// developer project with
4787	// access to the document.
4788	//   "PROJECT" - Project-visible metadata is only visible to and
4789	// accessible by the developer
4790	// project that created the metadata.
4791	Visibility string `json:"visibility,omitempty"`
4792
4793	// ServerResponse contains the HTTP response code and headers from the
4794	// server.
4795	googleapi.ServerResponse `json:"-"`
4796
4797	// ForceSendFields is a list of field names (e.g. "Location") to
4798	// unconditionally include in API requests. By default, fields with
4799	// empty values are omitted from API requests. However, any non-pointer,
4800	// non-interface field appearing in ForceSendFields will be sent to the
4801	// server regardless of whether the field is empty or not. This may be
4802	// used to include empty fields in Patch requests.
4803	ForceSendFields []string `json:"-"`
4804
4805	// NullFields is a list of field names (e.g. "Location") to include in
4806	// API requests with the JSON null value. By default, fields with empty
4807	// values are omitted from API requests. However, any field with an
4808	// empty value appearing in NullFields will be sent to the server as
4809	// null. It is an error if a field in this list has a non-empty value.
4810	// This may be used to include null fields in Patch requests.
4811	NullFields []string `json:"-"`
4812}
4813
4814func (s *DeveloperMetadata) MarshalJSON() ([]byte, error) {
4815	type NoMethod DeveloperMetadata
4816	raw := NoMethod(*s)
4817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4818}
4819
4820// DeveloperMetadataLocation: A location where metadata may be
4821// associated in a spreadsheet.
4822type DeveloperMetadataLocation struct {
4823	// DimensionRange: Represents the row or column when metadata is
4824	// associated with
4825	// a dimension. The specified DimensionRange must represent a single
4826	// row
4827	// or column; it cannot be unbounded or span multiple rows or columns.
4828	DimensionRange *DimensionRange `json:"dimensionRange,omitempty"`
4829
4830	// LocationType: The type of location this object represents.  This
4831	// field is read-only.
4832	//
4833	// Possible values:
4834	//   "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED" - Default value.
4835	//   "ROW" - Developer metadata associated on an entire row dimension.
4836	//   "COLUMN" - Developer metadata associated on an entire column
4837	// dimension.
4838	//   "SHEET" - Developer metadata associated on an entire sheet.
4839	//   "SPREADSHEET" - Developer metadata associated on the entire
4840	// spreadsheet.
4841	LocationType string `json:"locationType,omitempty"`
4842
4843	// SheetId: The ID of the sheet when metadata is associated with an
4844	// entire sheet.
4845	SheetId int64 `json:"sheetId,omitempty"`
4846
4847	// Spreadsheet: True when metadata is associated with an entire
4848	// spreadsheet.
4849	Spreadsheet bool `json:"spreadsheet,omitempty"`
4850
4851	// ForceSendFields is a list of field names (e.g. "DimensionRange") to
4852	// unconditionally include in API requests. By default, fields with
4853	// empty values are omitted from API requests. However, any non-pointer,
4854	// non-interface field appearing in ForceSendFields will be sent to the
4855	// server regardless of whether the field is empty or not. This may be
4856	// used to include empty fields in Patch requests.
4857	ForceSendFields []string `json:"-"`
4858
4859	// NullFields is a list of field names (e.g. "DimensionRange") to
4860	// include in API requests with the JSON null value. By default, fields
4861	// with empty values are omitted from API requests. However, any field
4862	// with an empty value appearing in NullFields will be sent to the
4863	// server as null. It is an error if a field in this list has a
4864	// non-empty value. This may be used to include null fields in Patch
4865	// requests.
4866	NullFields []string `json:"-"`
4867}
4868
4869func (s *DeveloperMetadataLocation) MarshalJSON() ([]byte, error) {
4870	type NoMethod DeveloperMetadataLocation
4871	raw := NoMethod(*s)
4872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4873}
4874
4875// DeveloperMetadataLookup: Selects DeveloperMetadata that matches all
4876// of the specified fields.  For
4877// example, if only a metadata ID is specified this considers
4878// the
4879// DeveloperMetadata with that particular unique ID. If a metadata key
4880// is
4881// specified, this considers all developer metadata with that key.  If
4882// a
4883// key, visibility, and location type are all specified, this considers
4884// all
4885// developer metadata with that key and visibility that are associated
4886// with a
4887// location of that type.  In general, this
4888// selects all DeveloperMetadata that matches the intersection of all
4889// the
4890// specified fields; any field or combination of fields may be
4891// specified.
4892type DeveloperMetadataLookup struct {
4893	// LocationMatchingStrategy: Determines how this lookup matches the
4894	// location.  If this field is
4895	// specified as EXACT, only developer metadata associated on the
4896	// exact
4897	// location specified is matched.  If this field is specified to
4898	// INTERSECTING,
4899	// developer metadata associated on intersecting locations is
4900	// also
4901	// matched.  If left unspecified, this field assumes a default value
4902	// of
4903	// INTERSECTING.
4904	// If this field is specified, a metadataLocation
4905	// must also be specified.
4906	//
4907	// Possible values:
4908	//   "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED" -
4909	// Default value. This value must not be used.
4910	//   "EXACT_LOCATION" - Indicates that a specified location should be
4911	// matched exactly.  For
4912	// example, if row three were specified as a location this matching
4913	// strategy
4914	// would only match developer metadata also associated on row three.
4915	// Metadata
4916	// associated on other locations would not be considered.
4917	//   "INTERSECTING_LOCATION" - Indicates that a specified location
4918	// should match that exact location as
4919	// well as any intersecting locations.  For example, if row three
4920	// were
4921	// specified as a location this matching strategy would match
4922	// developer
4923	// metadata associated on row three as well as metadata associated
4924	// on
4925	// locations that intersect row three.  If, for instance, there was
4926	// developer
4927	// metadata associated on column B, this matching strategy would also
4928	// match
4929	// that location because column B intersects row three.
4930	LocationMatchingStrategy string `json:"locationMatchingStrategy,omitempty"`
4931
4932	// LocationType: Limits the selected developer metadata to those entries
4933	// which are
4934	// associated with locations of the specified type.  For example, when
4935	// this
4936	// field is specified as ROW this lookup
4937	// only considers developer metadata associated on rows.  If the field
4938	// is left
4939	// unspecified, all location types are considered.  This field cannot
4940	// be
4941	// specified as SPREADSHEET when
4942	// the locationMatchingStrategy
4943	// is specified as INTERSECTING or when the
4944	// metadataLocation is specified as a
4945	// non-spreadsheet location: spreadsheet metadata cannot intersect any
4946	// other
4947	// developer metadata location.  This field also must be left
4948	// unspecified when
4949	// the locationMatchingStrategy
4950	// is specified as EXACT.
4951	//
4952	// Possible values:
4953	//   "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED" - Default value.
4954	//   "ROW" - Developer metadata associated on an entire row dimension.
4955	//   "COLUMN" - Developer metadata associated on an entire column
4956	// dimension.
4957	//   "SHEET" - Developer metadata associated on an entire sheet.
4958	//   "SPREADSHEET" - Developer metadata associated on the entire
4959	// spreadsheet.
4960	LocationType string `json:"locationType,omitempty"`
4961
4962	// MetadataId: Limits the selected developer metadata to that which has
4963	// a matching
4964	// DeveloperMetadata.metadata_id.
4965	MetadataId int64 `json:"metadataId,omitempty"`
4966
4967	// MetadataKey: Limits the selected developer metadata to that which has
4968	// a matching
4969	// DeveloperMetadata.metadata_key.
4970	MetadataKey string `json:"metadataKey,omitempty"`
4971
4972	// MetadataLocation: Limits the selected developer metadata to those
4973	// entries associated with
4974	// the specified location.  This field either matches exact locations or
4975	// all
4976	// intersecting locations according the
4977	// specified
4978	// locationMatchingStrategy.
4979	MetadataLocation *DeveloperMetadataLocation `json:"metadataLocation,omitempty"`
4980
4981	// MetadataValue: Limits the selected developer metadata to that which
4982	// has a matching
4983	// DeveloperMetadata.metadata_value.
4984	MetadataValue string `json:"metadataValue,omitempty"`
4985
4986	// Visibility: Limits the selected developer metadata to that which has
4987	// a matching
4988	// DeveloperMetadata.visibility.  If left unspecified, all
4989	// developer
4990	// metadata visibile to the requesting project is considered.
4991	//
4992	// Possible values:
4993	//   "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED" - Default value.
4994	//   "DOCUMENT" - Document-visible metadata is accessible from any
4995	// developer project with
4996	// access to the document.
4997	//   "PROJECT" - Project-visible metadata is only visible to and
4998	// accessible by the developer
4999	// project that created the metadata.
5000	Visibility string `json:"visibility,omitempty"`
5001
5002	// ForceSendFields is a list of field names (e.g.
5003	// "LocationMatchingStrategy") to unconditionally include in API
5004	// requests. By default, fields with empty values are omitted from API
5005	// requests. However, any non-pointer, non-interface field appearing in
5006	// ForceSendFields will be sent to the server regardless of whether the
5007	// field is empty or not. This may be used to include empty fields in
5008	// Patch requests.
5009	ForceSendFields []string `json:"-"`
5010
5011	// NullFields is a list of field names (e.g. "LocationMatchingStrategy")
5012	// to include in API requests with the JSON null value. By default,
5013	// fields with empty values are omitted from API requests. However, any
5014	// field with an empty value appearing in NullFields will be sent to the
5015	// server as null. It is an error if a field in this list has a
5016	// non-empty value. This may be used to include null fields in Patch
5017	// requests.
5018	NullFields []string `json:"-"`
5019}
5020
5021func (s *DeveloperMetadataLookup) MarshalJSON() ([]byte, error) {
5022	type NoMethod DeveloperMetadataLookup
5023	raw := NoMethod(*s)
5024	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5025}
5026
5027// DimensionGroup: A group over an interval of rows or columns on a
5028// sheet, which can contain or
5029// be contained within other groups. A group can be collapsed or
5030// expanded as a
5031// unit on the sheet.
5032type DimensionGroup struct {
5033	// Collapsed: This field is true if this group is collapsed. A collapsed
5034	// group remains
5035	// collapsed if an overlapping group at a shallower depth is
5036	// expanded.
5037	//
5038	// A true value does not imply that all dimensions within the group
5039	// are
5040	// hidden, since a dimension's visibility can change independently from
5041	// this
5042	// group property. However, when this property is updated, all
5043	// dimensions
5044	// within it are set to hidden if this field is true, or set to visible
5045	// if
5046	// this field is false.
5047	Collapsed bool `json:"collapsed,omitempty"`
5048
5049	// Depth: The depth of the group, representing how many groups have a
5050	// range that
5051	// wholly contains the range of this group.
5052	Depth int64 `json:"depth,omitempty"`
5053
5054	// Range: The range over which this group exists.
5055	Range *DimensionRange `json:"range,omitempty"`
5056
5057	// ForceSendFields is a list of field names (e.g. "Collapsed") to
5058	// unconditionally include in API requests. By default, fields with
5059	// empty values are omitted from API requests. However, any non-pointer,
5060	// non-interface field appearing in ForceSendFields will be sent to the
5061	// server regardless of whether the field is empty or not. This may be
5062	// used to include empty fields in Patch requests.
5063	ForceSendFields []string `json:"-"`
5064
5065	// NullFields is a list of field names (e.g. "Collapsed") to include in
5066	// API requests with the JSON null value. By default, fields with empty
5067	// values are omitted from API requests. However, any field with an
5068	// empty value appearing in NullFields will be sent to the server as
5069	// null. It is an error if a field in this list has a non-empty value.
5070	// This may be used to include null fields in Patch requests.
5071	NullFields []string `json:"-"`
5072}
5073
5074func (s *DimensionGroup) MarshalJSON() ([]byte, error) {
5075	type NoMethod DimensionGroup
5076	raw := NoMethod(*s)
5077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5078}
5079
5080// DimensionProperties: Properties about a dimension.
5081type DimensionProperties struct {
5082	// DeveloperMetadata: The developer metadata associated with a single
5083	// row or column.
5084	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
5085
5086	// HiddenByFilter: True if this dimension is being filtered.
5087	// This field is read-only.
5088	HiddenByFilter bool `json:"hiddenByFilter,omitempty"`
5089
5090	// HiddenByUser: True if this dimension is explicitly hidden.
5091	HiddenByUser bool `json:"hiddenByUser,omitempty"`
5092
5093	// PixelSize: The height (if a row) or width (if a column) of the
5094	// dimension in pixels.
5095	PixelSize int64 `json:"pixelSize,omitempty"`
5096
5097	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
5098	// to unconditionally include in API requests. By default, fields with
5099	// empty values are omitted from API requests. However, any non-pointer,
5100	// non-interface field appearing in ForceSendFields will be sent to the
5101	// server regardless of whether the field is empty or not. This may be
5102	// used to include empty fields in Patch requests.
5103	ForceSendFields []string `json:"-"`
5104
5105	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
5106	// include in API requests with the JSON null value. By default, fields
5107	// with empty values are omitted from API requests. However, any field
5108	// with an empty value appearing in NullFields will be sent to the
5109	// server as null. It is an error if a field in this list has a
5110	// non-empty value. This may be used to include null fields in Patch
5111	// requests.
5112	NullFields []string `json:"-"`
5113}
5114
5115func (s *DimensionProperties) MarshalJSON() ([]byte, error) {
5116	type NoMethod DimensionProperties
5117	raw := NoMethod(*s)
5118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5119}
5120
5121// DimensionRange: A range along a single dimension on a sheet.
5122// All indexes are zero-based.
5123// Indexes are half open: the start index is inclusive
5124// and the end index is exclusive.
5125// Missing indexes indicate the range is unbounded on that side.
5126type DimensionRange struct {
5127	// Dimension: The dimension of the span.
5128	//
5129	// Possible values:
5130	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
5131	//   "ROWS" - Operates on the rows of a sheet.
5132	//   "COLUMNS" - Operates on the columns of a sheet.
5133	Dimension string `json:"dimension,omitempty"`
5134
5135	// EndIndex: The end (exclusive) of the span, or not set if unbounded.
5136	EndIndex int64 `json:"endIndex,omitempty"`
5137
5138	// SheetId: The sheet this span is on.
5139	SheetId int64 `json:"sheetId,omitempty"`
5140
5141	// StartIndex: The start (inclusive) of the span, or not set if
5142	// unbounded.
5143	StartIndex int64 `json:"startIndex,omitempty"`
5144
5145	// ForceSendFields is a list of field names (e.g. "Dimension") to
5146	// unconditionally include in API requests. By default, fields with
5147	// empty values are omitted from API requests. However, any non-pointer,
5148	// non-interface field appearing in ForceSendFields will be sent to the
5149	// server regardless of whether the field is empty or not. This may be
5150	// used to include empty fields in Patch requests.
5151	ForceSendFields []string `json:"-"`
5152
5153	// NullFields is a list of field names (e.g. "Dimension") to include in
5154	// API requests with the JSON null value. By default, fields with empty
5155	// values are omitted from API requests. However, any field with an
5156	// empty value appearing in NullFields will be sent to the server as
5157	// null. It is an error if a field in this list has a non-empty value.
5158	// This may be used to include null fields in Patch requests.
5159	NullFields []string `json:"-"`
5160}
5161
5162func (s *DimensionRange) MarshalJSON() ([]byte, error) {
5163	type NoMethod DimensionRange
5164	raw := NoMethod(*s)
5165	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5166}
5167
5168// DuplicateFilterViewRequest: Duplicates a particular filter view.
5169type DuplicateFilterViewRequest struct {
5170	// FilterId: The ID of the filter being duplicated.
5171	FilterId int64 `json:"filterId,omitempty"`
5172
5173	// ForceSendFields is a list of field names (e.g. "FilterId") to
5174	// unconditionally include in API requests. By default, fields with
5175	// empty values are omitted from API requests. However, any non-pointer,
5176	// non-interface field appearing in ForceSendFields will be sent to the
5177	// server regardless of whether the field is empty or not. This may be
5178	// used to include empty fields in Patch requests.
5179	ForceSendFields []string `json:"-"`
5180
5181	// NullFields is a list of field names (e.g. "FilterId") to include in
5182	// API requests with the JSON null value. By default, fields with empty
5183	// values are omitted from API requests. However, any field with an
5184	// empty value appearing in NullFields will be sent to the server as
5185	// null. It is an error if a field in this list has a non-empty value.
5186	// This may be used to include null fields in Patch requests.
5187	NullFields []string `json:"-"`
5188}
5189
5190func (s *DuplicateFilterViewRequest) MarshalJSON() ([]byte, error) {
5191	type NoMethod DuplicateFilterViewRequest
5192	raw := NoMethod(*s)
5193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5194}
5195
5196// DuplicateFilterViewResponse: The result of a filter view being
5197// duplicated.
5198type DuplicateFilterViewResponse struct {
5199	// Filter: The newly created filter.
5200	Filter *FilterView `json:"filter,omitempty"`
5201
5202	// ForceSendFields is a list of field names (e.g. "Filter") to
5203	// unconditionally include in API requests. By default, fields with
5204	// empty values are omitted from API requests. However, any non-pointer,
5205	// non-interface field appearing in ForceSendFields will be sent to the
5206	// server regardless of whether the field is empty or not. This may be
5207	// used to include empty fields in Patch requests.
5208	ForceSendFields []string `json:"-"`
5209
5210	// NullFields is a list of field names (e.g. "Filter") to include in API
5211	// requests with the JSON null value. By default, fields with empty
5212	// values are omitted from API requests. However, any field with an
5213	// empty value appearing in NullFields will be sent to the server as
5214	// null. It is an error if a field in this list has a non-empty value.
5215	// This may be used to include null fields in Patch requests.
5216	NullFields []string `json:"-"`
5217}
5218
5219func (s *DuplicateFilterViewResponse) MarshalJSON() ([]byte, error) {
5220	type NoMethod DuplicateFilterViewResponse
5221	raw := NoMethod(*s)
5222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5223}
5224
5225// DuplicateSheetRequest: Duplicates the contents of a sheet.
5226type DuplicateSheetRequest struct {
5227	// InsertSheetIndex: The zero-based index where the new sheet should be
5228	// inserted.
5229	// The index of all sheets after this are incremented.
5230	InsertSheetIndex int64 `json:"insertSheetIndex,omitempty"`
5231
5232	// NewSheetId: If set, the ID of the new sheet. If not set, an ID is
5233	// chosen.
5234	// If set, the ID must not conflict with any existing sheet ID.
5235	// If set, it must be non-negative.
5236	NewSheetId int64 `json:"newSheetId,omitempty"`
5237
5238	// NewSheetName: The name of the new sheet.  If empty, a new name is
5239	// chosen for you.
5240	NewSheetName string `json:"newSheetName,omitempty"`
5241
5242	// SourceSheetId: The sheet to duplicate.
5243	SourceSheetId int64 `json:"sourceSheetId,omitempty"`
5244
5245	// ForceSendFields is a list of field names (e.g. "InsertSheetIndex") to
5246	// unconditionally include in API requests. By default, fields with
5247	// empty values are omitted from API requests. However, any non-pointer,
5248	// non-interface field appearing in ForceSendFields will be sent to the
5249	// server regardless of whether the field is empty or not. This may be
5250	// used to include empty fields in Patch requests.
5251	ForceSendFields []string `json:"-"`
5252
5253	// NullFields is a list of field names (e.g. "InsertSheetIndex") to
5254	// include in API requests with the JSON null value. By default, fields
5255	// with empty values are omitted from API requests. However, any field
5256	// with an empty value appearing in NullFields will be sent to the
5257	// server as null. It is an error if a field in this list has a
5258	// non-empty value. This may be used to include null fields in Patch
5259	// requests.
5260	NullFields []string `json:"-"`
5261}
5262
5263func (s *DuplicateSheetRequest) MarshalJSON() ([]byte, error) {
5264	type NoMethod DuplicateSheetRequest
5265	raw := NoMethod(*s)
5266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5267}
5268
5269// DuplicateSheetResponse: The result of duplicating a sheet.
5270type DuplicateSheetResponse struct {
5271	// Properties: The properties of the duplicate sheet.
5272	Properties *SheetProperties `json:"properties,omitempty"`
5273
5274	// ForceSendFields is a list of field names (e.g. "Properties") to
5275	// unconditionally include in API requests. By default, fields with
5276	// empty values are omitted from API requests. However, any non-pointer,
5277	// non-interface field appearing in ForceSendFields will be sent to the
5278	// server regardless of whether the field is empty or not. This may be
5279	// used to include empty fields in Patch requests.
5280	ForceSendFields []string `json:"-"`
5281
5282	// NullFields is a list of field names (e.g. "Properties") to include in
5283	// API requests with the JSON null value. By default, fields with empty
5284	// values are omitted from API requests. However, any field with an
5285	// empty value appearing in NullFields will be sent to the server as
5286	// null. It is an error if a field in this list has a non-empty value.
5287	// This may be used to include null fields in Patch requests.
5288	NullFields []string `json:"-"`
5289}
5290
5291func (s *DuplicateSheetResponse) MarshalJSON() ([]byte, error) {
5292	type NoMethod DuplicateSheetResponse
5293	raw := NoMethod(*s)
5294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5295}
5296
5297// Editors: The editors of a protected range.
5298type Editors struct {
5299	// DomainUsersCanEdit: True if anyone in the document's domain has edit
5300	// access to the protected
5301	// range.  Domain protection is only supported on documents within a
5302	// domain.
5303	DomainUsersCanEdit bool `json:"domainUsersCanEdit,omitempty"`
5304
5305	// Groups: The email addresses of groups with edit access to the
5306	// protected range.
5307	Groups []string `json:"groups,omitempty"`
5308
5309	// Users: The email addresses of users with edit access to the protected
5310	// range.
5311	Users []string `json:"users,omitempty"`
5312
5313	// ForceSendFields is a list of field names (e.g. "DomainUsersCanEdit")
5314	// to unconditionally include in API requests. By default, fields with
5315	// empty values are omitted from API requests. However, any non-pointer,
5316	// non-interface field appearing in ForceSendFields will be sent to the
5317	// server regardless of whether the field is empty or not. This may be
5318	// used to include empty fields in Patch requests.
5319	ForceSendFields []string `json:"-"`
5320
5321	// NullFields is a list of field names (e.g. "DomainUsersCanEdit") to
5322	// include in API requests with the JSON null value. By default, fields
5323	// with empty values are omitted from API requests. However, any field
5324	// with an empty value appearing in NullFields will be sent to the
5325	// server as null. It is an error if a field in this list has a
5326	// non-empty value. This may be used to include null fields in Patch
5327	// requests.
5328	NullFields []string `json:"-"`
5329}
5330
5331func (s *Editors) MarshalJSON() ([]byte, error) {
5332	type NoMethod Editors
5333	raw := NoMethod(*s)
5334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5335}
5336
5337// EmbeddedChart: A chart embedded in a sheet.
5338type EmbeddedChart struct {
5339	// ChartId: The ID of the chart.
5340	ChartId int64 `json:"chartId,omitempty"`
5341
5342	// Position: The position of the chart.
5343	Position *EmbeddedObjectPosition `json:"position,omitempty"`
5344
5345	// Spec: The specification of the chart.
5346	Spec *ChartSpec `json:"spec,omitempty"`
5347
5348	// ForceSendFields is a list of field names (e.g. "ChartId") to
5349	// unconditionally include in API requests. By default, fields with
5350	// empty values are omitted from API requests. However, any non-pointer,
5351	// non-interface field appearing in ForceSendFields will be sent to the
5352	// server regardless of whether the field is empty or not. This may be
5353	// used to include empty fields in Patch requests.
5354	ForceSendFields []string `json:"-"`
5355
5356	// NullFields is a list of field names (e.g. "ChartId") to include in
5357	// API requests with the JSON null value. By default, fields with empty
5358	// values are omitted from API requests. However, any field with an
5359	// empty value appearing in NullFields will be sent to the server as
5360	// null. It is an error if a field in this list has a non-empty value.
5361	// This may be used to include null fields in Patch requests.
5362	NullFields []string `json:"-"`
5363}
5364
5365func (s *EmbeddedChart) MarshalJSON() ([]byte, error) {
5366	type NoMethod EmbeddedChart
5367	raw := NoMethod(*s)
5368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5369}
5370
5371// EmbeddedObjectPosition: The position of an embedded object such as a
5372// chart.
5373type EmbeddedObjectPosition struct {
5374	// NewSheet: If true, the embedded object is put on a new sheet whose
5375	// ID
5376	// is chosen for you. Used only when writing.
5377	NewSheet bool `json:"newSheet,omitempty"`
5378
5379	// OverlayPosition: The position at which the object is overlaid on top
5380	// of a grid.
5381	OverlayPosition *OverlayPosition `json:"overlayPosition,omitempty"`
5382
5383	// SheetId: The sheet this is on. Set only if the embedded object
5384	// is on its own sheet. Must be non-negative.
5385	SheetId int64 `json:"sheetId,omitempty"`
5386
5387	// ForceSendFields is a list of field names (e.g. "NewSheet") to
5388	// unconditionally include in API requests. By default, fields with
5389	// empty values are omitted from API requests. However, any non-pointer,
5390	// non-interface field appearing in ForceSendFields will be sent to the
5391	// server regardless of whether the field is empty or not. This may be
5392	// used to include empty fields in Patch requests.
5393	ForceSendFields []string `json:"-"`
5394
5395	// NullFields is a list of field names (e.g. "NewSheet") to include in
5396	// API requests with the JSON null value. By default, fields with empty
5397	// values are omitted from API requests. However, any field with an
5398	// empty value appearing in NullFields will be sent to the server as
5399	// null. It is an error if a field in this list has a non-empty value.
5400	// This may be used to include null fields in Patch requests.
5401	NullFields []string `json:"-"`
5402}
5403
5404func (s *EmbeddedObjectPosition) MarshalJSON() ([]byte, error) {
5405	type NoMethod EmbeddedObjectPosition
5406	raw := NoMethod(*s)
5407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5408}
5409
5410// ErrorValue: An error in a cell.
5411type ErrorValue struct {
5412	// Message: A message with more information about the error
5413	// (in the spreadsheet's locale).
5414	Message string `json:"message,omitempty"`
5415
5416	// Type: The type of error.
5417	//
5418	// Possible values:
5419	//   "ERROR_TYPE_UNSPECIFIED" - The default error type, do not use this.
5420	//   "ERROR" - Corresponds to the `#ERROR!` error.
5421	//   "NULL_VALUE" - Corresponds to the `#NULL!` error.
5422	//   "DIVIDE_BY_ZERO" - Corresponds to the `#DIV/0` error.
5423	//   "VALUE" - Corresponds to the `#VALUE!` error.
5424	//   "REF" - Corresponds to the `#REF!` error.
5425	//   "NAME" - Corresponds to the `#NAME?` error.
5426	//   "NUM" - Corresponds to the `#NUM`! error.
5427	//   "N_A" - Corresponds to the `#N/A` error.
5428	//   "LOADING" - Corresponds to the `Loading...` state.
5429	Type string `json:"type,omitempty"`
5430
5431	// ForceSendFields is a list of field names (e.g. "Message") to
5432	// unconditionally include in API requests. By default, fields with
5433	// empty values are omitted from API requests. However, any non-pointer,
5434	// non-interface field appearing in ForceSendFields will be sent to the
5435	// server regardless of whether the field is empty or not. This may be
5436	// used to include empty fields in Patch requests.
5437	ForceSendFields []string `json:"-"`
5438
5439	// NullFields is a list of field names (e.g. "Message") to include in
5440	// API requests with the JSON null value. By default, fields with empty
5441	// values are omitted from API requests. However, any field with an
5442	// empty value appearing in NullFields will be sent to the server as
5443	// null. It is an error if a field in this list has a non-empty value.
5444	// This may be used to include null fields in Patch requests.
5445	NullFields []string `json:"-"`
5446}
5447
5448func (s *ErrorValue) MarshalJSON() ([]byte, error) {
5449	type NoMethod ErrorValue
5450	raw := NoMethod(*s)
5451	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5452}
5453
5454// ExtendedValue: The kinds of value that a cell in a spreadsheet can
5455// have.
5456type ExtendedValue struct {
5457	// BoolValue: Represents a boolean value.
5458	BoolValue bool `json:"boolValue,omitempty"`
5459
5460	// ErrorValue: Represents an error.
5461	// This field is read-only.
5462	ErrorValue *ErrorValue `json:"errorValue,omitempty"`
5463
5464	// FormulaValue: Represents a formula.
5465	FormulaValue string `json:"formulaValue,omitempty"`
5466
5467	// NumberValue: Represents a double value.
5468	// Note: Dates, Times and DateTimes are represented as doubles
5469	// in
5470	// "serial number" format.
5471	NumberValue float64 `json:"numberValue,omitempty"`
5472
5473	// StringValue: Represents a string value.
5474	// Leading single quotes are not included. For example, if the user
5475	// typed
5476	// `'123` into the UI, this would be represented as a `stringValue`
5477	// of
5478	// "123".
5479	StringValue string `json:"stringValue,omitempty"`
5480
5481	// ForceSendFields is a list of field names (e.g. "BoolValue") to
5482	// unconditionally include in API requests. By default, fields with
5483	// empty values are omitted from API requests. However, any non-pointer,
5484	// non-interface field appearing in ForceSendFields will be sent to the
5485	// server regardless of whether the field is empty or not. This may be
5486	// used to include empty fields in Patch requests.
5487	ForceSendFields []string `json:"-"`
5488
5489	// NullFields is a list of field names (e.g. "BoolValue") to include in
5490	// API requests with the JSON null value. By default, fields with empty
5491	// values are omitted from API requests. However, any field with an
5492	// empty value appearing in NullFields will be sent to the server as
5493	// null. It is an error if a field in this list has a non-empty value.
5494	// This may be used to include null fields in Patch requests.
5495	NullFields []string `json:"-"`
5496}
5497
5498func (s *ExtendedValue) MarshalJSON() ([]byte, error) {
5499	type NoMethod ExtendedValue
5500	raw := NoMethod(*s)
5501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5502}
5503
5504func (s *ExtendedValue) UnmarshalJSON(data []byte) error {
5505	type NoMethod ExtendedValue
5506	var s1 struct {
5507		NumberValue gensupport.JSONFloat64 `json:"numberValue"`
5508		*NoMethod
5509	}
5510	s1.NoMethod = (*NoMethod)(s)
5511	if err := json.Unmarshal(data, &s1); err != nil {
5512		return err
5513	}
5514	s.NumberValue = float64(s1.NumberValue)
5515	return nil
5516}
5517
5518// FilterCriteria: Criteria for showing/hiding rows in a filter or
5519// filter view.
5520type FilterCriteria struct {
5521	// Condition: A condition that must be true for values to be
5522	// shown.
5523	// (This does not override hidden_values -- if a value is listed there,
5524	//  it will still be hidden.)
5525	Condition *BooleanCondition `json:"condition,omitempty"`
5526
5527	// HiddenValues: Values that should be hidden.
5528	HiddenValues []string `json:"hiddenValues,omitempty"`
5529
5530	// VisibleBackgroundColor: The background fill color to filter by; only
5531	// cells with this fill color are
5532	// shown. Mutually exclusive with visible_foreground_color.
5533	VisibleBackgroundColor *Color `json:"visibleBackgroundColor,omitempty"`
5534
5535	// VisibleBackgroundColorStyle: The background fill color to filter by;
5536	// only cells with this fill color are
5537	// shown. This field is mutually exclusive with
5538	// visible_foreground_color,
5539	// and must be set to an RGB-type color. If visible_background_color
5540	// is
5541	// also set, this field takes precedence.
5542	VisibleBackgroundColorStyle *ColorStyle `json:"visibleBackgroundColorStyle,omitempty"`
5543
5544	// VisibleForegroundColor: The foreground color to filter by; only cells
5545	// with this foreground color
5546	// are shown. Mutually exclusive with visible_background_color.
5547	VisibleForegroundColor *Color `json:"visibleForegroundColor,omitempty"`
5548
5549	// VisibleForegroundColorStyle: The foreground color to filter by; only
5550	// cells with this foreground color
5551	// are shown. This field is mutually exclusive
5552	// with
5553	// visible_background_color, and must be set to an RGB-type color.
5554	// If
5555	// visible_foreground_color is also set, this field takes precedence.
5556	VisibleForegroundColorStyle *ColorStyle `json:"visibleForegroundColorStyle,omitempty"`
5557
5558	// ForceSendFields is a list of field names (e.g. "Condition") to
5559	// unconditionally include in API requests. By default, fields with
5560	// empty values are omitted from API requests. However, any non-pointer,
5561	// non-interface field appearing in ForceSendFields will be sent to the
5562	// server regardless of whether the field is empty or not. This may be
5563	// used to include empty fields in Patch requests.
5564	ForceSendFields []string `json:"-"`
5565
5566	// NullFields is a list of field names (e.g. "Condition") to include in
5567	// API requests with the JSON null value. By default, fields with empty
5568	// values are omitted from API requests. However, any field with an
5569	// empty value appearing in NullFields will be sent to the server as
5570	// null. It is an error if a field in this list has a non-empty value.
5571	// This may be used to include null fields in Patch requests.
5572	NullFields []string `json:"-"`
5573}
5574
5575func (s *FilterCriteria) MarshalJSON() ([]byte, error) {
5576	type NoMethod FilterCriteria
5577	raw := NoMethod(*s)
5578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5579}
5580
5581// FilterView: A filter view.
5582type FilterView struct {
5583	// Criteria: The criteria for showing/hiding values per column.
5584	// The map's key is the column index, and the value is the criteria
5585	// for
5586	// that column.
5587	Criteria map[string]FilterCriteria `json:"criteria,omitempty"`
5588
5589	// FilterViewId: The ID of the filter view.
5590	FilterViewId int64 `json:"filterViewId,omitempty"`
5591
5592	// NamedRangeId: The named range this filter view is backed by, if
5593	// any.
5594	//
5595	// When writing, only one of range or named_range_id
5596	// may be set.
5597	NamedRangeId string `json:"namedRangeId,omitempty"`
5598
5599	// Range: The range this filter view covers.
5600	//
5601	// When writing, only one of range or named_range_id
5602	// may be set.
5603	Range *GridRange `json:"range,omitempty"`
5604
5605	// SortSpecs: The sort order per column. Later specifications are used
5606	// when values
5607	// are equal in the earlier specifications.
5608	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
5609
5610	// Title: The name of the filter view.
5611	Title string `json:"title,omitempty"`
5612
5613	// ForceSendFields is a list of field names (e.g. "Criteria") to
5614	// unconditionally include in API requests. By default, fields with
5615	// empty values are omitted from API requests. However, any non-pointer,
5616	// non-interface field appearing in ForceSendFields will be sent to the
5617	// server regardless of whether the field is empty or not. This may be
5618	// used to include empty fields in Patch requests.
5619	ForceSendFields []string `json:"-"`
5620
5621	// NullFields is a list of field names (e.g. "Criteria") to include in
5622	// API requests with the JSON null value. By default, fields with empty
5623	// values are omitted from API requests. However, any field with an
5624	// empty value appearing in NullFields will be sent to the server as
5625	// null. It is an error if a field in this list has a non-empty value.
5626	// This may be used to include null fields in Patch requests.
5627	NullFields []string `json:"-"`
5628}
5629
5630func (s *FilterView) MarshalJSON() ([]byte, error) {
5631	type NoMethod FilterView
5632	raw := NoMethod(*s)
5633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5634}
5635
5636// FindReplaceRequest: Finds and replaces data in cells over a range,
5637// sheet, or all sheets.
5638type FindReplaceRequest struct {
5639	// AllSheets: True to find/replace over all sheets.
5640	AllSheets bool `json:"allSheets,omitempty"`
5641
5642	// Find: The value to search.
5643	Find string `json:"find,omitempty"`
5644
5645	// IncludeFormulas: True if the search should include cells with
5646	// formulas.
5647	// False to skip cells with formulas.
5648	IncludeFormulas bool `json:"includeFormulas,omitempty"`
5649
5650	// MatchCase: True if the search is case sensitive.
5651	MatchCase bool `json:"matchCase,omitempty"`
5652
5653	// MatchEntireCell: True if the find value should match the entire cell.
5654	MatchEntireCell bool `json:"matchEntireCell,omitempty"`
5655
5656	// Range: The range to find/replace over.
5657	Range *GridRange `json:"range,omitempty"`
5658
5659	// Replacement: The value to use as the replacement.
5660	Replacement string `json:"replacement,omitempty"`
5661
5662	// SearchByRegex: True if the find value is a regex.
5663	// The regular expression and replacement should follow Java regex
5664	// rules
5665	// at
5666	// https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.
5667	// The replacement string is allowed to refer to capturing groups.
5668	// For example, if one cell has the contents "Google Sheets" and
5669	// another
5670	// has "Google Docs", then searching for "o.* (.*)" with a
5671	// replacement of
5672	// "$1 Rocks" would change the contents of the cells to
5673	// "GSheets Rocks" and "GDocs Rocks" respectively.
5674	SearchByRegex bool `json:"searchByRegex,omitempty"`
5675
5676	// SheetId: The sheet to find/replace over.
5677	SheetId int64 `json:"sheetId,omitempty"`
5678
5679	// ForceSendFields is a list of field names (e.g. "AllSheets") to
5680	// unconditionally include in API requests. By default, fields with
5681	// empty values are omitted from API requests. However, any non-pointer,
5682	// non-interface field appearing in ForceSendFields will be sent to the
5683	// server regardless of whether the field is empty or not. This may be
5684	// used to include empty fields in Patch requests.
5685	ForceSendFields []string `json:"-"`
5686
5687	// NullFields is a list of field names (e.g. "AllSheets") to include in
5688	// API requests with the JSON null value. By default, fields with empty
5689	// values are omitted from API requests. However, any field with an
5690	// empty value appearing in NullFields will be sent to the server as
5691	// null. It is an error if a field in this list has a non-empty value.
5692	// This may be used to include null fields in Patch requests.
5693	NullFields []string `json:"-"`
5694}
5695
5696func (s *FindReplaceRequest) MarshalJSON() ([]byte, error) {
5697	type NoMethod FindReplaceRequest
5698	raw := NoMethod(*s)
5699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5700}
5701
5702// FindReplaceResponse: The result of the find/replace.
5703type FindReplaceResponse struct {
5704	// FormulasChanged: The number of formula cells changed.
5705	FormulasChanged int64 `json:"formulasChanged,omitempty"`
5706
5707	// OccurrencesChanged: The number of occurrences (possibly multiple
5708	// within a cell) changed.
5709	// For example, if replacing "e" with "o" in "Google Sheets", this
5710	// would
5711	// be "3" because "Google Sheets" -> "Googlo Shoots".
5712	OccurrencesChanged int64 `json:"occurrencesChanged,omitempty"`
5713
5714	// RowsChanged: The number of rows changed.
5715	RowsChanged int64 `json:"rowsChanged,omitempty"`
5716
5717	// SheetsChanged: The number of sheets changed.
5718	SheetsChanged int64 `json:"sheetsChanged,omitempty"`
5719
5720	// ValuesChanged: The number of non-formula cells changed.
5721	ValuesChanged int64 `json:"valuesChanged,omitempty"`
5722
5723	// ForceSendFields is a list of field names (e.g. "FormulasChanged") to
5724	// unconditionally include in API requests. By default, fields with
5725	// empty values are omitted from API requests. However, any non-pointer,
5726	// non-interface field appearing in ForceSendFields will be sent to the
5727	// server regardless of whether the field is empty or not. This may be
5728	// used to include empty fields in Patch requests.
5729	ForceSendFields []string `json:"-"`
5730
5731	// NullFields is a list of field names (e.g. "FormulasChanged") to
5732	// include in API requests with the JSON null value. By default, fields
5733	// with empty values are omitted from API requests. However, any field
5734	// with an empty value appearing in NullFields will be sent to the
5735	// server as null. It is an error if a field in this list has a
5736	// non-empty value. This may be used to include null fields in Patch
5737	// requests.
5738	NullFields []string `json:"-"`
5739}
5740
5741func (s *FindReplaceResponse) MarshalJSON() ([]byte, error) {
5742	type NoMethod FindReplaceResponse
5743	raw := NoMethod(*s)
5744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5745}
5746
5747// GetSpreadsheetByDataFilterRequest: The request for retrieving a
5748// Spreadsheet.
5749type GetSpreadsheetByDataFilterRequest struct {
5750	// DataFilters: The DataFilters used to select which ranges to retrieve
5751	// from
5752	// the spreadsheet.
5753	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
5754
5755	// IncludeGridData: True if grid data should be returned.
5756	// This parameter is ignored if a field mask was set in the request.
5757	IncludeGridData bool `json:"includeGridData,omitempty"`
5758
5759	// ForceSendFields is a list of field names (e.g. "DataFilters") to
5760	// unconditionally include in API requests. By default, fields with
5761	// empty values are omitted from API requests. However, any non-pointer,
5762	// non-interface field appearing in ForceSendFields will be sent to the
5763	// server regardless of whether the field is empty or not. This may be
5764	// used to include empty fields in Patch requests.
5765	ForceSendFields []string `json:"-"`
5766
5767	// NullFields is a list of field names (e.g. "DataFilters") to include
5768	// in API requests with the JSON null value. By default, fields with
5769	// empty values are omitted from API requests. However, any field with
5770	// an empty value appearing in NullFields will be sent to the server as
5771	// null. It is an error if a field in this list has a non-empty value.
5772	// This may be used to include null fields in Patch requests.
5773	NullFields []string `json:"-"`
5774}
5775
5776func (s *GetSpreadsheetByDataFilterRequest) MarshalJSON() ([]byte, error) {
5777	type NoMethod GetSpreadsheetByDataFilterRequest
5778	raw := NoMethod(*s)
5779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5780}
5781
5782// GradientRule: A rule that applies a gradient color scale format,
5783// based on
5784// the interpolation points listed. The format of a cell will vary
5785// based on its contents as compared to the values of the
5786// interpolation
5787// points.
5788type GradientRule struct {
5789	// Maxpoint: The final interpolation point.
5790	Maxpoint *InterpolationPoint `json:"maxpoint,omitempty"`
5791
5792	// Midpoint: An optional midway interpolation point.
5793	Midpoint *InterpolationPoint `json:"midpoint,omitempty"`
5794
5795	// Minpoint: The starting interpolation point.
5796	Minpoint *InterpolationPoint `json:"minpoint,omitempty"`
5797
5798	// ForceSendFields is a list of field names (e.g. "Maxpoint") to
5799	// unconditionally include in API requests. By default, fields with
5800	// empty values are omitted from API requests. However, any non-pointer,
5801	// non-interface field appearing in ForceSendFields will be sent to the
5802	// server regardless of whether the field is empty or not. This may be
5803	// used to include empty fields in Patch requests.
5804	ForceSendFields []string `json:"-"`
5805
5806	// NullFields is a list of field names (e.g. "Maxpoint") to include in
5807	// API requests with the JSON null value. By default, fields with empty
5808	// values are omitted from API requests. However, any field with an
5809	// empty value appearing in NullFields will be sent to the server as
5810	// null. It is an error if a field in this list has a non-empty value.
5811	// This may be used to include null fields in Patch requests.
5812	NullFields []string `json:"-"`
5813}
5814
5815func (s *GradientRule) MarshalJSON() ([]byte, error) {
5816	type NoMethod GradientRule
5817	raw := NoMethod(*s)
5818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5819}
5820
5821// GridCoordinate: A coordinate in a sheet.
5822// All indexes are zero-based.
5823type GridCoordinate struct {
5824	// ColumnIndex: The column index of the coordinate.
5825	ColumnIndex int64 `json:"columnIndex,omitempty"`
5826
5827	// RowIndex: The row index of the coordinate.
5828	RowIndex int64 `json:"rowIndex,omitempty"`
5829
5830	// SheetId: The sheet this coordinate is on.
5831	SheetId int64 `json:"sheetId,omitempty"`
5832
5833	// ForceSendFields is a list of field names (e.g. "ColumnIndex") to
5834	// unconditionally include in API requests. By default, fields with
5835	// empty values are omitted from API requests. However, any non-pointer,
5836	// non-interface field appearing in ForceSendFields will be sent to the
5837	// server regardless of whether the field is empty or not. This may be
5838	// used to include empty fields in Patch requests.
5839	ForceSendFields []string `json:"-"`
5840
5841	// NullFields is a list of field names (e.g. "ColumnIndex") to include
5842	// in API requests with the JSON null value. By default, fields with
5843	// empty values are omitted from API requests. However, any field with
5844	// an empty value appearing in NullFields will be sent to the server as
5845	// null. It is an error if a field in this list has a non-empty value.
5846	// This may be used to include null fields in Patch requests.
5847	NullFields []string `json:"-"`
5848}
5849
5850func (s *GridCoordinate) MarshalJSON() ([]byte, error) {
5851	type NoMethod GridCoordinate
5852	raw := NoMethod(*s)
5853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5854}
5855
5856// GridData: Data in the grid, as well as metadata about the dimensions.
5857type GridData struct {
5858	// ColumnMetadata: Metadata about the requested columns in the grid,
5859	// starting with the column
5860	// in start_column.
5861	ColumnMetadata []*DimensionProperties `json:"columnMetadata,omitempty"`
5862
5863	// RowData: The data in the grid, one entry per row,
5864	// starting with the row in startRow.
5865	// The values in RowData will correspond to columns starting
5866	// at start_column.
5867	RowData []*RowData `json:"rowData,omitempty"`
5868
5869	// RowMetadata: Metadata about the requested rows in the grid, starting
5870	// with the row
5871	// in start_row.
5872	RowMetadata []*DimensionProperties `json:"rowMetadata,omitempty"`
5873
5874	// StartColumn: The first column this GridData refers to, zero-based.
5875	StartColumn int64 `json:"startColumn,omitempty"`
5876
5877	// StartRow: The first row this GridData refers to, zero-based.
5878	StartRow int64 `json:"startRow,omitempty"`
5879
5880	// ForceSendFields is a list of field names (e.g. "ColumnMetadata") to
5881	// unconditionally include in API requests. By default, fields with
5882	// empty values are omitted from API requests. However, any non-pointer,
5883	// non-interface field appearing in ForceSendFields will be sent to the
5884	// server regardless of whether the field is empty or not. This may be
5885	// used to include empty fields in Patch requests.
5886	ForceSendFields []string `json:"-"`
5887
5888	// NullFields is a list of field names (e.g. "ColumnMetadata") to
5889	// include in API requests with the JSON null value. By default, fields
5890	// with empty values are omitted from API requests. However, any field
5891	// with an empty value appearing in NullFields will be sent to the
5892	// server as null. It is an error if a field in this list has a
5893	// non-empty value. This may be used to include null fields in Patch
5894	// requests.
5895	NullFields []string `json:"-"`
5896}
5897
5898func (s *GridData) MarshalJSON() ([]byte, error) {
5899	type NoMethod GridData
5900	raw := NoMethod(*s)
5901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5902}
5903
5904// GridProperties: Properties of a grid.
5905type GridProperties struct {
5906	// ColumnCount: The number of columns in the grid.
5907	ColumnCount int64 `json:"columnCount,omitempty"`
5908
5909	// ColumnGroupControlAfter: True if the column grouping control toggle
5910	// is shown after the group.
5911	ColumnGroupControlAfter bool `json:"columnGroupControlAfter,omitempty"`
5912
5913	// FrozenColumnCount: The number of columns that are frozen in the grid.
5914	FrozenColumnCount int64 `json:"frozenColumnCount,omitempty"`
5915
5916	// FrozenRowCount: The number of rows that are frozen in the grid.
5917	FrozenRowCount int64 `json:"frozenRowCount,omitempty"`
5918
5919	// HideGridlines: True if the grid isn't showing gridlines in the UI.
5920	HideGridlines bool `json:"hideGridlines,omitempty"`
5921
5922	// RowCount: The number of rows in the grid.
5923	RowCount int64 `json:"rowCount,omitempty"`
5924
5925	// RowGroupControlAfter: True if the row grouping control toggle is
5926	// shown after the group.
5927	RowGroupControlAfter bool `json:"rowGroupControlAfter,omitempty"`
5928
5929	// ForceSendFields is a list of field names (e.g. "ColumnCount") to
5930	// unconditionally include in API requests. By default, fields with
5931	// empty values are omitted from API requests. However, any non-pointer,
5932	// non-interface field appearing in ForceSendFields will be sent to the
5933	// server regardless of whether the field is empty or not. This may be
5934	// used to include empty fields in Patch requests.
5935	ForceSendFields []string `json:"-"`
5936
5937	// NullFields is a list of field names (e.g. "ColumnCount") to include
5938	// in API requests with the JSON null value. By default, fields with
5939	// empty values are omitted from API requests. However, any field with
5940	// an empty value appearing in NullFields will be sent to the server as
5941	// null. It is an error if a field in this list has a non-empty value.
5942	// This may be used to include null fields in Patch requests.
5943	NullFields []string `json:"-"`
5944}
5945
5946func (s *GridProperties) MarshalJSON() ([]byte, error) {
5947	type NoMethod GridProperties
5948	raw := NoMethod(*s)
5949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5950}
5951
5952// GridRange: A range on a sheet.
5953// All indexes are zero-based.
5954// Indexes are half open, e.g the start index is inclusive
5955// and the end index is exclusive -- [start_index, end_index).
5956// Missing indexes indicate the range is unbounded on that side.
5957//
5958// For example, if "Sheet1" is sheet ID 0, then:
5959//
5960//   `Sheet1!A1:A1 == sheet_id: 0,
5961//                   start_row_index: 0, end_row_index: 1,
5962//                   start_column_index: 0, end_column_index: 1`
5963//
5964//   `Sheet1!A3:B4 == sheet_id: 0,
5965//                   start_row_index: 2, end_row_index: 4,
5966//                   start_column_index: 0, end_column_index: 2`
5967//
5968//   `Sheet1!A:B == sheet_id: 0,
5969//                 start_column_index: 0, end_column_index: 2`
5970//
5971//   `Sheet1!A5:B == sheet_id: 0,
5972//                  start_row_index: 4,
5973//                  start_column_index: 0, end_column_index: 2`
5974//
5975//   `Sheet1 == sheet_id:0`
5976//
5977// The start index must always be less than or equal to the end
5978// index.
5979// If the start index equals the end index, then the range is
5980// empty.
5981// Empty ranges are typically not meaningful and are usually rendered in
5982// the
5983// UI as `#REF!`.
5984type GridRange struct {
5985	// EndColumnIndex: The end column (exclusive) of the range, or not set
5986	// if unbounded.
5987	EndColumnIndex int64 `json:"endColumnIndex,omitempty"`
5988
5989	// EndRowIndex: The end row (exclusive) of the range, or not set if
5990	// unbounded.
5991	EndRowIndex int64 `json:"endRowIndex,omitempty"`
5992
5993	// SheetId: The sheet this range is on.
5994	SheetId int64 `json:"sheetId,omitempty"`
5995
5996	// StartColumnIndex: The start column (inclusive) of the range, or not
5997	// set if unbounded.
5998	StartColumnIndex int64 `json:"startColumnIndex,omitempty"`
5999
6000	// StartRowIndex: The start row (inclusive) of the range, or not set if
6001	// unbounded.
6002	StartRowIndex int64 `json:"startRowIndex,omitempty"`
6003
6004	// ForceSendFields is a list of field names (e.g. "EndColumnIndex") to
6005	// unconditionally include in API requests. By default, fields with
6006	// empty values are omitted from API requests. However, any non-pointer,
6007	// non-interface field appearing in ForceSendFields will be sent to the
6008	// server regardless of whether the field is empty or not. This may be
6009	// used to include empty fields in Patch requests.
6010	ForceSendFields []string `json:"-"`
6011
6012	// NullFields is a list of field names (e.g. "EndColumnIndex") to
6013	// include in API requests with the JSON null value. By default, fields
6014	// with empty values are omitted from API requests. However, any field
6015	// with an empty value appearing in NullFields will be sent to the
6016	// server as null. It is an error if a field in this list has a
6017	// non-empty value. This may be used to include null fields in Patch
6018	// requests.
6019	NullFields []string `json:"-"`
6020}
6021
6022func (s *GridRange) MarshalJSON() ([]byte, error) {
6023	type NoMethod GridRange
6024	raw := NoMethod(*s)
6025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6026}
6027
6028// HistogramChartSpec: A <a
6029// href="/chart/interactive/docs/gallery/histogram">histogram
6030// chart</a>.
6031// A histogram chart groups data items into bins, displaying each bin as
6032// a
6033// column of stacked items.  Histograms are used to display the
6034// distribution
6035// of a dataset.  Each column of items represents a range into which
6036// those
6037// items fall.  The number of bins can be chosen automatically or
6038// specified
6039// explicitly.
6040type HistogramChartSpec struct {
6041	// BucketSize: By default the bucket size (the range of values stacked
6042	// in a single
6043	// column) is chosen automatically, but it may be overridden here.
6044	// E.g., A bucket size of 1.5 results in buckets from 0 - 1.5, 1.5 -
6045	// 3.0, etc.
6046	// Cannot be negative.
6047	// This field is optional.
6048	BucketSize float64 `json:"bucketSize,omitempty"`
6049
6050	// LegendPosition: The position of the chart legend.
6051	//
6052	// Possible values:
6053	//   "HISTOGRAM_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do
6054	// not use.
6055	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
6056	// chart.
6057	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
6058	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
6059	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
6060	//   "NO_LEGEND" - No legend is rendered.
6061	//   "INSIDE_LEGEND" - The legend is rendered inside the chart area.
6062	LegendPosition string `json:"legendPosition,omitempty"`
6063
6064	// OutlierPercentile: The outlier percentile is used to ensure that
6065	// outliers do not adversely
6066	// affect the calculation of bucket sizes.  For example, setting an
6067	// outlier
6068	// percentile of 0.05 indicates that the top and bottom 5% of values
6069	// when
6070	// calculating buckets.  The values are still included in the chart,
6071	// they will
6072	// be added to the first or last buckets instead of their own
6073	// buckets.
6074	// Must be between 0.0 and 0.5.
6075	OutlierPercentile float64 `json:"outlierPercentile,omitempty"`
6076
6077	// Series: The series for a histogram may be either a single series of
6078	// values to be
6079	// bucketed or multiple series, each of the same length, containing the
6080	// name
6081	// of the series followed by the values to be bucketed for that series.
6082	Series []*HistogramSeries `json:"series,omitempty"`
6083
6084	// ShowItemDividers: Whether horizontal divider lines should be
6085	// displayed between items in each
6086	// column.
6087	ShowItemDividers bool `json:"showItemDividers,omitempty"`
6088
6089	// ForceSendFields is a list of field names (e.g. "BucketSize") to
6090	// unconditionally include in API requests. By default, fields with
6091	// empty values are omitted from API requests. However, any non-pointer,
6092	// non-interface field appearing in ForceSendFields will be sent to the
6093	// server regardless of whether the field is empty or not. This may be
6094	// used to include empty fields in Patch requests.
6095	ForceSendFields []string `json:"-"`
6096
6097	// NullFields is a list of field names (e.g. "BucketSize") to include in
6098	// API requests with the JSON null value. By default, fields with empty
6099	// values are omitted from API requests. However, any field with an
6100	// empty value appearing in NullFields will be sent to the server as
6101	// null. It is an error if a field in this list has a non-empty value.
6102	// This may be used to include null fields in Patch requests.
6103	NullFields []string `json:"-"`
6104}
6105
6106func (s *HistogramChartSpec) MarshalJSON() ([]byte, error) {
6107	type NoMethod HistogramChartSpec
6108	raw := NoMethod(*s)
6109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6110}
6111
6112func (s *HistogramChartSpec) UnmarshalJSON(data []byte) error {
6113	type NoMethod HistogramChartSpec
6114	var s1 struct {
6115		BucketSize        gensupport.JSONFloat64 `json:"bucketSize"`
6116		OutlierPercentile gensupport.JSONFloat64 `json:"outlierPercentile"`
6117		*NoMethod
6118	}
6119	s1.NoMethod = (*NoMethod)(s)
6120	if err := json.Unmarshal(data, &s1); err != nil {
6121		return err
6122	}
6123	s.BucketSize = float64(s1.BucketSize)
6124	s.OutlierPercentile = float64(s1.OutlierPercentile)
6125	return nil
6126}
6127
6128// HistogramRule: Allows you to organize the numeric values in a source
6129// data column into
6130// buckets of a constant size. All values from HistogramRule.start
6131// to
6132// HistogramRule.end are placed into groups of
6133// size
6134// HistogramRule.interval. In addition, all values
6135// below
6136// HistogramRule.start are placed in one group, and all values
6137// above
6138// HistogramRule.end are placed in another. Only
6139// HistogramRule.interval is required, though if HistogramRule.start
6140// and HistogramRule.end are both provided, HistogramRule.start must
6141// be less than HistogramRule.end. For example, a pivot table
6142// showing
6143// average purchase amount by age that has 50+ rows:
6144//
6145//     +-----+-------------------+
6146//     | Age | AVERAGE of Amount |
6147//     +-----+-------------------+
6148//     | 16  |            $27.13 |
6149//     | 17  |             $5.24 |
6150//     | 18  |            $20.15 |
6151//     ...
6152//     +-----+-------------------+
6153// could be turned into a pivot table that looks like the one below
6154// by
6155// applying a histogram group rule with a HistogramRule.start of 25,
6156// an HistogramRule.interval of 20, and an HistogramRule.end
6157// of 65.
6158//
6159//     +-------------+-------------------+
6160//     | Grouped Age | AVERAGE of Amount |
6161//     +-------------+-------------------+
6162//     | < 25        |            $19.34 |
6163//     | 25-45       |            $31.43 |
6164//     | 45-65       |            $35.87 |
6165//     | > 65        |            $27.55 |
6166//     +-------------+-------------------+
6167//     | Grand Total |            $29.12 |
6168//     +-------------+-------------------+
6169type HistogramRule struct {
6170	// End: The maximum value at which items are placed into buckets
6171	// of constant size. Values above end are lumped into a single
6172	// bucket.
6173	// This field is optional.
6174	End float64 `json:"end,omitempty"`
6175
6176	// Interval: The size of the buckets that are created. Must be positive.
6177	Interval float64 `json:"interval,omitempty"`
6178
6179	// Start: The minimum value at which items are placed into buckets
6180	// of constant size. Values below start are lumped into a single
6181	// bucket.
6182	// This field is optional.
6183	Start float64 `json:"start,omitempty"`
6184
6185	// ForceSendFields is a list of field names (e.g. "End") to
6186	// unconditionally include in API requests. By default, fields with
6187	// empty values are omitted from API requests. However, any non-pointer,
6188	// non-interface field appearing in ForceSendFields will be sent to the
6189	// server regardless of whether the field is empty or not. This may be
6190	// used to include empty fields in Patch requests.
6191	ForceSendFields []string `json:"-"`
6192
6193	// NullFields is a list of field names (e.g. "End") to include in API
6194	// requests with the JSON null value. By default, fields with empty
6195	// values are omitted from API requests. However, any field with an
6196	// empty value appearing in NullFields will be sent to the server as
6197	// null. It is an error if a field in this list has a non-empty value.
6198	// This may be used to include null fields in Patch requests.
6199	NullFields []string `json:"-"`
6200}
6201
6202func (s *HistogramRule) MarshalJSON() ([]byte, error) {
6203	type NoMethod HistogramRule
6204	raw := NoMethod(*s)
6205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6206}
6207
6208func (s *HistogramRule) UnmarshalJSON(data []byte) error {
6209	type NoMethod HistogramRule
6210	var s1 struct {
6211		End      gensupport.JSONFloat64 `json:"end"`
6212		Interval gensupport.JSONFloat64 `json:"interval"`
6213		Start    gensupport.JSONFloat64 `json:"start"`
6214		*NoMethod
6215	}
6216	s1.NoMethod = (*NoMethod)(s)
6217	if err := json.Unmarshal(data, &s1); err != nil {
6218		return err
6219	}
6220	s.End = float64(s1.End)
6221	s.Interval = float64(s1.Interval)
6222	s.Start = float64(s1.Start)
6223	return nil
6224}
6225
6226// HistogramSeries: A histogram series containing the series color and
6227// data.
6228type HistogramSeries struct {
6229	// BarColor: The color of the column representing this series in each
6230	// bucket.
6231	// This field is optional.
6232	BarColor *Color `json:"barColor,omitempty"`
6233
6234	// BarColorStyle: The color of the column representing this series in
6235	// each bucket.
6236	// This field is optional.
6237	// If bar_color is also set, this field takes precedence.
6238	BarColorStyle *ColorStyle `json:"barColorStyle,omitempty"`
6239
6240	// Data: The data for this histogram series.
6241	Data *ChartData `json:"data,omitempty"`
6242
6243	// ForceSendFields is a list of field names (e.g. "BarColor") to
6244	// unconditionally include in API requests. By default, fields with
6245	// empty values are omitted from API requests. However, any non-pointer,
6246	// non-interface field appearing in ForceSendFields will be sent to the
6247	// server regardless of whether the field is empty or not. This may be
6248	// used to include empty fields in Patch requests.
6249	ForceSendFields []string `json:"-"`
6250
6251	// NullFields is a list of field names (e.g. "BarColor") to include in
6252	// API requests with the JSON null value. By default, fields with empty
6253	// values are omitted from API requests. However, any field with an
6254	// empty value appearing in NullFields will be sent to the server as
6255	// null. It is an error if a field in this list has a non-empty value.
6256	// This may be used to include null fields in Patch requests.
6257	NullFields []string `json:"-"`
6258}
6259
6260func (s *HistogramSeries) MarshalJSON() ([]byte, error) {
6261	type NoMethod HistogramSeries
6262	raw := NoMethod(*s)
6263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6264}
6265
6266// InsertDimensionRequest: Inserts rows or columns in a sheet at a
6267// particular index.
6268type InsertDimensionRequest struct {
6269	// InheritFromBefore: Whether dimension properties should be extended
6270	// from the dimensions
6271	// before or after the newly inserted dimensions.
6272	// True to inherit from the dimensions before (in which case the
6273	// start
6274	// index must be greater than 0), and false to inherit from the
6275	// dimensions
6276	// after.
6277	//
6278	// For example, if row index 0 has red background and row index 1
6279	// has a green background, then inserting 2 rows at index 1 can
6280	// inherit
6281	// either the green or red background.  If `inheritFromBefore` is
6282	// true,
6283	// the two new rows will be red (because the row before the insertion
6284	// point
6285	// was red), whereas if `inheritFromBefore` is false, the two new rows
6286	// will
6287	// be green (because the row after the insertion point was green).
6288	InheritFromBefore bool `json:"inheritFromBefore,omitempty"`
6289
6290	// Range: The dimensions to insert.  Both the start and end indexes must
6291	// be bounded.
6292	Range *DimensionRange `json:"range,omitempty"`
6293
6294	// ForceSendFields is a list of field names (e.g. "InheritFromBefore")
6295	// to unconditionally include in API requests. By default, fields with
6296	// empty values are omitted from API requests. However, any non-pointer,
6297	// non-interface field appearing in ForceSendFields will be sent to the
6298	// server regardless of whether the field is empty or not. This may be
6299	// used to include empty fields in Patch requests.
6300	ForceSendFields []string `json:"-"`
6301
6302	// NullFields is a list of field names (e.g. "InheritFromBefore") to
6303	// include in API requests with the JSON null value. By default, fields
6304	// with empty values are omitted from API requests. However, any field
6305	// with an empty value appearing in NullFields will be sent to the
6306	// server as null. It is an error if a field in this list has a
6307	// non-empty value. This may be used to include null fields in Patch
6308	// requests.
6309	NullFields []string `json:"-"`
6310}
6311
6312func (s *InsertDimensionRequest) MarshalJSON() ([]byte, error) {
6313	type NoMethod InsertDimensionRequest
6314	raw := NoMethod(*s)
6315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6316}
6317
6318// InsertRangeRequest: Inserts cells into a range, shifting the existing
6319// cells over or down.
6320type InsertRangeRequest struct {
6321	// Range: The range to insert new cells into.
6322	Range *GridRange `json:"range,omitempty"`
6323
6324	// ShiftDimension: The dimension which will be shifted when inserting
6325	// cells.
6326	// If ROWS, existing cells will be shifted down.
6327	// If COLUMNS, existing cells will be shifted right.
6328	//
6329	// Possible values:
6330	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
6331	//   "ROWS" - Operates on the rows of a sheet.
6332	//   "COLUMNS" - Operates on the columns of a sheet.
6333	ShiftDimension string `json:"shiftDimension,omitempty"`
6334
6335	// ForceSendFields is a list of field names (e.g. "Range") to
6336	// unconditionally include in API requests. By default, fields with
6337	// empty values are omitted from API requests. However, any non-pointer,
6338	// non-interface field appearing in ForceSendFields will be sent to the
6339	// server regardless of whether the field is empty or not. This may be
6340	// used to include empty fields in Patch requests.
6341	ForceSendFields []string `json:"-"`
6342
6343	// NullFields is a list of field names (e.g. "Range") to include in API
6344	// requests with the JSON null value. By default, fields with empty
6345	// values are omitted from API requests. However, any field with an
6346	// empty value appearing in NullFields will be sent to the server as
6347	// null. It is an error if a field in this list has a non-empty value.
6348	// This may be used to include null fields in Patch requests.
6349	NullFields []string `json:"-"`
6350}
6351
6352func (s *InsertRangeRequest) MarshalJSON() ([]byte, error) {
6353	type NoMethod InsertRangeRequest
6354	raw := NoMethod(*s)
6355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6356}
6357
6358// InterpolationPoint: A single interpolation point on a gradient
6359// conditional format.
6360// These pin the gradient color scale according to the color,
6361// type and value chosen.
6362type InterpolationPoint struct {
6363	// Color: The color this interpolation point should use.
6364	Color *Color `json:"color,omitempty"`
6365
6366	// ColorStyle: The color this interpolation point should use.
6367	// If color is also set, this field takes precedence.
6368	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
6369
6370	// Type: How the value should be interpreted.
6371	//
6372	// Possible values:
6373	//   "INTERPOLATION_POINT_TYPE_UNSPECIFIED" - The default value, do not
6374	// use.
6375	//   "MIN" - The interpolation point uses the minimum value in the
6376	// cells over the range of the conditional format.
6377	//   "MAX" - The interpolation point uses the maximum value in the
6378	// cells over the range of the conditional format.
6379	//   "NUMBER" - The interpolation point uses exactly the value
6380	// in
6381	// InterpolationPoint.value.
6382	//   "PERCENT" - The interpolation point is the given percentage
6383	// over
6384	// all the cells in the range of the conditional format.
6385	// This is equivalent to NUMBER if the value was:
6386	// `=(MAX(FLATTEN(range)) * (value / 100))
6387	//   + (MIN(FLATTEN(range)) * (1 - (value / 100)))`
6388	// (where errors in the range are ignored when flattening).
6389	//   "PERCENTILE" - The interpolation point is the given percentile
6390	// over all the cells in the range of the conditional format.
6391	// This is equivalent to NUMBER if the value
6392	// was:
6393	// `=PERCENTILE(FLATTEN(range), value / 100)`
6394	// (where errors in the range are ignored when flattening).
6395	Type string `json:"type,omitempty"`
6396
6397	// Value: The value this interpolation point uses.  May be a
6398	// formula.
6399	// Unused if type is MIN or
6400	// MAX.
6401	Value string `json:"value,omitempty"`
6402
6403	// ForceSendFields is a list of field names (e.g. "Color") to
6404	// unconditionally include in API requests. By default, fields with
6405	// empty values are omitted from API requests. However, any non-pointer,
6406	// non-interface field appearing in ForceSendFields will be sent to the
6407	// server regardless of whether the field is empty or not. This may be
6408	// used to include empty fields in Patch requests.
6409	ForceSendFields []string `json:"-"`
6410
6411	// NullFields is a list of field names (e.g. "Color") to include in API
6412	// requests with the JSON null value. By default, fields with empty
6413	// values are omitted from API requests. However, any field with an
6414	// empty value appearing in NullFields will be sent to the server as
6415	// null. It is an error if a field in this list has a non-empty value.
6416	// This may be used to include null fields in Patch requests.
6417	NullFields []string `json:"-"`
6418}
6419
6420func (s *InterpolationPoint) MarshalJSON() ([]byte, error) {
6421	type NoMethod InterpolationPoint
6422	raw := NoMethod(*s)
6423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6424}
6425
6426// IterativeCalculationSettings: Settings to control how circular
6427// dependencies are resolved with iterative
6428// calculation.
6429type IterativeCalculationSettings struct {
6430	// ConvergenceThreshold: When iterative calculation is enabled and
6431	// successive results differ by
6432	// less than this threshold value, the calculation rounds stop.
6433	ConvergenceThreshold float64 `json:"convergenceThreshold,omitempty"`
6434
6435	// MaxIterations: When iterative calculation is enabled, the maximum
6436	// number of calculation
6437	// rounds to perform.
6438	MaxIterations int64 `json:"maxIterations,omitempty"`
6439
6440	// ForceSendFields is a list of field names (e.g.
6441	// "ConvergenceThreshold") to unconditionally include in API requests.
6442	// By default, fields with empty values are omitted from API requests.
6443	// However, any non-pointer, non-interface field appearing in
6444	// ForceSendFields will be sent to the server regardless of whether the
6445	// field is empty or not. This may be used to include empty fields in
6446	// Patch requests.
6447	ForceSendFields []string `json:"-"`
6448
6449	// NullFields is a list of field names (e.g. "ConvergenceThreshold") to
6450	// include in API requests with the JSON null value. By default, fields
6451	// with empty values are omitted from API requests. However, any field
6452	// with an empty value appearing in NullFields will be sent to the
6453	// server as null. It is an error if a field in this list has a
6454	// non-empty value. This may be used to include null fields in Patch
6455	// requests.
6456	NullFields []string `json:"-"`
6457}
6458
6459func (s *IterativeCalculationSettings) MarshalJSON() ([]byte, error) {
6460	type NoMethod IterativeCalculationSettings
6461	raw := NoMethod(*s)
6462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6463}
6464
6465func (s *IterativeCalculationSettings) UnmarshalJSON(data []byte) error {
6466	type NoMethod IterativeCalculationSettings
6467	var s1 struct {
6468		ConvergenceThreshold gensupport.JSONFloat64 `json:"convergenceThreshold"`
6469		*NoMethod
6470	}
6471	s1.NoMethod = (*NoMethod)(s)
6472	if err := json.Unmarshal(data, &s1); err != nil {
6473		return err
6474	}
6475	s.ConvergenceThreshold = float64(s1.ConvergenceThreshold)
6476	return nil
6477}
6478
6479// KeyValueFormat: Formatting options for key value.
6480type KeyValueFormat struct {
6481	// Position: Specifies the horizontal text positioning of key
6482	// value.
6483	// This field is optional. If not specified, default positioning is
6484	// used.
6485	Position *TextPosition `json:"position,omitempty"`
6486
6487	// TextFormat: Text formatting options for key value.
6488	TextFormat *TextFormat `json:"textFormat,omitempty"`
6489
6490	// ForceSendFields is a list of field names (e.g. "Position") to
6491	// unconditionally include in API requests. By default, fields with
6492	// empty values are omitted from API requests. However, any non-pointer,
6493	// non-interface field appearing in ForceSendFields will be sent to the
6494	// server regardless of whether the field is empty or not. This may be
6495	// used to include empty fields in Patch requests.
6496	ForceSendFields []string `json:"-"`
6497
6498	// NullFields is a list of field names (e.g. "Position") to include in
6499	// API requests with the JSON null value. By default, fields with empty
6500	// values are omitted from API requests. However, any field with an
6501	// empty value appearing in NullFields will be sent to the server as
6502	// null. It is an error if a field in this list has a non-empty value.
6503	// This may be used to include null fields in Patch requests.
6504	NullFields []string `json:"-"`
6505}
6506
6507func (s *KeyValueFormat) MarshalJSON() ([]byte, error) {
6508	type NoMethod KeyValueFormat
6509	raw := NoMethod(*s)
6510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6511}
6512
6513// LineStyle: Properties that describe the style of a line.
6514type LineStyle struct {
6515	// Type: The dash type of the line.
6516	//
6517	// Possible values:
6518	//   "LINE_DASH_TYPE_UNSPECIFIED" - Default value, do not use.
6519	//   "INVISIBLE" - No dash type, which is equivalent to a non-visible
6520	// line.
6521	//   "CUSTOM" - A custom dash for a line. Modifying the exact custom
6522	// dash style is
6523	// currently unsupported.
6524	//   "SOLID" - A solid line.
6525	//   "DOTTED" - A dotted line.
6526	//   "MEDIUM_DASHED" - A dashed line where the dashes have "medium"
6527	// length.
6528	//   "MEDIUM_DASHED_DOTTED" - A line that alternates between a "medium"
6529	// dash and a dot.
6530	//   "LONG_DASHED" - A dashed line where the dashes have "long" length.
6531	//   "LONG_DASHED_DOTTED" - A line that alternates between a "long" dash
6532	// and a dot.
6533	Type string `json:"type,omitempty"`
6534
6535	// Width: The thickness of the line, in px.
6536	Width int64 `json:"width,omitempty"`
6537
6538	// ForceSendFields is a list of field names (e.g. "Type") to
6539	// unconditionally include in API requests. By default, fields with
6540	// empty values are omitted from API requests. However, any non-pointer,
6541	// non-interface field appearing in ForceSendFields will be sent to the
6542	// server regardless of whether the field is empty or not. This may be
6543	// used to include empty fields in Patch requests.
6544	ForceSendFields []string `json:"-"`
6545
6546	// NullFields is a list of field names (e.g. "Type") to include in API
6547	// requests with the JSON null value. By default, fields with empty
6548	// values are omitted from API requests. However, any field with an
6549	// empty value appearing in NullFields will be sent to the server as
6550	// null. It is an error if a field in this list has a non-empty value.
6551	// This may be used to include null fields in Patch requests.
6552	NullFields []string `json:"-"`
6553}
6554
6555func (s *LineStyle) MarshalJSON() ([]byte, error) {
6556	type NoMethod LineStyle
6557	raw := NoMethod(*s)
6558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6559}
6560
6561// ManualRule: Allows you to manually organize the values in a source
6562// data column into
6563// buckets with names of your choosing. For example, a pivot table
6564// that
6565// aggregates population by state:
6566//
6567//     +-------+-------------------+
6568//     | State | SUM of Population |
6569//     +-------+-------------------+
6570//     | AK    |               0.7 |
6571//     | AL    |               4.8 |
6572//     | AR    |               2.9 |
6573//     ...
6574//     +-------+-------------------+
6575// could be turned into a pivot table that aggregates population by time
6576// zone
6577// by providing a list of groups (for example, groupName =
6578// 'Central',
6579// items = ['AL', 'AR', 'IA', ...]) to a manual group rule.
6580// Note that a similar effect could be achieved by adding a time zone
6581// column
6582// to the source data and adjusting the pivot table.
6583//
6584//     +-----------+-------------------+
6585//     | Time Zone | SUM of Population |
6586//     +-----------+-------------------+
6587//     | Central   |             106.3 |
6588//     | Eastern   |             151.9 |
6589//     | Mountain  |              17.4 |
6590//     ...
6591//     +-----------+-------------------+
6592type ManualRule struct {
6593	// Groups: The list of group names and the corresponding items from the
6594	// source data
6595	// that map to each group name.
6596	Groups []*ManualRuleGroup `json:"groups,omitempty"`
6597
6598	// ForceSendFields is a list of field names (e.g. "Groups") to
6599	// unconditionally include in API requests. By default, fields with
6600	// empty values are omitted from API requests. However, any non-pointer,
6601	// non-interface field appearing in ForceSendFields will be sent to the
6602	// server regardless of whether the field is empty or not. This may be
6603	// used to include empty fields in Patch requests.
6604	ForceSendFields []string `json:"-"`
6605
6606	// NullFields is a list of field names (e.g. "Groups") to include in API
6607	// requests with the JSON null value. By default, fields with empty
6608	// values are omitted from API requests. However, any field with an
6609	// empty value appearing in NullFields will be sent to the server as
6610	// null. It is an error if a field in this list has a non-empty value.
6611	// This may be used to include null fields in Patch requests.
6612	NullFields []string `json:"-"`
6613}
6614
6615func (s *ManualRule) MarshalJSON() ([]byte, error) {
6616	type NoMethod ManualRule
6617	raw := NoMethod(*s)
6618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6619}
6620
6621// ManualRuleGroup: A group name and a list of items from the source
6622// data that should be placed
6623// in the group with this name.
6624type ManualRuleGroup struct {
6625	// GroupName: The group name, which must be a string. Each group in a
6626	// given
6627	// ManualRule must have a unique group name.
6628	GroupName *ExtendedValue `json:"groupName,omitempty"`
6629
6630	// Items: The items in the source data that should be placed into this
6631	// group. Each
6632	// item may be a string, number, or boolean. Items may appear in at most
6633	// one
6634	// group within a given ManualRule. Items that do not appear in
6635	// any
6636	// group will appear on their own.
6637	Items []*ExtendedValue `json:"items,omitempty"`
6638
6639	// ForceSendFields is a list of field names (e.g. "GroupName") to
6640	// unconditionally include in API requests. By default, fields with
6641	// empty values are omitted from API requests. However, any non-pointer,
6642	// non-interface field appearing in ForceSendFields will be sent to the
6643	// server regardless of whether the field is empty or not. This may be
6644	// used to include empty fields in Patch requests.
6645	ForceSendFields []string `json:"-"`
6646
6647	// NullFields is a list of field names (e.g. "GroupName") to include in
6648	// API requests with the JSON null value. By default, fields with empty
6649	// values are omitted from API requests. However, any field with an
6650	// empty value appearing in NullFields will be sent to the server as
6651	// null. It is an error if a field in this list has a non-empty value.
6652	// This may be used to include null fields in Patch requests.
6653	NullFields []string `json:"-"`
6654}
6655
6656func (s *ManualRuleGroup) MarshalJSON() ([]byte, error) {
6657	type NoMethod ManualRuleGroup
6658	raw := NoMethod(*s)
6659	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6660}
6661
6662// MatchedDeveloperMetadata: A developer metadata entry and the data
6663// filters specified in the original
6664// request that matched it.
6665type MatchedDeveloperMetadata struct {
6666	// DataFilters: All filters matching the returned developer metadata.
6667	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
6668
6669	// DeveloperMetadata: The developer metadata matching the specified
6670	// filters.
6671	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
6672
6673	// ForceSendFields is a list of field names (e.g. "DataFilters") to
6674	// unconditionally include in API requests. By default, fields with
6675	// empty values are omitted from API requests. However, any non-pointer,
6676	// non-interface field appearing in ForceSendFields will be sent to the
6677	// server regardless of whether the field is empty or not. This may be
6678	// used to include empty fields in Patch requests.
6679	ForceSendFields []string `json:"-"`
6680
6681	// NullFields is a list of field names (e.g. "DataFilters") to include
6682	// in API requests with the JSON null value. By default, fields with
6683	// empty values are omitted from API requests. However, any field with
6684	// an empty value appearing in NullFields will be sent to the server as
6685	// null. It is an error if a field in this list has a non-empty value.
6686	// This may be used to include null fields in Patch requests.
6687	NullFields []string `json:"-"`
6688}
6689
6690func (s *MatchedDeveloperMetadata) MarshalJSON() ([]byte, error) {
6691	type NoMethod MatchedDeveloperMetadata
6692	raw := NoMethod(*s)
6693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6694}
6695
6696// MatchedValueRange: A value range that was matched by one or more data
6697// filers.
6698type MatchedValueRange struct {
6699	// DataFilters: The DataFilters from the request that matched the range
6700	// of
6701	// values.
6702	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
6703
6704	// ValueRange: The values matched by the DataFilter.
6705	ValueRange *ValueRange `json:"valueRange,omitempty"`
6706
6707	// ForceSendFields is a list of field names (e.g. "DataFilters") to
6708	// unconditionally include in API requests. By default, fields with
6709	// empty values are omitted from API requests. However, any non-pointer,
6710	// non-interface field appearing in ForceSendFields will be sent to the
6711	// server regardless of whether the field is empty or not. This may be
6712	// used to include empty fields in Patch requests.
6713	ForceSendFields []string `json:"-"`
6714
6715	// NullFields is a list of field names (e.g. "DataFilters") to include
6716	// in API requests with the JSON null value. By default, fields with
6717	// empty values are omitted from API requests. However, any field with
6718	// an empty value appearing in NullFields will be sent to the server as
6719	// null. It is an error if a field in this list has a non-empty value.
6720	// This may be used to include null fields in Patch requests.
6721	NullFields []string `json:"-"`
6722}
6723
6724func (s *MatchedValueRange) MarshalJSON() ([]byte, error) {
6725	type NoMethod MatchedValueRange
6726	raw := NoMethod(*s)
6727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6728}
6729
6730// MergeCellsRequest: Merges all cells in the range.
6731type MergeCellsRequest struct {
6732	// MergeType: How the cells should be merged.
6733	//
6734	// Possible values:
6735	//   "MERGE_ALL" - Create a single merge from the range
6736	//   "MERGE_COLUMNS" - Create a merge for each column in the range
6737	//   "MERGE_ROWS" - Create a merge for each row in the range
6738	MergeType string `json:"mergeType,omitempty"`
6739
6740	// Range: The range of cells to merge.
6741	Range *GridRange `json:"range,omitempty"`
6742
6743	// ForceSendFields is a list of field names (e.g. "MergeType") to
6744	// unconditionally include in API requests. By default, fields with
6745	// empty values are omitted from API requests. However, any non-pointer,
6746	// non-interface field appearing in ForceSendFields will be sent to the
6747	// server regardless of whether the field is empty or not. This may be
6748	// used to include empty fields in Patch requests.
6749	ForceSendFields []string `json:"-"`
6750
6751	// NullFields is a list of field names (e.g. "MergeType") to include in
6752	// API requests with the JSON null value. By default, fields with empty
6753	// values are omitted from API requests. However, any field with an
6754	// empty value appearing in NullFields will be sent to the server as
6755	// null. It is an error if a field in this list has a non-empty value.
6756	// This may be used to include null fields in Patch requests.
6757	NullFields []string `json:"-"`
6758}
6759
6760func (s *MergeCellsRequest) MarshalJSON() ([]byte, error) {
6761	type NoMethod MergeCellsRequest
6762	raw := NoMethod(*s)
6763	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6764}
6765
6766// MoveDimensionRequest: Moves one or more rows or columns.
6767type MoveDimensionRequest struct {
6768	// DestinationIndex: The zero-based start index of where to move the
6769	// source data to,
6770	// based on the coordinates *before* the source data is removed
6771	// from the grid.  Existing data will be shifted down or
6772	// right
6773	// (depending on the dimension) to make room for the moved
6774	// dimensions.
6775	// The source dimensions are removed from the grid, so the
6776	// the data may end up in a different index than specified.
6777	//
6778	// For example, given `A1..A5` of `0, 1, 2, 3, 4` and wanting to
6779	// move
6780	// "1" and "2" to between "3" and "4", the source would be
6781	// `ROWS [1..3)`,and the destination index would be "4"
6782	// (the zero-based index of row 5).
6783	// The end result would be `A1..A5` of `0, 3, 1, 2, 4`.
6784	DestinationIndex int64 `json:"destinationIndex,omitempty"`
6785
6786	// Source: The source dimensions to move.
6787	Source *DimensionRange `json:"source,omitempty"`
6788
6789	// ForceSendFields is a list of field names (e.g. "DestinationIndex") to
6790	// unconditionally include in API requests. By default, fields with
6791	// empty values are omitted from API requests. However, any non-pointer,
6792	// non-interface field appearing in ForceSendFields will be sent to the
6793	// server regardless of whether the field is empty or not. This may be
6794	// used to include empty fields in Patch requests.
6795	ForceSendFields []string `json:"-"`
6796
6797	// NullFields is a list of field names (e.g. "DestinationIndex") to
6798	// include in API requests with the JSON null value. By default, fields
6799	// with empty values are omitted from API requests. However, any field
6800	// with an empty value appearing in NullFields will be sent to the
6801	// server as null. It is an error if a field in this list has a
6802	// non-empty value. This may be used to include null fields in Patch
6803	// requests.
6804	NullFields []string `json:"-"`
6805}
6806
6807func (s *MoveDimensionRequest) MarshalJSON() ([]byte, error) {
6808	type NoMethod MoveDimensionRequest
6809	raw := NoMethod(*s)
6810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6811}
6812
6813// NamedRange: A named range.
6814type NamedRange struct {
6815	// Name: The name of the named range.
6816	Name string `json:"name,omitempty"`
6817
6818	// NamedRangeId: The ID of the named range.
6819	NamedRangeId string `json:"namedRangeId,omitempty"`
6820
6821	// Range: The range this represents.
6822	Range *GridRange `json:"range,omitempty"`
6823
6824	// ForceSendFields is a list of field names (e.g. "Name") to
6825	// unconditionally include in API requests. By default, fields with
6826	// empty values are omitted from API requests. However, any non-pointer,
6827	// non-interface field appearing in ForceSendFields will be sent to the
6828	// server regardless of whether the field is empty or not. This may be
6829	// used to include empty fields in Patch requests.
6830	ForceSendFields []string `json:"-"`
6831
6832	// NullFields is a list of field names (e.g. "Name") to include in API
6833	// requests with the JSON null value. By default, fields with empty
6834	// values are omitted from API requests. However, any field with an
6835	// empty value appearing in NullFields will be sent to the server as
6836	// null. It is an error if a field in this list has a non-empty value.
6837	// This may be used to include null fields in Patch requests.
6838	NullFields []string `json:"-"`
6839}
6840
6841func (s *NamedRange) MarshalJSON() ([]byte, error) {
6842	type NoMethod NamedRange
6843	raw := NoMethod(*s)
6844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6845}
6846
6847// NumberFormat: The number format of a cell.
6848type NumberFormat struct {
6849	// Pattern: Pattern string used for formatting.  If not set, a default
6850	// pattern based on
6851	// the user's locale will be used if necessary for the given type.
6852	// See the [Date and Number Formats guide](/sheets/api/guides/formats)
6853	// for
6854	// more information about the supported patterns.
6855	Pattern string `json:"pattern,omitempty"`
6856
6857	// Type: The type of the number format.
6858	// When writing, this field must be set.
6859	//
6860	// Possible values:
6861	//   "NUMBER_FORMAT_TYPE_UNSPECIFIED" - The number format is not
6862	// specified
6863	// and is based on the contents of the cell.
6864	// Do not explicitly use this.
6865	//   "TEXT" - Text formatting, e.g `1000.12`
6866	//   "NUMBER" - Number formatting, e.g, `1,000.12`
6867	//   "PERCENT" - Percent formatting, e.g `10.12%`
6868	//   "CURRENCY" - Currency formatting, e.g `$1,000.12`
6869	//   "DATE" - Date formatting, e.g `9/26/2008`
6870	//   "TIME" - Time formatting, e.g `3:59:00 PM`
6871	//   "DATE_TIME" - Date+Time formatting, e.g `9/26/08 15:59:00`
6872	//   "SCIENTIFIC" - Scientific number formatting, e.g `1.01E+03`
6873	Type string `json:"type,omitempty"`
6874
6875	// ForceSendFields is a list of field names (e.g. "Pattern") to
6876	// unconditionally include in API requests. By default, fields with
6877	// empty values are omitted from API requests. However, any non-pointer,
6878	// non-interface field appearing in ForceSendFields will be sent to the
6879	// server regardless of whether the field is empty or not. This may be
6880	// used to include empty fields in Patch requests.
6881	ForceSendFields []string `json:"-"`
6882
6883	// NullFields is a list of field names (e.g. "Pattern") to include in
6884	// API requests with the JSON null value. By default, fields with empty
6885	// values are omitted from API requests. However, any field with an
6886	// empty value appearing in NullFields will be sent to the server as
6887	// null. It is an error if a field in this list has a non-empty value.
6888	// This may be used to include null fields in Patch requests.
6889	NullFields []string `json:"-"`
6890}
6891
6892func (s *NumberFormat) MarshalJSON() ([]byte, error) {
6893	type NoMethod NumberFormat
6894	raw := NoMethod(*s)
6895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6896}
6897
6898// OrgChartSpec: An <a
6899// href="/chart/interactive/docs/gallery/orgchart">org chart</a>.
6900// Org charts require a unique set of labels in labels and
6901// may
6902// optionally include parent_labels and tooltips.
6903// parent_labels contain, for each node, the label identifying the
6904// parent
6905// node.  tooltips contain, for each node, an optional tooltip.
6906//
6907// For example, to describe an OrgChart with Alice as the CEO, Bob as
6908// the
6909// President (reporting to Alice) and Cathy as VP of Sales (also
6910// reporting to
6911// Alice), have labels contain "Alice", "Bob", "Cathy",
6912// parent_labels contain "", "Alice", "Alice" and tooltips
6913// contain
6914// "CEO", "President", "VP Sales".
6915type OrgChartSpec struct {
6916	// Labels: The data containing the labels for all the nodes in the
6917	// chart.  Labels
6918	// must be unique.
6919	Labels *ChartData `json:"labels,omitempty"`
6920
6921	// NodeColor: The color of the org chart nodes.
6922	NodeColor *Color `json:"nodeColor,omitempty"`
6923
6924	// NodeColorStyle: The color of the org chart nodes.
6925	// If node_color is also set, this field takes precedence.
6926	NodeColorStyle *ColorStyle `json:"nodeColorStyle,omitempty"`
6927
6928	// NodeSize: The size of the org chart nodes.
6929	//
6930	// Possible values:
6931	//   "ORG_CHART_LABEL_SIZE_UNSPECIFIED" - Default value, do not use.
6932	//   "SMALL" - The small org chart node size.
6933	//   "MEDIUM" - The medium org chart node size.
6934	//   "LARGE" - The large org chart node size.
6935	NodeSize string `json:"nodeSize,omitempty"`
6936
6937	// ParentLabels: The data containing the label of the parent for the
6938	// corresponding node.
6939	// A blank value indicates that the node has no parent and is a
6940	// top-level
6941	// node.
6942	// This field is optional.
6943	ParentLabels *ChartData `json:"parentLabels,omitempty"`
6944
6945	// SelectedNodeColor: The color of the selected org chart nodes.
6946	SelectedNodeColor *Color `json:"selectedNodeColor,omitempty"`
6947
6948	// SelectedNodeColorStyle: The color of the selected org chart nodes.
6949	// If selected_node_color is also set, this field takes precedence.
6950	SelectedNodeColorStyle *ColorStyle `json:"selectedNodeColorStyle,omitempty"`
6951
6952	// Tooltips: The data containing the tooltip for the corresponding node.
6953	//  A blank value
6954	// results in no tooltip being displayed for the node.
6955	// This field is optional.
6956	Tooltips *ChartData `json:"tooltips,omitempty"`
6957
6958	// ForceSendFields is a list of field names (e.g. "Labels") to
6959	// unconditionally include in API requests. By default, fields with
6960	// empty values are omitted from API requests. However, any non-pointer,
6961	// non-interface field appearing in ForceSendFields will be sent to the
6962	// server regardless of whether the field is empty or not. This may be
6963	// used to include empty fields in Patch requests.
6964	ForceSendFields []string `json:"-"`
6965
6966	// NullFields is a list of field names (e.g. "Labels") to include in API
6967	// requests with the JSON null value. By default, fields with empty
6968	// values are omitted from API requests. However, any field with an
6969	// empty value appearing in NullFields will be sent to the server as
6970	// null. It is an error if a field in this list has a non-empty value.
6971	// This may be used to include null fields in Patch requests.
6972	NullFields []string `json:"-"`
6973}
6974
6975func (s *OrgChartSpec) MarshalJSON() ([]byte, error) {
6976	type NoMethod OrgChartSpec
6977	raw := NoMethod(*s)
6978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6979}
6980
6981// OverlayPosition: The location an object is overlaid on top of a grid.
6982type OverlayPosition struct {
6983	// AnchorCell: The cell the object is anchored to.
6984	AnchorCell *GridCoordinate `json:"anchorCell,omitempty"`
6985
6986	// HeightPixels: The height of the object, in pixels. Defaults to 371.
6987	HeightPixels int64 `json:"heightPixels,omitempty"`
6988
6989	// OffsetXPixels: The horizontal offset, in pixels, that the object is
6990	// offset
6991	// from the anchor cell.
6992	OffsetXPixels int64 `json:"offsetXPixels,omitempty"`
6993
6994	// OffsetYPixels: The vertical offset, in pixels, that the object is
6995	// offset
6996	// from the anchor cell.
6997	OffsetYPixels int64 `json:"offsetYPixels,omitempty"`
6998
6999	// WidthPixels: The width of the object, in pixels. Defaults to 600.
7000	WidthPixels int64 `json:"widthPixels,omitempty"`
7001
7002	// ForceSendFields is a list of field names (e.g. "AnchorCell") to
7003	// unconditionally include in API requests. By default, fields with
7004	// empty values are omitted from API requests. However, any non-pointer,
7005	// non-interface field appearing in ForceSendFields will be sent to the
7006	// server regardless of whether the field is empty or not. This may be
7007	// used to include empty fields in Patch requests.
7008	ForceSendFields []string `json:"-"`
7009
7010	// NullFields is a list of field names (e.g. "AnchorCell") to include in
7011	// API requests with the JSON null value. By default, fields with empty
7012	// values are omitted from API requests. However, any field with an
7013	// empty value appearing in NullFields will be sent to the server as
7014	// null. It is an error if a field in this list has a non-empty value.
7015	// This may be used to include null fields in Patch requests.
7016	NullFields []string `json:"-"`
7017}
7018
7019func (s *OverlayPosition) MarshalJSON() ([]byte, error) {
7020	type NoMethod OverlayPosition
7021	raw := NoMethod(*s)
7022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7023}
7024
7025// Padding: The amount of padding around the cell, in pixels.
7026// When updating padding, every field must be specified.
7027type Padding struct {
7028	// Bottom: The bottom padding of the cell.
7029	Bottom int64 `json:"bottom,omitempty"`
7030
7031	// Left: The left padding of the cell.
7032	Left int64 `json:"left,omitempty"`
7033
7034	// Right: The right padding of the cell.
7035	Right int64 `json:"right,omitempty"`
7036
7037	// Top: The top padding of the cell.
7038	Top int64 `json:"top,omitempty"`
7039
7040	// ForceSendFields is a list of field names (e.g. "Bottom") to
7041	// unconditionally include in API requests. By default, fields with
7042	// empty values are omitted from API requests. However, any non-pointer,
7043	// non-interface field appearing in ForceSendFields will be sent to the
7044	// server regardless of whether the field is empty or not. This may be
7045	// used to include empty fields in Patch requests.
7046	ForceSendFields []string `json:"-"`
7047
7048	// NullFields is a list of field names (e.g. "Bottom") to include in API
7049	// requests with the JSON null value. By default, fields with empty
7050	// values are omitted from API requests. However, any field with an
7051	// empty value appearing in NullFields will be sent to the server as
7052	// null. It is an error if a field in this list has a non-empty value.
7053	// This may be used to include null fields in Patch requests.
7054	NullFields []string `json:"-"`
7055}
7056
7057func (s *Padding) MarshalJSON() ([]byte, error) {
7058	type NoMethod Padding
7059	raw := NoMethod(*s)
7060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7061}
7062
7063// PasteDataRequest: Inserts data into the spreadsheet starting at the
7064// specified coordinate.
7065type PasteDataRequest struct {
7066	// Coordinate: The coordinate at which the data should start being
7067	// inserted.
7068	Coordinate *GridCoordinate `json:"coordinate,omitempty"`
7069
7070	// Data: The data to insert.
7071	Data string `json:"data,omitempty"`
7072
7073	// Delimiter: The delimiter in the data.
7074	Delimiter string `json:"delimiter,omitempty"`
7075
7076	// Html: True if the data is HTML.
7077	Html bool `json:"html,omitempty"`
7078
7079	// Type: How the data should be pasted.
7080	//
7081	// Possible values:
7082	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
7083	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
7084	// or merges.
7085	//   "PASTE_FORMAT" - Paste the format and data validation only.
7086	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
7087	//   "PASTE_FORMULA" - Paste the formulas only.
7088	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
7089	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
7090	// rules only.
7091	Type string `json:"type,omitempty"`
7092
7093	// ForceSendFields is a list of field names (e.g. "Coordinate") to
7094	// unconditionally include in API requests. By default, fields with
7095	// empty values are omitted from API requests. However, any non-pointer,
7096	// non-interface field appearing in ForceSendFields will be sent to the
7097	// server regardless of whether the field is empty or not. This may be
7098	// used to include empty fields in Patch requests.
7099	ForceSendFields []string `json:"-"`
7100
7101	// NullFields is a list of field names (e.g. "Coordinate") to include in
7102	// API requests with the JSON null value. By default, fields with empty
7103	// values are omitted from API requests. However, any field with an
7104	// empty value appearing in NullFields will be sent to the server as
7105	// null. It is an error if a field in this list has a non-empty value.
7106	// This may be used to include null fields in Patch requests.
7107	NullFields []string `json:"-"`
7108}
7109
7110func (s *PasteDataRequest) MarshalJSON() ([]byte, error) {
7111	type NoMethod PasteDataRequest
7112	raw := NoMethod(*s)
7113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7114}
7115
7116// PieChartSpec: A <a
7117// href="/chart/interactive/docs/gallery/piechart">pie chart</a>.
7118type PieChartSpec struct {
7119	// Domain: The data that covers the domain of the pie chart.
7120	Domain *ChartData `json:"domain,omitempty"`
7121
7122	// LegendPosition: Where the legend of the pie chart should be drawn.
7123	//
7124	// Possible values:
7125	//   "PIE_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
7126	// use.
7127	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
7128	// chart.
7129	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
7130	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
7131	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
7132	//   "NO_LEGEND" - No legend is rendered.
7133	//   "LABELED_LEGEND" - Each pie slice has a label attached to it.
7134	LegendPosition string `json:"legendPosition,omitempty"`
7135
7136	// PieHole: The size of the hole in the pie chart.
7137	PieHole float64 `json:"pieHole,omitempty"`
7138
7139	// Series: The data that covers the one and only series of the pie
7140	// chart.
7141	Series *ChartData `json:"series,omitempty"`
7142
7143	// ThreeDimensional: True if the pie is three dimensional.
7144	ThreeDimensional bool `json:"threeDimensional,omitempty"`
7145
7146	// ForceSendFields is a list of field names (e.g. "Domain") to
7147	// unconditionally include in API requests. By default, fields with
7148	// empty values are omitted from API requests. However, any non-pointer,
7149	// non-interface field appearing in ForceSendFields will be sent to the
7150	// server regardless of whether the field is empty or not. This may be
7151	// used to include empty fields in Patch requests.
7152	ForceSendFields []string `json:"-"`
7153
7154	// NullFields is a list of field names (e.g. "Domain") to include in API
7155	// requests with the JSON null value. By default, fields with empty
7156	// values are omitted from API requests. However, any field with an
7157	// empty value appearing in NullFields will be sent to the server as
7158	// null. It is an error if a field in this list has a non-empty value.
7159	// This may be used to include null fields in Patch requests.
7160	NullFields []string `json:"-"`
7161}
7162
7163func (s *PieChartSpec) MarshalJSON() ([]byte, error) {
7164	type NoMethod PieChartSpec
7165	raw := NoMethod(*s)
7166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7167}
7168
7169func (s *PieChartSpec) UnmarshalJSON(data []byte) error {
7170	type NoMethod PieChartSpec
7171	var s1 struct {
7172		PieHole gensupport.JSONFloat64 `json:"pieHole"`
7173		*NoMethod
7174	}
7175	s1.NoMethod = (*NoMethod)(s)
7176	if err := json.Unmarshal(data, &s1); err != nil {
7177		return err
7178	}
7179	s.PieHole = float64(s1.PieHole)
7180	return nil
7181}
7182
7183// PivotFilterCriteria: Criteria for showing/hiding rows in a pivot
7184// table.
7185type PivotFilterCriteria struct {
7186	// VisibleValues: Values that should be included.  Values not listed
7187	// here are excluded.
7188	VisibleValues []string `json:"visibleValues,omitempty"`
7189
7190	// ForceSendFields is a list of field names (e.g. "VisibleValues") to
7191	// unconditionally include in API requests. By default, fields with
7192	// empty values are omitted from API requests. However, any non-pointer,
7193	// non-interface field appearing in ForceSendFields will be sent to the
7194	// server regardless of whether the field is empty or not. This may be
7195	// used to include empty fields in Patch requests.
7196	ForceSendFields []string `json:"-"`
7197
7198	// NullFields is a list of field names (e.g. "VisibleValues") to include
7199	// in API requests with the JSON null value. By default, fields with
7200	// empty values are omitted from API requests. However, any field with
7201	// an empty value appearing in NullFields will be sent to the server as
7202	// null. It is an error if a field in this list has a non-empty value.
7203	// This may be used to include null fields in Patch requests.
7204	NullFields []string `json:"-"`
7205}
7206
7207func (s *PivotFilterCriteria) MarshalJSON() ([]byte, error) {
7208	type NoMethod PivotFilterCriteria
7209	raw := NoMethod(*s)
7210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7211}
7212
7213// PivotGroup: A single grouping (either row or column) in a pivot
7214// table.
7215type PivotGroup struct {
7216	// GroupRule: The group rule to apply to this row/column group.
7217	GroupRule *PivotGroupRule `json:"groupRule,omitempty"`
7218
7219	// Label: The labels to use for the row/column groups which can be
7220	// customized. For
7221	// example, in the following pivot table, the row label is `Region`
7222	// (which
7223	// could be renamed to `State`) and the column label is `Product`
7224	// (which
7225	// could be renamed `Item`). Pivot tables created before December 2017
7226	// do
7227	// not have header labels. If you'd like to add header labels to an
7228	// existing
7229	// pivot table, please delete the existing pivot table and then create a
7230	// new
7231	// pivot table with same parameters.
7232	//
7233	//     +--------------+---------+-------+
7234	//     | SUM of Units | Product |       |
7235	//     | Region       | Pen     | Paper |
7236	//     +--------------+---------+-------+
7237	//     | New York     |     345 |    98 |
7238	//     | Oregon       |     234 |   123 |
7239	//     | Tennessee    |     531 |   415 |
7240	//     +--------------+---------+-------+
7241	//     | Grand Total  |    1110 |   636 |
7242	//     +--------------+---------+-------+
7243	Label string `json:"label,omitempty"`
7244
7245	// RepeatHeadings: True if the headings in this pivot group should be
7246	// repeated.
7247	// This is only valid for row groupings and is ignored by columns.
7248	//
7249	// By default, we minimize repitition of headings by not showing
7250	// higher
7251	// level headings where they are the same. For example, even though
7252	// the
7253	// third row below corresponds to "Q1 Mar", "Q1" is not shown because
7254	// it is redundant with previous rows. Setting repeat_headings to
7255	// true
7256	// would cause "Q1" to be repeated for "Feb" and "Mar".
7257	//
7258	//     +--------------+
7259	//     | Q1     | Jan |
7260	//     |        | Feb |
7261	//     |        | Mar |
7262	//     +--------+-----+
7263	//     | Q1 Total     |
7264	//     +--------------+
7265	RepeatHeadings bool `json:"repeatHeadings,omitempty"`
7266
7267	// ShowTotals: True if the pivot table should include the totals for
7268	// this grouping.
7269	ShowTotals bool `json:"showTotals,omitempty"`
7270
7271	// SortOrder: The order the values in this group should be sorted.
7272	//
7273	// Possible values:
7274	//   "SORT_ORDER_UNSPECIFIED" - Default value, do not use this.
7275	//   "ASCENDING" - Sort ascending.
7276	//   "DESCENDING" - Sort descending.
7277	SortOrder string `json:"sortOrder,omitempty"`
7278
7279	// SourceColumnOffset: The column offset of the source range that this
7280	// grouping is based on.
7281	//
7282	// For example, if the source was `C10:E15`, a `sourceColumnOffset` of
7283	// `0`
7284	// means this group refers to column `C`, whereas the offset `1` would
7285	// refer
7286	// to column `D`.
7287	SourceColumnOffset int64 `json:"sourceColumnOffset,omitempty"`
7288
7289	// ValueBucket: The bucket of the opposite pivot group to sort by.
7290	// If not specified, sorting is alphabetical by this group's values.
7291	ValueBucket *PivotGroupSortValueBucket `json:"valueBucket,omitempty"`
7292
7293	// ValueMetadata: Metadata about values in the grouping.
7294	ValueMetadata []*PivotGroupValueMetadata `json:"valueMetadata,omitempty"`
7295
7296	// ForceSendFields is a list of field names (e.g. "GroupRule") to
7297	// unconditionally include in API requests. By default, fields with
7298	// empty values are omitted from API requests. However, any non-pointer,
7299	// non-interface field appearing in ForceSendFields will be sent to the
7300	// server regardless of whether the field is empty or not. This may be
7301	// used to include empty fields in Patch requests.
7302	ForceSendFields []string `json:"-"`
7303
7304	// NullFields is a list of field names (e.g. "GroupRule") to include in
7305	// API requests with the JSON null value. By default, fields with empty
7306	// values are omitted from API requests. However, any field with an
7307	// empty value appearing in NullFields will be sent to the server as
7308	// null. It is an error if a field in this list has a non-empty value.
7309	// This may be used to include null fields in Patch requests.
7310	NullFields []string `json:"-"`
7311}
7312
7313func (s *PivotGroup) MarshalJSON() ([]byte, error) {
7314	type NoMethod PivotGroup
7315	raw := NoMethod(*s)
7316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7317}
7318
7319// PivotGroupRule: An optional setting on a PivotGroup that defines
7320// buckets for the values
7321// in the source data column rather than breaking out each individual
7322// value.
7323// Only one PivotGroup with a group rule may be added for each column
7324// in
7325// the source data, though on any given column you may add both
7326// a
7327// PivotGroup that has a rule and a PivotGroup that does not.
7328type PivotGroupRule struct {
7329	// DateTimeRule: A DateTimeRule.
7330	DateTimeRule *DateTimeRule `json:"dateTimeRule,omitempty"`
7331
7332	// HistogramRule: A HistogramRule.
7333	HistogramRule *HistogramRule `json:"histogramRule,omitempty"`
7334
7335	// ManualRule: A ManualRule.
7336	ManualRule *ManualRule `json:"manualRule,omitempty"`
7337
7338	// ForceSendFields is a list of field names (e.g. "DateTimeRule") to
7339	// unconditionally include in API requests. By default, fields with
7340	// empty values are omitted from API requests. However, any non-pointer,
7341	// non-interface field appearing in ForceSendFields will be sent to the
7342	// server regardless of whether the field is empty or not. This may be
7343	// used to include empty fields in Patch requests.
7344	ForceSendFields []string `json:"-"`
7345
7346	// NullFields is a list of field names (e.g. "DateTimeRule") to include
7347	// in API requests with the JSON null value. By default, fields with
7348	// empty values are omitted from API requests. However, any field with
7349	// an empty value appearing in NullFields will be sent to the server as
7350	// null. It is an error if a field in this list has a non-empty value.
7351	// This may be used to include null fields in Patch requests.
7352	NullFields []string `json:"-"`
7353}
7354
7355func (s *PivotGroupRule) MarshalJSON() ([]byte, error) {
7356	type NoMethod PivotGroupRule
7357	raw := NoMethod(*s)
7358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7359}
7360
7361// PivotGroupSortValueBucket: Information about which values in a pivot
7362// group should be used for sorting.
7363type PivotGroupSortValueBucket struct {
7364	// Buckets: Determines the bucket from which values are chosen to
7365	// sort.
7366	//
7367	// For example, in a pivot table with one row group & two column
7368	// groups,
7369	// the row group can list up to two values. The first value
7370	// corresponds
7371	// to a value within the first column group, and the second
7372	// value
7373	// corresponds to a value in the second column group.  If no values
7374	// are listed, this would indicate that the row should be sorted
7375	// according
7376	// to the "Grand Total" over the column groups. If a single value is
7377	// listed,
7378	// this would correspond to using the "Total" of that bucket.
7379	Buckets []*ExtendedValue `json:"buckets,omitempty"`
7380
7381	// ValuesIndex: The offset in the PivotTable.values list which the
7382	// values in this
7383	// grouping should be sorted by.
7384	ValuesIndex int64 `json:"valuesIndex,omitempty"`
7385
7386	// ForceSendFields is a list of field names (e.g. "Buckets") to
7387	// unconditionally include in API requests. By default, fields with
7388	// empty values are omitted from API requests. However, any non-pointer,
7389	// non-interface field appearing in ForceSendFields will be sent to the
7390	// server regardless of whether the field is empty or not. This may be
7391	// used to include empty fields in Patch requests.
7392	ForceSendFields []string `json:"-"`
7393
7394	// NullFields is a list of field names (e.g. "Buckets") to include in
7395	// API requests with the JSON null value. By default, fields with empty
7396	// values are omitted from API requests. However, any field with an
7397	// empty value appearing in NullFields will be sent to the server as
7398	// null. It is an error if a field in this list has a non-empty value.
7399	// This may be used to include null fields in Patch requests.
7400	NullFields []string `json:"-"`
7401}
7402
7403func (s *PivotGroupSortValueBucket) MarshalJSON() ([]byte, error) {
7404	type NoMethod PivotGroupSortValueBucket
7405	raw := NoMethod(*s)
7406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7407}
7408
7409// PivotGroupValueMetadata: Metadata about a value in a pivot grouping.
7410type PivotGroupValueMetadata struct {
7411	// Collapsed: True if the data corresponding to the value is collapsed.
7412	Collapsed bool `json:"collapsed,omitempty"`
7413
7414	// Value: The calculated value the metadata corresponds to.
7415	// (Note that formulaValue is not valid,
7416	//  because the values will be calculated.)
7417	Value *ExtendedValue `json:"value,omitempty"`
7418
7419	// ForceSendFields is a list of field names (e.g. "Collapsed") to
7420	// unconditionally include in API requests. By default, fields with
7421	// empty values are omitted from API requests. However, any non-pointer,
7422	// non-interface field appearing in ForceSendFields will be sent to the
7423	// server regardless of whether the field is empty or not. This may be
7424	// used to include empty fields in Patch requests.
7425	ForceSendFields []string `json:"-"`
7426
7427	// NullFields is a list of field names (e.g. "Collapsed") to include in
7428	// API requests with the JSON null value. By default, fields with empty
7429	// values are omitted from API requests. However, any field with an
7430	// empty value appearing in NullFields will be sent to the server as
7431	// null. It is an error if a field in this list has a non-empty value.
7432	// This may be used to include null fields in Patch requests.
7433	NullFields []string `json:"-"`
7434}
7435
7436func (s *PivotGroupValueMetadata) MarshalJSON() ([]byte, error) {
7437	type NoMethod PivotGroupValueMetadata
7438	raw := NoMethod(*s)
7439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7440}
7441
7442// PivotTable: A pivot table.
7443type PivotTable struct {
7444	// Columns: Each column grouping in the pivot table.
7445	Columns []*PivotGroup `json:"columns,omitempty"`
7446
7447	// Criteria: An optional mapping of filters per source column
7448	// offset.
7449	//
7450	// The filters are applied before aggregating data into the pivot
7451	// table.
7452	// The map's key is the column offset of the source range that you want
7453	// to
7454	// filter, and the value is the criteria for that column.
7455	//
7456	// For example, if the source was `C10:E15`, a key of `0` will have the
7457	// filter
7458	// for column `C`, whereas the key `1` is for column `D`.
7459	Criteria map[string]PivotFilterCriteria `json:"criteria,omitempty"`
7460
7461	// Rows: Each row grouping in the pivot table.
7462	Rows []*PivotGroup `json:"rows,omitempty"`
7463
7464	// Source: The range the pivot table is reading data from.
7465	Source *GridRange `json:"source,omitempty"`
7466
7467	// ValueLayout: Whether values should be listed horizontally (as
7468	// columns)
7469	// or vertically (as rows).
7470	//
7471	// Possible values:
7472	//   "HORIZONTAL" - Values are laid out horizontally (as columns).
7473	//   "VERTICAL" - Values are laid out vertically (as rows).
7474	ValueLayout string `json:"valueLayout,omitempty"`
7475
7476	// Values: A list of values to include in the pivot table.
7477	Values []*PivotValue `json:"values,omitempty"`
7478
7479	// ForceSendFields is a list of field names (e.g. "Columns") to
7480	// unconditionally include in API requests. By default, fields with
7481	// empty values are omitted from API requests. However, any non-pointer,
7482	// non-interface field appearing in ForceSendFields will be sent to the
7483	// server regardless of whether the field is empty or not. This may be
7484	// used to include empty fields in Patch requests.
7485	ForceSendFields []string `json:"-"`
7486
7487	// NullFields is a list of field names (e.g. "Columns") to include in
7488	// API requests with the JSON null value. By default, fields with empty
7489	// values are omitted from API requests. However, any field with an
7490	// empty value appearing in NullFields will be sent to the server as
7491	// null. It is an error if a field in this list has a non-empty value.
7492	// This may be used to include null fields in Patch requests.
7493	NullFields []string `json:"-"`
7494}
7495
7496func (s *PivotTable) MarshalJSON() ([]byte, error) {
7497	type NoMethod PivotTable
7498	raw := NoMethod(*s)
7499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7500}
7501
7502// PivotValue: The definition of how a value in a pivot table should be
7503// calculated.
7504type PivotValue struct {
7505	// CalculatedDisplayType: If specified, indicates that pivot values
7506	// should be displayed as
7507	// the result of a calculation with another pivot value. For example,
7508	// if
7509	// calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all
7510	// the
7511	// pivot values are displayed as the percentage of the grand total.
7512	// In
7513	// the Sheets UI, this is referred to as "Show As" in the value section
7514	// of a
7515	// pivot table.
7516	//
7517	// Possible values:
7518	//   "PIVOT_VALUE_CALCULATED_DISPLAY_TYPE_UNSPECIFIED" - Default value,
7519	// do not use.
7520	//   "PERCENT_OF_ROW_TOTAL" - Shows the pivot values as percentage of
7521	// the row total values.
7522	//   "PERCENT_OF_COLUMN_TOTAL" - Shows the pivot values as percentage of
7523	// the column total values.
7524	//   "PERCENT_OF_GRAND_TOTAL" - Shows the pivot values as percentage of
7525	// the grand total values.
7526	CalculatedDisplayType string `json:"calculatedDisplayType,omitempty"`
7527
7528	// Formula: A custom formula to calculate the value.  The formula must
7529	// start
7530	// with an `=` character.
7531	Formula string `json:"formula,omitempty"`
7532
7533	// Name: A name to use for the value.
7534	Name string `json:"name,omitempty"`
7535
7536	// SourceColumnOffset: The column offset of the source range that this
7537	// value reads from.
7538	//
7539	// For example, if the source was `C10:E15`, a `sourceColumnOffset` of
7540	// `0`
7541	// means this value refers to column `C`, whereas the offset `1`
7542	// would
7543	// refer to column `D`.
7544	SourceColumnOffset int64 `json:"sourceColumnOffset,omitempty"`
7545
7546	// SummarizeFunction: A function to summarize the value.
7547	// If formula is set, the only supported values are
7548	// SUM and
7549	// CUSTOM.
7550	// If sourceColumnOffset is set, then `CUSTOM`
7551	// is not supported.
7552	//
7553	// Possible values:
7554	//   "PIVOT_STANDARD_VALUE_FUNCTION_UNSPECIFIED" - The default, do not
7555	// use.
7556	//   "SUM" - Corresponds to the `SUM` function.
7557	//   "COUNTA" - Corresponds to the `COUNTA` function.
7558	//   "COUNT" - Corresponds to the `COUNT` function.
7559	//   "COUNTUNIQUE" - Corresponds to the `COUNTUNIQUE` function.
7560	//   "AVERAGE" - Corresponds to the `AVERAGE` function.
7561	//   "MAX" - Corresponds to the `MAX` function.
7562	//   "MIN" - Corresponds to the `MIN` function.
7563	//   "MEDIAN" - Corresponds to the `MEDIAN` function.
7564	//   "PRODUCT" - Corresponds to the `PRODUCT` function.
7565	//   "STDEV" - Corresponds to the `STDEV` function.
7566	//   "STDEVP" - Corresponds to the `STDEVP` function.
7567	//   "VAR" - Corresponds to the `VAR` function.
7568	//   "VARP" - Corresponds to the `VARP` function.
7569	//   "CUSTOM" - Indicates the formula should be used as-is.
7570	// Only valid if PivotValue.formula was set.
7571	SummarizeFunction string `json:"summarizeFunction,omitempty"`
7572
7573	// ForceSendFields is a list of field names (e.g.
7574	// "CalculatedDisplayType") to unconditionally include in API requests.
7575	// By default, fields with empty values are omitted from API requests.
7576	// However, any non-pointer, non-interface field appearing in
7577	// ForceSendFields will be sent to the server regardless of whether the
7578	// field is empty or not. This may be used to include empty fields in
7579	// Patch requests.
7580	ForceSendFields []string `json:"-"`
7581
7582	// NullFields is a list of field names (e.g. "CalculatedDisplayType") to
7583	// include in API requests with the JSON null value. By default, fields
7584	// with empty values are omitted from API requests. However, any field
7585	// with an empty value appearing in NullFields will be sent to the
7586	// server as null. It is an error if a field in this list has a
7587	// non-empty value. This may be used to include null fields in Patch
7588	// requests.
7589	NullFields []string `json:"-"`
7590}
7591
7592func (s *PivotValue) MarshalJSON() ([]byte, error) {
7593	type NoMethod PivotValue
7594	raw := NoMethod(*s)
7595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7596}
7597
7598// ProtectedRange: A protected range.
7599type ProtectedRange struct {
7600	// Description: The description of this protected range.
7601	Description string `json:"description,omitempty"`
7602
7603	// Editors: The users and groups with edit access to the protected
7604	// range.
7605	// This field is only visible to users with edit access to the
7606	// protected
7607	// range and the document.
7608	// Editors are not supported with warning_only protection.
7609	Editors *Editors `json:"editors,omitempty"`
7610
7611	// NamedRangeId: The named range this protected range is backed by, if
7612	// any.
7613	//
7614	// When writing, only one of range or named_range_id
7615	// may be set.
7616	NamedRangeId string `json:"namedRangeId,omitempty"`
7617
7618	// ProtectedRangeId: The ID of the protected range.
7619	// This field is read-only.
7620	ProtectedRangeId int64 `json:"protectedRangeId,omitempty"`
7621
7622	// Range: The range that is being protected.
7623	// The range may be fully unbounded, in which case this is considered
7624	// a protected sheet.
7625	//
7626	// When writing, only one of range or named_range_id
7627	// may be set.
7628	Range *GridRange `json:"range,omitempty"`
7629
7630	// RequestingUserCanEdit: True if the user who requested this protected
7631	// range can edit the
7632	// protected area.
7633	// This field is read-only.
7634	RequestingUserCanEdit bool `json:"requestingUserCanEdit,omitempty"`
7635
7636	// UnprotectedRanges: The list of unprotected ranges within a protected
7637	// sheet.
7638	// Unprotected ranges are only supported on protected sheets.
7639	UnprotectedRanges []*GridRange `json:"unprotectedRanges,omitempty"`
7640
7641	// WarningOnly: True if this protected range will show a warning when
7642	// editing.
7643	// Warning-based protection means that every user can edit data in
7644	// the
7645	// protected range, except editing will prompt a warning asking the
7646	// user
7647	// to confirm the edit.
7648	//
7649	// When writing: if this field is true, then editors is
7650	// ignored.
7651	// Additionally, if this field is changed from true to false and
7652	// the
7653	// `editors` field is not set (nor included in the field mask), then
7654	// the editors will be set to all the editors in the document.
7655	WarningOnly bool `json:"warningOnly,omitempty"`
7656
7657	// ForceSendFields is a list of field names (e.g. "Description") to
7658	// unconditionally include in API requests. By default, fields with
7659	// empty values are omitted from API requests. However, any non-pointer,
7660	// non-interface field appearing in ForceSendFields will be sent to the
7661	// server regardless of whether the field is empty or not. This may be
7662	// used to include empty fields in Patch requests.
7663	ForceSendFields []string `json:"-"`
7664
7665	// NullFields is a list of field names (e.g. "Description") to include
7666	// in API requests with the JSON null value. By default, fields with
7667	// empty values are omitted from API requests. However, any field with
7668	// an empty value appearing in NullFields will be sent to the server as
7669	// null. It is an error if a field in this list has a non-empty value.
7670	// This may be used to include null fields in Patch requests.
7671	NullFields []string `json:"-"`
7672}
7673
7674func (s *ProtectedRange) MarshalJSON() ([]byte, error) {
7675	type NoMethod ProtectedRange
7676	raw := NoMethod(*s)
7677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7678}
7679
7680// RandomizeRangeRequest: Randomizes the order of the rows in a range.
7681type RandomizeRangeRequest struct {
7682	// Range: The range to randomize.
7683	Range *GridRange `json:"range,omitempty"`
7684
7685	// ForceSendFields is a list of field names (e.g. "Range") to
7686	// unconditionally include in API requests. By default, fields with
7687	// empty values are omitted from API requests. However, any non-pointer,
7688	// non-interface field appearing in ForceSendFields will be sent to the
7689	// server regardless of whether the field is empty or not. This may be
7690	// used to include empty fields in Patch requests.
7691	ForceSendFields []string `json:"-"`
7692
7693	// NullFields is a list of field names (e.g. "Range") to include in API
7694	// requests with the JSON null value. By default, fields with empty
7695	// values are omitted from API requests. However, any field with an
7696	// empty value appearing in NullFields will be sent to the server as
7697	// null. It is an error if a field in this list has a non-empty value.
7698	// This may be used to include null fields in Patch requests.
7699	NullFields []string `json:"-"`
7700}
7701
7702func (s *RandomizeRangeRequest) MarshalJSON() ([]byte, error) {
7703	type NoMethod RandomizeRangeRequest
7704	raw := NoMethod(*s)
7705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7706}
7707
7708// RepeatCellRequest: Updates all cells in the range to the values in
7709// the given Cell object.
7710// Only the fields listed in the fields field are updated; others
7711// are
7712// unchanged.
7713//
7714// If writing a cell with a formula, the formula's ranges will
7715// automatically
7716// increment for each field in the range.
7717// For example, if writing a cell with formula `=A1` into range
7718// B2:C4,
7719// B2 would be `=A1`, B3 would be `=A2`, B4 would be `=A3`,
7720// C2 would be `=B1`, C3 would be `=B2`, C4 would be `=B3`.
7721//
7722// To keep the formula's ranges static, use the `$` indicator.
7723// For example, use the formula `=$A$1` to prevent both the row and
7724// the
7725// column from incrementing.
7726type RepeatCellRequest struct {
7727	// Cell: The data to write.
7728	Cell *CellData `json:"cell,omitempty"`
7729
7730	// Fields: The fields that should be updated.  At least one field must
7731	// be specified.
7732	// The root `cell` is implied and should not be specified.
7733	// A single "*" can be used as short-hand for listing every field.
7734	Fields string `json:"fields,omitempty"`
7735
7736	// Range: The range to repeat the cell in.
7737	Range *GridRange `json:"range,omitempty"`
7738
7739	// ForceSendFields is a list of field names (e.g. "Cell") to
7740	// unconditionally include in API requests. By default, fields with
7741	// empty values are omitted from API requests. However, any non-pointer,
7742	// non-interface field appearing in ForceSendFields will be sent to the
7743	// server regardless of whether the field is empty or not. This may be
7744	// used to include empty fields in Patch requests.
7745	ForceSendFields []string `json:"-"`
7746
7747	// NullFields is a list of field names (e.g. "Cell") to include in API
7748	// requests with the JSON null value. By default, fields with empty
7749	// values are omitted from API requests. However, any field with an
7750	// empty value appearing in NullFields will be sent to the server as
7751	// null. It is an error if a field in this list has a non-empty value.
7752	// This may be used to include null fields in Patch requests.
7753	NullFields []string `json:"-"`
7754}
7755
7756func (s *RepeatCellRequest) MarshalJSON() ([]byte, error) {
7757	type NoMethod RepeatCellRequest
7758	raw := NoMethod(*s)
7759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7760}
7761
7762// Request: A single kind of update to apply to a spreadsheet.
7763type Request struct {
7764	// AddBanding: Adds a new banded range
7765	AddBanding *AddBandingRequest `json:"addBanding,omitempty"`
7766
7767	// AddChart: Adds a chart.
7768	AddChart *AddChartRequest `json:"addChart,omitempty"`
7769
7770	// AddConditionalFormatRule: Adds a new conditional format rule.
7771	AddConditionalFormatRule *AddConditionalFormatRuleRequest `json:"addConditionalFormatRule,omitempty"`
7772
7773	// AddDimensionGroup: Creates a group over the specified range.
7774	AddDimensionGroup *AddDimensionGroupRequest `json:"addDimensionGroup,omitempty"`
7775
7776	// AddFilterView: Adds a filter view.
7777	AddFilterView *AddFilterViewRequest `json:"addFilterView,omitempty"`
7778
7779	// AddNamedRange: Adds a named range.
7780	AddNamedRange *AddNamedRangeRequest `json:"addNamedRange,omitempty"`
7781
7782	// AddProtectedRange: Adds a protected range.
7783	AddProtectedRange *AddProtectedRangeRequest `json:"addProtectedRange,omitempty"`
7784
7785	// AddSheet: Adds a sheet.
7786	AddSheet *AddSheetRequest `json:"addSheet,omitempty"`
7787
7788	// AddSlicer: Adds a slicer.
7789	AddSlicer *AddSlicerRequest `json:"addSlicer,omitempty"`
7790
7791	// AppendCells: Appends cells after the last row with data in a sheet.
7792	AppendCells *AppendCellsRequest `json:"appendCells,omitempty"`
7793
7794	// AppendDimension: Appends dimensions to the end of a sheet.
7795	AppendDimension *AppendDimensionRequest `json:"appendDimension,omitempty"`
7796
7797	// AutoFill: Automatically fills in more data based on existing data.
7798	AutoFill *AutoFillRequest `json:"autoFill,omitempty"`
7799
7800	// AutoResizeDimensions: Automatically resizes one or more dimensions
7801	// based on the contents
7802	// of the cells in that dimension.
7803	AutoResizeDimensions *AutoResizeDimensionsRequest `json:"autoResizeDimensions,omitempty"`
7804
7805	// ClearBasicFilter: Clears the basic filter on a sheet.
7806	ClearBasicFilter *ClearBasicFilterRequest `json:"clearBasicFilter,omitempty"`
7807
7808	// CopyPaste: Copies data from one area and pastes it to another.
7809	CopyPaste *CopyPasteRequest `json:"copyPaste,omitempty"`
7810
7811	// CreateDeveloperMetadata: Creates new developer metadata
7812	CreateDeveloperMetadata *CreateDeveloperMetadataRequest `json:"createDeveloperMetadata,omitempty"`
7813
7814	// CutPaste: Cuts data from one area and pastes it to another.
7815	CutPaste *CutPasteRequest `json:"cutPaste,omitempty"`
7816
7817	// DeleteBanding: Removes a banded range
7818	DeleteBanding *DeleteBandingRequest `json:"deleteBanding,omitempty"`
7819
7820	// DeleteConditionalFormatRule: Deletes an existing conditional format
7821	// rule.
7822	DeleteConditionalFormatRule *DeleteConditionalFormatRuleRequest `json:"deleteConditionalFormatRule,omitempty"`
7823
7824	// DeleteDeveloperMetadata: Deletes developer metadata
7825	DeleteDeveloperMetadata *DeleteDeveloperMetadataRequest `json:"deleteDeveloperMetadata,omitempty"`
7826
7827	// DeleteDimension: Deletes rows or columns in a sheet.
7828	DeleteDimension *DeleteDimensionRequest `json:"deleteDimension,omitempty"`
7829
7830	// DeleteDimensionGroup: Deletes a group over the specified range.
7831	DeleteDimensionGroup *DeleteDimensionGroupRequest `json:"deleteDimensionGroup,omitempty"`
7832
7833	// DeleteDuplicates: Removes rows containing duplicate values in
7834	// specified columns of a cell
7835	// range.
7836	DeleteDuplicates *DeleteDuplicatesRequest `json:"deleteDuplicates,omitempty"`
7837
7838	// DeleteEmbeddedObject: Deletes an embedded object (e.g, chart, image)
7839	// in a sheet.
7840	DeleteEmbeddedObject *DeleteEmbeddedObjectRequest `json:"deleteEmbeddedObject,omitempty"`
7841
7842	// DeleteFilterView: Deletes a filter view from a sheet.
7843	DeleteFilterView *DeleteFilterViewRequest `json:"deleteFilterView,omitempty"`
7844
7845	// DeleteNamedRange: Deletes a named range.
7846	DeleteNamedRange *DeleteNamedRangeRequest `json:"deleteNamedRange,omitempty"`
7847
7848	// DeleteProtectedRange: Deletes a protected range.
7849	DeleteProtectedRange *DeleteProtectedRangeRequest `json:"deleteProtectedRange,omitempty"`
7850
7851	// DeleteRange: Deletes a range of cells from a sheet, shifting the
7852	// remaining cells.
7853	DeleteRange *DeleteRangeRequest `json:"deleteRange,omitempty"`
7854
7855	// DeleteSheet: Deletes a sheet.
7856	DeleteSheet *DeleteSheetRequest `json:"deleteSheet,omitempty"`
7857
7858	// DuplicateFilterView: Duplicates a filter view.
7859	DuplicateFilterView *DuplicateFilterViewRequest `json:"duplicateFilterView,omitempty"`
7860
7861	// DuplicateSheet: Duplicates a sheet.
7862	DuplicateSheet *DuplicateSheetRequest `json:"duplicateSheet,omitempty"`
7863
7864	// FindReplace: Finds and replaces occurrences of some text with other
7865	// text.
7866	FindReplace *FindReplaceRequest `json:"findReplace,omitempty"`
7867
7868	// InsertDimension: Inserts new rows or columns in a sheet.
7869	InsertDimension *InsertDimensionRequest `json:"insertDimension,omitempty"`
7870
7871	// InsertRange: Inserts new cells in a sheet, shifting the existing
7872	// cells.
7873	InsertRange *InsertRangeRequest `json:"insertRange,omitempty"`
7874
7875	// MergeCells: Merges cells together.
7876	MergeCells *MergeCellsRequest `json:"mergeCells,omitempty"`
7877
7878	// MoveDimension: Moves rows or columns to another location in a sheet.
7879	MoveDimension *MoveDimensionRequest `json:"moveDimension,omitempty"`
7880
7881	// PasteData: Pastes data (HTML or delimited) into a sheet.
7882	PasteData *PasteDataRequest `json:"pasteData,omitempty"`
7883
7884	// RandomizeRange: Randomizes the order of the rows in a range.
7885	RandomizeRange *RandomizeRangeRequest `json:"randomizeRange,omitempty"`
7886
7887	// RepeatCell: Repeats a single cell across a range.
7888	RepeatCell *RepeatCellRequest `json:"repeatCell,omitempty"`
7889
7890	// SetBasicFilter: Sets the basic filter on a sheet.
7891	SetBasicFilter *SetBasicFilterRequest `json:"setBasicFilter,omitempty"`
7892
7893	// SetDataValidation: Sets data validation for one or more cells.
7894	SetDataValidation *SetDataValidationRequest `json:"setDataValidation,omitempty"`
7895
7896	// SortRange: Sorts data in a range.
7897	SortRange *SortRangeRequest `json:"sortRange,omitempty"`
7898
7899	// TextToColumns: Converts a column of text into many columns of text.
7900	TextToColumns *TextToColumnsRequest `json:"textToColumns,omitempty"`
7901
7902	// TrimWhitespace: Trims cells of whitespace (such as spaces, tabs, or
7903	// new lines).
7904	TrimWhitespace *TrimWhitespaceRequest `json:"trimWhitespace,omitempty"`
7905
7906	// UnmergeCells: Unmerges merged cells.
7907	UnmergeCells *UnmergeCellsRequest `json:"unmergeCells,omitempty"`
7908
7909	// UpdateBanding: Updates a banded range
7910	UpdateBanding *UpdateBandingRequest `json:"updateBanding,omitempty"`
7911
7912	// UpdateBorders: Updates the borders in a range of cells.
7913	UpdateBorders *UpdateBordersRequest `json:"updateBorders,omitempty"`
7914
7915	// UpdateCells: Updates many cells at once.
7916	UpdateCells *UpdateCellsRequest `json:"updateCells,omitempty"`
7917
7918	// UpdateChartSpec: Updates a chart's specifications.
7919	UpdateChartSpec *UpdateChartSpecRequest `json:"updateChartSpec,omitempty"`
7920
7921	// UpdateConditionalFormatRule: Updates an existing conditional format
7922	// rule.
7923	UpdateConditionalFormatRule *UpdateConditionalFormatRuleRequest `json:"updateConditionalFormatRule,omitempty"`
7924
7925	// UpdateDeveloperMetadata: Updates an existing developer metadata entry
7926	UpdateDeveloperMetadata *UpdateDeveloperMetadataRequest `json:"updateDeveloperMetadata,omitempty"`
7927
7928	// UpdateDimensionGroup: Updates the state of the specified group.
7929	UpdateDimensionGroup *UpdateDimensionGroupRequest `json:"updateDimensionGroup,omitempty"`
7930
7931	// UpdateDimensionProperties: Updates dimensions' properties.
7932	UpdateDimensionProperties *UpdateDimensionPropertiesRequest `json:"updateDimensionProperties,omitempty"`
7933
7934	// UpdateEmbeddedObjectPosition: Updates an embedded object's (e.g.
7935	// chart, image) position.
7936	UpdateEmbeddedObjectPosition *UpdateEmbeddedObjectPositionRequest `json:"updateEmbeddedObjectPosition,omitempty"`
7937
7938	// UpdateFilterView: Updates the properties of a filter view.
7939	UpdateFilterView *UpdateFilterViewRequest `json:"updateFilterView,omitempty"`
7940
7941	// UpdateNamedRange: Updates a named range.
7942	UpdateNamedRange *UpdateNamedRangeRequest `json:"updateNamedRange,omitempty"`
7943
7944	// UpdateProtectedRange: Updates a protected range.
7945	UpdateProtectedRange *UpdateProtectedRangeRequest `json:"updateProtectedRange,omitempty"`
7946
7947	// UpdateSheetProperties: Updates a sheet's properties.
7948	UpdateSheetProperties *UpdateSheetPropertiesRequest `json:"updateSheetProperties,omitempty"`
7949
7950	// UpdateSlicerSpec: Updates a slicer's specifications.
7951	UpdateSlicerSpec *UpdateSlicerSpecRequest `json:"updateSlicerSpec,omitempty"`
7952
7953	// UpdateSpreadsheetProperties: Updates the spreadsheet's properties.
7954	UpdateSpreadsheetProperties *UpdateSpreadsheetPropertiesRequest `json:"updateSpreadsheetProperties,omitempty"`
7955
7956	// ForceSendFields is a list of field names (e.g. "AddBanding") to
7957	// unconditionally include in API requests. By default, fields with
7958	// empty values are omitted from API requests. However, any non-pointer,
7959	// non-interface field appearing in ForceSendFields will be sent to the
7960	// server regardless of whether the field is empty or not. This may be
7961	// used to include empty fields in Patch requests.
7962	ForceSendFields []string `json:"-"`
7963
7964	// NullFields is a list of field names (e.g. "AddBanding") to include in
7965	// API requests with the JSON null value. By default, fields with empty
7966	// values are omitted from API requests. However, any field with an
7967	// empty value appearing in NullFields will be sent to the server as
7968	// null. It is an error if a field in this list has a non-empty value.
7969	// This may be used to include null fields in Patch requests.
7970	NullFields []string `json:"-"`
7971}
7972
7973func (s *Request) MarshalJSON() ([]byte, error) {
7974	type NoMethod Request
7975	raw := NoMethod(*s)
7976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7977}
7978
7979// Response: A single response from an update.
7980type Response struct {
7981	// AddBanding: A reply from adding a banded range.
7982	AddBanding *AddBandingResponse `json:"addBanding,omitempty"`
7983
7984	// AddChart: A reply from adding a chart.
7985	AddChart *AddChartResponse `json:"addChart,omitempty"`
7986
7987	// AddDimensionGroup: A reply from adding a dimension group.
7988	AddDimensionGroup *AddDimensionGroupResponse `json:"addDimensionGroup,omitempty"`
7989
7990	// AddFilterView: A reply from adding a filter view.
7991	AddFilterView *AddFilterViewResponse `json:"addFilterView,omitempty"`
7992
7993	// AddNamedRange: A reply from adding a named range.
7994	AddNamedRange *AddNamedRangeResponse `json:"addNamedRange,omitempty"`
7995
7996	// AddProtectedRange: A reply from adding a protected range.
7997	AddProtectedRange *AddProtectedRangeResponse `json:"addProtectedRange,omitempty"`
7998
7999	// AddSheet: A reply from adding a sheet.
8000	AddSheet *AddSheetResponse `json:"addSheet,omitempty"`
8001
8002	// AddSlicer: A reply from adding a slicer.
8003	AddSlicer *AddSlicerResponse `json:"addSlicer,omitempty"`
8004
8005	// CreateDeveloperMetadata: A reply from creating a developer metadata
8006	// entry.
8007	CreateDeveloperMetadata *CreateDeveloperMetadataResponse `json:"createDeveloperMetadata,omitempty"`
8008
8009	// DeleteConditionalFormatRule: A reply from deleting a conditional
8010	// format rule.
8011	DeleteConditionalFormatRule *DeleteConditionalFormatRuleResponse `json:"deleteConditionalFormatRule,omitempty"`
8012
8013	// DeleteDeveloperMetadata: A reply from deleting a developer metadata
8014	// entry.
8015	DeleteDeveloperMetadata *DeleteDeveloperMetadataResponse `json:"deleteDeveloperMetadata,omitempty"`
8016
8017	// DeleteDimensionGroup: A reply from deleting a dimension group.
8018	DeleteDimensionGroup *DeleteDimensionGroupResponse `json:"deleteDimensionGroup,omitempty"`
8019
8020	// DeleteDuplicates: A reply from removing rows containing duplicate
8021	// values.
8022	DeleteDuplicates *DeleteDuplicatesResponse `json:"deleteDuplicates,omitempty"`
8023
8024	// DuplicateFilterView: A reply from duplicating a filter view.
8025	DuplicateFilterView *DuplicateFilterViewResponse `json:"duplicateFilterView,omitempty"`
8026
8027	// DuplicateSheet: A reply from duplicating a sheet.
8028	DuplicateSheet *DuplicateSheetResponse `json:"duplicateSheet,omitempty"`
8029
8030	// FindReplace: A reply from doing a find/replace.
8031	FindReplace *FindReplaceResponse `json:"findReplace,omitempty"`
8032
8033	// TrimWhitespace: A reply from trimming whitespace.
8034	TrimWhitespace *TrimWhitespaceResponse `json:"trimWhitespace,omitempty"`
8035
8036	// UpdateConditionalFormatRule: A reply from updating a conditional
8037	// format rule.
8038	UpdateConditionalFormatRule *UpdateConditionalFormatRuleResponse `json:"updateConditionalFormatRule,omitempty"`
8039
8040	// UpdateDeveloperMetadata: A reply from updating a developer metadata
8041	// entry.
8042	UpdateDeveloperMetadata *UpdateDeveloperMetadataResponse `json:"updateDeveloperMetadata,omitempty"`
8043
8044	// UpdateEmbeddedObjectPosition: A reply from updating an embedded
8045	// object's position.
8046	UpdateEmbeddedObjectPosition *UpdateEmbeddedObjectPositionResponse `json:"updateEmbeddedObjectPosition,omitempty"`
8047
8048	// ForceSendFields is a list of field names (e.g. "AddBanding") to
8049	// unconditionally include in API requests. By default, fields with
8050	// empty values are omitted from API requests. However, any non-pointer,
8051	// non-interface field appearing in ForceSendFields will be sent to the
8052	// server regardless of whether the field is empty or not. This may be
8053	// used to include empty fields in Patch requests.
8054	ForceSendFields []string `json:"-"`
8055
8056	// NullFields is a list of field names (e.g. "AddBanding") to include in
8057	// API requests with the JSON null value. By default, fields with empty
8058	// values are omitted from API requests. However, any field with an
8059	// empty value appearing in NullFields will be sent to the server as
8060	// null. It is an error if a field in this list has a non-empty value.
8061	// This may be used to include null fields in Patch requests.
8062	NullFields []string `json:"-"`
8063}
8064
8065func (s *Response) MarshalJSON() ([]byte, error) {
8066	type NoMethod Response
8067	raw := NoMethod(*s)
8068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8069}
8070
8071// RowData: Data about each cell in a row.
8072type RowData struct {
8073	// Values: The values in the row, one per column.
8074	Values []*CellData `json:"values,omitempty"`
8075
8076	// ForceSendFields is a list of field names (e.g. "Values") to
8077	// unconditionally include in API requests. By default, fields with
8078	// empty values are omitted from API requests. However, any non-pointer,
8079	// non-interface field appearing in ForceSendFields will be sent to the
8080	// server regardless of whether the field is empty or not. This may be
8081	// used to include empty fields in Patch requests.
8082	ForceSendFields []string `json:"-"`
8083
8084	// NullFields is a list of field names (e.g. "Values") to include in API
8085	// requests with the JSON null value. By default, fields with empty
8086	// values are omitted from API requests. However, any field with an
8087	// empty value appearing in NullFields will be sent to the server as
8088	// null. It is an error if a field in this list has a non-empty value.
8089	// This may be used to include null fields in Patch requests.
8090	NullFields []string `json:"-"`
8091}
8092
8093func (s *RowData) MarshalJSON() ([]byte, error) {
8094	type NoMethod RowData
8095	raw := NoMethod(*s)
8096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8097}
8098
8099// ScorecardChartSpec: A scorecard chart. Scorecard charts are used to
8100// highlight key performance
8101// indicators, known as KPIs, on the spreadsheet. A scorecard chart
8102// can
8103// represent things like total sales, average cost, or a top selling
8104// item. You
8105// can specify a single data value, or aggregate over a range of
8106// data.
8107// Percentage or absolute difference from a baseline value can be
8108// highlighted,
8109// like changes over time.
8110type ScorecardChartSpec struct {
8111	// AggregateType: The aggregation type for key and baseline chart data
8112	// in scorecard chart.
8113	// This field is optional.
8114	//
8115	// Possible values:
8116	//   "CHART_AGGREGATE_TYPE_UNSPECIFIED" - Default value, do not use.
8117	//   "AVERAGE" - Average aggregate function.
8118	//   "COUNT" - Count aggregate function.
8119	//   "MAX" - Maximum aggregate function.
8120	//   "MEDIAN" - Median aggregate function.
8121	//   "MIN" - Minimum aggregate function.
8122	//   "SUM" - Sum aggregate function.
8123	AggregateType string `json:"aggregateType,omitempty"`
8124
8125	// BaselineValueData: The data for scorecard baseline value.
8126	// This field is optional.
8127	BaselineValueData *ChartData `json:"baselineValueData,omitempty"`
8128
8129	// BaselineValueFormat: Formatting options for baseline value.
8130	// This field is needed only if baseline_value_data is specified.
8131	BaselineValueFormat *BaselineValueFormat `json:"baselineValueFormat,omitempty"`
8132
8133	// CustomFormatOptions: Custom formatting options for numeric
8134	// key/baseline values in scorecard
8135	// chart. This field is used only when number_format_source is set
8136	// to
8137	// CUSTOM. This field is optional.
8138	CustomFormatOptions *ChartCustomNumberFormatOptions `json:"customFormatOptions,omitempty"`
8139
8140	// KeyValueData: The data for scorecard key value.
8141	KeyValueData *ChartData `json:"keyValueData,omitempty"`
8142
8143	// KeyValueFormat: Formatting options for key value.
8144	KeyValueFormat *KeyValueFormat `json:"keyValueFormat,omitempty"`
8145
8146	// NumberFormatSource: The number format source used in the scorecard
8147	// chart.
8148	// This field is optional.
8149	//
8150	// Possible values:
8151	//   "CHART_NUMBER_FORMAT_SOURCE_UNDEFINED" - Default value, do not use.
8152	//   "FROM_DATA" - Inherit number formatting from data.
8153	//   "CUSTOM" - Apply custom formatting as specified by
8154	// ChartCustomNumberFormatOptions.
8155	NumberFormatSource string `json:"numberFormatSource,omitempty"`
8156
8157	// ScaleFactor: Value to scale scorecard key and baseline value. For
8158	// example, a factor of
8159	// 10 can be used to divide all values in the chart by 10.
8160	// This field is optional.
8161	ScaleFactor float64 `json:"scaleFactor,omitempty"`
8162
8163	// ForceSendFields is a list of field names (e.g. "AggregateType") to
8164	// unconditionally include in API requests. By default, fields with
8165	// empty values are omitted from API requests. However, any non-pointer,
8166	// non-interface field appearing in ForceSendFields will be sent to the
8167	// server regardless of whether the field is empty or not. This may be
8168	// used to include empty fields in Patch requests.
8169	ForceSendFields []string `json:"-"`
8170
8171	// NullFields is a list of field names (e.g. "AggregateType") to include
8172	// in API requests with the JSON null value. By default, fields with
8173	// empty values are omitted from API requests. However, any field with
8174	// an empty value appearing in NullFields will be sent to the server as
8175	// null. It is an error if a field in this list has a non-empty value.
8176	// This may be used to include null fields in Patch requests.
8177	NullFields []string `json:"-"`
8178}
8179
8180func (s *ScorecardChartSpec) MarshalJSON() ([]byte, error) {
8181	type NoMethod ScorecardChartSpec
8182	raw := NoMethod(*s)
8183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8184}
8185
8186func (s *ScorecardChartSpec) UnmarshalJSON(data []byte) error {
8187	type NoMethod ScorecardChartSpec
8188	var s1 struct {
8189		ScaleFactor gensupport.JSONFloat64 `json:"scaleFactor"`
8190		*NoMethod
8191	}
8192	s1.NoMethod = (*NoMethod)(s)
8193	if err := json.Unmarshal(data, &s1); err != nil {
8194		return err
8195	}
8196	s.ScaleFactor = float64(s1.ScaleFactor)
8197	return nil
8198}
8199
8200// SearchDeveloperMetadataRequest: A request to retrieve all developer
8201// metadata matching the set of specified
8202// criteria.
8203type SearchDeveloperMetadataRequest struct {
8204	// DataFilters: The data filters describing the criteria used to
8205	// determine which
8206	// DeveloperMetadata entries to return.  DeveloperMetadata matching any
8207	// of the
8208	// specified filters are included in the response.
8209	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
8210
8211	// ForceSendFields is a list of field names (e.g. "DataFilters") to
8212	// unconditionally include in API requests. By default, fields with
8213	// empty values are omitted from API requests. However, any non-pointer,
8214	// non-interface field appearing in ForceSendFields will be sent to the
8215	// server regardless of whether the field is empty or not. This may be
8216	// used to include empty fields in Patch requests.
8217	ForceSendFields []string `json:"-"`
8218
8219	// NullFields is a list of field names (e.g. "DataFilters") to include
8220	// in API requests with the JSON null value. By default, fields with
8221	// empty values are omitted from API requests. However, any field with
8222	// an empty value appearing in NullFields will be sent to the server as
8223	// null. It is an error if a field in this list has a non-empty value.
8224	// This may be used to include null fields in Patch requests.
8225	NullFields []string `json:"-"`
8226}
8227
8228func (s *SearchDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
8229	type NoMethod SearchDeveloperMetadataRequest
8230	raw := NoMethod(*s)
8231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8232}
8233
8234// SearchDeveloperMetadataResponse: A reply to a developer metadata
8235// search request.
8236type SearchDeveloperMetadataResponse struct {
8237	// MatchedDeveloperMetadata: The metadata matching the criteria of the
8238	// search request.
8239	MatchedDeveloperMetadata []*MatchedDeveloperMetadata `json:"matchedDeveloperMetadata,omitempty"`
8240
8241	// ServerResponse contains the HTTP response code and headers from the
8242	// server.
8243	googleapi.ServerResponse `json:"-"`
8244
8245	// ForceSendFields is a list of field names (e.g.
8246	// "MatchedDeveloperMetadata") to unconditionally include in API
8247	// requests. By default, fields with empty values are omitted from API
8248	// requests. However, any non-pointer, non-interface field appearing in
8249	// ForceSendFields will be sent to the server regardless of whether the
8250	// field is empty or not. This may be used to include empty fields in
8251	// Patch requests.
8252	ForceSendFields []string `json:"-"`
8253
8254	// NullFields is a list of field names (e.g. "MatchedDeveloperMetadata")
8255	// to include in API requests with the JSON null value. By default,
8256	// fields with empty values are omitted from API requests. However, any
8257	// field with an empty value appearing in NullFields will be sent to the
8258	// server as null. It is an error if a field in this list has a
8259	// non-empty value. This may be used to include null fields in Patch
8260	// requests.
8261	NullFields []string `json:"-"`
8262}
8263
8264func (s *SearchDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
8265	type NoMethod SearchDeveloperMetadataResponse
8266	raw := NoMethod(*s)
8267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8268}
8269
8270// SetBasicFilterRequest: Sets the basic filter associated with a sheet.
8271type SetBasicFilterRequest struct {
8272	// Filter: The filter to set.
8273	Filter *BasicFilter `json:"filter,omitempty"`
8274
8275	// ForceSendFields is a list of field names (e.g. "Filter") to
8276	// unconditionally include in API requests. By default, fields with
8277	// empty values are omitted from API requests. However, any non-pointer,
8278	// non-interface field appearing in ForceSendFields will be sent to the
8279	// server regardless of whether the field is empty or not. This may be
8280	// used to include empty fields in Patch requests.
8281	ForceSendFields []string `json:"-"`
8282
8283	// NullFields is a list of field names (e.g. "Filter") to include in API
8284	// requests with the JSON null value. By default, fields with empty
8285	// values are omitted from API requests. However, any field with an
8286	// empty value appearing in NullFields will be sent to the server as
8287	// null. It is an error if a field in this list has a non-empty value.
8288	// This may be used to include null fields in Patch requests.
8289	NullFields []string `json:"-"`
8290}
8291
8292func (s *SetBasicFilterRequest) MarshalJSON() ([]byte, error) {
8293	type NoMethod SetBasicFilterRequest
8294	raw := NoMethod(*s)
8295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8296}
8297
8298// SetDataValidationRequest: Sets a data validation rule to every cell
8299// in the range.
8300// To clear validation in a range, call this with no rule specified.
8301type SetDataValidationRequest struct {
8302	// Range: The range the data validation rule should apply to.
8303	Range *GridRange `json:"range,omitempty"`
8304
8305	// Rule: The data validation rule to set on each cell in the range,
8306	// or empty to clear the data validation in the range.
8307	Rule *DataValidationRule `json:"rule,omitempty"`
8308
8309	// ForceSendFields is a list of field names (e.g. "Range") to
8310	// unconditionally include in API requests. By default, fields with
8311	// empty values are omitted from API requests. However, any non-pointer,
8312	// non-interface field appearing in ForceSendFields will be sent to the
8313	// server regardless of whether the field is empty or not. This may be
8314	// used to include empty fields in Patch requests.
8315	ForceSendFields []string `json:"-"`
8316
8317	// NullFields is a list of field names (e.g. "Range") to include in API
8318	// requests with the JSON null value. By default, fields with empty
8319	// values are omitted from API requests. However, any field with an
8320	// empty value appearing in NullFields will be sent to the server as
8321	// null. It is an error if a field in this list has a non-empty value.
8322	// This may be used to include null fields in Patch requests.
8323	NullFields []string `json:"-"`
8324}
8325
8326func (s *SetDataValidationRequest) MarshalJSON() ([]byte, error) {
8327	type NoMethod SetDataValidationRequest
8328	raw := NoMethod(*s)
8329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8330}
8331
8332// Sheet: A sheet in a spreadsheet.
8333type Sheet struct {
8334	// BandedRanges: The banded (alternating colors) ranges on this sheet.
8335	BandedRanges []*BandedRange `json:"bandedRanges,omitempty"`
8336
8337	// BasicFilter: The filter on this sheet, if any.
8338	BasicFilter *BasicFilter `json:"basicFilter,omitempty"`
8339
8340	// Charts: The specifications of every chart on this sheet.
8341	Charts []*EmbeddedChart `json:"charts,omitempty"`
8342
8343	// ColumnGroups: All column groups on this sheet, ordered by increasing
8344	// range start index,
8345	// then by group depth.
8346	ColumnGroups []*DimensionGroup `json:"columnGroups,omitempty"`
8347
8348	// ConditionalFormats: The conditional format rules in this sheet.
8349	ConditionalFormats []*ConditionalFormatRule `json:"conditionalFormats,omitempty"`
8350
8351	// Data: Data in the grid, if this is a grid sheet.
8352	// The number of GridData objects returned is dependent on the number
8353	// of
8354	// ranges requested on this sheet. For example, if this is
8355	// representing
8356	// `Sheet1`, and the spreadsheet was requested with
8357	// ranges
8358	// `Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will
8359	// have a
8360	// startRow/startColumn of `0`,
8361	// while the second one will have `startRow 14` (zero-based row 15),
8362	// and `startColumn 3` (zero-based column D).
8363	Data []*GridData `json:"data,omitempty"`
8364
8365	// DeveloperMetadata: The developer metadata associated with a sheet.
8366	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
8367
8368	// FilterViews: The filter views in this sheet.
8369	FilterViews []*FilterView `json:"filterViews,omitempty"`
8370
8371	// Merges: The ranges that are merged together.
8372	Merges []*GridRange `json:"merges,omitempty"`
8373
8374	// Properties: The properties of the sheet.
8375	Properties *SheetProperties `json:"properties,omitempty"`
8376
8377	// ProtectedRanges: The protected ranges in this sheet.
8378	ProtectedRanges []*ProtectedRange `json:"protectedRanges,omitempty"`
8379
8380	// RowGroups: All row groups on this sheet, ordered by increasing range
8381	// start index, then
8382	// by group depth.
8383	RowGroups []*DimensionGroup `json:"rowGroups,omitempty"`
8384
8385	// Slicers: The slicers on this sheet.
8386	Slicers []*Slicer `json:"slicers,omitempty"`
8387
8388	// ForceSendFields is a list of field names (e.g. "BandedRanges") to
8389	// unconditionally include in API requests. By default, fields with
8390	// empty values are omitted from API requests. However, any non-pointer,
8391	// non-interface field appearing in ForceSendFields will be sent to the
8392	// server regardless of whether the field is empty or not. This may be
8393	// used to include empty fields in Patch requests.
8394	ForceSendFields []string `json:"-"`
8395
8396	// NullFields is a list of field names (e.g. "BandedRanges") to include
8397	// in API requests with the JSON null value. By default, fields with
8398	// empty values are omitted from API requests. However, any field with
8399	// an empty value appearing in NullFields will be sent to the server as
8400	// null. It is an error if a field in this list has a non-empty value.
8401	// This may be used to include null fields in Patch requests.
8402	NullFields []string `json:"-"`
8403}
8404
8405func (s *Sheet) MarshalJSON() ([]byte, error) {
8406	type NoMethod Sheet
8407	raw := NoMethod(*s)
8408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8409}
8410
8411// SheetProperties: Properties of a sheet.
8412type SheetProperties struct {
8413	// GridProperties: Additional properties of the sheet if this sheet is a
8414	// grid.
8415	// (If the sheet is an object sheet, containing a chart or image,
8416	// then
8417	// this field will be absent.)
8418	// When writing it is an error to set any grid properties on non-grid
8419	// sheets.
8420	GridProperties *GridProperties `json:"gridProperties,omitempty"`
8421
8422	// Hidden: True if the sheet is hidden in the UI, false if it's visible.
8423	Hidden bool `json:"hidden,omitempty"`
8424
8425	// Index: The index of the sheet within the spreadsheet.
8426	// When adding or updating sheet properties, if this field
8427	// is excluded then the sheet is added or moved to the end
8428	// of the sheet list. When updating sheet indices or inserting
8429	// sheets, movement is considered in "before the move" indexes.
8430	// For example, if there were 3 sheets (S1, S2, S3) in order to
8431	// move S1 ahead of S2 the index would have to be set to 2. A
8432	// sheet
8433	// index update request is ignored if the requested index is
8434	// identical to the sheets current index or if the requested new
8435	// index is equal to the current sheet index + 1.
8436	Index int64 `json:"index,omitempty"`
8437
8438	// RightToLeft: True if the sheet is an RTL sheet instead of an LTR
8439	// sheet.
8440	RightToLeft bool `json:"rightToLeft,omitempty"`
8441
8442	// SheetId: The ID of the sheet. Must be non-negative.
8443	// This field cannot be changed once set.
8444	SheetId int64 `json:"sheetId,omitempty"`
8445
8446	// SheetType: The type of sheet. Defaults to GRID.
8447	// This field cannot be changed once set.
8448	//
8449	// Possible values:
8450	//   "SHEET_TYPE_UNSPECIFIED" - Default value, do not use.
8451	//   "GRID" - The sheet is a grid.
8452	//   "OBJECT" - The sheet has no grid and instead has an object like a
8453	// chart or image.
8454	SheetType string `json:"sheetType,omitempty"`
8455
8456	// TabColor: The color of the tab in the UI.
8457	TabColor *Color `json:"tabColor,omitempty"`
8458
8459	// TabColorStyle: The color of the tab in the UI.
8460	// If tab_color is also set, this field takes precedence.
8461	TabColorStyle *ColorStyle `json:"tabColorStyle,omitempty"`
8462
8463	// Title: The name of the sheet.
8464	Title string `json:"title,omitempty"`
8465
8466	// ServerResponse contains the HTTP response code and headers from the
8467	// server.
8468	googleapi.ServerResponse `json:"-"`
8469
8470	// ForceSendFields is a list of field names (e.g. "GridProperties") to
8471	// unconditionally include in API requests. By default, fields with
8472	// empty values are omitted from API requests. However, any non-pointer,
8473	// non-interface field appearing in ForceSendFields will be sent to the
8474	// server regardless of whether the field is empty or not. This may be
8475	// used to include empty fields in Patch requests.
8476	ForceSendFields []string `json:"-"`
8477
8478	// NullFields is a list of field names (e.g. "GridProperties") to
8479	// include in API requests with the JSON null value. By default, fields
8480	// with empty values are omitted from API requests. However, any field
8481	// with an empty value appearing in NullFields will be sent to the
8482	// server as null. It is an error if a field in this list has a
8483	// non-empty value. This may be used to include null fields in Patch
8484	// requests.
8485	NullFields []string `json:"-"`
8486}
8487
8488func (s *SheetProperties) MarshalJSON() ([]byte, error) {
8489	type NoMethod SheetProperties
8490	raw := NoMethod(*s)
8491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8492}
8493
8494// Slicer: A slicer in a sheet.
8495type Slicer struct {
8496	// Position: The position of the slicer. Note that slicer can be
8497	// positioned only on
8498	// existing sheet. Also, width and height of slicer can be
8499	// automatically
8500	// adjusted to keep it within permitted limits.
8501	Position *EmbeddedObjectPosition `json:"position,omitempty"`
8502
8503	// SlicerId: The ID of the slicer.
8504	SlicerId int64 `json:"slicerId,omitempty"`
8505
8506	// Spec: The specification of the slicer.
8507	Spec *SlicerSpec `json:"spec,omitempty"`
8508
8509	// ForceSendFields is a list of field names (e.g. "Position") to
8510	// unconditionally include in API requests. By default, fields with
8511	// empty values are omitted from API requests. However, any non-pointer,
8512	// non-interface field appearing in ForceSendFields will be sent to the
8513	// server regardless of whether the field is empty or not. This may be
8514	// used to include empty fields in Patch requests.
8515	ForceSendFields []string `json:"-"`
8516
8517	// NullFields is a list of field names (e.g. "Position") to include in
8518	// API requests with the JSON null value. By default, fields with empty
8519	// values are omitted from API requests. However, any field with an
8520	// empty value appearing in NullFields will be sent to the server as
8521	// null. It is an error if a field in this list has a non-empty value.
8522	// This may be used to include null fields in Patch requests.
8523	NullFields []string `json:"-"`
8524}
8525
8526func (s *Slicer) MarshalJSON() ([]byte, error) {
8527	type NoMethod Slicer
8528	raw := NoMethod(*s)
8529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8530}
8531
8532// SlicerSpec: The specifications of a slicer.
8533type SlicerSpec struct {
8534	// ApplyToPivotTables: True if the filter should apply to pivot
8535	// tables.
8536	// If not set, default to `True`.
8537	ApplyToPivotTables bool `json:"applyToPivotTables,omitempty"`
8538
8539	// BackgroundColor: The background color of the slicer.
8540	BackgroundColor *Color `json:"backgroundColor,omitempty"`
8541
8542	// BackgroundColorStyle: The background color of the slicer.
8543	// If background_color is also set, this field takes precedence.
8544	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
8545
8546	// ColumnIndex: The column index in the data table on which the filter
8547	// is applied to.
8548	ColumnIndex int64 `json:"columnIndex,omitempty"`
8549
8550	// DataRange: The data range of the slicer.
8551	DataRange *GridRange `json:"dataRange,omitempty"`
8552
8553	// FilterCriteria: The filtering criteria of the slicer.
8554	FilterCriteria *FilterCriteria `json:"filterCriteria,omitempty"`
8555
8556	// HorizontalAlignment: The horizontal alignment of title in the
8557	// slicer.
8558	// If unspecified, defaults to `LEFT`
8559	//
8560	// Possible values:
8561	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
8562	// specified. Do not use this.
8563	//   "LEFT" - The text is explicitly aligned to the left of the cell.
8564	//   "CENTER" - The text is explicitly aligned to the center of the
8565	// cell.
8566	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
8567	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
8568
8569	// TextFormat: The text format of title in the slicer.
8570	TextFormat *TextFormat `json:"textFormat,omitempty"`
8571
8572	// Title: The title of the slicer.
8573	Title string `json:"title,omitempty"`
8574
8575	// ForceSendFields is a list of field names (e.g. "ApplyToPivotTables")
8576	// to unconditionally include in API requests. By default, fields with
8577	// empty values are omitted from API requests. However, any non-pointer,
8578	// non-interface field appearing in ForceSendFields will be sent to the
8579	// server regardless of whether the field is empty or not. This may be
8580	// used to include empty fields in Patch requests.
8581	ForceSendFields []string `json:"-"`
8582
8583	// NullFields is a list of field names (e.g. "ApplyToPivotTables") to
8584	// include in API requests with the JSON null value. By default, fields
8585	// with empty values are omitted from API requests. However, any field
8586	// with an empty value appearing in NullFields will be sent to the
8587	// server as null. It is an error if a field in this list has a
8588	// non-empty value. This may be used to include null fields in Patch
8589	// requests.
8590	NullFields []string `json:"-"`
8591}
8592
8593func (s *SlicerSpec) MarshalJSON() ([]byte, error) {
8594	type NoMethod SlicerSpec
8595	raw := NoMethod(*s)
8596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8597}
8598
8599// SortRangeRequest: Sorts data in rows based on a sort order per
8600// column.
8601type SortRangeRequest struct {
8602	// Range: The range to sort.
8603	Range *GridRange `json:"range,omitempty"`
8604
8605	// SortSpecs: The sort order per column. Later specifications are used
8606	// when values
8607	// are equal in the earlier specifications.
8608	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
8609
8610	// ForceSendFields is a list of field names (e.g. "Range") to
8611	// unconditionally include in API requests. By default, fields with
8612	// empty values are omitted from API requests. However, any non-pointer,
8613	// non-interface field appearing in ForceSendFields will be sent to the
8614	// server regardless of whether the field is empty or not. This may be
8615	// used to include empty fields in Patch requests.
8616	ForceSendFields []string `json:"-"`
8617
8618	// NullFields is a list of field names (e.g. "Range") to include in API
8619	// requests with the JSON null value. By default, fields with empty
8620	// values are omitted from API requests. However, any field with an
8621	// empty value appearing in NullFields will be sent to the server as
8622	// null. It is an error if a field in this list has a non-empty value.
8623	// This may be used to include null fields in Patch requests.
8624	NullFields []string `json:"-"`
8625}
8626
8627func (s *SortRangeRequest) MarshalJSON() ([]byte, error) {
8628	type NoMethod SortRangeRequest
8629	raw := NoMethod(*s)
8630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8631}
8632
8633// SortSpec: A sort order associated with a specific column or row.
8634type SortSpec struct {
8635	// BackgroundColor: The background fill color to sort by; cells with
8636	// this fill color are sorted
8637	// to the top. Mutually exclusive with foreground_color.
8638	BackgroundColor *Color `json:"backgroundColor,omitempty"`
8639
8640	// BackgroundColorStyle: The background fill color to sort by; cells
8641	// with this fill color are sorted
8642	// to the top. Mutually exclusive with foreground_color, and must be
8643	// an
8644	// RGB-type color. If background_color is also set, this field
8645	// takes
8646	// precedence.
8647	BackgroundColorStyle *ColorStyle `json:"backgroundColorStyle,omitempty"`
8648
8649	// DimensionIndex: The dimension the sort should be applied to.
8650	DimensionIndex int64 `json:"dimensionIndex,omitempty"`
8651
8652	// ForegroundColor: The foreground color to sort by; cells with this
8653	// foreground color are
8654	// sorted to the top. Mutually exclusive with background_color.
8655	ForegroundColor *Color `json:"foregroundColor,omitempty"`
8656
8657	// ForegroundColorStyle: The foreground color to sort by; cells with
8658	// this foreground color are
8659	// sorted to the top. Mutually exclusive with background_color, and
8660	// must
8661	// be an RGB-type color. If foreground_color is also set, this field
8662	// takes
8663	// precedence.
8664	ForegroundColorStyle *ColorStyle `json:"foregroundColorStyle,omitempty"`
8665
8666	// SortOrder: The order data should be sorted.
8667	//
8668	// Possible values:
8669	//   "SORT_ORDER_UNSPECIFIED" - Default value, do not use this.
8670	//   "ASCENDING" - Sort ascending.
8671	//   "DESCENDING" - Sort descending.
8672	SortOrder string `json:"sortOrder,omitempty"`
8673
8674	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
8675	// unconditionally include in API requests. By default, fields with
8676	// empty values are omitted from API requests. However, any non-pointer,
8677	// non-interface field appearing in ForceSendFields will be sent to the
8678	// server regardless of whether the field is empty or not. This may be
8679	// used to include empty fields in Patch requests.
8680	ForceSendFields []string `json:"-"`
8681
8682	// NullFields is a list of field names (e.g. "BackgroundColor") to
8683	// include in API requests with the JSON null value. By default, fields
8684	// with empty values are omitted from API requests. However, any field
8685	// with an empty value appearing in NullFields will be sent to the
8686	// server as null. It is an error if a field in this list has a
8687	// non-empty value. This may be used to include null fields in Patch
8688	// requests.
8689	NullFields []string `json:"-"`
8690}
8691
8692func (s *SortSpec) MarshalJSON() ([]byte, error) {
8693	type NoMethod SortSpec
8694	raw := NoMethod(*s)
8695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8696}
8697
8698// SourceAndDestination: A combination of a source range and how to
8699// extend that source.
8700type SourceAndDestination struct {
8701	// Dimension: The dimension that data should be filled into.
8702	//
8703	// Possible values:
8704	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
8705	//   "ROWS" - Operates on the rows of a sheet.
8706	//   "COLUMNS" - Operates on the columns of a sheet.
8707	Dimension string `json:"dimension,omitempty"`
8708
8709	// FillLength: The number of rows or columns that data should be filled
8710	// into.
8711	// Positive numbers expand beyond the last row or last column
8712	// of the source.  Negative numbers expand before the first row
8713	// or first column of the source.
8714	FillLength int64 `json:"fillLength,omitempty"`
8715
8716	// Source: The location of the data to use as the source of the
8717	// autofill.
8718	Source *GridRange `json:"source,omitempty"`
8719
8720	// ForceSendFields is a list of field names (e.g. "Dimension") to
8721	// unconditionally include in API requests. By default, fields with
8722	// empty values are omitted from API requests. However, any non-pointer,
8723	// non-interface field appearing in ForceSendFields will be sent to the
8724	// server regardless of whether the field is empty or not. This may be
8725	// used to include empty fields in Patch requests.
8726	ForceSendFields []string `json:"-"`
8727
8728	// NullFields is a list of field names (e.g. "Dimension") to include in
8729	// API requests with the JSON null value. By default, fields with empty
8730	// values are omitted from API requests. However, any field with an
8731	// empty value appearing in NullFields will be sent to the server as
8732	// null. It is an error if a field in this list has a non-empty value.
8733	// This may be used to include null fields in Patch requests.
8734	NullFields []string `json:"-"`
8735}
8736
8737func (s *SourceAndDestination) MarshalJSON() ([]byte, error) {
8738	type NoMethod SourceAndDestination
8739	raw := NoMethod(*s)
8740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8741}
8742
8743// Spreadsheet: Resource that represents a spreadsheet.
8744type Spreadsheet struct {
8745	// DeveloperMetadata: The developer metadata associated with a
8746	// spreadsheet.
8747	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
8748
8749	// NamedRanges: The named ranges defined in a spreadsheet.
8750	NamedRanges []*NamedRange `json:"namedRanges,omitempty"`
8751
8752	// Properties: Overall properties of a spreadsheet.
8753	Properties *SpreadsheetProperties `json:"properties,omitempty"`
8754
8755	// Sheets: The sheets that are part of a spreadsheet.
8756	Sheets []*Sheet `json:"sheets,omitempty"`
8757
8758	// SpreadsheetId: The ID of the spreadsheet.
8759	// This field is read-only.
8760	SpreadsheetId string `json:"spreadsheetId,omitempty"`
8761
8762	// SpreadsheetUrl: The url of the spreadsheet.
8763	// This field is read-only.
8764	SpreadsheetUrl string `json:"spreadsheetUrl,omitempty"`
8765
8766	// ServerResponse contains the HTTP response code and headers from the
8767	// server.
8768	googleapi.ServerResponse `json:"-"`
8769
8770	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
8771	// to unconditionally include in API requests. By default, fields with
8772	// empty values are omitted from API requests. However, any non-pointer,
8773	// non-interface field appearing in ForceSendFields will be sent to the
8774	// server regardless of whether the field is empty or not. This may be
8775	// used to include empty fields in Patch requests.
8776	ForceSendFields []string `json:"-"`
8777
8778	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
8779	// include in API requests with the JSON null value. By default, fields
8780	// with empty values are omitted from API requests. However, any field
8781	// with an empty value appearing in NullFields will be sent to the
8782	// server as null. It is an error if a field in this list has a
8783	// non-empty value. This may be used to include null fields in Patch
8784	// requests.
8785	NullFields []string `json:"-"`
8786}
8787
8788func (s *Spreadsheet) MarshalJSON() ([]byte, error) {
8789	type NoMethod Spreadsheet
8790	raw := NoMethod(*s)
8791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8792}
8793
8794// SpreadsheetProperties: Properties of a spreadsheet.
8795type SpreadsheetProperties struct {
8796	// AutoRecalc: The amount of time to wait before volatile functions are
8797	// recalculated.
8798	//
8799	// Possible values:
8800	//   "RECALCULATION_INTERVAL_UNSPECIFIED" - Default value. This value
8801	// must not be used.
8802	//   "ON_CHANGE" - Volatile functions are updated on every change.
8803	//   "MINUTE" - Volatile functions are updated on every change and every
8804	// minute.
8805	//   "HOUR" - Volatile functions are updated on every change and hourly.
8806	AutoRecalc string `json:"autoRecalc,omitempty"`
8807
8808	// DefaultFormat: The default format of all cells in the
8809	// spreadsheet.
8810	// CellData.effectiveFormat will not be set if
8811	// the cell's format is equal to this default format. This field is
8812	// read-only.
8813	DefaultFormat *CellFormat `json:"defaultFormat,omitempty"`
8814
8815	// IterativeCalculationSettings: Determines whether and how circular
8816	// references are resolved with iterative
8817	// calculation.  Absence of this field means that circular references
8818	// result
8819	// in calculation errors.
8820	IterativeCalculationSettings *IterativeCalculationSettings `json:"iterativeCalculationSettings,omitempty"`
8821
8822	// Locale: The locale of the spreadsheet in one of the following
8823	// formats:
8824	//
8825	// * an ISO 639-1 language code such as `en`
8826	//
8827	// * an ISO 639-2 language code such as `fil`, if no 639-1 code
8828	// exists
8829	//
8830	// * a combination of the ISO language code and country code, such as
8831	// `en_US`
8832	//
8833	// Note: when updating this field, not all locales/languages are
8834	// supported.
8835	Locale string `json:"locale,omitempty"`
8836
8837	// SpreadsheetTheme: Theme applied to the spreadsheet.
8838	SpreadsheetTheme *SpreadsheetTheme `json:"spreadsheetTheme,omitempty"`
8839
8840	// TimeZone: The time zone of the spreadsheet, in CLDR format such
8841	// as
8842	// `America/New_York`. If the time zone isn't recognized, this may
8843	// be a custom time zone such as `GMT-07:00`.
8844	TimeZone string `json:"timeZone,omitempty"`
8845
8846	// Title: The title of the spreadsheet.
8847	Title string `json:"title,omitempty"`
8848
8849	// ForceSendFields is a list of field names (e.g. "AutoRecalc") to
8850	// unconditionally include in API requests. By default, fields with
8851	// empty values are omitted from API requests. However, any non-pointer,
8852	// non-interface field appearing in ForceSendFields will be sent to the
8853	// server regardless of whether the field is empty or not. This may be
8854	// used to include empty fields in Patch requests.
8855	ForceSendFields []string `json:"-"`
8856
8857	// NullFields is a list of field names (e.g. "AutoRecalc") to include in
8858	// API requests with the JSON null value. By default, fields with empty
8859	// values are omitted from API requests. However, any field with an
8860	// empty value appearing in NullFields will be sent to the server as
8861	// null. It is an error if a field in this list has a non-empty value.
8862	// This may be used to include null fields in Patch requests.
8863	NullFields []string `json:"-"`
8864}
8865
8866func (s *SpreadsheetProperties) MarshalJSON() ([]byte, error) {
8867	type NoMethod SpreadsheetProperties
8868	raw := NoMethod(*s)
8869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8870}
8871
8872// SpreadsheetTheme: Represents spreadsheet theme
8873type SpreadsheetTheme struct {
8874	// PrimaryFontFamily: / Name of the primary font family.
8875	PrimaryFontFamily string `json:"primaryFontFamily,omitempty"`
8876
8877	// ThemeColors: The spreadsheet theme color pairs. To update you must
8878	// provide all theme
8879	// color pairs.
8880	ThemeColors []*ThemeColorPair `json:"themeColors,omitempty"`
8881
8882	// ForceSendFields is a list of field names (e.g. "PrimaryFontFamily")
8883	// to unconditionally include in API requests. By default, fields with
8884	// empty values are omitted from API requests. However, any non-pointer,
8885	// non-interface field appearing in ForceSendFields will be sent to the
8886	// server regardless of whether the field is empty or not. This may be
8887	// used to include empty fields in Patch requests.
8888	ForceSendFields []string `json:"-"`
8889
8890	// NullFields is a list of field names (e.g. "PrimaryFontFamily") to
8891	// include in API requests with the JSON null value. By default, fields
8892	// with empty values are omitted from API requests. However, any field
8893	// with an empty value appearing in NullFields will be sent to the
8894	// server as null. It is an error if a field in this list has a
8895	// non-empty value. This may be used to include null fields in Patch
8896	// requests.
8897	NullFields []string `json:"-"`
8898}
8899
8900func (s *SpreadsheetTheme) MarshalJSON() ([]byte, error) {
8901	type NoMethod SpreadsheetTheme
8902	raw := NoMethod(*s)
8903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8904}
8905
8906// TextFormat: The format of a run of text in a cell.
8907// Absent values indicate that the field isn't specified.
8908type TextFormat struct {
8909	// Bold: True if the text is bold.
8910	Bold bool `json:"bold,omitempty"`
8911
8912	// FontFamily: The font family.
8913	FontFamily string `json:"fontFamily,omitempty"`
8914
8915	// FontSize: The size of the font.
8916	FontSize int64 `json:"fontSize,omitempty"`
8917
8918	// ForegroundColor: The foreground color of the text.
8919	ForegroundColor *Color `json:"foregroundColor,omitempty"`
8920
8921	// ForegroundColorStyle: The foreground color of the text.
8922	// If foreground_color is also set, this field takes precedence.
8923	ForegroundColorStyle *ColorStyle `json:"foregroundColorStyle,omitempty"`
8924
8925	// Italic: True if the text is italicized.
8926	Italic bool `json:"italic,omitempty"`
8927
8928	// Strikethrough: True if the text has a strikethrough.
8929	Strikethrough bool `json:"strikethrough,omitempty"`
8930
8931	// Underline: True if the text is underlined.
8932	Underline bool `json:"underline,omitempty"`
8933
8934	// ForceSendFields is a list of field names (e.g. "Bold") to
8935	// unconditionally include in API requests. By default, fields with
8936	// empty values are omitted from API requests. However, any non-pointer,
8937	// non-interface field appearing in ForceSendFields will be sent to the
8938	// server regardless of whether the field is empty or not. This may be
8939	// used to include empty fields in Patch requests.
8940	ForceSendFields []string `json:"-"`
8941
8942	// NullFields is a list of field names (e.g. "Bold") to include in API
8943	// requests with the JSON null value. By default, fields with empty
8944	// values are omitted from API requests. However, any field with an
8945	// empty value appearing in NullFields will be sent to the server as
8946	// null. It is an error if a field in this list has a non-empty value.
8947	// This may be used to include null fields in Patch requests.
8948	NullFields []string `json:"-"`
8949}
8950
8951func (s *TextFormat) MarshalJSON() ([]byte, error) {
8952	type NoMethod TextFormat
8953	raw := NoMethod(*s)
8954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8955}
8956
8957// TextFormatRun: A run of a text format. The format of this run
8958// continues until the start
8959// index of the next run.
8960// When updating, all fields must be set.
8961type TextFormatRun struct {
8962	// Format: The format of this run.  Absent values inherit the cell's
8963	// format.
8964	Format *TextFormat `json:"format,omitempty"`
8965
8966	// StartIndex: The character index where this run starts.
8967	StartIndex int64 `json:"startIndex,omitempty"`
8968
8969	// ForceSendFields is a list of field names (e.g. "Format") to
8970	// unconditionally include in API requests. By default, fields with
8971	// empty values are omitted from API requests. However, any non-pointer,
8972	// non-interface field appearing in ForceSendFields will be sent to the
8973	// server regardless of whether the field is empty or not. This may be
8974	// used to include empty fields in Patch requests.
8975	ForceSendFields []string `json:"-"`
8976
8977	// NullFields is a list of field names (e.g. "Format") to include in API
8978	// requests with the JSON null value. By default, fields with empty
8979	// values are omitted from API requests. However, any field with an
8980	// empty value appearing in NullFields will be sent to the server as
8981	// null. It is an error if a field in this list has a non-empty value.
8982	// This may be used to include null fields in Patch requests.
8983	NullFields []string `json:"-"`
8984}
8985
8986func (s *TextFormatRun) MarshalJSON() ([]byte, error) {
8987	type NoMethod TextFormatRun
8988	raw := NoMethod(*s)
8989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8990}
8991
8992// TextPosition: Position settings for text.
8993type TextPosition struct {
8994	// HorizontalAlignment: Horizontal alignment setting for the piece of
8995	// text.
8996	//
8997	// Possible values:
8998	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
8999	// specified. Do not use this.
9000	//   "LEFT" - The text is explicitly aligned to the left of the cell.
9001	//   "CENTER" - The text is explicitly aligned to the center of the
9002	// cell.
9003	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
9004	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
9005
9006	// ForceSendFields is a list of field names (e.g. "HorizontalAlignment")
9007	// to unconditionally include in API requests. By default, fields with
9008	// empty values are omitted from API requests. However, any non-pointer,
9009	// non-interface field appearing in ForceSendFields will be sent to the
9010	// server regardless of whether the field is empty or not. This may be
9011	// used to include empty fields in Patch requests.
9012	ForceSendFields []string `json:"-"`
9013
9014	// NullFields is a list of field names (e.g. "HorizontalAlignment") to
9015	// include in API requests with the JSON null value. By default, fields
9016	// with empty values are omitted from API requests. However, any field
9017	// with an empty value appearing in NullFields will be sent to the
9018	// server as null. It is an error if a field in this list has a
9019	// non-empty value. This may be used to include null fields in Patch
9020	// requests.
9021	NullFields []string `json:"-"`
9022}
9023
9024func (s *TextPosition) MarshalJSON() ([]byte, error) {
9025	type NoMethod TextPosition
9026	raw := NoMethod(*s)
9027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9028}
9029
9030// TextRotation: The rotation applied to text in a cell.
9031type TextRotation struct {
9032	// Angle: The angle between the standard orientation and the desired
9033	// orientation.
9034	// Measured in degrees. Valid values are between -90 and 90.
9035	// Positive
9036	// angles are angled upwards, negative are angled downwards.
9037	//
9038	// Note: For LTR text direction positive angles are in
9039	// the
9040	// counterclockwise direction, whereas for RTL they are in the
9041	// clockwise
9042	// direction
9043	Angle int64 `json:"angle,omitempty"`
9044
9045	// Vertical: If true, text reads top to bottom, but the orientation of
9046	// individual
9047	// characters is unchanged.
9048	// For example:
9049	//
9050	//     | V |
9051	//     | e |
9052	//     | r |
9053	//     | t |
9054	//     | i |
9055	//     | c |
9056	//     | a |
9057	//     | l |
9058	Vertical bool `json:"vertical,omitempty"`
9059
9060	// ForceSendFields is a list of field names (e.g. "Angle") to
9061	// unconditionally include in API requests. By default, fields with
9062	// empty values are omitted from API requests. However, any non-pointer,
9063	// non-interface field appearing in ForceSendFields will be sent to the
9064	// server regardless of whether the field is empty or not. This may be
9065	// used to include empty fields in Patch requests.
9066	ForceSendFields []string `json:"-"`
9067
9068	// NullFields is a list of field names (e.g. "Angle") to include in API
9069	// requests with the JSON null value. By default, fields with empty
9070	// values are omitted from API requests. However, any field with an
9071	// empty value appearing in NullFields will be sent to the server as
9072	// null. It is an error if a field in this list has a non-empty value.
9073	// This may be used to include null fields in Patch requests.
9074	NullFields []string `json:"-"`
9075}
9076
9077func (s *TextRotation) MarshalJSON() ([]byte, error) {
9078	type NoMethod TextRotation
9079	raw := NoMethod(*s)
9080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9081}
9082
9083// TextToColumnsRequest: Splits a column of text into multiple
9084// columns,
9085// based on a delimiter in each cell.
9086type TextToColumnsRequest struct {
9087	// Delimiter: The delimiter to use. Used only if delimiterType
9088	// is
9089	// CUSTOM.
9090	Delimiter string `json:"delimiter,omitempty"`
9091
9092	// DelimiterType: The delimiter type to use.
9093	//
9094	// Possible values:
9095	//   "DELIMITER_TYPE_UNSPECIFIED" - Default value. This value must not
9096	// be used.
9097	//   "COMMA" - ","
9098	//   "SEMICOLON" - ";"
9099	//   "PERIOD" - "."
9100	//   "SPACE" - " "
9101	//   "CUSTOM" - A custom value as defined in delimiter.
9102	//   "AUTODETECT" - Automatically detect columns.
9103	DelimiterType string `json:"delimiterType,omitempty"`
9104
9105	// Source: The source data range.  This must span exactly one column.
9106	Source *GridRange `json:"source,omitempty"`
9107
9108	// ForceSendFields is a list of field names (e.g. "Delimiter") to
9109	// unconditionally include in API requests. By default, fields with
9110	// empty values are omitted from API requests. However, any non-pointer,
9111	// non-interface field appearing in ForceSendFields will be sent to the
9112	// server regardless of whether the field is empty or not. This may be
9113	// used to include empty fields in Patch requests.
9114	ForceSendFields []string `json:"-"`
9115
9116	// NullFields is a list of field names (e.g. "Delimiter") to include in
9117	// API requests with the JSON null value. By default, fields with empty
9118	// values are omitted from API requests. However, any field with an
9119	// empty value appearing in NullFields will be sent to the server as
9120	// null. It is an error if a field in this list has a non-empty value.
9121	// This may be used to include null fields in Patch requests.
9122	NullFields []string `json:"-"`
9123}
9124
9125func (s *TextToColumnsRequest) MarshalJSON() ([]byte, error) {
9126	type NoMethod TextToColumnsRequest
9127	raw := NoMethod(*s)
9128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9129}
9130
9131// ThemeColorPair: A pair mapping a spreadsheet theme color type to the
9132// concrete color it
9133// represents.
9134type ThemeColorPair struct {
9135	// Color: The concrete color corresponding to the theme color type.
9136	Color *ColorStyle `json:"color,omitempty"`
9137
9138	// ColorType: The type of the spreadsheet theme color.
9139	//
9140	// Possible values:
9141	//   "THEME_COLOR_TYPE_UNSPECIFIED" - Unspecified theme color
9142	//   "TEXT" - Represents the primary text color
9143	//   "BACKGROUND" - Represents the primary background color
9144	//   "ACCENT1" - Represents the first accent color
9145	//   "ACCENT2" - Represents the second accent color
9146	//   "ACCENT3" - Represents the third accent color
9147	//   "ACCENT4" - Represents the fourth accent color
9148	//   "ACCENT5" - Represents the fifth accent color
9149	//   "ACCENT6" - Represents the sixth accent color
9150	//   "LINK" - Represents the color to use for hyperlinks
9151	ColorType string `json:"colorType,omitempty"`
9152
9153	// ForceSendFields is a list of field names (e.g. "Color") to
9154	// unconditionally include in API requests. By default, fields with
9155	// empty values are omitted from API requests. However, any non-pointer,
9156	// non-interface field appearing in ForceSendFields will be sent to the
9157	// server regardless of whether the field is empty or not. This may be
9158	// used to include empty fields in Patch requests.
9159	ForceSendFields []string `json:"-"`
9160
9161	// NullFields is a list of field names (e.g. "Color") to include in API
9162	// requests with the JSON null value. By default, fields with empty
9163	// values are omitted from API requests. However, any field with an
9164	// empty value appearing in NullFields will be sent to the server as
9165	// null. It is an error if a field in this list has a non-empty value.
9166	// This may be used to include null fields in Patch requests.
9167	NullFields []string `json:"-"`
9168}
9169
9170func (s *ThemeColorPair) MarshalJSON() ([]byte, error) {
9171	type NoMethod ThemeColorPair
9172	raw := NoMethod(*s)
9173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9174}
9175
9176// TreemapChartColorScale: A color scale for a treemap chart.
9177type TreemapChartColorScale struct {
9178	// MaxValueColor: The background color for cells with a color value
9179	// greater than or equal
9180	// to maxValue. Defaults to #109618 if not
9181	// specified.
9182	MaxValueColor *Color `json:"maxValueColor,omitempty"`
9183
9184	// MaxValueColorStyle: The background color for cells with a color value
9185	// greater than or equal
9186	// to maxValue. Defaults to #109618 if not
9187	// specified.
9188	// If max_value_color is also set, this field takes precedence.
9189	MaxValueColorStyle *ColorStyle `json:"maxValueColorStyle,omitempty"`
9190
9191	// MidValueColor: The background color for cells with a color value at
9192	// the midpoint between
9193	// minValue and
9194	// maxValue. Defaults to #efe6dc if not
9195	// specified.
9196	MidValueColor *Color `json:"midValueColor,omitempty"`
9197
9198	// MidValueColorStyle: The background color for cells with a color value
9199	// at the midpoint between
9200	// minValue and
9201	// maxValue. Defaults to #efe6dc if not
9202	// specified.
9203	// If mid_value_color is also set, this field takes precedence.
9204	MidValueColorStyle *ColorStyle `json:"midValueColorStyle,omitempty"`
9205
9206	// MinValueColor: The background color for cells with a color value less
9207	// than or equal to
9208	// minValue. Defaults to #dc3912 if not
9209	// specified.
9210	MinValueColor *Color `json:"minValueColor,omitempty"`
9211
9212	// MinValueColorStyle: The background color for cells with a color value
9213	// less than or equal to
9214	// minValue. Defaults to #dc3912 if not
9215	// specified.
9216	// If min_value_color is also set, this field takes precedence.
9217	MinValueColorStyle *ColorStyle `json:"minValueColorStyle,omitempty"`
9218
9219	// NoDataColor: The background color for cells that have no color data
9220	// associated with
9221	// them. Defaults to #000000 if not specified.
9222	NoDataColor *Color `json:"noDataColor,omitempty"`
9223
9224	// NoDataColorStyle: The background color for cells that have no color
9225	// data associated with
9226	// them. Defaults to #000000 if not specified.
9227	// If no_data_color is also set, this field takes precedence.
9228	NoDataColorStyle *ColorStyle `json:"noDataColorStyle,omitempty"`
9229
9230	// ForceSendFields is a list of field names (e.g. "MaxValueColor") to
9231	// unconditionally include in API requests. By default, fields with
9232	// empty values are omitted from API requests. However, any non-pointer,
9233	// non-interface field appearing in ForceSendFields will be sent to the
9234	// server regardless of whether the field is empty or not. This may be
9235	// used to include empty fields in Patch requests.
9236	ForceSendFields []string `json:"-"`
9237
9238	// NullFields is a list of field names (e.g. "MaxValueColor") to include
9239	// in API requests with the JSON null value. By default, fields with
9240	// empty values are omitted from API requests. However, any field with
9241	// an empty value appearing in NullFields will be sent to the server as
9242	// null. It is an error if a field in this list has a non-empty value.
9243	// This may be used to include null fields in Patch requests.
9244	NullFields []string `json:"-"`
9245}
9246
9247func (s *TreemapChartColorScale) MarshalJSON() ([]byte, error) {
9248	type NoMethod TreemapChartColorScale
9249	raw := NoMethod(*s)
9250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9251}
9252
9253// TreemapChartSpec: A <a
9254// href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>.
9255type TreemapChartSpec struct {
9256	// ColorData: The data that determines the background color of each
9257	// treemap data cell.
9258	// This field is optional. If not specified, size_data is used
9259	// to
9260	// determine background colors. If specified, the data is expected to
9261	// be
9262	// numeric. color_scale will determine how the values in this data map
9263	// to
9264	// data cell background colors.
9265	ColorData *ChartData `json:"colorData,omitempty"`
9266
9267	// ColorScale: The color scale for data cells in the treemap chart. Data
9268	// cells are
9269	// assigned colors based on their color values. These color values come
9270	// from
9271	// color_data, or from size_data if color_data is not specified.
9272	// Cells with color values less than or equal to min_value will
9273	// have minValueColor as their
9274	// background color. Cells with color values greater than or equal
9275	// to
9276	// max_value will have
9277	// maxValueColor as their background
9278	// color. Cells with color values between min_value and max_value
9279	// will
9280	// have background colors on a gradient between
9281	// minValueColor and
9282	// maxValueColor, the midpoint of
9283	// the gradient being midValueColor.
9284	// Cells with missing or non-numeric color values will have
9285	// noDataColor as their background
9286	// color.
9287	ColorScale *TreemapChartColorScale `json:"colorScale,omitempty"`
9288
9289	// HeaderColor: The background color for header cells.
9290	HeaderColor *Color `json:"headerColor,omitempty"`
9291
9292	// HeaderColorStyle: The background color for header cells.
9293	// If header_color is also set, this field takes precedence.
9294	HeaderColorStyle *ColorStyle `json:"headerColorStyle,omitempty"`
9295
9296	// HideTooltips: True to hide tooltips.
9297	HideTooltips bool `json:"hideTooltips,omitempty"`
9298
9299	// HintedLevels: The number of additional data levels beyond the labeled
9300	// levels to be shown
9301	// on the treemap chart. These levels are not interactive and are
9302	// shown
9303	// without their labels. Defaults to 0 if not specified.
9304	HintedLevels int64 `json:"hintedLevels,omitempty"`
9305
9306	// Labels: The data that contains the treemap cell labels.
9307	Labels *ChartData `json:"labels,omitempty"`
9308
9309	// Levels: The number of data levels to show on the treemap chart. These
9310	// levels are
9311	// interactive and are shown with their labels. Defaults to 2 if
9312	// not
9313	// specified.
9314	Levels int64 `json:"levels,omitempty"`
9315
9316	// MaxValue: The maximum possible data value. Cells with values greater
9317	// than this will
9318	// have the same color as cells with this value. If not specified,
9319	// defaults
9320	// to the actual maximum value from color_data, or the maximum value
9321	// from
9322	// size_data if color_data is not specified.
9323	MaxValue float64 `json:"maxValue,omitempty"`
9324
9325	// MinValue: The minimum possible data value. Cells with values less
9326	// than this will
9327	// have the same color as cells with this value. If not specified,
9328	// defaults
9329	// to the actual minimum value from color_data, or the minimum value
9330	// from
9331	// size_data if color_data is not specified.
9332	MinValue float64 `json:"minValue,omitempty"`
9333
9334	// ParentLabels: The data the contains the treemap cells' parent labels.
9335	ParentLabels *ChartData `json:"parentLabels,omitempty"`
9336
9337	// SizeData: The data that determines the size of each treemap data
9338	// cell. This data is
9339	// expected to be numeric. The cells corresponding to non-numeric or
9340	// missing
9341	// data will not be rendered. If color_data is not specified, this
9342	// data
9343	// is used to determine data cell background colors as well.
9344	SizeData *ChartData `json:"sizeData,omitempty"`
9345
9346	// TextFormat: The text format for all labels on the chart.
9347	TextFormat *TextFormat `json:"textFormat,omitempty"`
9348
9349	// ForceSendFields is a list of field names (e.g. "ColorData") to
9350	// unconditionally include in API requests. By default, fields with
9351	// empty values are omitted from API requests. However, any non-pointer,
9352	// non-interface field appearing in ForceSendFields will be sent to the
9353	// server regardless of whether the field is empty or not. This may be
9354	// used to include empty fields in Patch requests.
9355	ForceSendFields []string `json:"-"`
9356
9357	// NullFields is a list of field names (e.g. "ColorData") to include in
9358	// API requests with the JSON null value. By default, fields with empty
9359	// values are omitted from API requests. However, any field with an
9360	// empty value appearing in NullFields will be sent to the server as
9361	// null. It is an error if a field in this list has a non-empty value.
9362	// This may be used to include null fields in Patch requests.
9363	NullFields []string `json:"-"`
9364}
9365
9366func (s *TreemapChartSpec) MarshalJSON() ([]byte, error) {
9367	type NoMethod TreemapChartSpec
9368	raw := NoMethod(*s)
9369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9370}
9371
9372func (s *TreemapChartSpec) UnmarshalJSON(data []byte) error {
9373	type NoMethod TreemapChartSpec
9374	var s1 struct {
9375		MaxValue gensupport.JSONFloat64 `json:"maxValue"`
9376		MinValue gensupport.JSONFloat64 `json:"minValue"`
9377		*NoMethod
9378	}
9379	s1.NoMethod = (*NoMethod)(s)
9380	if err := json.Unmarshal(data, &s1); err != nil {
9381		return err
9382	}
9383	s.MaxValue = float64(s1.MaxValue)
9384	s.MinValue = float64(s1.MinValue)
9385	return nil
9386}
9387
9388// TrimWhitespaceRequest: Trims the whitespace (such as spaces, tabs, or
9389// new lines) in every cell in
9390// the specified range. This request removes all whitespace from the
9391// start and
9392// end of each cell's text, and reduces any subsequence of remaining
9393// whitespace
9394// characters to a single space. If the resulting trimmed text starts
9395// with a '+'
9396// or '=' character, the text remains as a string value and isn't
9397// interpreted
9398// as a formula.
9399type TrimWhitespaceRequest struct {
9400	// Range: The range whose cells to trim.
9401	Range *GridRange `json:"range,omitempty"`
9402
9403	// ForceSendFields is a list of field names (e.g. "Range") to
9404	// unconditionally include in API requests. By default, fields with
9405	// empty values are omitted from API requests. However, any non-pointer,
9406	// non-interface field appearing in ForceSendFields will be sent to the
9407	// server regardless of whether the field is empty or not. This may be
9408	// used to include empty fields in Patch requests.
9409	ForceSendFields []string `json:"-"`
9410
9411	// NullFields is a list of field names (e.g. "Range") to include in API
9412	// requests with the JSON null value. By default, fields with empty
9413	// values are omitted from API requests. However, any field with an
9414	// empty value appearing in NullFields will be sent to the server as
9415	// null. It is an error if a field in this list has a non-empty value.
9416	// This may be used to include null fields in Patch requests.
9417	NullFields []string `json:"-"`
9418}
9419
9420func (s *TrimWhitespaceRequest) MarshalJSON() ([]byte, error) {
9421	type NoMethod TrimWhitespaceRequest
9422	raw := NoMethod(*s)
9423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9424}
9425
9426// TrimWhitespaceResponse: The result of trimming whitespace in cells.
9427type TrimWhitespaceResponse struct {
9428	// CellsChangedCount: The number of cells that were trimmed of
9429	// whitespace.
9430	CellsChangedCount int64 `json:"cellsChangedCount,omitempty"`
9431
9432	// ForceSendFields is a list of field names (e.g. "CellsChangedCount")
9433	// to unconditionally include in API requests. By default, fields with
9434	// empty values are omitted from API requests. However, any non-pointer,
9435	// non-interface field appearing in ForceSendFields will be sent to the
9436	// server regardless of whether the field is empty or not. This may be
9437	// used to include empty fields in Patch requests.
9438	ForceSendFields []string `json:"-"`
9439
9440	// NullFields is a list of field names (e.g. "CellsChangedCount") to
9441	// include in API requests with the JSON null value. By default, fields
9442	// with empty values are omitted from API requests. However, any field
9443	// with an empty value appearing in NullFields will be sent to the
9444	// server as null. It is an error if a field in this list has a
9445	// non-empty value. This may be used to include null fields in Patch
9446	// requests.
9447	NullFields []string `json:"-"`
9448}
9449
9450func (s *TrimWhitespaceResponse) MarshalJSON() ([]byte, error) {
9451	type NoMethod TrimWhitespaceResponse
9452	raw := NoMethod(*s)
9453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9454}
9455
9456// UnmergeCellsRequest: Unmerges cells in the given range.
9457type UnmergeCellsRequest struct {
9458	// Range: The range within which all cells should be unmerged.
9459	// If the range spans multiple merges, all will be unmerged.
9460	// The range must not partially span any merge.
9461	Range *GridRange `json:"range,omitempty"`
9462
9463	// ForceSendFields is a list of field names (e.g. "Range") to
9464	// unconditionally include in API requests. By default, fields with
9465	// empty values are omitted from API requests. However, any non-pointer,
9466	// non-interface field appearing in ForceSendFields will be sent to the
9467	// server regardless of whether the field is empty or not. This may be
9468	// used to include empty fields in Patch requests.
9469	ForceSendFields []string `json:"-"`
9470
9471	// NullFields is a list of field names (e.g. "Range") to include in API
9472	// requests with the JSON null value. By default, fields with empty
9473	// values are omitted from API requests. However, any field with an
9474	// empty value appearing in NullFields will be sent to the server as
9475	// null. It is an error if a field in this list has a non-empty value.
9476	// This may be used to include null fields in Patch requests.
9477	NullFields []string `json:"-"`
9478}
9479
9480func (s *UnmergeCellsRequest) MarshalJSON() ([]byte, error) {
9481	type NoMethod UnmergeCellsRequest
9482	raw := NoMethod(*s)
9483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9484}
9485
9486// UpdateBandingRequest: Updates properties of the supplied banded
9487// range.
9488type UpdateBandingRequest struct {
9489	// BandedRange: The banded range to update with the new properties.
9490	BandedRange *BandedRange `json:"bandedRange,omitempty"`
9491
9492	// Fields: The fields that should be updated.  At least one field must
9493	// be specified.
9494	// The root `bandedRange` is implied and should not be specified.
9495	// A single "*" can be used as short-hand for listing every field.
9496	Fields string `json:"fields,omitempty"`
9497
9498	// ForceSendFields is a list of field names (e.g. "BandedRange") to
9499	// unconditionally include in API requests. By default, fields with
9500	// empty values are omitted from API requests. However, any non-pointer,
9501	// non-interface field appearing in ForceSendFields will be sent to the
9502	// server regardless of whether the field is empty or not. This may be
9503	// used to include empty fields in Patch requests.
9504	ForceSendFields []string `json:"-"`
9505
9506	// NullFields is a list of field names (e.g. "BandedRange") to include
9507	// in API requests with the JSON null value. By default, fields with
9508	// empty values are omitted from API requests. However, any field with
9509	// an empty value appearing in NullFields will be sent to the server as
9510	// null. It is an error if a field in this list has a non-empty value.
9511	// This may be used to include null fields in Patch requests.
9512	NullFields []string `json:"-"`
9513}
9514
9515func (s *UpdateBandingRequest) MarshalJSON() ([]byte, error) {
9516	type NoMethod UpdateBandingRequest
9517	raw := NoMethod(*s)
9518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9519}
9520
9521// UpdateBordersRequest: Updates the borders of a range.
9522// If a field is not set in the request, that means the border remains
9523// as-is.
9524// For example, with two subsequent UpdateBordersRequest:
9525//
9526//  1. range: A1:A5 `{ top: RED, bottom: WHITE }`
9527//  2. range: A1:A5 `{ left: BLUE }`
9528//
9529// That would result in A1:A5 having a borders of
9530// `{ top: RED, bottom: WHITE, left: BLUE }`.
9531// If you want to clear a border, explicitly set the style to
9532// NONE.
9533type UpdateBordersRequest struct {
9534	// Bottom: The border to put at the bottom of the range.
9535	Bottom *Border `json:"bottom,omitempty"`
9536
9537	// InnerHorizontal: The horizontal border to put within the range.
9538	InnerHorizontal *Border `json:"innerHorizontal,omitempty"`
9539
9540	// InnerVertical: The vertical border to put within the range.
9541	InnerVertical *Border `json:"innerVertical,omitempty"`
9542
9543	// Left: The border to put at the left of the range.
9544	Left *Border `json:"left,omitempty"`
9545
9546	// Range: The range whose borders should be updated.
9547	Range *GridRange `json:"range,omitempty"`
9548
9549	// Right: The border to put at the right of the range.
9550	Right *Border `json:"right,omitempty"`
9551
9552	// Top: The border to put at the top of the range.
9553	Top *Border `json:"top,omitempty"`
9554
9555	// ForceSendFields is a list of field names (e.g. "Bottom") to
9556	// unconditionally include in API requests. By default, fields with
9557	// empty values are omitted from API requests. However, any non-pointer,
9558	// non-interface field appearing in ForceSendFields will be sent to the
9559	// server regardless of whether the field is empty or not. This may be
9560	// used to include empty fields in Patch requests.
9561	ForceSendFields []string `json:"-"`
9562
9563	// NullFields is a list of field names (e.g. "Bottom") to include in API
9564	// requests with the JSON null value. By default, fields with empty
9565	// values are omitted from API requests. However, any field with an
9566	// empty value appearing in NullFields will be sent to the server as
9567	// null. It is an error if a field in this list has a non-empty value.
9568	// This may be used to include null fields in Patch requests.
9569	NullFields []string `json:"-"`
9570}
9571
9572func (s *UpdateBordersRequest) MarshalJSON() ([]byte, error) {
9573	type NoMethod UpdateBordersRequest
9574	raw := NoMethod(*s)
9575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9576}
9577
9578// UpdateCellsRequest: Updates all cells in a range with new data.
9579type UpdateCellsRequest struct {
9580	// Fields: The fields of CellData that should be updated.
9581	// At least one field must be specified.
9582	// The root is the CellData; 'row.values.' should not be specified.
9583	// A single "*" can be used as short-hand for listing every field.
9584	Fields string `json:"fields,omitempty"`
9585
9586	// Range: The range to write data to.
9587	//
9588	// If the data in rows does not cover the entire requested range,
9589	// the fields matching those set in fields will be cleared.
9590	Range *GridRange `json:"range,omitempty"`
9591
9592	// Rows: The data to write.
9593	Rows []*RowData `json:"rows,omitempty"`
9594
9595	// Start: The coordinate to start writing data at.
9596	// Any number of rows and columns (including a different number
9597	// of
9598	// columns per row) may be written.
9599	Start *GridCoordinate `json:"start,omitempty"`
9600
9601	// ForceSendFields is a list of field names (e.g. "Fields") to
9602	// unconditionally include in API requests. By default, fields with
9603	// empty values are omitted from API requests. However, any non-pointer,
9604	// non-interface field appearing in ForceSendFields will be sent to the
9605	// server regardless of whether the field is empty or not. This may be
9606	// used to include empty fields in Patch requests.
9607	ForceSendFields []string `json:"-"`
9608
9609	// NullFields is a list of field names (e.g. "Fields") to include in API
9610	// requests with the JSON null value. By default, fields with empty
9611	// values are omitted from API requests. However, any field with an
9612	// empty value appearing in NullFields will be sent to the server as
9613	// null. It is an error if a field in this list has a non-empty value.
9614	// This may be used to include null fields in Patch requests.
9615	NullFields []string `json:"-"`
9616}
9617
9618func (s *UpdateCellsRequest) MarshalJSON() ([]byte, error) {
9619	type NoMethod UpdateCellsRequest
9620	raw := NoMethod(*s)
9621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9622}
9623
9624// UpdateChartSpecRequest: Updates a chart's specifications.
9625// (This does not move or resize a chart. To move or resize a chart,
9626// use
9627//  UpdateEmbeddedObjectPositionRequest.)
9628type UpdateChartSpecRequest struct {
9629	// ChartId: The ID of the chart to update.
9630	ChartId int64 `json:"chartId,omitempty"`
9631
9632	// Spec: The specification to apply to the chart.
9633	Spec *ChartSpec `json:"spec,omitempty"`
9634
9635	// ForceSendFields is a list of field names (e.g. "ChartId") to
9636	// unconditionally include in API requests. By default, fields with
9637	// empty values are omitted from API requests. However, any non-pointer,
9638	// non-interface field appearing in ForceSendFields will be sent to the
9639	// server regardless of whether the field is empty or not. This may be
9640	// used to include empty fields in Patch requests.
9641	ForceSendFields []string `json:"-"`
9642
9643	// NullFields is a list of field names (e.g. "ChartId") to include in
9644	// API requests with the JSON null value. By default, fields with empty
9645	// values are omitted from API requests. However, any field with an
9646	// empty value appearing in NullFields will be sent to the server as
9647	// null. It is an error if a field in this list has a non-empty value.
9648	// This may be used to include null fields in Patch requests.
9649	NullFields []string `json:"-"`
9650}
9651
9652func (s *UpdateChartSpecRequest) MarshalJSON() ([]byte, error) {
9653	type NoMethod UpdateChartSpecRequest
9654	raw := NoMethod(*s)
9655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9656}
9657
9658// UpdateConditionalFormatRuleRequest: Updates a conditional format rule
9659// at the given index,
9660// or moves a conditional format rule to another index.
9661type UpdateConditionalFormatRuleRequest struct {
9662	// Index: The zero-based index of the rule that should be replaced or
9663	// moved.
9664	Index int64 `json:"index,omitempty"`
9665
9666	// NewIndex: The zero-based new index the rule should end up at.
9667	NewIndex int64 `json:"newIndex,omitempty"`
9668
9669	// Rule: The rule that should replace the rule at the given index.
9670	Rule *ConditionalFormatRule `json:"rule,omitempty"`
9671
9672	// SheetId: The sheet of the rule to move.  Required if new_index is
9673	// set,
9674	// unused otherwise.
9675	SheetId int64 `json:"sheetId,omitempty"`
9676
9677	// ForceSendFields is a list of field names (e.g. "Index") to
9678	// unconditionally include in API requests. By default, fields with
9679	// empty values are omitted from API requests. However, any non-pointer,
9680	// non-interface field appearing in ForceSendFields will be sent to the
9681	// server regardless of whether the field is empty or not. This may be
9682	// used to include empty fields in Patch requests.
9683	ForceSendFields []string `json:"-"`
9684
9685	// NullFields is a list of field names (e.g. "Index") to include in API
9686	// requests with the JSON null value. By default, fields with empty
9687	// values are omitted from API requests. However, any field with an
9688	// empty value appearing in NullFields will be sent to the server as
9689	// null. It is an error if a field in this list has a non-empty value.
9690	// This may be used to include null fields in Patch requests.
9691	NullFields []string `json:"-"`
9692}
9693
9694func (s *UpdateConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
9695	type NoMethod UpdateConditionalFormatRuleRequest
9696	raw := NoMethod(*s)
9697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9698}
9699
9700// UpdateConditionalFormatRuleResponse: The result of updating a
9701// conditional format rule.
9702type UpdateConditionalFormatRuleResponse struct {
9703	// NewIndex: The index of the new rule.
9704	NewIndex int64 `json:"newIndex,omitempty"`
9705
9706	// NewRule: The new rule that replaced the old rule (if replacing),
9707	// or the rule that was moved (if moved)
9708	NewRule *ConditionalFormatRule `json:"newRule,omitempty"`
9709
9710	// OldIndex: The old index of the rule. Not set if a rule was
9711	// replaced
9712	// (because it is the same as new_index).
9713	OldIndex int64 `json:"oldIndex,omitempty"`
9714
9715	// OldRule: The old (deleted) rule. Not set if a rule was moved
9716	// (because it is the same as new_rule).
9717	OldRule *ConditionalFormatRule `json:"oldRule,omitempty"`
9718
9719	// ForceSendFields is a list of field names (e.g. "NewIndex") to
9720	// unconditionally include in API requests. By default, fields with
9721	// empty values are omitted from API requests. However, any non-pointer,
9722	// non-interface field appearing in ForceSendFields will be sent to the
9723	// server regardless of whether the field is empty or not. This may be
9724	// used to include empty fields in Patch requests.
9725	ForceSendFields []string `json:"-"`
9726
9727	// NullFields is a list of field names (e.g. "NewIndex") to include in
9728	// API requests with the JSON null value. By default, fields with empty
9729	// values are omitted from API requests. However, any field with an
9730	// empty value appearing in NullFields will be sent to the server as
9731	// null. It is an error if a field in this list has a non-empty value.
9732	// This may be used to include null fields in Patch requests.
9733	NullFields []string `json:"-"`
9734}
9735
9736func (s *UpdateConditionalFormatRuleResponse) MarshalJSON() ([]byte, error) {
9737	type NoMethod UpdateConditionalFormatRuleResponse
9738	raw := NoMethod(*s)
9739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9740}
9741
9742// UpdateDeveloperMetadataRequest: A request to update properties of
9743// developer metadata.
9744// Updates the properties of the developer metadata selected by the
9745// filters to
9746// the values provided in the DeveloperMetadata resource.  Callers
9747// must
9748// specify the properties they wish to update in the fields parameter,
9749// as well
9750// as specify at least one DataFilter matching the metadata they wish
9751// to
9752// update.
9753type UpdateDeveloperMetadataRequest struct {
9754	// DataFilters: The filters matching the developer metadata entries to
9755	// update.
9756	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
9757
9758	// DeveloperMetadata: The value that all metadata matched by the data
9759	// filters will be updated to.
9760	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
9761
9762	// Fields: The fields that should be updated.  At least one field must
9763	// be specified.
9764	// The root `developerMetadata` is implied and should not be
9765	// specified.
9766	// A single "*" can be used as short-hand for listing every field.
9767	Fields string `json:"fields,omitempty"`
9768
9769	// ForceSendFields is a list of field names (e.g. "DataFilters") to
9770	// unconditionally include in API requests. By default, fields with
9771	// empty values are omitted from API requests. However, any non-pointer,
9772	// non-interface field appearing in ForceSendFields will be sent to the
9773	// server regardless of whether the field is empty or not. This may be
9774	// used to include empty fields in Patch requests.
9775	ForceSendFields []string `json:"-"`
9776
9777	// NullFields is a list of field names (e.g. "DataFilters") to include
9778	// in API requests with the JSON null value. By default, fields with
9779	// empty values are omitted from API requests. However, any field with
9780	// an empty value appearing in NullFields will be sent to the server as
9781	// null. It is an error if a field in this list has a non-empty value.
9782	// This may be used to include null fields in Patch requests.
9783	NullFields []string `json:"-"`
9784}
9785
9786func (s *UpdateDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
9787	type NoMethod UpdateDeveloperMetadataRequest
9788	raw := NoMethod(*s)
9789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9790}
9791
9792// UpdateDeveloperMetadataResponse: The response from updating developer
9793// metadata.
9794type UpdateDeveloperMetadataResponse struct {
9795	// DeveloperMetadata: The updated developer metadata.
9796	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
9797
9798	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
9799	// to unconditionally include in API requests. By default, fields with
9800	// empty values are omitted from API requests. However, any non-pointer,
9801	// non-interface field appearing in ForceSendFields will be sent to the
9802	// server regardless of whether the field is empty or not. This may be
9803	// used to include empty fields in Patch requests.
9804	ForceSendFields []string `json:"-"`
9805
9806	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
9807	// include in API requests with the JSON null value. By default, fields
9808	// with empty values are omitted from API requests. However, any field
9809	// with an empty value appearing in NullFields will be sent to the
9810	// server as null. It is an error if a field in this list has a
9811	// non-empty value. This may be used to include null fields in Patch
9812	// requests.
9813	NullFields []string `json:"-"`
9814}
9815
9816func (s *UpdateDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
9817	type NoMethod UpdateDeveloperMetadataResponse
9818	raw := NoMethod(*s)
9819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9820}
9821
9822// UpdateDimensionGroupRequest: Updates the state of the specified
9823// group.
9824type UpdateDimensionGroupRequest struct {
9825	// DimensionGroup: The group whose state should be updated. The range
9826	// and depth of the group
9827	// should specify a valid group on the sheet, and all other fields
9828	// updated.
9829	DimensionGroup *DimensionGroup `json:"dimensionGroup,omitempty"`
9830
9831	// Fields: The fields that should be updated.  At least one field must
9832	// be specified.
9833	// The root `dimensionGroup` is implied and should not be specified.
9834	// A single "*" can be used as short-hand for listing every field.
9835	Fields string `json:"fields,omitempty"`
9836
9837	// ForceSendFields is a list of field names (e.g. "DimensionGroup") to
9838	// unconditionally include in API requests. By default, fields with
9839	// empty values are omitted from API requests. However, any non-pointer,
9840	// non-interface field appearing in ForceSendFields will be sent to the
9841	// server regardless of whether the field is empty or not. This may be
9842	// used to include empty fields in Patch requests.
9843	ForceSendFields []string `json:"-"`
9844
9845	// NullFields is a list of field names (e.g. "DimensionGroup") to
9846	// include in API requests with the JSON null value. By default, fields
9847	// with empty values are omitted from API requests. However, any field
9848	// with an empty value appearing in NullFields will be sent to the
9849	// server as null. It is an error if a field in this list has a
9850	// non-empty value. This may be used to include null fields in Patch
9851	// requests.
9852	NullFields []string `json:"-"`
9853}
9854
9855func (s *UpdateDimensionGroupRequest) MarshalJSON() ([]byte, error) {
9856	type NoMethod UpdateDimensionGroupRequest
9857	raw := NoMethod(*s)
9858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9859}
9860
9861// UpdateDimensionPropertiesRequest: Updates properties of dimensions
9862// within the specified range.
9863type UpdateDimensionPropertiesRequest struct {
9864	// Fields: The fields that should be updated.  At least one field must
9865	// be specified.
9866	// The root `properties` is implied and should not be specified.
9867	// A single "*" can be used as short-hand for listing every field.
9868	Fields string `json:"fields,omitempty"`
9869
9870	// Properties: Properties to update.
9871	Properties *DimensionProperties `json:"properties,omitempty"`
9872
9873	// Range: The rows or columns to update.
9874	Range *DimensionRange `json:"range,omitempty"`
9875
9876	// ForceSendFields is a list of field names (e.g. "Fields") to
9877	// unconditionally include in API requests. By default, fields with
9878	// empty values are omitted from API requests. However, any non-pointer,
9879	// non-interface field appearing in ForceSendFields will be sent to the
9880	// server regardless of whether the field is empty or not. This may be
9881	// used to include empty fields in Patch requests.
9882	ForceSendFields []string `json:"-"`
9883
9884	// NullFields is a list of field names (e.g. "Fields") to include in API
9885	// requests with the JSON null value. By default, fields with empty
9886	// values are omitted from API requests. However, any field with an
9887	// empty value appearing in NullFields will be sent to the server as
9888	// null. It is an error if a field in this list has a non-empty value.
9889	// This may be used to include null fields in Patch requests.
9890	NullFields []string `json:"-"`
9891}
9892
9893func (s *UpdateDimensionPropertiesRequest) MarshalJSON() ([]byte, error) {
9894	type NoMethod UpdateDimensionPropertiesRequest
9895	raw := NoMethod(*s)
9896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9897}
9898
9899// UpdateEmbeddedObjectPositionRequest: Update an embedded object's
9900// position (such as a moving or resizing a
9901// chart or image).
9902type UpdateEmbeddedObjectPositionRequest struct {
9903	// Fields: The fields of OverlayPosition
9904	// that should be updated when setting a new position. Used only
9905	// if
9906	// newPosition.overlayPosition
9907	// is set, in which case at least one field must
9908	// be specified.  The root `newPosition.overlayPosition` is implied
9909	// and
9910	// should not be specified.
9911	// A single "*" can be used as short-hand for listing every field.
9912	Fields string `json:"fields,omitempty"`
9913
9914	// NewPosition: An explicit position to move the embedded object to.
9915	// If newPosition.sheetId is set,
9916	// a new sheet with that ID will be created.
9917	// If newPosition.newSheet is set to true,
9918	// a new sheet will be created with an ID that will be chosen for you.
9919	NewPosition *EmbeddedObjectPosition `json:"newPosition,omitempty"`
9920
9921	// ObjectId: The ID of the object to moved.
9922	ObjectId int64 `json:"objectId,omitempty"`
9923
9924	// ForceSendFields is a list of field names (e.g. "Fields") to
9925	// unconditionally include in API requests. By default, fields with
9926	// empty values are omitted from API requests. However, any non-pointer,
9927	// non-interface field appearing in ForceSendFields will be sent to the
9928	// server regardless of whether the field is empty or not. This may be
9929	// used to include empty fields in Patch requests.
9930	ForceSendFields []string `json:"-"`
9931
9932	// NullFields is a list of field names (e.g. "Fields") to include in API
9933	// requests with the JSON null value. By default, fields with empty
9934	// values are omitted from API requests. However, any field with an
9935	// empty value appearing in NullFields will be sent to the server as
9936	// null. It is an error if a field in this list has a non-empty value.
9937	// This may be used to include null fields in Patch requests.
9938	NullFields []string `json:"-"`
9939}
9940
9941func (s *UpdateEmbeddedObjectPositionRequest) MarshalJSON() ([]byte, error) {
9942	type NoMethod UpdateEmbeddedObjectPositionRequest
9943	raw := NoMethod(*s)
9944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9945}
9946
9947// UpdateEmbeddedObjectPositionResponse: The result of updating an
9948// embedded object's position.
9949type UpdateEmbeddedObjectPositionResponse struct {
9950	// Position: The new position of the embedded object.
9951	Position *EmbeddedObjectPosition `json:"position,omitempty"`
9952
9953	// ForceSendFields is a list of field names (e.g. "Position") to
9954	// unconditionally include in API requests. By default, fields with
9955	// empty values are omitted from API requests. However, any non-pointer,
9956	// non-interface field appearing in ForceSendFields will be sent to the
9957	// server regardless of whether the field is empty or not. This may be
9958	// used to include empty fields in Patch requests.
9959	ForceSendFields []string `json:"-"`
9960
9961	// NullFields is a list of field names (e.g. "Position") to include in
9962	// API requests with the JSON null value. By default, fields with empty
9963	// values are omitted from API requests. However, any field with an
9964	// empty value appearing in NullFields will be sent to the server as
9965	// null. It is an error if a field in this list has a non-empty value.
9966	// This may be used to include null fields in Patch requests.
9967	NullFields []string `json:"-"`
9968}
9969
9970func (s *UpdateEmbeddedObjectPositionResponse) MarshalJSON() ([]byte, error) {
9971	type NoMethod UpdateEmbeddedObjectPositionResponse
9972	raw := NoMethod(*s)
9973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9974}
9975
9976// UpdateFilterViewRequest: Updates properties of the filter view.
9977type UpdateFilterViewRequest struct {
9978	// Fields: The fields that should be updated.  At least one field must
9979	// be specified.
9980	// The root `filter` is implied and should not be specified.
9981	// A single "*" can be used as short-hand for listing every field.
9982	Fields string `json:"fields,omitempty"`
9983
9984	// Filter: The new properties of the filter view.
9985	Filter *FilterView `json:"filter,omitempty"`
9986
9987	// ForceSendFields is a list of field names (e.g. "Fields") to
9988	// unconditionally include in API requests. By default, fields with
9989	// empty values are omitted from API requests. However, any non-pointer,
9990	// non-interface field appearing in ForceSendFields will be sent to the
9991	// server regardless of whether the field is empty or not. This may be
9992	// used to include empty fields in Patch requests.
9993	ForceSendFields []string `json:"-"`
9994
9995	// NullFields is a list of field names (e.g. "Fields") to include in API
9996	// requests with the JSON null value. By default, fields with empty
9997	// values are omitted from API requests. However, any field with an
9998	// empty value appearing in NullFields will be sent to the server as
9999	// null. It is an error if a field in this list has a non-empty value.
10000	// This may be used to include null fields in Patch requests.
10001	NullFields []string `json:"-"`
10002}
10003
10004func (s *UpdateFilterViewRequest) MarshalJSON() ([]byte, error) {
10005	type NoMethod UpdateFilterViewRequest
10006	raw := NoMethod(*s)
10007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10008}
10009
10010// UpdateNamedRangeRequest: Updates properties of the named range with
10011// the specified
10012// namedRangeId.
10013type UpdateNamedRangeRequest struct {
10014	// Fields: The fields that should be updated.  At least one field must
10015	// be specified.
10016	// The root `namedRange` is implied and should not be specified.
10017	// A single "*" can be used as short-hand for listing every field.
10018	Fields string `json:"fields,omitempty"`
10019
10020	// NamedRange: The named range to update with the new properties.
10021	NamedRange *NamedRange `json:"namedRange,omitempty"`
10022
10023	// ForceSendFields is a list of field names (e.g. "Fields") to
10024	// unconditionally include in API requests. By default, fields with
10025	// empty values are omitted from API requests. However, any non-pointer,
10026	// non-interface field appearing in ForceSendFields will be sent to the
10027	// server regardless of whether the field is empty or not. This may be
10028	// used to include empty fields in Patch requests.
10029	ForceSendFields []string `json:"-"`
10030
10031	// NullFields is a list of field names (e.g. "Fields") to include in API
10032	// requests with the JSON null value. By default, fields with empty
10033	// values are omitted from API requests. However, any field with an
10034	// empty value appearing in NullFields will be sent to the server as
10035	// null. It is an error if a field in this list has a non-empty value.
10036	// This may be used to include null fields in Patch requests.
10037	NullFields []string `json:"-"`
10038}
10039
10040func (s *UpdateNamedRangeRequest) MarshalJSON() ([]byte, error) {
10041	type NoMethod UpdateNamedRangeRequest
10042	raw := NoMethod(*s)
10043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10044}
10045
10046// UpdateProtectedRangeRequest: Updates an existing protected range with
10047// the specified
10048// protectedRangeId.
10049type UpdateProtectedRangeRequest struct {
10050	// Fields: The fields that should be updated.  At least one field must
10051	// be specified.
10052	// The root `protectedRange` is implied and should not be specified.
10053	// A single "*" can be used as short-hand for listing every field.
10054	Fields string `json:"fields,omitempty"`
10055
10056	// ProtectedRange: The protected range to update with the new
10057	// properties.
10058	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
10059
10060	// ForceSendFields is a list of field names (e.g. "Fields") to
10061	// unconditionally include in API requests. By default, fields with
10062	// empty values are omitted from API requests. However, any non-pointer,
10063	// non-interface field appearing in ForceSendFields will be sent to the
10064	// server regardless of whether the field is empty or not. This may be
10065	// used to include empty fields in Patch requests.
10066	ForceSendFields []string `json:"-"`
10067
10068	// NullFields is a list of field names (e.g. "Fields") to include in API
10069	// requests with the JSON null value. By default, fields with empty
10070	// values are omitted from API requests. However, any field with an
10071	// empty value appearing in NullFields will be sent to the server as
10072	// null. It is an error if a field in this list has a non-empty value.
10073	// This may be used to include null fields in Patch requests.
10074	NullFields []string `json:"-"`
10075}
10076
10077func (s *UpdateProtectedRangeRequest) MarshalJSON() ([]byte, error) {
10078	type NoMethod UpdateProtectedRangeRequest
10079	raw := NoMethod(*s)
10080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10081}
10082
10083// UpdateSheetPropertiesRequest: Updates properties of the sheet with
10084// the specified
10085// sheetId.
10086type UpdateSheetPropertiesRequest struct {
10087	// Fields: The fields that should be updated.  At least one field must
10088	// be specified.
10089	// The root `properties` is implied and should not be specified.
10090	// A single "*" can be used as short-hand for listing every field.
10091	Fields string `json:"fields,omitempty"`
10092
10093	// Properties: The properties to update.
10094	Properties *SheetProperties `json:"properties,omitempty"`
10095
10096	// ForceSendFields is a list of field names (e.g. "Fields") to
10097	// unconditionally include in API requests. By default, fields with
10098	// empty values are omitted from API requests. However, any non-pointer,
10099	// non-interface field appearing in ForceSendFields will be sent to the
10100	// server regardless of whether the field is empty or not. This may be
10101	// used to include empty fields in Patch requests.
10102	ForceSendFields []string `json:"-"`
10103
10104	// NullFields is a list of field names (e.g. "Fields") to include in API
10105	// requests with the JSON null value. By default, fields with empty
10106	// values are omitted from API requests. However, any field with an
10107	// empty value appearing in NullFields will be sent to the server as
10108	// null. It is an error if a field in this list has a non-empty value.
10109	// This may be used to include null fields in Patch requests.
10110	NullFields []string `json:"-"`
10111}
10112
10113func (s *UpdateSheetPropertiesRequest) MarshalJSON() ([]byte, error) {
10114	type NoMethod UpdateSheetPropertiesRequest
10115	raw := NoMethod(*s)
10116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10117}
10118
10119// UpdateSlicerSpecRequest: Updates a slicer's specifications.
10120// (This does not move or resize a slicer. To move or resize a slicer
10121// use
10122// UpdateEmbeddedObjectPositionRequest.
10123type UpdateSlicerSpecRequest struct {
10124	// Fields: The fields that should be updated.  At least one field must
10125	// be specified.
10126	// The root `SlicerSpec` is implied and should not be specified. A
10127	// single "*"
10128	// can be used as short-hand for listing every field.
10129	Fields string `json:"fields,omitempty"`
10130
10131	// SlicerId: The id of the slicer to update.
10132	SlicerId int64 `json:"slicerId,omitempty"`
10133
10134	// Spec: The specification to apply to the slicer.
10135	Spec *SlicerSpec `json:"spec,omitempty"`
10136
10137	// ForceSendFields is a list of field names (e.g. "Fields") to
10138	// unconditionally include in API requests. By default, fields with
10139	// empty values are omitted from API requests. However, any non-pointer,
10140	// non-interface field appearing in ForceSendFields will be sent to the
10141	// server regardless of whether the field is empty or not. This may be
10142	// used to include empty fields in Patch requests.
10143	ForceSendFields []string `json:"-"`
10144
10145	// NullFields is a list of field names (e.g. "Fields") to include in API
10146	// requests with the JSON null value. By default, fields with empty
10147	// values are omitted from API requests. However, any field with an
10148	// empty value appearing in NullFields will be sent to the server as
10149	// null. It is an error if a field in this list has a non-empty value.
10150	// This may be used to include null fields in Patch requests.
10151	NullFields []string `json:"-"`
10152}
10153
10154func (s *UpdateSlicerSpecRequest) MarshalJSON() ([]byte, error) {
10155	type NoMethod UpdateSlicerSpecRequest
10156	raw := NoMethod(*s)
10157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10158}
10159
10160// UpdateSpreadsheetPropertiesRequest: Updates properties of a
10161// spreadsheet.
10162type UpdateSpreadsheetPropertiesRequest struct {
10163	// Fields: The fields that should be updated.  At least one field must
10164	// be specified.
10165	// The root 'properties' is implied and should not be specified.
10166	// A single "*" can be used as short-hand for listing every field.
10167	Fields string `json:"fields,omitempty"`
10168
10169	// Properties: The properties to update.
10170	Properties *SpreadsheetProperties `json:"properties,omitempty"`
10171
10172	// ForceSendFields is a list of field names (e.g. "Fields") to
10173	// unconditionally include in API requests. By default, fields with
10174	// empty values are omitted from API requests. However, any non-pointer,
10175	// non-interface field appearing in ForceSendFields will be sent to the
10176	// server regardless of whether the field is empty or not. This may be
10177	// used to include empty fields in Patch requests.
10178	ForceSendFields []string `json:"-"`
10179
10180	// NullFields is a list of field names (e.g. "Fields") to include in API
10181	// requests with the JSON null value. By default, fields with empty
10182	// values are omitted from API requests. However, any field with an
10183	// empty value appearing in NullFields will be sent to the server as
10184	// null. It is an error if a field in this list has a non-empty value.
10185	// This may be used to include null fields in Patch requests.
10186	NullFields []string `json:"-"`
10187}
10188
10189func (s *UpdateSpreadsheetPropertiesRequest) MarshalJSON() ([]byte, error) {
10190	type NoMethod UpdateSpreadsheetPropertiesRequest
10191	raw := NoMethod(*s)
10192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10193}
10194
10195// UpdateValuesByDataFilterResponse: The response when updating a range
10196// of values by a data filter in a
10197// spreadsheet.
10198type UpdateValuesByDataFilterResponse struct {
10199	// DataFilter: The data filter that selected the range that was updated.
10200	DataFilter *DataFilter `json:"dataFilter,omitempty"`
10201
10202	// UpdatedCells: The number of cells updated.
10203	UpdatedCells int64 `json:"updatedCells,omitempty"`
10204
10205	// UpdatedColumns: The number of columns where at least one cell in the
10206	// column was updated.
10207	UpdatedColumns int64 `json:"updatedColumns,omitempty"`
10208
10209	// UpdatedData: The values of the cells in the range matched by the
10210	// dataFilter after all
10211	// updates were applied. This is only included if the
10212	// request's
10213	// `includeValuesInResponse` field was `true`.
10214	UpdatedData *ValueRange `json:"updatedData,omitempty"`
10215
10216	// UpdatedRange: The range (in A1 notation) that updates were applied
10217	// to.
10218	UpdatedRange string `json:"updatedRange,omitempty"`
10219
10220	// UpdatedRows: The number of rows where at least one cell in the row
10221	// was updated.
10222	UpdatedRows int64 `json:"updatedRows,omitempty"`
10223
10224	// ForceSendFields is a list of field names (e.g. "DataFilter") to
10225	// unconditionally include in API requests. By default, fields with
10226	// empty values are omitted from API requests. However, any non-pointer,
10227	// non-interface field appearing in ForceSendFields will be sent to the
10228	// server regardless of whether the field is empty or not. This may be
10229	// used to include empty fields in Patch requests.
10230	ForceSendFields []string `json:"-"`
10231
10232	// NullFields is a list of field names (e.g. "DataFilter") to include in
10233	// API requests with the JSON null value. By default, fields with empty
10234	// values are omitted from API requests. However, any field with an
10235	// empty value appearing in NullFields will be sent to the server as
10236	// null. It is an error if a field in this list has a non-empty value.
10237	// This may be used to include null fields in Patch requests.
10238	NullFields []string `json:"-"`
10239}
10240
10241func (s *UpdateValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
10242	type NoMethod UpdateValuesByDataFilterResponse
10243	raw := NoMethod(*s)
10244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10245}
10246
10247// UpdateValuesResponse: The response when updating a range of values in
10248// a spreadsheet.
10249type UpdateValuesResponse struct {
10250	// SpreadsheetId: The spreadsheet the updates were applied to.
10251	SpreadsheetId string `json:"spreadsheetId,omitempty"`
10252
10253	// UpdatedCells: The number of cells updated.
10254	UpdatedCells int64 `json:"updatedCells,omitempty"`
10255
10256	// UpdatedColumns: The number of columns where at least one cell in the
10257	// column was updated.
10258	UpdatedColumns int64 `json:"updatedColumns,omitempty"`
10259
10260	// UpdatedData: The values of the cells after updates were applied.
10261	// This is only included if the request's `includeValuesInResponse`
10262	// field
10263	// was `true`.
10264	UpdatedData *ValueRange `json:"updatedData,omitempty"`
10265
10266	// UpdatedRange: The range (in A1 notation) that updates were applied
10267	// to.
10268	UpdatedRange string `json:"updatedRange,omitempty"`
10269
10270	// UpdatedRows: The number of rows where at least one cell in the row
10271	// was updated.
10272	UpdatedRows int64 `json:"updatedRows,omitempty"`
10273
10274	// ServerResponse contains the HTTP response code and headers from the
10275	// server.
10276	googleapi.ServerResponse `json:"-"`
10277
10278	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
10279	// unconditionally include in API requests. By default, fields with
10280	// empty values are omitted from API requests. However, any non-pointer,
10281	// non-interface field appearing in ForceSendFields will be sent to the
10282	// server regardless of whether the field is empty or not. This may be
10283	// used to include empty fields in Patch requests.
10284	ForceSendFields []string `json:"-"`
10285
10286	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
10287	// in API requests with the JSON null value. By default, fields with
10288	// empty values are omitted from API requests. However, any field with
10289	// an empty value appearing in NullFields will be sent to the server as
10290	// null. It is an error if a field in this list has a non-empty value.
10291	// This may be used to include null fields in Patch requests.
10292	NullFields []string `json:"-"`
10293}
10294
10295func (s *UpdateValuesResponse) MarshalJSON() ([]byte, error) {
10296	type NoMethod UpdateValuesResponse
10297	raw := NoMethod(*s)
10298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10299}
10300
10301// ValueRange: Data within a range of the spreadsheet.
10302type ValueRange struct {
10303	// MajorDimension: The major dimension of the values.
10304	//
10305	// For output, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
10306	// then requesting `range=A1:B2,majorDimension=ROWS` will
10307	// return
10308	// `[[1,2],[3,4]]`,
10309	// whereas requesting `range=A1:B2,majorDimension=COLUMNS` will
10310	// return
10311	// `[[1,3],[2,4]]`.
10312	//
10313	// For input, with `range=A1:B2,majorDimension=ROWS` then
10314	// `[[1,2],[3,4]]`
10315	// will set `A1=1,B1=2,A2=3,B2=4`. With
10316	// `range=A1:B2,majorDimension=COLUMNS`
10317	// then `[[1,2],[3,4]]` will set `A1=1,B1=3,A2=2,B2=4`.
10318	//
10319	// When writing, if this field is not set, it defaults to ROWS.
10320	//
10321	// Possible values:
10322	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
10323	//   "ROWS" - Operates on the rows of a sheet.
10324	//   "COLUMNS" - Operates on the columns of a sheet.
10325	MajorDimension string `json:"majorDimension,omitempty"`
10326
10327	// Range: The range the values cover, in A1 notation.
10328	// For output, this range indicates the entire requested range,
10329	// even though the values will exclude trailing rows and columns.
10330	// When appending values, this field represents the range to search for
10331	// a
10332	// table, after which values will be appended.
10333	Range string `json:"range,omitempty"`
10334
10335	// Values: The data that was read or to be written.  This is an array of
10336	// arrays,
10337	// the outer array representing all the data and each inner
10338	// array
10339	// representing a major dimension. Each item in the inner
10340	// array
10341	// corresponds with one cell.
10342	//
10343	// For output, empty trailing rows and columns will not be
10344	// included.
10345	//
10346	// For input, supported value types are: bool, string, and double.
10347	// Null values will be skipped.
10348	// To set a cell to an empty value, set the string value to an empty
10349	// string.
10350	Values [][]interface{} `json:"values,omitempty"`
10351
10352	// ServerResponse contains the HTTP response code and headers from the
10353	// server.
10354	googleapi.ServerResponse `json:"-"`
10355
10356	// ForceSendFields is a list of field names (e.g. "MajorDimension") to
10357	// unconditionally include in API requests. By default, fields with
10358	// empty values are omitted from API requests. However, any non-pointer,
10359	// non-interface field appearing in ForceSendFields will be sent to the
10360	// server regardless of whether the field is empty or not. This may be
10361	// used to include empty fields in Patch requests.
10362	ForceSendFields []string `json:"-"`
10363
10364	// NullFields is a list of field names (e.g. "MajorDimension") to
10365	// include in API requests with the JSON null value. By default, fields
10366	// with empty values are omitted from API requests. However, any field
10367	// with an empty value appearing in NullFields will be sent to the
10368	// server as null. It is an error if a field in this list has a
10369	// non-empty value. This may be used to include null fields in Patch
10370	// requests.
10371	NullFields []string `json:"-"`
10372}
10373
10374func (s *ValueRange) MarshalJSON() ([]byte, error) {
10375	type NoMethod ValueRange
10376	raw := NoMethod(*s)
10377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10378}
10379
10380// WaterfallChartColumnStyle: Styles for a waterfall chart column.
10381type WaterfallChartColumnStyle struct {
10382	// Color: The color of the column.
10383	Color *Color `json:"color,omitempty"`
10384
10385	// ColorStyle: The color of the column.
10386	// If color is also set, this field takes precedence.
10387	ColorStyle *ColorStyle `json:"colorStyle,omitempty"`
10388
10389	// Label: The label of the column's legend.
10390	Label string `json:"label,omitempty"`
10391
10392	// ForceSendFields is a list of field names (e.g. "Color") to
10393	// unconditionally include in API requests. By default, fields with
10394	// empty values are omitted from API requests. However, any non-pointer,
10395	// non-interface field appearing in ForceSendFields will be sent to the
10396	// server regardless of whether the field is empty or not. This may be
10397	// used to include empty fields in Patch requests.
10398	ForceSendFields []string `json:"-"`
10399
10400	// NullFields is a list of field names (e.g. "Color") to include in API
10401	// requests with the JSON null value. By default, fields with empty
10402	// values are omitted from API requests. However, any field with an
10403	// empty value appearing in NullFields will be sent to the server as
10404	// null. It is an error if a field in this list has a non-empty value.
10405	// This may be used to include null fields in Patch requests.
10406	NullFields []string `json:"-"`
10407}
10408
10409func (s *WaterfallChartColumnStyle) MarshalJSON() ([]byte, error) {
10410	type NoMethod WaterfallChartColumnStyle
10411	raw := NoMethod(*s)
10412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10413}
10414
10415// WaterfallChartCustomSubtotal: A custom subtotal column for a
10416// waterfall chart series.
10417type WaterfallChartCustomSubtotal struct {
10418	// DataIsSubtotal: True if the data point at subtotal_index is the
10419	// subtotal. If false,
10420	// the subtotal will be computed and appear after the data point.
10421	DataIsSubtotal bool `json:"dataIsSubtotal,omitempty"`
10422
10423	// Label: A label for the subtotal column.
10424	Label string `json:"label,omitempty"`
10425
10426	// SubtotalIndex: The 0-based index of a data point within the series.
10427	// If
10428	// data_is_subtotal is true, the data point at this index is
10429	// the
10430	// subtotal. Otherwise, the subtotal appears after the data point
10431	// with
10432	// this index. A series can have multiple subtotals at arbitrary
10433	// indices,
10434	// but subtotals do not affect the indices of the data points.
10435	// For
10436	// example, if a series has three data points, their indices will
10437	// always
10438	// be 0, 1, and 2, regardless of how many subtotals exist on the series
10439	// or
10440	// what data points they are associated with.
10441	SubtotalIndex int64 `json:"subtotalIndex,omitempty"`
10442
10443	// ForceSendFields is a list of field names (e.g. "DataIsSubtotal") to
10444	// unconditionally include in API requests. By default, fields with
10445	// empty values are omitted from API requests. However, any non-pointer,
10446	// non-interface field appearing in ForceSendFields will be sent to the
10447	// server regardless of whether the field is empty or not. This may be
10448	// used to include empty fields in Patch requests.
10449	ForceSendFields []string `json:"-"`
10450
10451	// NullFields is a list of field names (e.g. "DataIsSubtotal") to
10452	// include in API requests with the JSON null value. By default, fields
10453	// with empty values are omitted from API requests. However, any field
10454	// with an empty value appearing in NullFields will be sent to the
10455	// server as null. It is an error if a field in this list has a
10456	// non-empty value. This may be used to include null fields in Patch
10457	// requests.
10458	NullFields []string `json:"-"`
10459}
10460
10461func (s *WaterfallChartCustomSubtotal) MarshalJSON() ([]byte, error) {
10462	type NoMethod WaterfallChartCustomSubtotal
10463	raw := NoMethod(*s)
10464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10465}
10466
10467// WaterfallChartDomain: The domain of a waterfall chart.
10468type WaterfallChartDomain struct {
10469	// Data: The data of the WaterfallChartDomain.
10470	Data *ChartData `json:"data,omitempty"`
10471
10472	// Reversed: True to reverse the order of the domain values (horizontal
10473	// axis).
10474	Reversed bool `json:"reversed,omitempty"`
10475
10476	// ForceSendFields is a list of field names (e.g. "Data") to
10477	// unconditionally include in API requests. By default, fields with
10478	// empty values are omitted from API requests. However, any non-pointer,
10479	// non-interface field appearing in ForceSendFields will be sent to the
10480	// server regardless of whether the field is empty or not. This may be
10481	// used to include empty fields in Patch requests.
10482	ForceSendFields []string `json:"-"`
10483
10484	// NullFields is a list of field names (e.g. "Data") to include in API
10485	// requests with the JSON null value. By default, fields with empty
10486	// values are omitted from API requests. However, any field with an
10487	// empty value appearing in NullFields will be sent to the server as
10488	// null. It is an error if a field in this list has a non-empty value.
10489	// This may be used to include null fields in Patch requests.
10490	NullFields []string `json:"-"`
10491}
10492
10493func (s *WaterfallChartDomain) MarshalJSON() ([]byte, error) {
10494	type NoMethod WaterfallChartDomain
10495	raw := NoMethod(*s)
10496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10497}
10498
10499// WaterfallChartSeries: A single series of data for a waterfall chart.
10500type WaterfallChartSeries struct {
10501	// CustomSubtotals: Custom subtotal columns appearing in this series.
10502	// The order in which
10503	// subtotals are defined is not significant. Only one subtotal may
10504	// be
10505	// defined for each data point.
10506	CustomSubtotals []*WaterfallChartCustomSubtotal `json:"customSubtotals,omitempty"`
10507
10508	// Data: The data being visualized in this series.
10509	Data *ChartData `json:"data,omitempty"`
10510
10511	// HideTrailingSubtotal: True to hide the subtotal column from the end
10512	// of the series. By default,
10513	// a subtotal column will appear at the end of each series. Setting
10514	// this
10515	// field to true will hide that subtotal column for this series.
10516	HideTrailingSubtotal bool `json:"hideTrailingSubtotal,omitempty"`
10517
10518	// NegativeColumnsStyle: Styles for all columns in this series with
10519	// negative values.
10520	NegativeColumnsStyle *WaterfallChartColumnStyle `json:"negativeColumnsStyle,omitempty"`
10521
10522	// PositiveColumnsStyle: Styles for all columns in this series with
10523	// positive values.
10524	PositiveColumnsStyle *WaterfallChartColumnStyle `json:"positiveColumnsStyle,omitempty"`
10525
10526	// SubtotalColumnsStyle: Styles for all subtotal columns in this series.
10527	SubtotalColumnsStyle *WaterfallChartColumnStyle `json:"subtotalColumnsStyle,omitempty"`
10528
10529	// ForceSendFields is a list of field names (e.g. "CustomSubtotals") to
10530	// unconditionally include in API requests. By default, fields with
10531	// empty values are omitted from API requests. However, any non-pointer,
10532	// non-interface field appearing in ForceSendFields will be sent to the
10533	// server regardless of whether the field is empty or not. This may be
10534	// used to include empty fields in Patch requests.
10535	ForceSendFields []string `json:"-"`
10536
10537	// NullFields is a list of field names (e.g. "CustomSubtotals") to
10538	// include in API requests with the JSON null value. By default, fields
10539	// with empty values are omitted from API requests. However, any field
10540	// with an empty value appearing in NullFields will be sent to the
10541	// server as null. It is an error if a field in this list has a
10542	// non-empty value. This may be used to include null fields in Patch
10543	// requests.
10544	NullFields []string `json:"-"`
10545}
10546
10547func (s *WaterfallChartSeries) MarshalJSON() ([]byte, error) {
10548	type NoMethod WaterfallChartSeries
10549	raw := NoMethod(*s)
10550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10551}
10552
10553// WaterfallChartSpec: A waterfall chart.
10554type WaterfallChartSpec struct {
10555	// ConnectorLineStyle: The line style for the connector lines.
10556	ConnectorLineStyle *LineStyle `json:"connectorLineStyle,omitempty"`
10557
10558	// Domain: The domain data (horizontal axis) for the waterfall chart.
10559	Domain *WaterfallChartDomain `json:"domain,omitempty"`
10560
10561	// FirstValueIsTotal: True to interpret the first value as a total.
10562	FirstValueIsTotal bool `json:"firstValueIsTotal,omitempty"`
10563
10564	// HideConnectorLines: True to hide connector lines between columns.
10565	HideConnectorLines bool `json:"hideConnectorLines,omitempty"`
10566
10567	// Series: The data this waterfall chart is visualizing.
10568	Series []*WaterfallChartSeries `json:"series,omitempty"`
10569
10570	// StackedType: The stacked type.
10571	//
10572	// Possible values:
10573	//   "WATERFALL_STACKED_TYPE_UNSPECIFIED" - Default value, do not use.
10574	//   "STACKED" - Values corresponding to the same domain (horizontal
10575	// axis) value will be
10576	// stacked vertically.
10577	//   "SEQUENTIAL" - Series will spread out along the horizontal axis.
10578	StackedType string `json:"stackedType,omitempty"`
10579
10580	// ForceSendFields is a list of field names (e.g. "ConnectorLineStyle")
10581	// to unconditionally include in API requests. By default, fields with
10582	// empty values are omitted from API requests. However, any non-pointer,
10583	// non-interface field appearing in ForceSendFields will be sent to the
10584	// server regardless of whether the field is empty or not. This may be
10585	// used to include empty fields in Patch requests.
10586	ForceSendFields []string `json:"-"`
10587
10588	// NullFields is a list of field names (e.g. "ConnectorLineStyle") to
10589	// include in API requests with the JSON null value. By default, fields
10590	// with empty values are omitted from API requests. However, any field
10591	// with an empty value appearing in NullFields will be sent to the
10592	// server as null. It is an error if a field in this list has a
10593	// non-empty value. This may be used to include null fields in Patch
10594	// requests.
10595	NullFields []string `json:"-"`
10596}
10597
10598func (s *WaterfallChartSpec) MarshalJSON() ([]byte, error) {
10599	type NoMethod WaterfallChartSpec
10600	raw := NoMethod(*s)
10601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10602}
10603
10604// method id "sheets.spreadsheets.batchUpdate":
10605
10606type SpreadsheetsBatchUpdateCall struct {
10607	s                             *Service
10608	spreadsheetId                 string
10609	batchupdatespreadsheetrequest *BatchUpdateSpreadsheetRequest
10610	urlParams_                    gensupport.URLParams
10611	ctx_                          context.Context
10612	header_                       http.Header
10613}
10614
10615// BatchUpdate: Applies one or more updates to the spreadsheet.
10616//
10617// Each request is validated before
10618// being applied. If any request is not valid then the entire request
10619// will
10620// fail and nothing will be applied.
10621//
10622// Some requests have replies to
10623// give you some information about how
10624// they are applied. The replies will mirror the requests.  For
10625// example,
10626// if you applied 4 updates and the 3rd one had a reply, then
10627// the
10628// response will have 2 empty replies, the actual reply, and another
10629// empty
10630// reply, in that order.
10631//
10632// Due to the collaborative nature of spreadsheets, it is not guaranteed
10633// that
10634// the spreadsheet will reflect exactly your changes after this
10635// completes,
10636// however it is guaranteed that the updates in the request will
10637// be
10638// applied together atomically. Your changes may be altered with respect
10639// to
10640// collaborator changes. If there are no collaborators, the
10641// spreadsheet
10642// should reflect your changes.
10643func (r *SpreadsheetsService) BatchUpdate(spreadsheetId string, batchupdatespreadsheetrequest *BatchUpdateSpreadsheetRequest) *SpreadsheetsBatchUpdateCall {
10644	c := &SpreadsheetsBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10645	c.spreadsheetId = spreadsheetId
10646	c.batchupdatespreadsheetrequest = batchupdatespreadsheetrequest
10647	return c
10648}
10649
10650// Fields allows partial responses to be retrieved. See
10651// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10652// for more information.
10653func (c *SpreadsheetsBatchUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsBatchUpdateCall {
10654	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10655	return c
10656}
10657
10658// Context sets the context to be used in this call's Do method. Any
10659// pending HTTP request will be aborted if the provided context is
10660// canceled.
10661func (c *SpreadsheetsBatchUpdateCall) Context(ctx context.Context) *SpreadsheetsBatchUpdateCall {
10662	c.ctx_ = ctx
10663	return c
10664}
10665
10666// Header returns an http.Header that can be modified by the caller to
10667// add HTTP headers to the request.
10668func (c *SpreadsheetsBatchUpdateCall) Header() http.Header {
10669	if c.header_ == nil {
10670		c.header_ = make(http.Header)
10671	}
10672	return c.header_
10673}
10674
10675func (c *SpreadsheetsBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
10676	reqHeaders := make(http.Header)
10677	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
10678	for k, v := range c.header_ {
10679		reqHeaders[k] = v
10680	}
10681	reqHeaders.Set("User-Agent", c.s.userAgent())
10682	var body io.Reader = nil
10683	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatespreadsheetrequest)
10684	if err != nil {
10685		return nil, err
10686	}
10687	reqHeaders.Set("Content-Type", "application/json")
10688	c.urlParams_.Set("alt", alt)
10689	c.urlParams_.Set("prettyPrint", "false")
10690	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}:batchUpdate")
10691	urls += "?" + c.urlParams_.Encode()
10692	req, err := http.NewRequest("POST", urls, body)
10693	if err != nil {
10694		return nil, err
10695	}
10696	req.Header = reqHeaders
10697	googleapi.Expand(req.URL, map[string]string{
10698		"spreadsheetId": c.spreadsheetId,
10699	})
10700	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10701}
10702
10703// Do executes the "sheets.spreadsheets.batchUpdate" call.
10704// Exactly one of *BatchUpdateSpreadsheetResponse or error will be
10705// non-nil. Any non-2xx status code is an error. Response headers are in
10706// either *BatchUpdateSpreadsheetResponse.ServerResponse.Header or (if a
10707// response was returned at all) in error.(*googleapi.Error).Header. Use
10708// googleapi.IsNotModified to check whether the returned error was
10709// because http.StatusNotModified was returned.
10710func (c *SpreadsheetsBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdateSpreadsheetResponse, error) {
10711	gensupport.SetOptions(c.urlParams_, opts...)
10712	res, err := c.doRequest("json")
10713	if res != nil && res.StatusCode == http.StatusNotModified {
10714		if res.Body != nil {
10715			res.Body.Close()
10716		}
10717		return nil, &googleapi.Error{
10718			Code:   res.StatusCode,
10719			Header: res.Header,
10720		}
10721	}
10722	if err != nil {
10723		return nil, err
10724	}
10725	defer googleapi.CloseBody(res)
10726	if err := googleapi.CheckResponse(res); err != nil {
10727		return nil, err
10728	}
10729	ret := &BatchUpdateSpreadsheetResponse{
10730		ServerResponse: googleapi.ServerResponse{
10731			Header:         res.Header,
10732			HTTPStatusCode: res.StatusCode,
10733		},
10734	}
10735	target := &ret
10736	if err := gensupport.DecodeResponse(target, res); err != nil {
10737		return nil, err
10738	}
10739	return ret, nil
10740	// {
10741	//   "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.",
10742	//   "flatPath": "v4/spreadsheets/{spreadsheetId}:batchUpdate",
10743	//   "httpMethod": "POST",
10744	//   "id": "sheets.spreadsheets.batchUpdate",
10745	//   "parameterOrder": [
10746	//     "spreadsheetId"
10747	//   ],
10748	//   "parameters": {
10749	//     "spreadsheetId": {
10750	//       "description": "The spreadsheet to apply the updates to.",
10751	//       "location": "path",
10752	//       "required": true,
10753	//       "type": "string"
10754	//     }
10755	//   },
10756	//   "path": "v4/spreadsheets/{spreadsheetId}:batchUpdate",
10757	//   "request": {
10758	//     "$ref": "BatchUpdateSpreadsheetRequest"
10759	//   },
10760	//   "response": {
10761	//     "$ref": "BatchUpdateSpreadsheetResponse"
10762	//   },
10763	//   "scopes": [
10764	//     "https://www.googleapis.com/auth/drive",
10765	//     "https://www.googleapis.com/auth/drive.file",
10766	//     "https://www.googleapis.com/auth/spreadsheets"
10767	//   ]
10768	// }
10769
10770}
10771
10772// method id "sheets.spreadsheets.create":
10773
10774type SpreadsheetsCreateCall struct {
10775	s           *Service
10776	spreadsheet *Spreadsheet
10777	urlParams_  gensupport.URLParams
10778	ctx_        context.Context
10779	header_     http.Header
10780}
10781
10782// Create: Creates a spreadsheet, returning the newly created
10783// spreadsheet.
10784func (r *SpreadsheetsService) Create(spreadsheet *Spreadsheet) *SpreadsheetsCreateCall {
10785	c := &SpreadsheetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10786	c.spreadsheet = spreadsheet
10787	return c
10788}
10789
10790// Fields allows partial responses to be retrieved. See
10791// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10792// for more information.
10793func (c *SpreadsheetsCreateCall) Fields(s ...googleapi.Field) *SpreadsheetsCreateCall {
10794	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10795	return c
10796}
10797
10798// Context sets the context to be used in this call's Do method. Any
10799// pending HTTP request will be aborted if the provided context is
10800// canceled.
10801func (c *SpreadsheetsCreateCall) Context(ctx context.Context) *SpreadsheetsCreateCall {
10802	c.ctx_ = ctx
10803	return c
10804}
10805
10806// Header returns an http.Header that can be modified by the caller to
10807// add HTTP headers to the request.
10808func (c *SpreadsheetsCreateCall) Header() http.Header {
10809	if c.header_ == nil {
10810		c.header_ = make(http.Header)
10811	}
10812	return c.header_
10813}
10814
10815func (c *SpreadsheetsCreateCall) doRequest(alt string) (*http.Response, error) {
10816	reqHeaders := make(http.Header)
10817	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
10818	for k, v := range c.header_ {
10819		reqHeaders[k] = v
10820	}
10821	reqHeaders.Set("User-Agent", c.s.userAgent())
10822	var body io.Reader = nil
10823	body, err := googleapi.WithoutDataWrapper.JSONReader(c.spreadsheet)
10824	if err != nil {
10825		return nil, err
10826	}
10827	reqHeaders.Set("Content-Type", "application/json")
10828	c.urlParams_.Set("alt", alt)
10829	c.urlParams_.Set("prettyPrint", "false")
10830	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets")
10831	urls += "?" + c.urlParams_.Encode()
10832	req, err := http.NewRequest("POST", urls, body)
10833	if err != nil {
10834		return nil, err
10835	}
10836	req.Header = reqHeaders
10837	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10838}
10839
10840// Do executes the "sheets.spreadsheets.create" call.
10841// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
10842// status code is an error. Response headers are in either
10843// *Spreadsheet.ServerResponse.Header or (if a response was returned at
10844// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10845// to check whether the returned error was because
10846// http.StatusNotModified was returned.
10847func (c *SpreadsheetsCreateCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
10848	gensupport.SetOptions(c.urlParams_, opts...)
10849	res, err := c.doRequest("json")
10850	if res != nil && res.StatusCode == http.StatusNotModified {
10851		if res.Body != nil {
10852			res.Body.Close()
10853		}
10854		return nil, &googleapi.Error{
10855			Code:   res.StatusCode,
10856			Header: res.Header,
10857		}
10858	}
10859	if err != nil {
10860		return nil, err
10861	}
10862	defer googleapi.CloseBody(res)
10863	if err := googleapi.CheckResponse(res); err != nil {
10864		return nil, err
10865	}
10866	ret := &Spreadsheet{
10867		ServerResponse: googleapi.ServerResponse{
10868			Header:         res.Header,
10869			HTTPStatusCode: res.StatusCode,
10870		},
10871	}
10872	target := &ret
10873	if err := gensupport.DecodeResponse(target, res); err != nil {
10874		return nil, err
10875	}
10876	return ret, nil
10877	// {
10878	//   "description": "Creates a spreadsheet, returning the newly created spreadsheet.",
10879	//   "flatPath": "v4/spreadsheets",
10880	//   "httpMethod": "POST",
10881	//   "id": "sheets.spreadsheets.create",
10882	//   "parameterOrder": [],
10883	//   "parameters": {},
10884	//   "path": "v4/spreadsheets",
10885	//   "request": {
10886	//     "$ref": "Spreadsheet"
10887	//   },
10888	//   "response": {
10889	//     "$ref": "Spreadsheet"
10890	//   },
10891	//   "scopes": [
10892	//     "https://www.googleapis.com/auth/drive",
10893	//     "https://www.googleapis.com/auth/drive.file",
10894	//     "https://www.googleapis.com/auth/spreadsheets"
10895	//   ]
10896	// }
10897
10898}
10899
10900// method id "sheets.spreadsheets.get":
10901
10902type SpreadsheetsGetCall struct {
10903	s             *Service
10904	spreadsheetId string
10905	urlParams_    gensupport.URLParams
10906	ifNoneMatch_  string
10907	ctx_          context.Context
10908	header_       http.Header
10909}
10910
10911// Get: Returns the spreadsheet at the given ID.
10912// The caller must specify the spreadsheet ID.
10913//
10914// By default, data within grids will not be returned.
10915// You can include grid data one of two ways:
10916//
10917// * Specify a field mask listing your desired fields using the `fields`
10918// URL
10919// parameter in HTTP
10920//
10921// * Set the includeGridData
10922// URL parameter to true.  If a field mask is set, the
10923// `includeGridData`
10924// parameter is ignored
10925//
10926// For large spreadsheets, it is recommended to retrieve only the
10927// specific
10928// fields of the spreadsheet that you want.
10929//
10930// To retrieve only subsets of the spreadsheet, use the
10931// ranges URL parameter.
10932// Multiple ranges can be specified.  Limiting the range will
10933// return only the portions of the spreadsheet that intersect the
10934// requested
10935// ranges. Ranges are specified using A1 notation.
10936func (r *SpreadsheetsService) Get(spreadsheetId string) *SpreadsheetsGetCall {
10937	c := &SpreadsheetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10938	c.spreadsheetId = spreadsheetId
10939	return c
10940}
10941
10942// IncludeGridData sets the optional parameter "includeGridData": True
10943// if grid data should be returned.
10944// This parameter is ignored if a field mask was set in the request.
10945func (c *SpreadsheetsGetCall) IncludeGridData(includeGridData bool) *SpreadsheetsGetCall {
10946	c.urlParams_.Set("includeGridData", fmt.Sprint(includeGridData))
10947	return c
10948}
10949
10950// Ranges sets the optional parameter "ranges": The ranges to retrieve
10951// from the spreadsheet.
10952func (c *SpreadsheetsGetCall) Ranges(ranges ...string) *SpreadsheetsGetCall {
10953	c.urlParams_.SetMulti("ranges", append([]string{}, ranges...))
10954	return c
10955}
10956
10957// Fields allows partial responses to be retrieved. See
10958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10959// for more information.
10960func (c *SpreadsheetsGetCall) Fields(s ...googleapi.Field) *SpreadsheetsGetCall {
10961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10962	return c
10963}
10964
10965// IfNoneMatch sets the optional parameter which makes the operation
10966// fail if the object's ETag matches the given value. This is useful for
10967// getting updates only after the object has changed since the last
10968// request. Use googleapi.IsNotModified to check whether the response
10969// error from Do is the result of In-None-Match.
10970func (c *SpreadsheetsGetCall) IfNoneMatch(entityTag string) *SpreadsheetsGetCall {
10971	c.ifNoneMatch_ = entityTag
10972	return c
10973}
10974
10975// Context sets the context to be used in this call's Do method. Any
10976// pending HTTP request will be aborted if the provided context is
10977// canceled.
10978func (c *SpreadsheetsGetCall) Context(ctx context.Context) *SpreadsheetsGetCall {
10979	c.ctx_ = ctx
10980	return c
10981}
10982
10983// Header returns an http.Header that can be modified by the caller to
10984// add HTTP headers to the request.
10985func (c *SpreadsheetsGetCall) Header() http.Header {
10986	if c.header_ == nil {
10987		c.header_ = make(http.Header)
10988	}
10989	return c.header_
10990}
10991
10992func (c *SpreadsheetsGetCall) doRequest(alt string) (*http.Response, error) {
10993	reqHeaders := make(http.Header)
10994	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
10995	for k, v := range c.header_ {
10996		reqHeaders[k] = v
10997	}
10998	reqHeaders.Set("User-Agent", c.s.userAgent())
10999	if c.ifNoneMatch_ != "" {
11000		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11001	}
11002	var body io.Reader = nil
11003	c.urlParams_.Set("alt", alt)
11004	c.urlParams_.Set("prettyPrint", "false")
11005	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}")
11006	urls += "?" + c.urlParams_.Encode()
11007	req, err := http.NewRequest("GET", urls, body)
11008	if err != nil {
11009		return nil, err
11010	}
11011	req.Header = reqHeaders
11012	googleapi.Expand(req.URL, map[string]string{
11013		"spreadsheetId": c.spreadsheetId,
11014	})
11015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11016}
11017
11018// Do executes the "sheets.spreadsheets.get" call.
11019// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
11020// status code is an error. Response headers are in either
11021// *Spreadsheet.ServerResponse.Header or (if a response was returned at
11022// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11023// to check whether the returned error was because
11024// http.StatusNotModified was returned.
11025func (c *SpreadsheetsGetCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
11026	gensupport.SetOptions(c.urlParams_, opts...)
11027	res, err := c.doRequest("json")
11028	if res != nil && res.StatusCode == http.StatusNotModified {
11029		if res.Body != nil {
11030			res.Body.Close()
11031		}
11032		return nil, &googleapi.Error{
11033			Code:   res.StatusCode,
11034			Header: res.Header,
11035		}
11036	}
11037	if err != nil {
11038		return nil, err
11039	}
11040	defer googleapi.CloseBody(res)
11041	if err := googleapi.CheckResponse(res); err != nil {
11042		return nil, err
11043	}
11044	ret := &Spreadsheet{
11045		ServerResponse: googleapi.ServerResponse{
11046			Header:         res.Header,
11047			HTTPStatusCode: res.StatusCode,
11048		},
11049	}
11050	target := &ret
11051	if err := gensupport.DecodeResponse(target, res); err != nil {
11052		return nil, err
11053	}
11054	return ret, nil
11055	// {
11056	//   "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.",
11057	//   "flatPath": "v4/spreadsheets/{spreadsheetId}",
11058	//   "httpMethod": "GET",
11059	//   "id": "sheets.spreadsheets.get",
11060	//   "parameterOrder": [
11061	//     "spreadsheetId"
11062	//   ],
11063	//   "parameters": {
11064	//     "includeGridData": {
11065	//       "description": "True if grid data should be returned.\nThis parameter is ignored if a field mask was set in the request.",
11066	//       "location": "query",
11067	//       "type": "boolean"
11068	//     },
11069	//     "ranges": {
11070	//       "description": "The ranges to retrieve from the spreadsheet.",
11071	//       "location": "query",
11072	//       "repeated": true,
11073	//       "type": "string"
11074	//     },
11075	//     "spreadsheetId": {
11076	//       "description": "The spreadsheet to request.",
11077	//       "location": "path",
11078	//       "required": true,
11079	//       "type": "string"
11080	//     }
11081	//   },
11082	//   "path": "v4/spreadsheets/{spreadsheetId}",
11083	//   "response": {
11084	//     "$ref": "Spreadsheet"
11085	//   },
11086	//   "scopes": [
11087	//     "https://www.googleapis.com/auth/drive",
11088	//     "https://www.googleapis.com/auth/drive.file",
11089	//     "https://www.googleapis.com/auth/drive.readonly",
11090	//     "https://www.googleapis.com/auth/spreadsheets",
11091	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
11092	//   ]
11093	// }
11094
11095}
11096
11097// method id "sheets.spreadsheets.getByDataFilter":
11098
11099type SpreadsheetsGetByDataFilterCall struct {
11100	s                                 *Service
11101	spreadsheetId                     string
11102	getspreadsheetbydatafilterrequest *GetSpreadsheetByDataFilterRequest
11103	urlParams_                        gensupport.URLParams
11104	ctx_                              context.Context
11105	header_                           http.Header
11106}
11107
11108// GetByDataFilter: Returns the spreadsheet at the given ID.
11109// The caller must specify the spreadsheet ID.
11110//
11111// This method differs from GetSpreadsheet in that it allows
11112// selecting
11113// which subsets of spreadsheet data to return by specifying
11114// a
11115// dataFilters parameter.
11116// Multiple DataFilters can be specified.  Specifying one or
11117// more data filters will return the portions of the spreadsheet
11118// that
11119// intersect ranges matched by any of the filters.
11120//
11121// By default, data within grids will not be returned.
11122// You can include grid data one of two ways:
11123//
11124// * Specify a field mask listing your desired fields using the `fields`
11125// URL
11126// parameter in HTTP
11127//
11128// * Set the includeGridData
11129// parameter to true.  If a field mask is set, the
11130// `includeGridData`
11131// parameter is ignored
11132//
11133// For large spreadsheets, it is recommended to retrieve only the
11134// specific
11135// fields of the spreadsheet that you want.
11136func (r *SpreadsheetsService) GetByDataFilter(spreadsheetId string, getspreadsheetbydatafilterrequest *GetSpreadsheetByDataFilterRequest) *SpreadsheetsGetByDataFilterCall {
11137	c := &SpreadsheetsGetByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11138	c.spreadsheetId = spreadsheetId
11139	c.getspreadsheetbydatafilterrequest = getspreadsheetbydatafilterrequest
11140	return c
11141}
11142
11143// Fields allows partial responses to be retrieved. See
11144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11145// for more information.
11146func (c *SpreadsheetsGetByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsGetByDataFilterCall {
11147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11148	return c
11149}
11150
11151// Context sets the context to be used in this call's Do method. Any
11152// pending HTTP request will be aborted if the provided context is
11153// canceled.
11154func (c *SpreadsheetsGetByDataFilterCall) Context(ctx context.Context) *SpreadsheetsGetByDataFilterCall {
11155	c.ctx_ = ctx
11156	return c
11157}
11158
11159// Header returns an http.Header that can be modified by the caller to
11160// add HTTP headers to the request.
11161func (c *SpreadsheetsGetByDataFilterCall) Header() http.Header {
11162	if c.header_ == nil {
11163		c.header_ = make(http.Header)
11164	}
11165	return c.header_
11166}
11167
11168func (c *SpreadsheetsGetByDataFilterCall) doRequest(alt string) (*http.Response, error) {
11169	reqHeaders := make(http.Header)
11170	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
11171	for k, v := range c.header_ {
11172		reqHeaders[k] = v
11173	}
11174	reqHeaders.Set("User-Agent", c.s.userAgent())
11175	var body io.Reader = nil
11176	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getspreadsheetbydatafilterrequest)
11177	if err != nil {
11178		return nil, err
11179	}
11180	reqHeaders.Set("Content-Type", "application/json")
11181	c.urlParams_.Set("alt", alt)
11182	c.urlParams_.Set("prettyPrint", "false")
11183	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}:getByDataFilter")
11184	urls += "?" + c.urlParams_.Encode()
11185	req, err := http.NewRequest("POST", urls, body)
11186	if err != nil {
11187		return nil, err
11188	}
11189	req.Header = reqHeaders
11190	googleapi.Expand(req.URL, map[string]string{
11191		"spreadsheetId": c.spreadsheetId,
11192	})
11193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11194}
11195
11196// Do executes the "sheets.spreadsheets.getByDataFilter" call.
11197// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
11198// status code is an error. Response headers are in either
11199// *Spreadsheet.ServerResponse.Header or (if a response was returned at
11200// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11201// to check whether the returned error was because
11202// http.StatusNotModified was returned.
11203func (c *SpreadsheetsGetByDataFilterCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
11204	gensupport.SetOptions(c.urlParams_, opts...)
11205	res, err := c.doRequest("json")
11206	if res != nil && res.StatusCode == http.StatusNotModified {
11207		if res.Body != nil {
11208			res.Body.Close()
11209		}
11210		return nil, &googleapi.Error{
11211			Code:   res.StatusCode,
11212			Header: res.Header,
11213		}
11214	}
11215	if err != nil {
11216		return nil, err
11217	}
11218	defer googleapi.CloseBody(res)
11219	if err := googleapi.CheckResponse(res); err != nil {
11220		return nil, err
11221	}
11222	ret := &Spreadsheet{
11223		ServerResponse: googleapi.ServerResponse{
11224			Header:         res.Header,
11225			HTTPStatusCode: res.StatusCode,
11226		},
11227	}
11228	target := &ret
11229	if err := gensupport.DecodeResponse(target, res); err != nil {
11230		return nil, err
11231	}
11232	return ret, nil
11233	// {
11234	//   "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.",
11235	//   "flatPath": "v4/spreadsheets/{spreadsheetId}:getByDataFilter",
11236	//   "httpMethod": "POST",
11237	//   "id": "sheets.spreadsheets.getByDataFilter",
11238	//   "parameterOrder": [
11239	//     "spreadsheetId"
11240	//   ],
11241	//   "parameters": {
11242	//     "spreadsheetId": {
11243	//       "description": "The spreadsheet to request.",
11244	//       "location": "path",
11245	//       "required": true,
11246	//       "type": "string"
11247	//     }
11248	//   },
11249	//   "path": "v4/spreadsheets/{spreadsheetId}:getByDataFilter",
11250	//   "request": {
11251	//     "$ref": "GetSpreadsheetByDataFilterRequest"
11252	//   },
11253	//   "response": {
11254	//     "$ref": "Spreadsheet"
11255	//   },
11256	//   "scopes": [
11257	//     "https://www.googleapis.com/auth/drive",
11258	//     "https://www.googleapis.com/auth/drive.file",
11259	//     "https://www.googleapis.com/auth/spreadsheets"
11260	//   ]
11261	// }
11262
11263}
11264
11265// method id "sheets.spreadsheets.developerMetadata.get":
11266
11267type SpreadsheetsDeveloperMetadataGetCall struct {
11268	s             *Service
11269	spreadsheetId string
11270	metadataId    int64
11271	urlParams_    gensupport.URLParams
11272	ifNoneMatch_  string
11273	ctx_          context.Context
11274	header_       http.Header
11275}
11276
11277// Get: Returns the developer metadata with the specified ID.
11278// The caller must specify the spreadsheet ID and the developer
11279// metadata's
11280// unique metadataId.
11281func (r *SpreadsheetsDeveloperMetadataService) Get(spreadsheetId string, metadataId int64) *SpreadsheetsDeveloperMetadataGetCall {
11282	c := &SpreadsheetsDeveloperMetadataGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11283	c.spreadsheetId = spreadsheetId
11284	c.metadataId = metadataId
11285	return c
11286}
11287
11288// Fields allows partial responses to be retrieved. See
11289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11290// for more information.
11291func (c *SpreadsheetsDeveloperMetadataGetCall) Fields(s ...googleapi.Field) *SpreadsheetsDeveloperMetadataGetCall {
11292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11293	return c
11294}
11295
11296// IfNoneMatch sets the optional parameter which makes the operation
11297// fail if the object's ETag matches the given value. This is useful for
11298// getting updates only after the object has changed since the last
11299// request. Use googleapi.IsNotModified to check whether the response
11300// error from Do is the result of In-None-Match.
11301func (c *SpreadsheetsDeveloperMetadataGetCall) IfNoneMatch(entityTag string) *SpreadsheetsDeveloperMetadataGetCall {
11302	c.ifNoneMatch_ = entityTag
11303	return c
11304}
11305
11306// Context sets the context to be used in this call's Do method. Any
11307// pending HTTP request will be aborted if the provided context is
11308// canceled.
11309func (c *SpreadsheetsDeveloperMetadataGetCall) Context(ctx context.Context) *SpreadsheetsDeveloperMetadataGetCall {
11310	c.ctx_ = ctx
11311	return c
11312}
11313
11314// Header returns an http.Header that can be modified by the caller to
11315// add HTTP headers to the request.
11316func (c *SpreadsheetsDeveloperMetadataGetCall) Header() http.Header {
11317	if c.header_ == nil {
11318		c.header_ = make(http.Header)
11319	}
11320	return c.header_
11321}
11322
11323func (c *SpreadsheetsDeveloperMetadataGetCall) doRequest(alt string) (*http.Response, error) {
11324	reqHeaders := make(http.Header)
11325	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
11326	for k, v := range c.header_ {
11327		reqHeaders[k] = v
11328	}
11329	reqHeaders.Set("User-Agent", c.s.userAgent())
11330	if c.ifNoneMatch_ != "" {
11331		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11332	}
11333	var body io.Reader = nil
11334	c.urlParams_.Set("alt", alt)
11335	c.urlParams_.Set("prettyPrint", "false")
11336	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}")
11337	urls += "?" + c.urlParams_.Encode()
11338	req, err := http.NewRequest("GET", urls, body)
11339	if err != nil {
11340		return nil, err
11341	}
11342	req.Header = reqHeaders
11343	googleapi.Expand(req.URL, map[string]string{
11344		"spreadsheetId": c.spreadsheetId,
11345		"metadataId":    strconv.FormatInt(c.metadataId, 10),
11346	})
11347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11348}
11349
11350// Do executes the "sheets.spreadsheets.developerMetadata.get" call.
11351// Exactly one of *DeveloperMetadata or error will be non-nil. Any
11352// non-2xx status code is an error. Response headers are in either
11353// *DeveloperMetadata.ServerResponse.Header or (if a response was
11354// returned at all) in error.(*googleapi.Error).Header. Use
11355// googleapi.IsNotModified to check whether the returned error was
11356// because http.StatusNotModified was returned.
11357func (c *SpreadsheetsDeveloperMetadataGetCall) Do(opts ...googleapi.CallOption) (*DeveloperMetadata, error) {
11358	gensupport.SetOptions(c.urlParams_, opts...)
11359	res, err := c.doRequest("json")
11360	if res != nil && res.StatusCode == http.StatusNotModified {
11361		if res.Body != nil {
11362			res.Body.Close()
11363		}
11364		return nil, &googleapi.Error{
11365			Code:   res.StatusCode,
11366			Header: res.Header,
11367		}
11368	}
11369	if err != nil {
11370		return nil, err
11371	}
11372	defer googleapi.CloseBody(res)
11373	if err := googleapi.CheckResponse(res); err != nil {
11374		return nil, err
11375	}
11376	ret := &DeveloperMetadata{
11377		ServerResponse: googleapi.ServerResponse{
11378			Header:         res.Header,
11379			HTTPStatusCode: res.StatusCode,
11380		},
11381	}
11382	target := &ret
11383	if err := gensupport.DecodeResponse(target, res); err != nil {
11384		return nil, err
11385	}
11386	return ret, nil
11387	// {
11388	//   "description": "Returns the developer metadata with the specified ID.\nThe caller must specify the spreadsheet ID and the developer metadata's\nunique metadataId.",
11389	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}",
11390	//   "httpMethod": "GET",
11391	//   "id": "sheets.spreadsheets.developerMetadata.get",
11392	//   "parameterOrder": [
11393	//     "spreadsheetId",
11394	//     "metadataId"
11395	//   ],
11396	//   "parameters": {
11397	//     "metadataId": {
11398	//       "description": "The ID of the developer metadata to retrieve.",
11399	//       "format": "int32",
11400	//       "location": "path",
11401	//       "required": true,
11402	//       "type": "integer"
11403	//     },
11404	//     "spreadsheetId": {
11405	//       "description": "The ID of the spreadsheet to retrieve metadata from.",
11406	//       "location": "path",
11407	//       "required": true,
11408	//       "type": "string"
11409	//     }
11410	//   },
11411	//   "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}",
11412	//   "response": {
11413	//     "$ref": "DeveloperMetadata"
11414	//   },
11415	//   "scopes": [
11416	//     "https://www.googleapis.com/auth/drive",
11417	//     "https://www.googleapis.com/auth/drive.file",
11418	//     "https://www.googleapis.com/auth/spreadsheets"
11419	//   ]
11420	// }
11421
11422}
11423
11424// method id "sheets.spreadsheets.developerMetadata.search":
11425
11426type SpreadsheetsDeveloperMetadataSearchCall struct {
11427	s                              *Service
11428	spreadsheetId                  string
11429	searchdevelopermetadatarequest *SearchDeveloperMetadataRequest
11430	urlParams_                     gensupport.URLParams
11431	ctx_                           context.Context
11432	header_                        http.Header
11433}
11434
11435// Search: Returns all developer metadata matching the specified
11436// DataFilter.
11437// If the provided DataFilter represents a DeveloperMetadataLookup
11438// object,
11439// this will return all DeveloperMetadata entries selected by it. If
11440// the
11441// DataFilter represents a location in a spreadsheet, this will return
11442// all
11443// developer metadata associated with locations intersecting that
11444// region.
11445func (r *SpreadsheetsDeveloperMetadataService) Search(spreadsheetId string, searchdevelopermetadatarequest *SearchDeveloperMetadataRequest) *SpreadsheetsDeveloperMetadataSearchCall {
11446	c := &SpreadsheetsDeveloperMetadataSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11447	c.spreadsheetId = spreadsheetId
11448	c.searchdevelopermetadatarequest = searchdevelopermetadatarequest
11449	return c
11450}
11451
11452// Fields allows partial responses to be retrieved. See
11453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11454// for more information.
11455func (c *SpreadsheetsDeveloperMetadataSearchCall) Fields(s ...googleapi.Field) *SpreadsheetsDeveloperMetadataSearchCall {
11456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11457	return c
11458}
11459
11460// Context sets the context to be used in this call's Do method. Any
11461// pending HTTP request will be aborted if the provided context is
11462// canceled.
11463func (c *SpreadsheetsDeveloperMetadataSearchCall) Context(ctx context.Context) *SpreadsheetsDeveloperMetadataSearchCall {
11464	c.ctx_ = ctx
11465	return c
11466}
11467
11468// Header returns an http.Header that can be modified by the caller to
11469// add HTTP headers to the request.
11470func (c *SpreadsheetsDeveloperMetadataSearchCall) Header() http.Header {
11471	if c.header_ == nil {
11472		c.header_ = make(http.Header)
11473	}
11474	return c.header_
11475}
11476
11477func (c *SpreadsheetsDeveloperMetadataSearchCall) doRequest(alt string) (*http.Response, error) {
11478	reqHeaders := make(http.Header)
11479	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
11480	for k, v := range c.header_ {
11481		reqHeaders[k] = v
11482	}
11483	reqHeaders.Set("User-Agent", c.s.userAgent())
11484	var body io.Reader = nil
11485	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchdevelopermetadatarequest)
11486	if err != nil {
11487		return nil, err
11488	}
11489	reqHeaders.Set("Content-Type", "application/json")
11490	c.urlParams_.Set("alt", alt)
11491	c.urlParams_.Set("prettyPrint", "false")
11492	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/developerMetadata:search")
11493	urls += "?" + c.urlParams_.Encode()
11494	req, err := http.NewRequest("POST", urls, body)
11495	if err != nil {
11496		return nil, err
11497	}
11498	req.Header = reqHeaders
11499	googleapi.Expand(req.URL, map[string]string{
11500		"spreadsheetId": c.spreadsheetId,
11501	})
11502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11503}
11504
11505// Do executes the "sheets.spreadsheets.developerMetadata.search" call.
11506// Exactly one of *SearchDeveloperMetadataResponse or error will be
11507// non-nil. Any non-2xx status code is an error. Response headers are in
11508// either *SearchDeveloperMetadataResponse.ServerResponse.Header or (if
11509// a response was returned at all) in error.(*googleapi.Error).Header.
11510// Use googleapi.IsNotModified to check whether the returned error was
11511// because http.StatusNotModified was returned.
11512func (c *SpreadsheetsDeveloperMetadataSearchCall) Do(opts ...googleapi.CallOption) (*SearchDeveloperMetadataResponse, error) {
11513	gensupport.SetOptions(c.urlParams_, opts...)
11514	res, err := c.doRequest("json")
11515	if res != nil && res.StatusCode == http.StatusNotModified {
11516		if res.Body != nil {
11517			res.Body.Close()
11518		}
11519		return nil, &googleapi.Error{
11520			Code:   res.StatusCode,
11521			Header: res.Header,
11522		}
11523	}
11524	if err != nil {
11525		return nil, err
11526	}
11527	defer googleapi.CloseBody(res)
11528	if err := googleapi.CheckResponse(res); err != nil {
11529		return nil, err
11530	}
11531	ret := &SearchDeveloperMetadataResponse{
11532		ServerResponse: googleapi.ServerResponse{
11533			Header:         res.Header,
11534			HTTPStatusCode: res.StatusCode,
11535		},
11536	}
11537	target := &ret
11538	if err := gensupport.DecodeResponse(target, res); err != nil {
11539		return nil, err
11540	}
11541	return ret, nil
11542	// {
11543	//   "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.",
11544	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search",
11545	//   "httpMethod": "POST",
11546	//   "id": "sheets.spreadsheets.developerMetadata.search",
11547	//   "parameterOrder": [
11548	//     "spreadsheetId"
11549	//   ],
11550	//   "parameters": {
11551	//     "spreadsheetId": {
11552	//       "description": "The ID of the spreadsheet to retrieve metadata from.",
11553	//       "location": "path",
11554	//       "required": true,
11555	//       "type": "string"
11556	//     }
11557	//   },
11558	//   "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search",
11559	//   "request": {
11560	//     "$ref": "SearchDeveloperMetadataRequest"
11561	//   },
11562	//   "response": {
11563	//     "$ref": "SearchDeveloperMetadataResponse"
11564	//   },
11565	//   "scopes": [
11566	//     "https://www.googleapis.com/auth/drive",
11567	//     "https://www.googleapis.com/auth/drive.file",
11568	//     "https://www.googleapis.com/auth/spreadsheets"
11569	//   ]
11570	// }
11571
11572}
11573
11574// method id "sheets.spreadsheets.sheets.copyTo":
11575
11576type SpreadsheetsSheetsCopyToCall struct {
11577	s                                    *Service
11578	spreadsheetId                        string
11579	sheetId                              int64
11580	copysheettoanotherspreadsheetrequest *CopySheetToAnotherSpreadsheetRequest
11581	urlParams_                           gensupport.URLParams
11582	ctx_                                 context.Context
11583	header_                              http.Header
11584}
11585
11586// CopyTo: Copies a single sheet from a spreadsheet to another
11587// spreadsheet.
11588// Returns the properties of the newly created sheet.
11589func (r *SpreadsheetsSheetsService) CopyTo(spreadsheetId string, sheetId int64, copysheettoanotherspreadsheetrequest *CopySheetToAnotherSpreadsheetRequest) *SpreadsheetsSheetsCopyToCall {
11590	c := &SpreadsheetsSheetsCopyToCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11591	c.spreadsheetId = spreadsheetId
11592	c.sheetId = sheetId
11593	c.copysheettoanotherspreadsheetrequest = copysheettoanotherspreadsheetrequest
11594	return c
11595}
11596
11597// Fields allows partial responses to be retrieved. See
11598// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11599// for more information.
11600func (c *SpreadsheetsSheetsCopyToCall) Fields(s ...googleapi.Field) *SpreadsheetsSheetsCopyToCall {
11601	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11602	return c
11603}
11604
11605// Context sets the context to be used in this call's Do method. Any
11606// pending HTTP request will be aborted if the provided context is
11607// canceled.
11608func (c *SpreadsheetsSheetsCopyToCall) Context(ctx context.Context) *SpreadsheetsSheetsCopyToCall {
11609	c.ctx_ = ctx
11610	return c
11611}
11612
11613// Header returns an http.Header that can be modified by the caller to
11614// add HTTP headers to the request.
11615func (c *SpreadsheetsSheetsCopyToCall) Header() http.Header {
11616	if c.header_ == nil {
11617		c.header_ = make(http.Header)
11618	}
11619	return c.header_
11620}
11621
11622func (c *SpreadsheetsSheetsCopyToCall) doRequest(alt string) (*http.Response, error) {
11623	reqHeaders := make(http.Header)
11624	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
11625	for k, v := range c.header_ {
11626		reqHeaders[k] = v
11627	}
11628	reqHeaders.Set("User-Agent", c.s.userAgent())
11629	var body io.Reader = nil
11630	body, err := googleapi.WithoutDataWrapper.JSONReader(c.copysheettoanotherspreadsheetrequest)
11631	if err != nil {
11632		return nil, err
11633	}
11634	reqHeaders.Set("Content-Type", "application/json")
11635	c.urlParams_.Set("alt", alt)
11636	c.urlParams_.Set("prettyPrint", "false")
11637	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo")
11638	urls += "?" + c.urlParams_.Encode()
11639	req, err := http.NewRequest("POST", urls, body)
11640	if err != nil {
11641		return nil, err
11642	}
11643	req.Header = reqHeaders
11644	googleapi.Expand(req.URL, map[string]string{
11645		"spreadsheetId": c.spreadsheetId,
11646		"sheetId":       strconv.FormatInt(c.sheetId, 10),
11647	})
11648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11649}
11650
11651// Do executes the "sheets.spreadsheets.sheets.copyTo" call.
11652// Exactly one of *SheetProperties or error will be non-nil. Any non-2xx
11653// status code is an error. Response headers are in either
11654// *SheetProperties.ServerResponse.Header or (if a response was returned
11655// at all) in error.(*googleapi.Error).Header. Use
11656// googleapi.IsNotModified to check whether the returned error was
11657// because http.StatusNotModified was returned.
11658func (c *SpreadsheetsSheetsCopyToCall) Do(opts ...googleapi.CallOption) (*SheetProperties, error) {
11659	gensupport.SetOptions(c.urlParams_, opts...)
11660	res, err := c.doRequest("json")
11661	if res != nil && res.StatusCode == http.StatusNotModified {
11662		if res.Body != nil {
11663			res.Body.Close()
11664		}
11665		return nil, &googleapi.Error{
11666			Code:   res.StatusCode,
11667			Header: res.Header,
11668		}
11669	}
11670	if err != nil {
11671		return nil, err
11672	}
11673	defer googleapi.CloseBody(res)
11674	if err := googleapi.CheckResponse(res); err != nil {
11675		return nil, err
11676	}
11677	ret := &SheetProperties{
11678		ServerResponse: googleapi.ServerResponse{
11679			Header:         res.Header,
11680			HTTPStatusCode: res.StatusCode,
11681		},
11682	}
11683	target := &ret
11684	if err := gensupport.DecodeResponse(target, res); err != nil {
11685		return nil, err
11686	}
11687	return ret, nil
11688	// {
11689	//   "description": "Copies a single sheet from a spreadsheet to another spreadsheet.\nReturns the properties of the newly created sheet.",
11690	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo",
11691	//   "httpMethod": "POST",
11692	//   "id": "sheets.spreadsheets.sheets.copyTo",
11693	//   "parameterOrder": [
11694	//     "spreadsheetId",
11695	//     "sheetId"
11696	//   ],
11697	//   "parameters": {
11698	//     "sheetId": {
11699	//       "description": "The ID of the sheet to copy.",
11700	//       "format": "int32",
11701	//       "location": "path",
11702	//       "required": true,
11703	//       "type": "integer"
11704	//     },
11705	//     "spreadsheetId": {
11706	//       "description": "The ID of the spreadsheet containing the sheet to copy.",
11707	//       "location": "path",
11708	//       "required": true,
11709	//       "type": "string"
11710	//     }
11711	//   },
11712	//   "path": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo",
11713	//   "request": {
11714	//     "$ref": "CopySheetToAnotherSpreadsheetRequest"
11715	//   },
11716	//   "response": {
11717	//     "$ref": "SheetProperties"
11718	//   },
11719	//   "scopes": [
11720	//     "https://www.googleapis.com/auth/drive",
11721	//     "https://www.googleapis.com/auth/drive.file",
11722	//     "https://www.googleapis.com/auth/spreadsheets"
11723	//   ]
11724	// }
11725
11726}
11727
11728// method id "sheets.spreadsheets.values.append":
11729
11730type SpreadsheetsValuesAppendCall struct {
11731	s             *Service
11732	spreadsheetId string
11733	range_        string
11734	valuerange    *ValueRange
11735	urlParams_    gensupport.URLParams
11736	ctx_          context.Context
11737	header_       http.Header
11738}
11739
11740// Append: Appends values to a spreadsheet. The input range is used to
11741// search for
11742// existing data and find a "table" within that range. Values will
11743// be
11744// appended to the next row of the table, starting with the first column
11745// of
11746// the table. See
11747// the
11748// [guide](/sheets/api/guides/values#appending_values)
11749// and
11750// [sample code](/sheets/api/samples/writing#append_values)
11751// for specific details of how tables are detected and data is
11752// appended.
11753//
11754// The caller must specify the spreadsheet ID, range, and
11755// a valueInputOption.  The `valueInputOption` only
11756// controls how the input data will be added to the sheet (column-wise
11757// or
11758// row-wise), it does not influence what cell the data starts being
11759// written
11760// to.
11761func (r *SpreadsheetsValuesService) Append(spreadsheetId string, range_ string, valuerange *ValueRange) *SpreadsheetsValuesAppendCall {
11762	c := &SpreadsheetsValuesAppendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11763	c.spreadsheetId = spreadsheetId
11764	c.range_ = range_
11765	c.valuerange = valuerange
11766	return c
11767}
11768
11769// IncludeValuesInResponse sets the optional parameter
11770// "includeValuesInResponse": Determines if the update response should
11771// include the values
11772// of the cells that were appended. By default, responses
11773// do not include the updated values.
11774func (c *SpreadsheetsValuesAppendCall) IncludeValuesInResponse(includeValuesInResponse bool) *SpreadsheetsValuesAppendCall {
11775	c.urlParams_.Set("includeValuesInResponse", fmt.Sprint(includeValuesInResponse))
11776	return c
11777}
11778
11779// InsertDataOption sets the optional parameter "insertDataOption": How
11780// the input data should be inserted.
11781//
11782// Possible values:
11783//   "OVERWRITE"
11784//   "INSERT_ROWS"
11785func (c *SpreadsheetsValuesAppendCall) InsertDataOption(insertDataOption string) *SpreadsheetsValuesAppendCall {
11786	c.urlParams_.Set("insertDataOption", insertDataOption)
11787	return c
11788}
11789
11790// ResponseDateTimeRenderOption sets the optional parameter
11791// "responseDateTimeRenderOption": Determines how dates, times, and
11792// durations in the response should be
11793// rendered. This is ignored if response_value_render_option
11794// is
11795// FORMATTED_VALUE.
11796// The default dateTime render option is
11797// [DateTimeRenderOption.SERIAL_NUMBER].
11798//
11799// Possible values:
11800//   "SERIAL_NUMBER"
11801//   "FORMATTED_STRING"
11802func (c *SpreadsheetsValuesAppendCall) ResponseDateTimeRenderOption(responseDateTimeRenderOption string) *SpreadsheetsValuesAppendCall {
11803	c.urlParams_.Set("responseDateTimeRenderOption", responseDateTimeRenderOption)
11804	return c
11805}
11806
11807// ResponseValueRenderOption sets the optional parameter
11808// "responseValueRenderOption": Determines how values in the response
11809// should be rendered.
11810// The default render option is ValueRenderOption.FORMATTED_VALUE.
11811//
11812// Possible values:
11813//   "FORMATTED_VALUE"
11814//   "UNFORMATTED_VALUE"
11815//   "FORMULA"
11816func (c *SpreadsheetsValuesAppendCall) ResponseValueRenderOption(responseValueRenderOption string) *SpreadsheetsValuesAppendCall {
11817	c.urlParams_.Set("responseValueRenderOption", responseValueRenderOption)
11818	return c
11819}
11820
11821// ValueInputOption sets the optional parameter "valueInputOption": How
11822// the input data should be interpreted.
11823//
11824// Possible values:
11825//   "INPUT_VALUE_OPTION_UNSPECIFIED"
11826//   "RAW"
11827//   "USER_ENTERED"
11828func (c *SpreadsheetsValuesAppendCall) ValueInputOption(valueInputOption string) *SpreadsheetsValuesAppendCall {
11829	c.urlParams_.Set("valueInputOption", valueInputOption)
11830	return c
11831}
11832
11833// Fields allows partial responses to be retrieved. See
11834// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11835// for more information.
11836func (c *SpreadsheetsValuesAppendCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesAppendCall {
11837	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11838	return c
11839}
11840
11841// Context sets the context to be used in this call's Do method. Any
11842// pending HTTP request will be aborted if the provided context is
11843// canceled.
11844func (c *SpreadsheetsValuesAppendCall) Context(ctx context.Context) *SpreadsheetsValuesAppendCall {
11845	c.ctx_ = ctx
11846	return c
11847}
11848
11849// Header returns an http.Header that can be modified by the caller to
11850// add HTTP headers to the request.
11851func (c *SpreadsheetsValuesAppendCall) Header() http.Header {
11852	if c.header_ == nil {
11853		c.header_ = make(http.Header)
11854	}
11855	return c.header_
11856}
11857
11858func (c *SpreadsheetsValuesAppendCall) doRequest(alt string) (*http.Response, error) {
11859	reqHeaders := make(http.Header)
11860	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
11861	for k, v := range c.header_ {
11862		reqHeaders[k] = v
11863	}
11864	reqHeaders.Set("User-Agent", c.s.userAgent())
11865	var body io.Reader = nil
11866	body, err := googleapi.WithoutDataWrapper.JSONReader(c.valuerange)
11867	if err != nil {
11868		return nil, err
11869	}
11870	reqHeaders.Set("Content-Type", "application/json")
11871	c.urlParams_.Set("alt", alt)
11872	c.urlParams_.Set("prettyPrint", "false")
11873	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}:append")
11874	urls += "?" + c.urlParams_.Encode()
11875	req, err := http.NewRequest("POST", urls, body)
11876	if err != nil {
11877		return nil, err
11878	}
11879	req.Header = reqHeaders
11880	googleapi.Expand(req.URL, map[string]string{
11881		"spreadsheetId": c.spreadsheetId,
11882		"range":         c.range_,
11883	})
11884	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11885}
11886
11887// Do executes the "sheets.spreadsheets.values.append" call.
11888// Exactly one of *AppendValuesResponse or error will be non-nil. Any
11889// non-2xx status code is an error. Response headers are in either
11890// *AppendValuesResponse.ServerResponse.Header or (if a response was
11891// returned at all) in error.(*googleapi.Error).Header. Use
11892// googleapi.IsNotModified to check whether the returned error was
11893// because http.StatusNotModified was returned.
11894func (c *SpreadsheetsValuesAppendCall) Do(opts ...googleapi.CallOption) (*AppendValuesResponse, error) {
11895	gensupport.SetOptions(c.urlParams_, opts...)
11896	res, err := c.doRequest("json")
11897	if res != nil && res.StatusCode == http.StatusNotModified {
11898		if res.Body != nil {
11899			res.Body.Close()
11900		}
11901		return nil, &googleapi.Error{
11902			Code:   res.StatusCode,
11903			Header: res.Header,
11904		}
11905	}
11906	if err != nil {
11907		return nil, err
11908	}
11909	defer googleapi.CloseBody(res)
11910	if err := googleapi.CheckResponse(res); err != nil {
11911		return nil, err
11912	}
11913	ret := &AppendValuesResponse{
11914		ServerResponse: googleapi.ServerResponse{
11915			Header:         res.Header,
11916			HTTPStatusCode: res.StatusCode,
11917		},
11918	}
11919	target := &ret
11920	if err := gensupport.DecodeResponse(target, res); err != nil {
11921		return nil, err
11922	}
11923	return ret, nil
11924	// {
11925	//   "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.",
11926	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:append",
11927	//   "httpMethod": "POST",
11928	//   "id": "sheets.spreadsheets.values.append",
11929	//   "parameterOrder": [
11930	//     "spreadsheetId",
11931	//     "range"
11932	//   ],
11933	//   "parameters": {
11934	//     "includeValuesInResponse": {
11935	//       "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.",
11936	//       "location": "query",
11937	//       "type": "boolean"
11938	//     },
11939	//     "insertDataOption": {
11940	//       "description": "How the input data should be inserted.",
11941	//       "enum": [
11942	//         "OVERWRITE",
11943	//         "INSERT_ROWS"
11944	//       ],
11945	//       "location": "query",
11946	//       "type": "string"
11947	//     },
11948	//     "range": {
11949	//       "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.",
11950	//       "location": "path",
11951	//       "required": true,
11952	//       "type": "string"
11953	//     },
11954	//     "responseDateTimeRenderOption": {
11955	//       "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].",
11956	//       "enum": [
11957	//         "SERIAL_NUMBER",
11958	//         "FORMATTED_STRING"
11959	//       ],
11960	//       "location": "query",
11961	//       "type": "string"
11962	//     },
11963	//     "responseValueRenderOption": {
11964	//       "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
11965	//       "enum": [
11966	//         "FORMATTED_VALUE",
11967	//         "UNFORMATTED_VALUE",
11968	//         "FORMULA"
11969	//       ],
11970	//       "location": "query",
11971	//       "type": "string"
11972	//     },
11973	//     "spreadsheetId": {
11974	//       "description": "The ID of the spreadsheet to update.",
11975	//       "location": "path",
11976	//       "required": true,
11977	//       "type": "string"
11978	//     },
11979	//     "valueInputOption": {
11980	//       "description": "How the input data should be interpreted.",
11981	//       "enum": [
11982	//         "INPUT_VALUE_OPTION_UNSPECIFIED",
11983	//         "RAW",
11984	//         "USER_ENTERED"
11985	//       ],
11986	//       "location": "query",
11987	//       "type": "string"
11988	//     }
11989	//   },
11990	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:append",
11991	//   "request": {
11992	//     "$ref": "ValueRange"
11993	//   },
11994	//   "response": {
11995	//     "$ref": "AppendValuesResponse"
11996	//   },
11997	//   "scopes": [
11998	//     "https://www.googleapis.com/auth/drive",
11999	//     "https://www.googleapis.com/auth/drive.file",
12000	//     "https://www.googleapis.com/auth/spreadsheets"
12001	//   ]
12002	// }
12003
12004}
12005
12006// method id "sheets.spreadsheets.values.batchClear":
12007
12008type SpreadsheetsValuesBatchClearCall struct {
12009	s                       *Service
12010	spreadsheetId           string
12011	batchclearvaluesrequest *BatchClearValuesRequest
12012	urlParams_              gensupport.URLParams
12013	ctx_                    context.Context
12014	header_                 http.Header
12015}
12016
12017// BatchClear: Clears one or more ranges of values from a
12018// spreadsheet.
12019// The caller must specify the spreadsheet ID and one or more
12020// ranges.
12021// Only values are cleared -- all other properties of the cell (such
12022// as
12023// formatting, data validation, etc..) are kept.
12024func (r *SpreadsheetsValuesService) BatchClear(spreadsheetId string, batchclearvaluesrequest *BatchClearValuesRequest) *SpreadsheetsValuesBatchClearCall {
12025	c := &SpreadsheetsValuesBatchClearCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12026	c.spreadsheetId = spreadsheetId
12027	c.batchclearvaluesrequest = batchclearvaluesrequest
12028	return c
12029}
12030
12031// Fields allows partial responses to be retrieved. See
12032// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12033// for more information.
12034func (c *SpreadsheetsValuesBatchClearCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchClearCall {
12035	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12036	return c
12037}
12038
12039// Context sets the context to be used in this call's Do method. Any
12040// pending HTTP request will be aborted if the provided context is
12041// canceled.
12042func (c *SpreadsheetsValuesBatchClearCall) Context(ctx context.Context) *SpreadsheetsValuesBatchClearCall {
12043	c.ctx_ = ctx
12044	return c
12045}
12046
12047// Header returns an http.Header that can be modified by the caller to
12048// add HTTP headers to the request.
12049func (c *SpreadsheetsValuesBatchClearCall) Header() http.Header {
12050	if c.header_ == nil {
12051		c.header_ = make(http.Header)
12052	}
12053	return c.header_
12054}
12055
12056func (c *SpreadsheetsValuesBatchClearCall) doRequest(alt string) (*http.Response, error) {
12057	reqHeaders := make(http.Header)
12058	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
12059	for k, v := range c.header_ {
12060		reqHeaders[k] = v
12061	}
12062	reqHeaders.Set("User-Agent", c.s.userAgent())
12063	var body io.Reader = nil
12064	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchclearvaluesrequest)
12065	if err != nil {
12066		return nil, err
12067	}
12068	reqHeaders.Set("Content-Type", "application/json")
12069	c.urlParams_.Set("alt", alt)
12070	c.urlParams_.Set("prettyPrint", "false")
12071	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchClear")
12072	urls += "?" + c.urlParams_.Encode()
12073	req, err := http.NewRequest("POST", urls, body)
12074	if err != nil {
12075		return nil, err
12076	}
12077	req.Header = reqHeaders
12078	googleapi.Expand(req.URL, map[string]string{
12079		"spreadsheetId": c.spreadsheetId,
12080	})
12081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12082}
12083
12084// Do executes the "sheets.spreadsheets.values.batchClear" call.
12085// Exactly one of *BatchClearValuesResponse or error will be non-nil.
12086// Any non-2xx status code is an error. Response headers are in either
12087// *BatchClearValuesResponse.ServerResponse.Header or (if a response was
12088// returned at all) in error.(*googleapi.Error).Header. Use
12089// googleapi.IsNotModified to check whether the returned error was
12090// because http.StatusNotModified was returned.
12091func (c *SpreadsheetsValuesBatchClearCall) Do(opts ...googleapi.CallOption) (*BatchClearValuesResponse, error) {
12092	gensupport.SetOptions(c.urlParams_, opts...)
12093	res, err := c.doRequest("json")
12094	if res != nil && res.StatusCode == http.StatusNotModified {
12095		if res.Body != nil {
12096			res.Body.Close()
12097		}
12098		return nil, &googleapi.Error{
12099			Code:   res.StatusCode,
12100			Header: res.Header,
12101		}
12102	}
12103	if err != nil {
12104		return nil, err
12105	}
12106	defer googleapi.CloseBody(res)
12107	if err := googleapi.CheckResponse(res); err != nil {
12108		return nil, err
12109	}
12110	ret := &BatchClearValuesResponse{
12111		ServerResponse: googleapi.ServerResponse{
12112			Header:         res.Header,
12113			HTTPStatusCode: res.StatusCode,
12114		},
12115	}
12116	target := &ret
12117	if err := gensupport.DecodeResponse(target, res); err != nil {
12118		return nil, err
12119	}
12120	return ret, nil
12121	// {
12122	//   "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.",
12123	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClear",
12124	//   "httpMethod": "POST",
12125	//   "id": "sheets.spreadsheets.values.batchClear",
12126	//   "parameterOrder": [
12127	//     "spreadsheetId"
12128	//   ],
12129	//   "parameters": {
12130	//     "spreadsheetId": {
12131	//       "description": "The ID of the spreadsheet to update.",
12132	//       "location": "path",
12133	//       "required": true,
12134	//       "type": "string"
12135	//     }
12136	//   },
12137	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchClear",
12138	//   "request": {
12139	//     "$ref": "BatchClearValuesRequest"
12140	//   },
12141	//   "response": {
12142	//     "$ref": "BatchClearValuesResponse"
12143	//   },
12144	//   "scopes": [
12145	//     "https://www.googleapis.com/auth/drive",
12146	//     "https://www.googleapis.com/auth/drive.file",
12147	//     "https://www.googleapis.com/auth/spreadsheets"
12148	//   ]
12149	// }
12150
12151}
12152
12153// method id "sheets.spreadsheets.values.batchClearByDataFilter":
12154
12155type SpreadsheetsValuesBatchClearByDataFilterCall struct {
12156	s                                   *Service
12157	spreadsheetId                       string
12158	batchclearvaluesbydatafilterrequest *BatchClearValuesByDataFilterRequest
12159	urlParams_                          gensupport.URLParams
12160	ctx_                                context.Context
12161	header_                             http.Header
12162}
12163
12164// BatchClearByDataFilter: Clears one or more ranges of values from a
12165// spreadsheet.
12166// The caller must specify the spreadsheet ID and one or
12167// more
12168// DataFilters. Ranges matching any of the specified data
12169// filters will be cleared.  Only values are cleared -- all other
12170// properties
12171// of the cell (such as formatting, data validation, etc..) are kept.
12172func (r *SpreadsheetsValuesService) BatchClearByDataFilter(spreadsheetId string, batchclearvaluesbydatafilterrequest *BatchClearValuesByDataFilterRequest) *SpreadsheetsValuesBatchClearByDataFilterCall {
12173	c := &SpreadsheetsValuesBatchClearByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12174	c.spreadsheetId = spreadsheetId
12175	c.batchclearvaluesbydatafilterrequest = batchclearvaluesbydatafilterrequest
12176	return c
12177}
12178
12179// Fields allows partial responses to be retrieved. See
12180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12181// for more information.
12182func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchClearByDataFilterCall {
12183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12184	return c
12185}
12186
12187// Context sets the context to be used in this call's Do method. Any
12188// pending HTTP request will be aborted if the provided context is
12189// canceled.
12190func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchClearByDataFilterCall {
12191	c.ctx_ = ctx
12192	return c
12193}
12194
12195// Header returns an http.Header that can be modified by the caller to
12196// add HTTP headers to the request.
12197func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Header() http.Header {
12198	if c.header_ == nil {
12199		c.header_ = make(http.Header)
12200	}
12201	return c.header_
12202}
12203
12204func (c *SpreadsheetsValuesBatchClearByDataFilterCall) doRequest(alt string) (*http.Response, error) {
12205	reqHeaders := make(http.Header)
12206	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
12207	for k, v := range c.header_ {
12208		reqHeaders[k] = v
12209	}
12210	reqHeaders.Set("User-Agent", c.s.userAgent())
12211	var body io.Reader = nil
12212	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchclearvaluesbydatafilterrequest)
12213	if err != nil {
12214		return nil, err
12215	}
12216	reqHeaders.Set("Content-Type", "application/json")
12217	c.urlParams_.Set("alt", alt)
12218	c.urlParams_.Set("prettyPrint", "false")
12219	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter")
12220	urls += "?" + c.urlParams_.Encode()
12221	req, err := http.NewRequest("POST", urls, body)
12222	if err != nil {
12223		return nil, err
12224	}
12225	req.Header = reqHeaders
12226	googleapi.Expand(req.URL, map[string]string{
12227		"spreadsheetId": c.spreadsheetId,
12228	})
12229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12230}
12231
12232// Do executes the "sheets.spreadsheets.values.batchClearByDataFilter" call.
12233// Exactly one of *BatchClearValuesByDataFilterResponse or error will be
12234// non-nil. Any non-2xx status code is an error. Response headers are in
12235// either *BatchClearValuesByDataFilterResponse.ServerResponse.Header or
12236// (if a response was returned at all) in
12237// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
12238// whether the returned error was because http.StatusNotModified was
12239// returned.
12240func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchClearValuesByDataFilterResponse, error) {
12241	gensupport.SetOptions(c.urlParams_, opts...)
12242	res, err := c.doRequest("json")
12243	if res != nil && res.StatusCode == http.StatusNotModified {
12244		if res.Body != nil {
12245			res.Body.Close()
12246		}
12247		return nil, &googleapi.Error{
12248			Code:   res.StatusCode,
12249			Header: res.Header,
12250		}
12251	}
12252	if err != nil {
12253		return nil, err
12254	}
12255	defer googleapi.CloseBody(res)
12256	if err := googleapi.CheckResponse(res); err != nil {
12257		return nil, err
12258	}
12259	ret := &BatchClearValuesByDataFilterResponse{
12260		ServerResponse: googleapi.ServerResponse{
12261			Header:         res.Header,
12262			HTTPStatusCode: res.StatusCode,
12263		},
12264	}
12265	target := &ret
12266	if err := gensupport.DecodeResponse(target, res); err != nil {
12267		return nil, err
12268	}
12269	return ret, nil
12270	// {
12271	//   "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.",
12272	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter",
12273	//   "httpMethod": "POST",
12274	//   "id": "sheets.spreadsheets.values.batchClearByDataFilter",
12275	//   "parameterOrder": [
12276	//     "spreadsheetId"
12277	//   ],
12278	//   "parameters": {
12279	//     "spreadsheetId": {
12280	//       "description": "The ID of the spreadsheet to update.",
12281	//       "location": "path",
12282	//       "required": true,
12283	//       "type": "string"
12284	//     }
12285	//   },
12286	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter",
12287	//   "request": {
12288	//     "$ref": "BatchClearValuesByDataFilterRequest"
12289	//   },
12290	//   "response": {
12291	//     "$ref": "BatchClearValuesByDataFilterResponse"
12292	//   },
12293	//   "scopes": [
12294	//     "https://www.googleapis.com/auth/drive",
12295	//     "https://www.googleapis.com/auth/drive.file",
12296	//     "https://www.googleapis.com/auth/spreadsheets"
12297	//   ]
12298	// }
12299
12300}
12301
12302// method id "sheets.spreadsheets.values.batchGet":
12303
12304type SpreadsheetsValuesBatchGetCall struct {
12305	s             *Service
12306	spreadsheetId string
12307	urlParams_    gensupport.URLParams
12308	ifNoneMatch_  string
12309	ctx_          context.Context
12310	header_       http.Header
12311}
12312
12313// BatchGet: Returns one or more ranges of values from a
12314// spreadsheet.
12315// The caller must specify the spreadsheet ID and one or more ranges.
12316func (r *SpreadsheetsValuesService) BatchGet(spreadsheetId string) *SpreadsheetsValuesBatchGetCall {
12317	c := &SpreadsheetsValuesBatchGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12318	c.spreadsheetId = spreadsheetId
12319	return c
12320}
12321
12322// DateTimeRenderOption sets the optional parameter
12323// "dateTimeRenderOption": How dates, times, and durations should be
12324// represented in the output.
12325// This is ignored if value_render_option is
12326// FORMATTED_VALUE.
12327// The default dateTime render option is
12328// [DateTimeRenderOption.SERIAL_NUMBER].
12329//
12330// Possible values:
12331//   "SERIAL_NUMBER"
12332//   "FORMATTED_STRING"
12333func (c *SpreadsheetsValuesBatchGetCall) DateTimeRenderOption(dateTimeRenderOption string) *SpreadsheetsValuesBatchGetCall {
12334	c.urlParams_.Set("dateTimeRenderOption", dateTimeRenderOption)
12335	return c
12336}
12337
12338// MajorDimension sets the optional parameter "majorDimension": The
12339// major dimension that results should use.
12340//
12341// For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
12342// then requesting `range=A1:B2,majorDimension=ROWS` returns
12343// `[[1,2],[3,4]]`,
12344// whereas requesting `range=A1:B2,majorDimension=COLUMNS`
12345// returns
12346// `[[1,3],[2,4]]`.
12347//
12348// Possible values:
12349//   "DIMENSION_UNSPECIFIED"
12350//   "ROWS"
12351//   "COLUMNS"
12352func (c *SpreadsheetsValuesBatchGetCall) MajorDimension(majorDimension string) *SpreadsheetsValuesBatchGetCall {
12353	c.urlParams_.Set("majorDimension", majorDimension)
12354	return c
12355}
12356
12357// Ranges sets the optional parameter "ranges": The A1 notation of the
12358// values to retrieve.
12359func (c *SpreadsheetsValuesBatchGetCall) Ranges(ranges ...string) *SpreadsheetsValuesBatchGetCall {
12360	c.urlParams_.SetMulti("ranges", append([]string{}, ranges...))
12361	return c
12362}
12363
12364// ValueRenderOption sets the optional parameter "valueRenderOption":
12365// How values should be represented in the output.
12366// The default render option is ValueRenderOption.FORMATTED_VALUE.
12367//
12368// Possible values:
12369//   "FORMATTED_VALUE"
12370//   "UNFORMATTED_VALUE"
12371//   "FORMULA"
12372func (c *SpreadsheetsValuesBatchGetCall) ValueRenderOption(valueRenderOption string) *SpreadsheetsValuesBatchGetCall {
12373	c.urlParams_.Set("valueRenderOption", valueRenderOption)
12374	return c
12375}
12376
12377// Fields allows partial responses to be retrieved. See
12378// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12379// for more information.
12380func (c *SpreadsheetsValuesBatchGetCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchGetCall {
12381	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12382	return c
12383}
12384
12385// IfNoneMatch sets the optional parameter which makes the operation
12386// fail if the object's ETag matches the given value. This is useful for
12387// getting updates only after the object has changed since the last
12388// request. Use googleapi.IsNotModified to check whether the response
12389// error from Do is the result of In-None-Match.
12390func (c *SpreadsheetsValuesBatchGetCall) IfNoneMatch(entityTag string) *SpreadsheetsValuesBatchGetCall {
12391	c.ifNoneMatch_ = entityTag
12392	return c
12393}
12394
12395// Context sets the context to be used in this call's Do method. Any
12396// pending HTTP request will be aborted if the provided context is
12397// canceled.
12398func (c *SpreadsheetsValuesBatchGetCall) Context(ctx context.Context) *SpreadsheetsValuesBatchGetCall {
12399	c.ctx_ = ctx
12400	return c
12401}
12402
12403// Header returns an http.Header that can be modified by the caller to
12404// add HTTP headers to the request.
12405func (c *SpreadsheetsValuesBatchGetCall) Header() http.Header {
12406	if c.header_ == nil {
12407		c.header_ = make(http.Header)
12408	}
12409	return c.header_
12410}
12411
12412func (c *SpreadsheetsValuesBatchGetCall) doRequest(alt string) (*http.Response, error) {
12413	reqHeaders := make(http.Header)
12414	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
12415	for k, v := range c.header_ {
12416		reqHeaders[k] = v
12417	}
12418	reqHeaders.Set("User-Agent", c.s.userAgent())
12419	if c.ifNoneMatch_ != "" {
12420		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12421	}
12422	var body io.Reader = nil
12423	c.urlParams_.Set("alt", alt)
12424	c.urlParams_.Set("prettyPrint", "false")
12425	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchGet")
12426	urls += "?" + c.urlParams_.Encode()
12427	req, err := http.NewRequest("GET", urls, body)
12428	if err != nil {
12429		return nil, err
12430	}
12431	req.Header = reqHeaders
12432	googleapi.Expand(req.URL, map[string]string{
12433		"spreadsheetId": c.spreadsheetId,
12434	})
12435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12436}
12437
12438// Do executes the "sheets.spreadsheets.values.batchGet" call.
12439// Exactly one of *BatchGetValuesResponse or error will be non-nil. Any
12440// non-2xx status code is an error. Response headers are in either
12441// *BatchGetValuesResponse.ServerResponse.Header or (if a response was
12442// returned at all) in error.(*googleapi.Error).Header. Use
12443// googleapi.IsNotModified to check whether the returned error was
12444// because http.StatusNotModified was returned.
12445func (c *SpreadsheetsValuesBatchGetCall) Do(opts ...googleapi.CallOption) (*BatchGetValuesResponse, error) {
12446	gensupport.SetOptions(c.urlParams_, opts...)
12447	res, err := c.doRequest("json")
12448	if res != nil && res.StatusCode == http.StatusNotModified {
12449		if res.Body != nil {
12450			res.Body.Close()
12451		}
12452		return nil, &googleapi.Error{
12453			Code:   res.StatusCode,
12454			Header: res.Header,
12455		}
12456	}
12457	if err != nil {
12458		return nil, err
12459	}
12460	defer googleapi.CloseBody(res)
12461	if err := googleapi.CheckResponse(res); err != nil {
12462		return nil, err
12463	}
12464	ret := &BatchGetValuesResponse{
12465		ServerResponse: googleapi.ServerResponse{
12466			Header:         res.Header,
12467			HTTPStatusCode: res.StatusCode,
12468		},
12469	}
12470	target := &ret
12471	if err := gensupport.DecodeResponse(target, res); err != nil {
12472		return nil, err
12473	}
12474	return ret, nil
12475	// {
12476	//   "description": "Returns one or more ranges of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and one or more ranges.",
12477	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGet",
12478	//   "httpMethod": "GET",
12479	//   "id": "sheets.spreadsheets.values.batchGet",
12480	//   "parameterOrder": [
12481	//     "spreadsheetId"
12482	//   ],
12483	//   "parameters": {
12484	//     "dateTimeRenderOption": {
12485	//       "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].",
12486	//       "enum": [
12487	//         "SERIAL_NUMBER",
12488	//         "FORMATTED_STRING"
12489	//       ],
12490	//       "location": "query",
12491	//       "type": "string"
12492	//     },
12493	//     "majorDimension": {
12494	//       "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]]`.",
12495	//       "enum": [
12496	//         "DIMENSION_UNSPECIFIED",
12497	//         "ROWS",
12498	//         "COLUMNS"
12499	//       ],
12500	//       "location": "query",
12501	//       "type": "string"
12502	//     },
12503	//     "ranges": {
12504	//       "description": "The A1 notation of the values to retrieve.",
12505	//       "location": "query",
12506	//       "repeated": true,
12507	//       "type": "string"
12508	//     },
12509	//     "spreadsheetId": {
12510	//       "description": "The ID of the spreadsheet to retrieve data from.",
12511	//       "location": "path",
12512	//       "required": true,
12513	//       "type": "string"
12514	//     },
12515	//     "valueRenderOption": {
12516	//       "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
12517	//       "enum": [
12518	//         "FORMATTED_VALUE",
12519	//         "UNFORMATTED_VALUE",
12520	//         "FORMULA"
12521	//       ],
12522	//       "location": "query",
12523	//       "type": "string"
12524	//     }
12525	//   },
12526	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchGet",
12527	//   "response": {
12528	//     "$ref": "BatchGetValuesResponse"
12529	//   },
12530	//   "scopes": [
12531	//     "https://www.googleapis.com/auth/drive",
12532	//     "https://www.googleapis.com/auth/drive.file",
12533	//     "https://www.googleapis.com/auth/drive.readonly",
12534	//     "https://www.googleapis.com/auth/spreadsheets",
12535	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
12536	//   ]
12537	// }
12538
12539}
12540
12541// method id "sheets.spreadsheets.values.batchGetByDataFilter":
12542
12543type SpreadsheetsValuesBatchGetByDataFilterCall struct {
12544	s                                 *Service
12545	spreadsheetId                     string
12546	batchgetvaluesbydatafilterrequest *BatchGetValuesByDataFilterRequest
12547	urlParams_                        gensupport.URLParams
12548	ctx_                              context.Context
12549	header_                           http.Header
12550}
12551
12552// BatchGetByDataFilter: Returns one or more ranges of values that match
12553// the specified data filters.
12554// The caller must specify the spreadsheet ID and one or
12555// more
12556// DataFilters.  Ranges that match any of the data filters in
12557// the request will be returned.
12558func (r *SpreadsheetsValuesService) BatchGetByDataFilter(spreadsheetId string, batchgetvaluesbydatafilterrequest *BatchGetValuesByDataFilterRequest) *SpreadsheetsValuesBatchGetByDataFilterCall {
12559	c := &SpreadsheetsValuesBatchGetByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12560	c.spreadsheetId = spreadsheetId
12561	c.batchgetvaluesbydatafilterrequest = batchgetvaluesbydatafilterrequest
12562	return c
12563}
12564
12565// Fields allows partial responses to be retrieved. See
12566// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12567// for more information.
12568func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchGetByDataFilterCall {
12569	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12570	return c
12571}
12572
12573// Context sets the context to be used in this call's Do method. Any
12574// pending HTTP request will be aborted if the provided context is
12575// canceled.
12576func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchGetByDataFilterCall {
12577	c.ctx_ = ctx
12578	return c
12579}
12580
12581// Header returns an http.Header that can be modified by the caller to
12582// add HTTP headers to the request.
12583func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Header() http.Header {
12584	if c.header_ == nil {
12585		c.header_ = make(http.Header)
12586	}
12587	return c.header_
12588}
12589
12590func (c *SpreadsheetsValuesBatchGetByDataFilterCall) doRequest(alt string) (*http.Response, error) {
12591	reqHeaders := make(http.Header)
12592	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
12593	for k, v := range c.header_ {
12594		reqHeaders[k] = v
12595	}
12596	reqHeaders.Set("User-Agent", c.s.userAgent())
12597	var body io.Reader = nil
12598	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchgetvaluesbydatafilterrequest)
12599	if err != nil {
12600		return nil, err
12601	}
12602	reqHeaders.Set("Content-Type", "application/json")
12603	c.urlParams_.Set("alt", alt)
12604	c.urlParams_.Set("prettyPrint", "false")
12605	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter")
12606	urls += "?" + c.urlParams_.Encode()
12607	req, err := http.NewRequest("POST", urls, body)
12608	if err != nil {
12609		return nil, err
12610	}
12611	req.Header = reqHeaders
12612	googleapi.Expand(req.URL, map[string]string{
12613		"spreadsheetId": c.spreadsheetId,
12614	})
12615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12616}
12617
12618// Do executes the "sheets.spreadsheets.values.batchGetByDataFilter" call.
12619// Exactly one of *BatchGetValuesByDataFilterResponse or error will be
12620// non-nil. Any non-2xx status code is an error. Response headers are in
12621// either *BatchGetValuesByDataFilterResponse.ServerResponse.Header or
12622// (if a response was returned at all) in
12623// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
12624// whether the returned error was because http.StatusNotModified was
12625// returned.
12626func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchGetValuesByDataFilterResponse, error) {
12627	gensupport.SetOptions(c.urlParams_, opts...)
12628	res, err := c.doRequest("json")
12629	if res != nil && res.StatusCode == http.StatusNotModified {
12630		if res.Body != nil {
12631			res.Body.Close()
12632		}
12633		return nil, &googleapi.Error{
12634			Code:   res.StatusCode,
12635			Header: res.Header,
12636		}
12637	}
12638	if err != nil {
12639		return nil, err
12640	}
12641	defer googleapi.CloseBody(res)
12642	if err := googleapi.CheckResponse(res); err != nil {
12643		return nil, err
12644	}
12645	ret := &BatchGetValuesByDataFilterResponse{
12646		ServerResponse: googleapi.ServerResponse{
12647			Header:         res.Header,
12648			HTTPStatusCode: res.StatusCode,
12649		},
12650	}
12651	target := &ret
12652	if err := gensupport.DecodeResponse(target, res); err != nil {
12653		return nil, err
12654	}
12655	return ret, nil
12656	// {
12657	//   "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.",
12658	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter",
12659	//   "httpMethod": "POST",
12660	//   "id": "sheets.spreadsheets.values.batchGetByDataFilter",
12661	//   "parameterOrder": [
12662	//     "spreadsheetId"
12663	//   ],
12664	//   "parameters": {
12665	//     "spreadsheetId": {
12666	//       "description": "The ID of the spreadsheet to retrieve data from.",
12667	//       "location": "path",
12668	//       "required": true,
12669	//       "type": "string"
12670	//     }
12671	//   },
12672	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter",
12673	//   "request": {
12674	//     "$ref": "BatchGetValuesByDataFilterRequest"
12675	//   },
12676	//   "response": {
12677	//     "$ref": "BatchGetValuesByDataFilterResponse"
12678	//   },
12679	//   "scopes": [
12680	//     "https://www.googleapis.com/auth/drive",
12681	//     "https://www.googleapis.com/auth/drive.file",
12682	//     "https://www.googleapis.com/auth/spreadsheets"
12683	//   ]
12684	// }
12685
12686}
12687
12688// method id "sheets.spreadsheets.values.batchUpdate":
12689
12690type SpreadsheetsValuesBatchUpdateCall struct {
12691	s                        *Service
12692	spreadsheetId            string
12693	batchupdatevaluesrequest *BatchUpdateValuesRequest
12694	urlParams_               gensupport.URLParams
12695	ctx_                     context.Context
12696	header_                  http.Header
12697}
12698
12699// BatchUpdate: Sets values in one or more ranges of a spreadsheet.
12700// The caller must specify the spreadsheet ID,
12701// a valueInputOption, and one or more
12702// ValueRanges.
12703func (r *SpreadsheetsValuesService) BatchUpdate(spreadsheetId string, batchupdatevaluesrequest *BatchUpdateValuesRequest) *SpreadsheetsValuesBatchUpdateCall {
12704	c := &SpreadsheetsValuesBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12705	c.spreadsheetId = spreadsheetId
12706	c.batchupdatevaluesrequest = batchupdatevaluesrequest
12707	return c
12708}
12709
12710// Fields allows partial responses to be retrieved. See
12711// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12712// for more information.
12713func (c *SpreadsheetsValuesBatchUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchUpdateCall {
12714	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12715	return c
12716}
12717
12718// Context sets the context to be used in this call's Do method. Any
12719// pending HTTP request will be aborted if the provided context is
12720// canceled.
12721func (c *SpreadsheetsValuesBatchUpdateCall) Context(ctx context.Context) *SpreadsheetsValuesBatchUpdateCall {
12722	c.ctx_ = ctx
12723	return c
12724}
12725
12726// Header returns an http.Header that can be modified by the caller to
12727// add HTTP headers to the request.
12728func (c *SpreadsheetsValuesBatchUpdateCall) Header() http.Header {
12729	if c.header_ == nil {
12730		c.header_ = make(http.Header)
12731	}
12732	return c.header_
12733}
12734
12735func (c *SpreadsheetsValuesBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
12736	reqHeaders := make(http.Header)
12737	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
12738	for k, v := range c.header_ {
12739		reqHeaders[k] = v
12740	}
12741	reqHeaders.Set("User-Agent", c.s.userAgent())
12742	var body io.Reader = nil
12743	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatevaluesrequest)
12744	if err != nil {
12745		return nil, err
12746	}
12747	reqHeaders.Set("Content-Type", "application/json")
12748	c.urlParams_.Set("alt", alt)
12749	c.urlParams_.Set("prettyPrint", "false")
12750	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchUpdate")
12751	urls += "?" + c.urlParams_.Encode()
12752	req, err := http.NewRequest("POST", urls, body)
12753	if err != nil {
12754		return nil, err
12755	}
12756	req.Header = reqHeaders
12757	googleapi.Expand(req.URL, map[string]string{
12758		"spreadsheetId": c.spreadsheetId,
12759	})
12760	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12761}
12762
12763// Do executes the "sheets.spreadsheets.values.batchUpdate" call.
12764// Exactly one of *BatchUpdateValuesResponse or error will be non-nil.
12765// Any non-2xx status code is an error. Response headers are in either
12766// *BatchUpdateValuesResponse.ServerResponse.Header or (if a response
12767// was returned at all) in error.(*googleapi.Error).Header. Use
12768// googleapi.IsNotModified to check whether the returned error was
12769// because http.StatusNotModified was returned.
12770func (c *SpreadsheetsValuesBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdateValuesResponse, error) {
12771	gensupport.SetOptions(c.urlParams_, opts...)
12772	res, err := c.doRequest("json")
12773	if res != nil && res.StatusCode == http.StatusNotModified {
12774		if res.Body != nil {
12775			res.Body.Close()
12776		}
12777		return nil, &googleapi.Error{
12778			Code:   res.StatusCode,
12779			Header: res.Header,
12780		}
12781	}
12782	if err != nil {
12783		return nil, err
12784	}
12785	defer googleapi.CloseBody(res)
12786	if err := googleapi.CheckResponse(res); err != nil {
12787		return nil, err
12788	}
12789	ret := &BatchUpdateValuesResponse{
12790		ServerResponse: googleapi.ServerResponse{
12791			Header:         res.Header,
12792			HTTPStatusCode: res.StatusCode,
12793		},
12794	}
12795	target := &ret
12796	if err := gensupport.DecodeResponse(target, res); err != nil {
12797		return nil, err
12798	}
12799	return ret, nil
12800	// {
12801	//   "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.",
12802	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate",
12803	//   "httpMethod": "POST",
12804	//   "id": "sheets.spreadsheets.values.batchUpdate",
12805	//   "parameterOrder": [
12806	//     "spreadsheetId"
12807	//   ],
12808	//   "parameters": {
12809	//     "spreadsheetId": {
12810	//       "description": "The ID of the spreadsheet to update.",
12811	//       "location": "path",
12812	//       "required": true,
12813	//       "type": "string"
12814	//     }
12815	//   },
12816	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate",
12817	//   "request": {
12818	//     "$ref": "BatchUpdateValuesRequest"
12819	//   },
12820	//   "response": {
12821	//     "$ref": "BatchUpdateValuesResponse"
12822	//   },
12823	//   "scopes": [
12824	//     "https://www.googleapis.com/auth/drive",
12825	//     "https://www.googleapis.com/auth/drive.file",
12826	//     "https://www.googleapis.com/auth/spreadsheets"
12827	//   ]
12828	// }
12829
12830}
12831
12832// method id "sheets.spreadsheets.values.batchUpdateByDataFilter":
12833
12834type SpreadsheetsValuesBatchUpdateByDataFilterCall struct {
12835	s                                    *Service
12836	spreadsheetId                        string
12837	batchupdatevaluesbydatafilterrequest *BatchUpdateValuesByDataFilterRequest
12838	urlParams_                           gensupport.URLParams
12839	ctx_                                 context.Context
12840	header_                              http.Header
12841}
12842
12843// BatchUpdateByDataFilter: Sets values in one or more ranges of a
12844// spreadsheet.
12845// The caller must specify the spreadsheet ID,
12846// a valueInputOption, and one or more
12847// DataFilterValueRanges.
12848func (r *SpreadsheetsValuesService) BatchUpdateByDataFilter(spreadsheetId string, batchupdatevaluesbydatafilterrequest *BatchUpdateValuesByDataFilterRequest) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
12849	c := &SpreadsheetsValuesBatchUpdateByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12850	c.spreadsheetId = spreadsheetId
12851	c.batchupdatevaluesbydatafilterrequest = batchupdatevaluesbydatafilterrequest
12852	return c
12853}
12854
12855// Fields allows partial responses to be retrieved. See
12856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12857// for more information.
12858func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
12859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12860	return c
12861}
12862
12863// Context sets the context to be used in this call's Do method. Any
12864// pending HTTP request will be aborted if the provided context is
12865// canceled.
12866func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
12867	c.ctx_ = ctx
12868	return c
12869}
12870
12871// Header returns an http.Header that can be modified by the caller to
12872// add HTTP headers to the request.
12873func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Header() http.Header {
12874	if c.header_ == nil {
12875		c.header_ = make(http.Header)
12876	}
12877	return c.header_
12878}
12879
12880func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) doRequest(alt string) (*http.Response, error) {
12881	reqHeaders := make(http.Header)
12882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
12883	for k, v := range c.header_ {
12884		reqHeaders[k] = v
12885	}
12886	reqHeaders.Set("User-Agent", c.s.userAgent())
12887	var body io.Reader = nil
12888	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatevaluesbydatafilterrequest)
12889	if err != nil {
12890		return nil, err
12891	}
12892	reqHeaders.Set("Content-Type", "application/json")
12893	c.urlParams_.Set("alt", alt)
12894	c.urlParams_.Set("prettyPrint", "false")
12895	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter")
12896	urls += "?" + c.urlParams_.Encode()
12897	req, err := http.NewRequest("POST", urls, body)
12898	if err != nil {
12899		return nil, err
12900	}
12901	req.Header = reqHeaders
12902	googleapi.Expand(req.URL, map[string]string{
12903		"spreadsheetId": c.spreadsheetId,
12904	})
12905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12906}
12907
12908// Do executes the "sheets.spreadsheets.values.batchUpdateByDataFilter" call.
12909// Exactly one of *BatchUpdateValuesByDataFilterResponse or error will
12910// be non-nil. Any non-2xx status code is an error. Response headers are
12911// in either
12912// *BatchUpdateValuesByDataFilterResponse.ServerResponse.Header or (if a
12913// response was returned at all) in error.(*googleapi.Error).Header. Use
12914// googleapi.IsNotModified to check whether the returned error was
12915// because http.StatusNotModified was returned.
12916func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchUpdateValuesByDataFilterResponse, error) {
12917	gensupport.SetOptions(c.urlParams_, opts...)
12918	res, err := c.doRequest("json")
12919	if res != nil && res.StatusCode == http.StatusNotModified {
12920		if res.Body != nil {
12921			res.Body.Close()
12922		}
12923		return nil, &googleapi.Error{
12924			Code:   res.StatusCode,
12925			Header: res.Header,
12926		}
12927	}
12928	if err != nil {
12929		return nil, err
12930	}
12931	defer googleapi.CloseBody(res)
12932	if err := googleapi.CheckResponse(res); err != nil {
12933		return nil, err
12934	}
12935	ret := &BatchUpdateValuesByDataFilterResponse{
12936		ServerResponse: googleapi.ServerResponse{
12937			Header:         res.Header,
12938			HTTPStatusCode: res.StatusCode,
12939		},
12940	}
12941	target := &ret
12942	if err := gensupport.DecodeResponse(target, res); err != nil {
12943		return nil, err
12944	}
12945	return ret, nil
12946	// {
12947	//   "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.",
12948	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter",
12949	//   "httpMethod": "POST",
12950	//   "id": "sheets.spreadsheets.values.batchUpdateByDataFilter",
12951	//   "parameterOrder": [
12952	//     "spreadsheetId"
12953	//   ],
12954	//   "parameters": {
12955	//     "spreadsheetId": {
12956	//       "description": "The ID of the spreadsheet to update.",
12957	//       "location": "path",
12958	//       "required": true,
12959	//       "type": "string"
12960	//     }
12961	//   },
12962	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter",
12963	//   "request": {
12964	//     "$ref": "BatchUpdateValuesByDataFilterRequest"
12965	//   },
12966	//   "response": {
12967	//     "$ref": "BatchUpdateValuesByDataFilterResponse"
12968	//   },
12969	//   "scopes": [
12970	//     "https://www.googleapis.com/auth/drive",
12971	//     "https://www.googleapis.com/auth/drive.file",
12972	//     "https://www.googleapis.com/auth/spreadsheets"
12973	//   ]
12974	// }
12975
12976}
12977
12978// method id "sheets.spreadsheets.values.clear":
12979
12980type SpreadsheetsValuesClearCall struct {
12981	s                  *Service
12982	spreadsheetId      string
12983	range_             string
12984	clearvaluesrequest *ClearValuesRequest
12985	urlParams_         gensupport.URLParams
12986	ctx_               context.Context
12987	header_            http.Header
12988}
12989
12990// Clear: Clears values from a spreadsheet.
12991// The caller must specify the spreadsheet ID and range.
12992// Only values are cleared -- all other properties of the cell (such
12993// as
12994// formatting, data validation, etc..) are kept.
12995func (r *SpreadsheetsValuesService) Clear(spreadsheetId string, range_ string, clearvaluesrequest *ClearValuesRequest) *SpreadsheetsValuesClearCall {
12996	c := &SpreadsheetsValuesClearCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12997	c.spreadsheetId = spreadsheetId
12998	c.range_ = range_
12999	c.clearvaluesrequest = clearvaluesrequest
13000	return c
13001}
13002
13003// Fields allows partial responses to be retrieved. See
13004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13005// for more information.
13006func (c *SpreadsheetsValuesClearCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesClearCall {
13007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13008	return c
13009}
13010
13011// Context sets the context to be used in this call's Do method. Any
13012// pending HTTP request will be aborted if the provided context is
13013// canceled.
13014func (c *SpreadsheetsValuesClearCall) Context(ctx context.Context) *SpreadsheetsValuesClearCall {
13015	c.ctx_ = ctx
13016	return c
13017}
13018
13019// Header returns an http.Header that can be modified by the caller to
13020// add HTTP headers to the request.
13021func (c *SpreadsheetsValuesClearCall) Header() http.Header {
13022	if c.header_ == nil {
13023		c.header_ = make(http.Header)
13024	}
13025	return c.header_
13026}
13027
13028func (c *SpreadsheetsValuesClearCall) doRequest(alt string) (*http.Response, error) {
13029	reqHeaders := make(http.Header)
13030	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
13031	for k, v := range c.header_ {
13032		reqHeaders[k] = v
13033	}
13034	reqHeaders.Set("User-Agent", c.s.userAgent())
13035	var body io.Reader = nil
13036	body, err := googleapi.WithoutDataWrapper.JSONReader(c.clearvaluesrequest)
13037	if err != nil {
13038		return nil, err
13039	}
13040	reqHeaders.Set("Content-Type", "application/json")
13041	c.urlParams_.Set("alt", alt)
13042	c.urlParams_.Set("prettyPrint", "false")
13043	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}:clear")
13044	urls += "?" + c.urlParams_.Encode()
13045	req, err := http.NewRequest("POST", urls, body)
13046	if err != nil {
13047		return nil, err
13048	}
13049	req.Header = reqHeaders
13050	googleapi.Expand(req.URL, map[string]string{
13051		"spreadsheetId": c.spreadsheetId,
13052		"range":         c.range_,
13053	})
13054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13055}
13056
13057// Do executes the "sheets.spreadsheets.values.clear" call.
13058// Exactly one of *ClearValuesResponse or error will be non-nil. Any
13059// non-2xx status code is an error. Response headers are in either
13060// *ClearValuesResponse.ServerResponse.Header or (if a response was
13061// returned at all) in error.(*googleapi.Error).Header. Use
13062// googleapi.IsNotModified to check whether the returned error was
13063// because http.StatusNotModified was returned.
13064func (c *SpreadsheetsValuesClearCall) Do(opts ...googleapi.CallOption) (*ClearValuesResponse, error) {
13065	gensupport.SetOptions(c.urlParams_, opts...)
13066	res, err := c.doRequest("json")
13067	if res != nil && res.StatusCode == http.StatusNotModified {
13068		if res.Body != nil {
13069			res.Body.Close()
13070		}
13071		return nil, &googleapi.Error{
13072			Code:   res.StatusCode,
13073			Header: res.Header,
13074		}
13075	}
13076	if err != nil {
13077		return nil, err
13078	}
13079	defer googleapi.CloseBody(res)
13080	if err := googleapi.CheckResponse(res); err != nil {
13081		return nil, err
13082	}
13083	ret := &ClearValuesResponse{
13084		ServerResponse: googleapi.ServerResponse{
13085			Header:         res.Header,
13086			HTTPStatusCode: res.StatusCode,
13087		},
13088	}
13089	target := &ret
13090	if err := gensupport.DecodeResponse(target, res); err != nil {
13091		return nil, err
13092	}
13093	return ret, nil
13094	// {
13095	//   "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.",
13096	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear",
13097	//   "httpMethod": "POST",
13098	//   "id": "sheets.spreadsheets.values.clear",
13099	//   "parameterOrder": [
13100	//     "spreadsheetId",
13101	//     "range"
13102	//   ],
13103	//   "parameters": {
13104	//     "range": {
13105	//       "description": "The A1 notation of the values to clear.",
13106	//       "location": "path",
13107	//       "required": true,
13108	//       "type": "string"
13109	//     },
13110	//     "spreadsheetId": {
13111	//       "description": "The ID of the spreadsheet to update.",
13112	//       "location": "path",
13113	//       "required": true,
13114	//       "type": "string"
13115	//     }
13116	//   },
13117	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear",
13118	//   "request": {
13119	//     "$ref": "ClearValuesRequest"
13120	//   },
13121	//   "response": {
13122	//     "$ref": "ClearValuesResponse"
13123	//   },
13124	//   "scopes": [
13125	//     "https://www.googleapis.com/auth/drive",
13126	//     "https://www.googleapis.com/auth/drive.file",
13127	//     "https://www.googleapis.com/auth/spreadsheets"
13128	//   ]
13129	// }
13130
13131}
13132
13133// method id "sheets.spreadsheets.values.get":
13134
13135type SpreadsheetsValuesGetCall struct {
13136	s             *Service
13137	spreadsheetId string
13138	range_        string
13139	urlParams_    gensupport.URLParams
13140	ifNoneMatch_  string
13141	ctx_          context.Context
13142	header_       http.Header
13143}
13144
13145// Get: Returns a range of values from a spreadsheet.
13146// The caller must specify the spreadsheet ID and a range.
13147func (r *SpreadsheetsValuesService) Get(spreadsheetId string, range_ string) *SpreadsheetsValuesGetCall {
13148	c := &SpreadsheetsValuesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13149	c.spreadsheetId = spreadsheetId
13150	c.range_ = range_
13151	return c
13152}
13153
13154// DateTimeRenderOption sets the optional parameter
13155// "dateTimeRenderOption": How dates, times, and durations should be
13156// represented in the output.
13157// This is ignored if value_render_option is
13158// FORMATTED_VALUE.
13159// The default dateTime render option is
13160// [DateTimeRenderOption.SERIAL_NUMBER].
13161//
13162// Possible values:
13163//   "SERIAL_NUMBER"
13164//   "FORMATTED_STRING"
13165func (c *SpreadsheetsValuesGetCall) DateTimeRenderOption(dateTimeRenderOption string) *SpreadsheetsValuesGetCall {
13166	c.urlParams_.Set("dateTimeRenderOption", dateTimeRenderOption)
13167	return c
13168}
13169
13170// MajorDimension sets the optional parameter "majorDimension": The
13171// major dimension that results should use.
13172//
13173// For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
13174// then
13175// requesting `range=A1:B2,majorDimension=ROWS` returns
13176// `[[1,2],[3,4]]`,
13177// whereas requesting `range=A1:B2,majorDimension=COLUMNS`
13178// returns
13179// `[[1,3],[2,4]]`.
13180//
13181// Possible values:
13182//   "DIMENSION_UNSPECIFIED"
13183//   "ROWS"
13184//   "COLUMNS"
13185func (c *SpreadsheetsValuesGetCall) MajorDimension(majorDimension string) *SpreadsheetsValuesGetCall {
13186	c.urlParams_.Set("majorDimension", majorDimension)
13187	return c
13188}
13189
13190// ValueRenderOption sets the optional parameter "valueRenderOption":
13191// How values should be represented in the output.
13192// The default render option is ValueRenderOption.FORMATTED_VALUE.
13193//
13194// Possible values:
13195//   "FORMATTED_VALUE"
13196//   "UNFORMATTED_VALUE"
13197//   "FORMULA"
13198func (c *SpreadsheetsValuesGetCall) ValueRenderOption(valueRenderOption string) *SpreadsheetsValuesGetCall {
13199	c.urlParams_.Set("valueRenderOption", valueRenderOption)
13200	return c
13201}
13202
13203// Fields allows partial responses to be retrieved. See
13204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13205// for more information.
13206func (c *SpreadsheetsValuesGetCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesGetCall {
13207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13208	return c
13209}
13210
13211// IfNoneMatch sets the optional parameter which makes the operation
13212// fail if the object's ETag matches the given value. This is useful for
13213// getting updates only after the object has changed since the last
13214// request. Use googleapi.IsNotModified to check whether the response
13215// error from Do is the result of In-None-Match.
13216func (c *SpreadsheetsValuesGetCall) IfNoneMatch(entityTag string) *SpreadsheetsValuesGetCall {
13217	c.ifNoneMatch_ = entityTag
13218	return c
13219}
13220
13221// Context sets the context to be used in this call's Do method. Any
13222// pending HTTP request will be aborted if the provided context is
13223// canceled.
13224func (c *SpreadsheetsValuesGetCall) Context(ctx context.Context) *SpreadsheetsValuesGetCall {
13225	c.ctx_ = ctx
13226	return c
13227}
13228
13229// Header returns an http.Header that can be modified by the caller to
13230// add HTTP headers to the request.
13231func (c *SpreadsheetsValuesGetCall) Header() http.Header {
13232	if c.header_ == nil {
13233		c.header_ = make(http.Header)
13234	}
13235	return c.header_
13236}
13237
13238func (c *SpreadsheetsValuesGetCall) doRequest(alt string) (*http.Response, error) {
13239	reqHeaders := make(http.Header)
13240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
13241	for k, v := range c.header_ {
13242		reqHeaders[k] = v
13243	}
13244	reqHeaders.Set("User-Agent", c.s.userAgent())
13245	if c.ifNoneMatch_ != "" {
13246		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13247	}
13248	var body io.Reader = nil
13249	c.urlParams_.Set("alt", alt)
13250	c.urlParams_.Set("prettyPrint", "false")
13251	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}")
13252	urls += "?" + c.urlParams_.Encode()
13253	req, err := http.NewRequest("GET", urls, body)
13254	if err != nil {
13255		return nil, err
13256	}
13257	req.Header = reqHeaders
13258	googleapi.Expand(req.URL, map[string]string{
13259		"spreadsheetId": c.spreadsheetId,
13260		"range":         c.range_,
13261	})
13262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13263}
13264
13265// Do executes the "sheets.spreadsheets.values.get" call.
13266// Exactly one of *ValueRange or error will be non-nil. Any non-2xx
13267// status code is an error. Response headers are in either
13268// *ValueRange.ServerResponse.Header or (if a response was returned at
13269// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13270// to check whether the returned error was because
13271// http.StatusNotModified was returned.
13272func (c *SpreadsheetsValuesGetCall) Do(opts ...googleapi.CallOption) (*ValueRange, error) {
13273	gensupport.SetOptions(c.urlParams_, opts...)
13274	res, err := c.doRequest("json")
13275	if res != nil && res.StatusCode == http.StatusNotModified {
13276		if res.Body != nil {
13277			res.Body.Close()
13278		}
13279		return nil, &googleapi.Error{
13280			Code:   res.StatusCode,
13281			Header: res.Header,
13282		}
13283	}
13284	if err != nil {
13285		return nil, err
13286	}
13287	defer googleapi.CloseBody(res)
13288	if err := googleapi.CheckResponse(res); err != nil {
13289		return nil, err
13290	}
13291	ret := &ValueRange{
13292		ServerResponse: googleapi.ServerResponse{
13293			Header:         res.Header,
13294			HTTPStatusCode: res.StatusCode,
13295		},
13296	}
13297	target := &ret
13298	if err := gensupport.DecodeResponse(target, res); err != nil {
13299		return nil, err
13300	}
13301	return ret, nil
13302	// {
13303	//   "description": "Returns a range of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and a range.",
13304	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}",
13305	//   "httpMethod": "GET",
13306	//   "id": "sheets.spreadsheets.values.get",
13307	//   "parameterOrder": [
13308	//     "spreadsheetId",
13309	//     "range"
13310	//   ],
13311	//   "parameters": {
13312	//     "dateTimeRenderOption": {
13313	//       "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].",
13314	//       "enum": [
13315	//         "SERIAL_NUMBER",
13316	//         "FORMATTED_STRING"
13317	//       ],
13318	//       "location": "query",
13319	//       "type": "string"
13320	//     },
13321	//     "majorDimension": {
13322	//       "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]]`.",
13323	//       "enum": [
13324	//         "DIMENSION_UNSPECIFIED",
13325	//         "ROWS",
13326	//         "COLUMNS"
13327	//       ],
13328	//       "location": "query",
13329	//       "type": "string"
13330	//     },
13331	//     "range": {
13332	//       "description": "The A1 notation of the values to retrieve.",
13333	//       "location": "path",
13334	//       "required": true,
13335	//       "type": "string"
13336	//     },
13337	//     "spreadsheetId": {
13338	//       "description": "The ID of the spreadsheet to retrieve data from.",
13339	//       "location": "path",
13340	//       "required": true,
13341	//       "type": "string"
13342	//     },
13343	//     "valueRenderOption": {
13344	//       "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
13345	//       "enum": [
13346	//         "FORMATTED_VALUE",
13347	//         "UNFORMATTED_VALUE",
13348	//         "FORMULA"
13349	//       ],
13350	//       "location": "query",
13351	//       "type": "string"
13352	//     }
13353	//   },
13354	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}",
13355	//   "response": {
13356	//     "$ref": "ValueRange"
13357	//   },
13358	//   "scopes": [
13359	//     "https://www.googleapis.com/auth/drive",
13360	//     "https://www.googleapis.com/auth/drive.file",
13361	//     "https://www.googleapis.com/auth/drive.readonly",
13362	//     "https://www.googleapis.com/auth/spreadsheets",
13363	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
13364	//   ]
13365	// }
13366
13367}
13368
13369// method id "sheets.spreadsheets.values.update":
13370
13371type SpreadsheetsValuesUpdateCall struct {
13372	s             *Service
13373	spreadsheetId string
13374	range_        string
13375	valuerange    *ValueRange
13376	urlParams_    gensupport.URLParams
13377	ctx_          context.Context
13378	header_       http.Header
13379}
13380
13381// Update: Sets values in a range of a spreadsheet.
13382// The caller must specify the spreadsheet ID, range, and
13383// a valueInputOption.
13384func (r *SpreadsheetsValuesService) Update(spreadsheetId string, range_ string, valuerange *ValueRange) *SpreadsheetsValuesUpdateCall {
13385	c := &SpreadsheetsValuesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13386	c.spreadsheetId = spreadsheetId
13387	c.range_ = range_
13388	c.valuerange = valuerange
13389	return c
13390}
13391
13392// IncludeValuesInResponse sets the optional parameter
13393// "includeValuesInResponse": Determines if the update response should
13394// include the values
13395// of the cells that were updated. By default, responses
13396// do not include the updated values.
13397// If the range to write was larger than the range actually written,
13398// the
13399// response includes all values in the requested range (excluding
13400// trailing
13401// empty rows and columns).
13402func (c *SpreadsheetsValuesUpdateCall) IncludeValuesInResponse(includeValuesInResponse bool) *SpreadsheetsValuesUpdateCall {
13403	c.urlParams_.Set("includeValuesInResponse", fmt.Sprint(includeValuesInResponse))
13404	return c
13405}
13406
13407// ResponseDateTimeRenderOption sets the optional parameter
13408// "responseDateTimeRenderOption": Determines how dates, times, and
13409// durations in the response should be
13410// rendered. This is ignored if response_value_render_option
13411// is
13412// FORMATTED_VALUE.
13413// The default dateTime render option
13414// is
13415// DateTimeRenderOption.SERIAL_NUMBER.
13416//
13417// Possible values:
13418//   "SERIAL_NUMBER"
13419//   "FORMATTED_STRING"
13420func (c *SpreadsheetsValuesUpdateCall) ResponseDateTimeRenderOption(responseDateTimeRenderOption string) *SpreadsheetsValuesUpdateCall {
13421	c.urlParams_.Set("responseDateTimeRenderOption", responseDateTimeRenderOption)
13422	return c
13423}
13424
13425// ResponseValueRenderOption sets the optional parameter
13426// "responseValueRenderOption": Determines how values in the response
13427// should be rendered.
13428// The default render option is ValueRenderOption.FORMATTED_VALUE.
13429//
13430// Possible values:
13431//   "FORMATTED_VALUE"
13432//   "UNFORMATTED_VALUE"
13433//   "FORMULA"
13434func (c *SpreadsheetsValuesUpdateCall) ResponseValueRenderOption(responseValueRenderOption string) *SpreadsheetsValuesUpdateCall {
13435	c.urlParams_.Set("responseValueRenderOption", responseValueRenderOption)
13436	return c
13437}
13438
13439// ValueInputOption sets the optional parameter "valueInputOption": How
13440// the input data should be interpreted.
13441//
13442// Possible values:
13443//   "INPUT_VALUE_OPTION_UNSPECIFIED"
13444//   "RAW"
13445//   "USER_ENTERED"
13446func (c *SpreadsheetsValuesUpdateCall) ValueInputOption(valueInputOption string) *SpreadsheetsValuesUpdateCall {
13447	c.urlParams_.Set("valueInputOption", valueInputOption)
13448	return c
13449}
13450
13451// Fields allows partial responses to be retrieved. See
13452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13453// for more information.
13454func (c *SpreadsheetsValuesUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesUpdateCall {
13455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13456	return c
13457}
13458
13459// Context sets the context to be used in this call's Do method. Any
13460// pending HTTP request will be aborted if the provided context is
13461// canceled.
13462func (c *SpreadsheetsValuesUpdateCall) Context(ctx context.Context) *SpreadsheetsValuesUpdateCall {
13463	c.ctx_ = ctx
13464	return c
13465}
13466
13467// Header returns an http.Header that can be modified by the caller to
13468// add HTTP headers to the request.
13469func (c *SpreadsheetsValuesUpdateCall) Header() http.Header {
13470	if c.header_ == nil {
13471		c.header_ = make(http.Header)
13472	}
13473	return c.header_
13474}
13475
13476func (c *SpreadsheetsValuesUpdateCall) doRequest(alt string) (*http.Response, error) {
13477	reqHeaders := make(http.Header)
13478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
13479	for k, v := range c.header_ {
13480		reqHeaders[k] = v
13481	}
13482	reqHeaders.Set("User-Agent", c.s.userAgent())
13483	var body io.Reader = nil
13484	body, err := googleapi.WithoutDataWrapper.JSONReader(c.valuerange)
13485	if err != nil {
13486		return nil, err
13487	}
13488	reqHeaders.Set("Content-Type", "application/json")
13489	c.urlParams_.Set("alt", alt)
13490	c.urlParams_.Set("prettyPrint", "false")
13491	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}")
13492	urls += "?" + c.urlParams_.Encode()
13493	req, err := http.NewRequest("PUT", urls, body)
13494	if err != nil {
13495		return nil, err
13496	}
13497	req.Header = reqHeaders
13498	googleapi.Expand(req.URL, map[string]string{
13499		"spreadsheetId": c.spreadsheetId,
13500		"range":         c.range_,
13501	})
13502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13503}
13504
13505// Do executes the "sheets.spreadsheets.values.update" call.
13506// Exactly one of *UpdateValuesResponse or error will be non-nil. Any
13507// non-2xx status code is an error. Response headers are in either
13508// *UpdateValuesResponse.ServerResponse.Header or (if a response was
13509// returned at all) in error.(*googleapi.Error).Header. Use
13510// googleapi.IsNotModified to check whether the returned error was
13511// because http.StatusNotModified was returned.
13512func (c *SpreadsheetsValuesUpdateCall) Do(opts ...googleapi.CallOption) (*UpdateValuesResponse, error) {
13513	gensupport.SetOptions(c.urlParams_, opts...)
13514	res, err := c.doRequest("json")
13515	if res != nil && res.StatusCode == http.StatusNotModified {
13516		if res.Body != nil {
13517			res.Body.Close()
13518		}
13519		return nil, &googleapi.Error{
13520			Code:   res.StatusCode,
13521			Header: res.Header,
13522		}
13523	}
13524	if err != nil {
13525		return nil, err
13526	}
13527	defer googleapi.CloseBody(res)
13528	if err := googleapi.CheckResponse(res); err != nil {
13529		return nil, err
13530	}
13531	ret := &UpdateValuesResponse{
13532		ServerResponse: googleapi.ServerResponse{
13533			Header:         res.Header,
13534			HTTPStatusCode: res.StatusCode,
13535		},
13536	}
13537	target := &ret
13538	if err := gensupport.DecodeResponse(target, res); err != nil {
13539		return nil, err
13540	}
13541	return ret, nil
13542	// {
13543	//   "description": "Sets values in a range of a spreadsheet.\nThe caller must specify the spreadsheet ID, range, and\na valueInputOption.",
13544	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}",
13545	//   "httpMethod": "PUT",
13546	//   "id": "sheets.spreadsheets.values.update",
13547	//   "parameterOrder": [
13548	//     "spreadsheetId",
13549	//     "range"
13550	//   ],
13551	//   "parameters": {
13552	//     "includeValuesInResponse": {
13553	//       "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).",
13554	//       "location": "query",
13555	//       "type": "boolean"
13556	//     },
13557	//     "range": {
13558	//       "description": "The A1 notation of the values to update.",
13559	//       "location": "path",
13560	//       "required": true,
13561	//       "type": "string"
13562	//     },
13563	//     "responseDateTimeRenderOption": {
13564	//       "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.",
13565	//       "enum": [
13566	//         "SERIAL_NUMBER",
13567	//         "FORMATTED_STRING"
13568	//       ],
13569	//       "location": "query",
13570	//       "type": "string"
13571	//     },
13572	//     "responseValueRenderOption": {
13573	//       "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
13574	//       "enum": [
13575	//         "FORMATTED_VALUE",
13576	//         "UNFORMATTED_VALUE",
13577	//         "FORMULA"
13578	//       ],
13579	//       "location": "query",
13580	//       "type": "string"
13581	//     },
13582	//     "spreadsheetId": {
13583	//       "description": "The ID of the spreadsheet to update.",
13584	//       "location": "path",
13585	//       "required": true,
13586	//       "type": "string"
13587	//     },
13588	//     "valueInputOption": {
13589	//       "description": "How the input data should be interpreted.",
13590	//       "enum": [
13591	//         "INPUT_VALUE_OPTION_UNSPECIFIED",
13592	//         "RAW",
13593	//         "USER_ENTERED"
13594	//       ],
13595	//       "location": "query",
13596	//       "type": "string"
13597	//     }
13598	//   },
13599	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}",
13600	//   "request": {
13601	//     "$ref": "ValueRange"
13602	//   },
13603	//   "response": {
13604	//     "$ref": "UpdateValuesResponse"
13605	//   },
13606	//   "scopes": [
13607	//     "https://www.googleapis.com/auth/drive",
13608	//     "https://www.googleapis.com/auth/drive.file",
13609	//     "https://www.googleapis.com/auth/spreadsheets"
13610	//   ]
13611	// }
13612
13613}
13614