1// Package sheets provides access to the Google Sheets API.
2//
3// See https://developers.google.com/sheets/
4//
5// Usage example:
6//
7//   import "google.golang.org/api/sheets/v4"
8//   ...
9//   sheetsService, err := sheets.New(oauthHttpClient)
10package sheets // import "google.golang.org/api/sheets/v4"
11
12import (
13	"bytes"
14	"encoding/json"
15	"errors"
16	"fmt"
17	context "golang.org/x/net/context"
18	ctxhttp "golang.org/x/net/context/ctxhttp"
19	gensupport "google.golang.org/api/gensupport"
20	googleapi "google.golang.org/api/googleapi"
21	"io"
22	"net/http"
23	"net/url"
24	"strconv"
25	"strings"
26)
27
28// Always reference these packages, just in case the auto-generated code
29// below doesn't.
30var _ = bytes.NewBuffer
31var _ = strconv.Itoa
32var _ = fmt.Sprintf
33var _ = json.NewDecoder
34var _ = io.Copy
35var _ = url.Parse
36var _ = gensupport.MarshalJSON
37var _ = googleapi.Version
38var _ = errors.New
39var _ = strings.Replace
40var _ = context.Canceled
41var _ = ctxhttp.Do
42
43const apiId = "sheets:v4"
44const apiName = "sheets"
45const apiVersion = "v4"
46const basePath = "https://sheets.googleapis.com/"
47
48// OAuth2 scopes used by this API.
49const (
50	// View and manage the files in your Google Drive
51	DriveScope = "https://www.googleapis.com/auth/drive"
52
53	// View and manage Google Drive files and folders that you have opened
54	// or created with this app
55	DriveFileScope = "https://www.googleapis.com/auth/drive.file"
56
57	// View the files in your Google Drive
58	DriveReadonlyScope = "https://www.googleapis.com/auth/drive.readonly"
59
60	// View and manage your spreadsheets in Google Drive
61	SpreadsheetsScope = "https://www.googleapis.com/auth/spreadsheets"
62
63	// View your Google Spreadsheets
64	SpreadsheetsReadonlyScope = "https://www.googleapis.com/auth/spreadsheets.readonly"
65)
66
67func New(client *http.Client) (*Service, error) {
68	if client == nil {
69		return nil, errors.New("client is nil")
70	}
71	s := &Service{client: client, BasePath: basePath}
72	s.Spreadsheets = NewSpreadsheetsService(s)
73	return s, nil
74}
75
76type Service struct {
77	client    *http.Client
78	BasePath  string // API endpoint base URL
79	UserAgent string // optional additional User-Agent fragment
80
81	Spreadsheets *SpreadsheetsService
82}
83
84func (s *Service) userAgent() string {
85	if s.UserAgent == "" {
86		return googleapi.UserAgent
87	}
88	return googleapi.UserAgent + " " + s.UserAgent
89}
90
91func NewSpreadsheetsService(s *Service) *SpreadsheetsService {
92	rs := &SpreadsheetsService{s: s}
93	rs.DeveloperMetadata = NewSpreadsheetsDeveloperMetadataService(s)
94	rs.Sheets = NewSpreadsheetsSheetsService(s)
95	rs.Values = NewSpreadsheetsValuesService(s)
96	return rs
97}
98
99type SpreadsheetsService struct {
100	s *Service
101
102	DeveloperMetadata *SpreadsheetsDeveloperMetadataService
103
104	Sheets *SpreadsheetsSheetsService
105
106	Values *SpreadsheetsValuesService
107}
108
109func NewSpreadsheetsDeveloperMetadataService(s *Service) *SpreadsheetsDeveloperMetadataService {
110	rs := &SpreadsheetsDeveloperMetadataService{s: s}
111	return rs
112}
113
114type SpreadsheetsDeveloperMetadataService struct {
115	s *Service
116}
117
118func NewSpreadsheetsSheetsService(s *Service) *SpreadsheetsSheetsService {
119	rs := &SpreadsheetsSheetsService{s: s}
120	return rs
121}
122
123type SpreadsheetsSheetsService struct {
124	s *Service
125}
126
127func NewSpreadsheetsValuesService(s *Service) *SpreadsheetsValuesService {
128	rs := &SpreadsheetsValuesService{s: s}
129	return rs
130}
131
132type SpreadsheetsValuesService struct {
133	s *Service
134}
135
136// AddBandingRequest: Adds a new banded range to the spreadsheet.
137type AddBandingRequest struct {
138	// BandedRange: The banded range to add. The bandedRangeId
139	// field is optional; if one is not set, an id will be randomly
140	// generated. (It
141	// is an error to specify the ID of a range that already exists.)
142	BandedRange *BandedRange `json:"bandedRange,omitempty"`
143
144	// ForceSendFields is a list of field names (e.g. "BandedRange") to
145	// unconditionally include in API requests. By default, fields with
146	// empty values are omitted from API requests. However, any non-pointer,
147	// non-interface field appearing in ForceSendFields will be sent to the
148	// server regardless of whether the field is empty or not. This may be
149	// used to include empty fields in Patch requests.
150	ForceSendFields []string `json:"-"`
151
152	// NullFields is a list of field names (e.g. "BandedRange") to include
153	// in API requests with the JSON null value. By default, fields with
154	// empty values are omitted from API requests. However, any field with
155	// an empty value appearing in NullFields will be sent to the server as
156	// null. It is an error if a field in this list has a non-empty value.
157	// This may be used to include null fields in Patch requests.
158	NullFields []string `json:"-"`
159}
160
161func (s *AddBandingRequest) MarshalJSON() ([]byte, error) {
162	type NoMethod AddBandingRequest
163	raw := NoMethod(*s)
164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
165}
166
167// AddBandingResponse: The result of adding a banded range.
168type AddBandingResponse struct {
169	// BandedRange: The banded range that was added.
170	BandedRange *BandedRange `json:"bandedRange,omitempty"`
171
172	// ForceSendFields is a list of field names (e.g. "BandedRange") to
173	// unconditionally include in API requests. By default, fields with
174	// empty values are omitted from API requests. However, any non-pointer,
175	// non-interface field appearing in ForceSendFields will be sent to the
176	// server regardless of whether the field is empty or not. This may be
177	// used to include empty fields in Patch requests.
178	ForceSendFields []string `json:"-"`
179
180	// NullFields is a list of field names (e.g. "BandedRange") to include
181	// in API requests with the JSON null value. By default, fields with
182	// empty values are omitted from API requests. However, any field with
183	// an empty value appearing in NullFields will be sent to the server as
184	// null. It is an error if a field in this list has a non-empty value.
185	// This may be used to include null fields in Patch requests.
186	NullFields []string `json:"-"`
187}
188
189func (s *AddBandingResponse) MarshalJSON() ([]byte, error) {
190	type NoMethod AddBandingResponse
191	raw := NoMethod(*s)
192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
193}
194
195// AddChartRequest: Adds a chart to a sheet in the spreadsheet.
196type AddChartRequest struct {
197	// Chart: The chart that should be added to the spreadsheet, including
198	// the position
199	// where it should be placed. The chartId
200	// field is optional; if one is not set, an id will be randomly
201	// generated. (It
202	// is an error to specify the ID of a chart that already exists.)
203	Chart *EmbeddedChart `json:"chart,omitempty"`
204
205	// ForceSendFields is a list of field names (e.g. "Chart") to
206	// unconditionally include in API requests. By default, fields with
207	// empty values are omitted from API requests. However, any non-pointer,
208	// non-interface field appearing in ForceSendFields will be sent to the
209	// server regardless of whether the field is empty or not. This may be
210	// used to include empty fields in Patch requests.
211	ForceSendFields []string `json:"-"`
212
213	// NullFields is a list of field names (e.g. "Chart") to include in API
214	// requests with the JSON null value. By default, fields with empty
215	// values are omitted from API requests. However, any field with an
216	// empty value appearing in NullFields will be sent to the server as
217	// null. It is an error if a field in this list has a non-empty value.
218	// This may be used to include null fields in Patch requests.
219	NullFields []string `json:"-"`
220}
221
222func (s *AddChartRequest) MarshalJSON() ([]byte, error) {
223	type NoMethod AddChartRequest
224	raw := NoMethod(*s)
225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
226}
227
228// AddChartResponse: The result of adding a chart to a spreadsheet.
229type AddChartResponse struct {
230	// Chart: The newly added chart.
231	Chart *EmbeddedChart `json:"chart,omitempty"`
232
233	// ForceSendFields is a list of field names (e.g. "Chart") to
234	// unconditionally include in API requests. By default, fields with
235	// empty values are omitted from API requests. However, any non-pointer,
236	// non-interface field appearing in ForceSendFields will be sent to the
237	// server regardless of whether the field is empty or not. This may be
238	// used to include empty fields in Patch requests.
239	ForceSendFields []string `json:"-"`
240
241	// NullFields is a list of field names (e.g. "Chart") to include in API
242	// requests with the JSON null value. By default, fields with empty
243	// values are omitted from API requests. However, any field with an
244	// empty value appearing in NullFields will be sent to the server as
245	// null. It is an error if a field in this list has a non-empty value.
246	// This may be used to include null fields in Patch requests.
247	NullFields []string `json:"-"`
248}
249
250func (s *AddChartResponse) MarshalJSON() ([]byte, error) {
251	type NoMethod AddChartResponse
252	raw := NoMethod(*s)
253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
254}
255
256// AddConditionalFormatRuleRequest: Adds a new conditional format rule
257// at the given index.
258// All subsequent rules' indexes are incremented.
259type AddConditionalFormatRuleRequest struct {
260	// Index: The zero-based index where the rule should be inserted.
261	Index int64 `json:"index,omitempty"`
262
263	// Rule: The rule to add.
264	Rule *ConditionalFormatRule `json:"rule,omitempty"`
265
266	// ForceSendFields is a list of field names (e.g. "Index") to
267	// unconditionally include in API requests. By default, fields with
268	// empty values are omitted from API requests. However, any non-pointer,
269	// non-interface field appearing in ForceSendFields will be sent to the
270	// server regardless of whether the field is empty or not. This may be
271	// used to include empty fields in Patch requests.
272	ForceSendFields []string `json:"-"`
273
274	// NullFields is a list of field names (e.g. "Index") to include in API
275	// requests with the JSON null value. By default, fields with empty
276	// values are omitted from API requests. However, any field with an
277	// empty value appearing in NullFields will be sent to the server as
278	// null. It is an error if a field in this list has a non-empty value.
279	// This may be used to include null fields in Patch requests.
280	NullFields []string `json:"-"`
281}
282
283func (s *AddConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
284	type NoMethod AddConditionalFormatRuleRequest
285	raw := NoMethod(*s)
286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
287}
288
289// AddFilterViewRequest: Adds a filter view.
290type AddFilterViewRequest struct {
291	// Filter: The filter to add. The filterViewId
292	// field is optional; if one is not set, an id will be randomly
293	// generated. (It
294	// is an error to specify the ID of a filter that already exists.)
295	Filter *FilterView `json:"filter,omitempty"`
296
297	// ForceSendFields is a list of field names (e.g. "Filter") to
298	// unconditionally include in API requests. By default, fields with
299	// empty values are omitted from API requests. However, any non-pointer,
300	// non-interface field appearing in ForceSendFields will be sent to the
301	// server regardless of whether the field is empty or not. This may be
302	// used to include empty fields in Patch requests.
303	ForceSendFields []string `json:"-"`
304
305	// NullFields is a list of field names (e.g. "Filter") to include in API
306	// requests with the JSON null value. By default, fields with empty
307	// values are omitted from API requests. However, any field with an
308	// empty value appearing in NullFields will be sent to the server as
309	// null. It is an error if a field in this list has a non-empty value.
310	// This may be used to include null fields in Patch requests.
311	NullFields []string `json:"-"`
312}
313
314func (s *AddFilterViewRequest) MarshalJSON() ([]byte, error) {
315	type NoMethod AddFilterViewRequest
316	raw := NoMethod(*s)
317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
318}
319
320// AddFilterViewResponse: The result of adding a filter view.
321type AddFilterViewResponse struct {
322	// Filter: The newly added filter view.
323	Filter *FilterView `json:"filter,omitempty"`
324
325	// ForceSendFields is a list of field names (e.g. "Filter") to
326	// unconditionally include in API requests. By default, fields with
327	// empty values are omitted from API requests. However, any non-pointer,
328	// non-interface field appearing in ForceSendFields will be sent to the
329	// server regardless of whether the field is empty or not. This may be
330	// used to include empty fields in Patch requests.
331	ForceSendFields []string `json:"-"`
332
333	// NullFields is a list of field names (e.g. "Filter") to include in API
334	// requests with the JSON null value. By default, fields with empty
335	// values are omitted from API requests. However, any field with an
336	// empty value appearing in NullFields will be sent to the server as
337	// null. It is an error if a field in this list has a non-empty value.
338	// This may be used to include null fields in Patch requests.
339	NullFields []string `json:"-"`
340}
341
342func (s *AddFilterViewResponse) MarshalJSON() ([]byte, error) {
343	type NoMethod AddFilterViewResponse
344	raw := NoMethod(*s)
345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
346}
347
348// AddNamedRangeRequest: Adds a named range to the spreadsheet.
349type AddNamedRangeRequest struct {
350	// NamedRange: The named range to add. The namedRangeId
351	// field is optional; if one is not set, an id will be randomly
352	// generated. (It
353	// is an error to specify the ID of a range that already exists.)
354	NamedRange *NamedRange `json:"namedRange,omitempty"`
355
356	// ForceSendFields is a list of field names (e.g. "NamedRange") to
357	// unconditionally include in API requests. By default, fields with
358	// empty values are omitted from API requests. However, any non-pointer,
359	// non-interface field appearing in ForceSendFields will be sent to the
360	// server regardless of whether the field is empty or not. This may be
361	// used to include empty fields in Patch requests.
362	ForceSendFields []string `json:"-"`
363
364	// NullFields is a list of field names (e.g. "NamedRange") to include in
365	// API requests with the JSON null value. By default, fields with empty
366	// values are omitted from API requests. However, any field with an
367	// empty value appearing in NullFields will be sent to the server as
368	// null. It is an error if a field in this list has a non-empty value.
369	// This may be used to include null fields in Patch requests.
370	NullFields []string `json:"-"`
371}
372
373func (s *AddNamedRangeRequest) MarshalJSON() ([]byte, error) {
374	type NoMethod AddNamedRangeRequest
375	raw := NoMethod(*s)
376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
377}
378
379// AddNamedRangeResponse: The result of adding a named range.
380type AddNamedRangeResponse struct {
381	// NamedRange: The named range to add.
382	NamedRange *NamedRange `json:"namedRange,omitempty"`
383
384	// ForceSendFields is a list of field names (e.g. "NamedRange") to
385	// unconditionally include in API requests. By default, fields with
386	// empty values are omitted from API requests. However, any non-pointer,
387	// non-interface field appearing in ForceSendFields will be sent to the
388	// server regardless of whether the field is empty or not. This may be
389	// used to include empty fields in Patch requests.
390	ForceSendFields []string `json:"-"`
391
392	// NullFields is a list of field names (e.g. "NamedRange") to include in
393	// API requests with the JSON null value. By default, fields with empty
394	// values are omitted from API requests. However, any field with an
395	// empty value appearing in NullFields will be sent to the server as
396	// null. It is an error if a field in this list has a non-empty value.
397	// This may be used to include null fields in Patch requests.
398	NullFields []string `json:"-"`
399}
400
401func (s *AddNamedRangeResponse) MarshalJSON() ([]byte, error) {
402	type NoMethod AddNamedRangeResponse
403	raw := NoMethod(*s)
404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
405}
406
407// AddProtectedRangeRequest: Adds a new protected range.
408type AddProtectedRangeRequest struct {
409	// ProtectedRange: The protected range to be added. The
410	// protectedRangeId field is optional; if
411	// one is not set, an id will be randomly generated. (It is an error
412	// to
413	// specify the ID of a range that already exists.)
414	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
415
416	// ForceSendFields is a list of field names (e.g. "ProtectedRange") to
417	// unconditionally include in API requests. By default, fields with
418	// empty values are omitted from API requests. However, any non-pointer,
419	// non-interface field appearing in ForceSendFields will be sent to the
420	// server regardless of whether the field is empty or not. This may be
421	// used to include empty fields in Patch requests.
422	ForceSendFields []string `json:"-"`
423
424	// NullFields is a list of field names (e.g. "ProtectedRange") to
425	// include in API requests with the JSON null value. By default, fields
426	// with empty values are omitted from API requests. However, any field
427	// with an empty value appearing in NullFields will be sent to the
428	// server as null. It is an error if a field in this list has a
429	// non-empty value. This may be used to include null fields in Patch
430	// requests.
431	NullFields []string `json:"-"`
432}
433
434func (s *AddProtectedRangeRequest) MarshalJSON() ([]byte, error) {
435	type NoMethod AddProtectedRangeRequest
436	raw := NoMethod(*s)
437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
438}
439
440// AddProtectedRangeResponse: The result of adding a new protected
441// range.
442type AddProtectedRangeResponse struct {
443	// ProtectedRange: The newly added protected range.
444	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
445
446	// ForceSendFields is a list of field names (e.g. "ProtectedRange") to
447	// unconditionally include in API requests. By default, fields with
448	// empty values are omitted from API requests. However, any non-pointer,
449	// non-interface field appearing in ForceSendFields will be sent to the
450	// server regardless of whether the field is empty or not. This may be
451	// used to include empty fields in Patch requests.
452	ForceSendFields []string `json:"-"`
453
454	// NullFields is a list of field names (e.g. "ProtectedRange") to
455	// include in API requests with the JSON null value. By default, fields
456	// with empty values are omitted from API requests. However, any field
457	// with an empty value appearing in NullFields will be sent to the
458	// server as null. It is an error if a field in this list has a
459	// non-empty value. This may be used to include null fields in Patch
460	// requests.
461	NullFields []string `json:"-"`
462}
463
464func (s *AddProtectedRangeResponse) MarshalJSON() ([]byte, error) {
465	type NoMethod AddProtectedRangeResponse
466	raw := NoMethod(*s)
467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
468}
469
470// AddSheetRequest: Adds a new sheet.
471// When a sheet is added at a given index,
472// all subsequent sheets' indexes are incremented.
473// To add an object sheet, use AddChartRequest instead and
474// specify
475// EmbeddedObjectPosition.sheetId or
476// EmbeddedObjectPosition.newSheet.
477type AddSheetRequest struct {
478	// Properties: The properties the new sheet should have.
479	// All properties are optional.
480	// The sheetId field is optional; if one is not
481	// set, an id will be randomly generated. (It is an error to specify the
482	// ID
483	// of a sheet that already exists.)
484	Properties *SheetProperties `json:"properties,omitempty"`
485
486	// ForceSendFields is a list of field names (e.g. "Properties") to
487	// unconditionally include in API requests. By default, fields with
488	// empty values are omitted from API requests. However, any non-pointer,
489	// non-interface field appearing in ForceSendFields will be sent to the
490	// server regardless of whether the field is empty or not. This may be
491	// used to include empty fields in Patch requests.
492	ForceSendFields []string `json:"-"`
493
494	// NullFields is a list of field names (e.g. "Properties") to include in
495	// API requests with the JSON null value. By default, fields with empty
496	// values are omitted from API requests. However, any field with an
497	// empty value appearing in NullFields will be sent to the server as
498	// null. It is an error if a field in this list has a non-empty value.
499	// This may be used to include null fields in Patch requests.
500	NullFields []string `json:"-"`
501}
502
503func (s *AddSheetRequest) MarshalJSON() ([]byte, error) {
504	type NoMethod AddSheetRequest
505	raw := NoMethod(*s)
506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
507}
508
509// AddSheetResponse: The result of adding a sheet.
510type AddSheetResponse struct {
511	// Properties: The properties of the newly added sheet.
512	Properties *SheetProperties `json:"properties,omitempty"`
513
514	// ForceSendFields is a list of field names (e.g. "Properties") to
515	// unconditionally include in API requests. By default, fields with
516	// empty values are omitted from API requests. However, any non-pointer,
517	// non-interface field appearing in ForceSendFields will be sent to the
518	// server regardless of whether the field is empty or not. This may be
519	// used to include empty fields in Patch requests.
520	ForceSendFields []string `json:"-"`
521
522	// NullFields is a list of field names (e.g. "Properties") to include in
523	// API requests with the JSON null value. By default, fields with empty
524	// values are omitted from API requests. However, any field with an
525	// empty value appearing in NullFields will be sent to the server as
526	// null. It is an error if a field in this list has a non-empty value.
527	// This may be used to include null fields in Patch requests.
528	NullFields []string `json:"-"`
529}
530
531func (s *AddSheetResponse) MarshalJSON() ([]byte, error) {
532	type NoMethod AddSheetResponse
533	raw := NoMethod(*s)
534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
535}
536
537// AppendCellsRequest: Adds new cells after the last row with data in a
538// sheet,
539// inserting new rows into the sheet if necessary.
540type AppendCellsRequest struct {
541	// Fields: The fields of CellData that should be updated.
542	// At least one field must be specified.
543	// The root is the CellData; 'row.values.' should not be specified.
544	// A single "*" can be used as short-hand for listing every field.
545	Fields string `json:"fields,omitempty"`
546
547	// Rows: The data to append.
548	Rows []*RowData `json:"rows,omitempty"`
549
550	// SheetId: The sheet ID to append the data to.
551	SheetId int64 `json:"sheetId,omitempty"`
552
553	// ForceSendFields is a list of field names (e.g. "Fields") to
554	// unconditionally include in API requests. By default, fields with
555	// empty values are omitted from API requests. However, any non-pointer,
556	// non-interface field appearing in ForceSendFields will be sent to the
557	// server regardless of whether the field is empty or not. This may be
558	// used to include empty fields in Patch requests.
559	ForceSendFields []string `json:"-"`
560
561	// NullFields is a list of field names (e.g. "Fields") to include in API
562	// requests with the JSON null value. By default, fields with empty
563	// values are omitted from API requests. However, any field with an
564	// empty value appearing in NullFields will be sent to the server as
565	// null. It is an error if a field in this list has a non-empty value.
566	// This may be used to include null fields in Patch requests.
567	NullFields []string `json:"-"`
568}
569
570func (s *AppendCellsRequest) MarshalJSON() ([]byte, error) {
571	type NoMethod AppendCellsRequest
572	raw := NoMethod(*s)
573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
574}
575
576// AppendDimensionRequest: Appends rows or columns to the end of a
577// sheet.
578type AppendDimensionRequest struct {
579	// Dimension: Whether rows or columns should be appended.
580	//
581	// Possible values:
582	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
583	//   "ROWS" - Operates on the rows of a sheet.
584	//   "COLUMNS" - Operates on the columns of a sheet.
585	Dimension string `json:"dimension,omitempty"`
586
587	// Length: The number of rows or columns to append.
588	Length int64 `json:"length,omitempty"`
589
590	// SheetId: The sheet to append rows or columns to.
591	SheetId int64 `json:"sheetId,omitempty"`
592
593	// ForceSendFields is a list of field names (e.g. "Dimension") to
594	// unconditionally include in API requests. By default, fields with
595	// empty values are omitted from API requests. However, any non-pointer,
596	// non-interface field appearing in ForceSendFields will be sent to the
597	// server regardless of whether the field is empty or not. This may be
598	// used to include empty fields in Patch requests.
599	ForceSendFields []string `json:"-"`
600
601	// NullFields is a list of field names (e.g. "Dimension") to include in
602	// API requests with the JSON null value. By default, fields with empty
603	// values are omitted from API requests. However, any field with an
604	// empty value appearing in NullFields will be sent to the server as
605	// null. It is an error if a field in this list has a non-empty value.
606	// This may be used to include null fields in Patch requests.
607	NullFields []string `json:"-"`
608}
609
610func (s *AppendDimensionRequest) MarshalJSON() ([]byte, error) {
611	type NoMethod AppendDimensionRequest
612	raw := NoMethod(*s)
613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
614}
615
616// AppendValuesResponse: The response when updating a range of values in
617// a spreadsheet.
618type AppendValuesResponse struct {
619	// SpreadsheetId: The spreadsheet the updates were applied to.
620	SpreadsheetId string `json:"spreadsheetId,omitempty"`
621
622	// TableRange: The range (in A1 notation) of the table that values are
623	// being appended to
624	// (before the values were appended).
625	// Empty if no table was found.
626	TableRange string `json:"tableRange,omitempty"`
627
628	// Updates: Information about the updates that were applied.
629	Updates *UpdateValuesResponse `json:"updates,omitempty"`
630
631	// ServerResponse contains the HTTP response code and headers from the
632	// server.
633	googleapi.ServerResponse `json:"-"`
634
635	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
636	// unconditionally include in API requests. By default, fields with
637	// empty values are omitted from API requests. However, any non-pointer,
638	// non-interface field appearing in ForceSendFields will be sent to the
639	// server regardless of whether the field is empty or not. This may be
640	// used to include empty fields in Patch requests.
641	ForceSendFields []string `json:"-"`
642
643	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
644	// in API requests with the JSON null value. By default, fields with
645	// empty values are omitted from API requests. However, any field with
646	// an empty value appearing in NullFields will be sent to the server as
647	// null. It is an error if a field in this list has a non-empty value.
648	// This may be used to include null fields in Patch requests.
649	NullFields []string `json:"-"`
650}
651
652func (s *AppendValuesResponse) MarshalJSON() ([]byte, error) {
653	type NoMethod AppendValuesResponse
654	raw := NoMethod(*s)
655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
656}
657
658// AutoFillRequest: Fills in more data based on existing data.
659type AutoFillRequest struct {
660	// Range: The range to autofill. This will examine the range and
661	// detect
662	// the location that has data and automatically fill that data
663	// in to the rest of the range.
664	Range *GridRange `json:"range,omitempty"`
665
666	// SourceAndDestination: The source and destination areas to
667	// autofill.
668	// This explicitly lists the source of the autofill and where to
669	// extend that data.
670	SourceAndDestination *SourceAndDestination `json:"sourceAndDestination,omitempty"`
671
672	// UseAlternateSeries: True if we should generate data with the
673	// "alternate" series.
674	// This differs based on the type and amount of source data.
675	UseAlternateSeries bool `json:"useAlternateSeries,omitempty"`
676
677	// ForceSendFields is a list of field names (e.g. "Range") to
678	// unconditionally include in API requests. By default, fields with
679	// empty values are omitted from API requests. However, any non-pointer,
680	// non-interface field appearing in ForceSendFields will be sent to the
681	// server regardless of whether the field is empty or not. This may be
682	// used to include empty fields in Patch requests.
683	ForceSendFields []string `json:"-"`
684
685	// NullFields is a list of field names (e.g. "Range") to include in API
686	// requests with the JSON null value. By default, fields with empty
687	// values are omitted from API requests. However, any field with an
688	// empty value appearing in NullFields will be sent to the server as
689	// null. It is an error if a field in this list has a non-empty value.
690	// This may be used to include null fields in Patch requests.
691	NullFields []string `json:"-"`
692}
693
694func (s *AutoFillRequest) MarshalJSON() ([]byte, error) {
695	type NoMethod AutoFillRequest
696	raw := NoMethod(*s)
697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
698}
699
700// AutoResizeDimensionsRequest: Automatically resizes one or more
701// dimensions based on the contents
702// of the cells in that dimension.
703type AutoResizeDimensionsRequest struct {
704	// Dimensions: The dimensions to automatically resize.
705	Dimensions *DimensionRange `json:"dimensions,omitempty"`
706
707	// ForceSendFields is a list of field names (e.g. "Dimensions") to
708	// unconditionally include in API requests. By default, fields with
709	// empty values are omitted from API requests. However, any non-pointer,
710	// non-interface field appearing in ForceSendFields will be sent to the
711	// server regardless of whether the field is empty or not. This may be
712	// used to include empty fields in Patch requests.
713	ForceSendFields []string `json:"-"`
714
715	// NullFields is a list of field names (e.g. "Dimensions") to include in
716	// API requests with the JSON null value. By default, fields with empty
717	// values are omitted from API requests. However, any field with an
718	// empty value appearing in NullFields will be sent to the server as
719	// null. It is an error if a field in this list has a non-empty value.
720	// This may be used to include null fields in Patch requests.
721	NullFields []string `json:"-"`
722}
723
724func (s *AutoResizeDimensionsRequest) MarshalJSON() ([]byte, error) {
725	type NoMethod AutoResizeDimensionsRequest
726	raw := NoMethod(*s)
727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
728}
729
730// BandedRange: A banded (alternating colors) range in a sheet.
731type BandedRange struct {
732	// BandedRangeId: The id of the banded range.
733	BandedRangeId int64 `json:"bandedRangeId,omitempty"`
734
735	// ColumnProperties: Properties for column bands. These properties will
736	// be applied on a column-
737	// by-column basis throughout all the columns in the range. At least one
738	// of
739	// row_properties or column_properties must be specified.
740	ColumnProperties *BandingProperties `json:"columnProperties,omitempty"`
741
742	// Range: The range over which these properties are applied.
743	Range *GridRange `json:"range,omitempty"`
744
745	// RowProperties: Properties for row bands. These properties will be
746	// applied on a row-by-row
747	// basis throughout all the rows in the range. At least one
748	// of
749	// row_properties or column_properties must be specified.
750	RowProperties *BandingProperties `json:"rowProperties,omitempty"`
751
752	// ForceSendFields is a list of field names (e.g. "BandedRangeId") to
753	// unconditionally include in API requests. By default, fields with
754	// empty values are omitted from API requests. However, any non-pointer,
755	// non-interface field appearing in ForceSendFields will be sent to the
756	// server regardless of whether the field is empty or not. This may be
757	// used to include empty fields in Patch requests.
758	ForceSendFields []string `json:"-"`
759
760	// NullFields is a list of field names (e.g. "BandedRangeId") to include
761	// in API requests with the JSON null value. By default, fields with
762	// empty values are omitted from API requests. However, any field with
763	// an empty value appearing in NullFields will be sent to the server as
764	// null. It is an error if a field in this list has a non-empty value.
765	// This may be used to include null fields in Patch requests.
766	NullFields []string `json:"-"`
767}
768
769func (s *BandedRange) MarshalJSON() ([]byte, error) {
770	type NoMethod BandedRange
771	raw := NoMethod(*s)
772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
773}
774
775// BandingProperties: Properties referring a single dimension (either
776// row or column). If both
777// BandedRange.row_properties and BandedRange.column_properties are
778// set, the fill colors are applied to cells according to the following
779// rules:
780//
781// * header_color and footer_color take priority over band colors.
782// * first_band_color takes priority over second_band_color.
783// * row_properties takes priority over column_properties.
784//
785// For example, the first row color takes priority over the first
786// column
787// color, but the first column color takes priority over the second row
788// color.
789// Similarly, the row header takes priority over the column header in
790// the
791// top left cell, but the column header takes priority over the first
792// row
793// color if the row header is not set.
794type BandingProperties struct {
795	// FirstBandColor: The first color that is alternating. (Required)
796	FirstBandColor *Color `json:"firstBandColor,omitempty"`
797
798	// FooterColor: The color of the last row or column. If this field is
799	// not set, the last
800	// row or column will be filled with either first_band_color
801	// or
802	// second_band_color, depending on the color of the previous row
803	// or
804	// column.
805	FooterColor *Color `json:"footerColor,omitempty"`
806
807	// HeaderColor: The color of the first row or column. If this field is
808	// set, the first
809	// row or column will be filled with this color and the colors
810	// will
811	// alternate between first_band_color and second_band_color
812	// starting
813	// from the second row or column. Otherwise, the first row or column
814	// will be
815	// filled with first_band_color and the colors will proceed to
816	// alternate
817	// as they normally would.
818	HeaderColor *Color `json:"headerColor,omitempty"`
819
820	// SecondBandColor: The second color that is alternating. (Required)
821	SecondBandColor *Color `json:"secondBandColor,omitempty"`
822
823	// ForceSendFields is a list of field names (e.g. "FirstBandColor") to
824	// unconditionally include in API requests. By default, fields with
825	// empty values are omitted from API requests. However, any non-pointer,
826	// non-interface field appearing in ForceSendFields will be sent to the
827	// server regardless of whether the field is empty or not. This may be
828	// used to include empty fields in Patch requests.
829	ForceSendFields []string `json:"-"`
830
831	// NullFields is a list of field names (e.g. "FirstBandColor") to
832	// include in API requests with the JSON null value. By default, fields
833	// with empty values are omitted from API requests. However, any field
834	// with an empty value appearing in NullFields will be sent to the
835	// server as null. It is an error if a field in this list has a
836	// non-empty value. This may be used to include null fields in Patch
837	// requests.
838	NullFields []string `json:"-"`
839}
840
841func (s *BandingProperties) MarshalJSON() ([]byte, error) {
842	type NoMethod BandingProperties
843	raw := NoMethod(*s)
844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
845}
846
847// BasicChartAxis: An axis of the chart.
848// A chart may not have more than one axis per
849// axis position.
850type BasicChartAxis struct {
851	// Format: The format of the title.
852	// Only valid if the axis is not associated with the domain.
853	Format *TextFormat `json:"format,omitempty"`
854
855	// Position: The position of this axis.
856	//
857	// Possible values:
858	//   "BASIC_CHART_AXIS_POSITION_UNSPECIFIED" - Default value, do not
859	// use.
860	//   "BOTTOM_AXIS" - The axis rendered at the bottom of a chart.
861	// For most charts, this is the standard major axis.
862	// For bar charts, this is a minor axis.
863	//   "LEFT_AXIS" - The axis rendered at the left of a chart.
864	// For most charts, this is a minor axis.
865	// For bar charts, this is the standard major axis.
866	//   "RIGHT_AXIS" - The axis rendered at the right of a chart.
867	// For most charts, this is a minor axis.
868	// For bar charts, this is an unusual major axis.
869	Position string `json:"position,omitempty"`
870
871	// Title: The title of this axis. If set, this overrides any title
872	// inferred
873	// from headers of the data.
874	Title string `json:"title,omitempty"`
875
876	// TitleTextPosition: The axis title text position.
877	TitleTextPosition *TextPosition `json:"titleTextPosition,omitempty"`
878
879	// ForceSendFields is a list of field names (e.g. "Format") to
880	// unconditionally include in API requests. By default, fields with
881	// empty values are omitted from API requests. However, any non-pointer,
882	// non-interface field appearing in ForceSendFields will be sent to the
883	// server regardless of whether the field is empty or not. This may be
884	// used to include empty fields in Patch requests.
885	ForceSendFields []string `json:"-"`
886
887	// NullFields is a list of field names (e.g. "Format") to include in API
888	// requests with the JSON null value. By default, fields with empty
889	// values are omitted from API requests. However, any field with an
890	// empty value appearing in NullFields will be sent to the server as
891	// null. It is an error if a field in this list has a non-empty value.
892	// This may be used to include null fields in Patch requests.
893	NullFields []string `json:"-"`
894}
895
896func (s *BasicChartAxis) MarshalJSON() ([]byte, error) {
897	type NoMethod BasicChartAxis
898	raw := NoMethod(*s)
899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
900}
901
902// BasicChartDomain: The domain of a chart.
903// For example, if charting stock prices over time, this would be the
904// date.
905type BasicChartDomain struct {
906	// Domain: The data of the domain. For example, if charting stock prices
907	// over time,
908	// this is the data representing the dates.
909	Domain *ChartData `json:"domain,omitempty"`
910
911	// Reversed: True to reverse the order of the domain values (horizontal
912	// axis).
913	Reversed bool `json:"reversed,omitempty"`
914
915	// ForceSendFields is a list of field names (e.g. "Domain") to
916	// unconditionally include in API requests. By default, fields with
917	// empty values are omitted from API requests. However, any non-pointer,
918	// non-interface field appearing in ForceSendFields will be sent to the
919	// server regardless of whether the field is empty or not. This may be
920	// used to include empty fields in Patch requests.
921	ForceSendFields []string `json:"-"`
922
923	// NullFields is a list of field names (e.g. "Domain") to include in API
924	// requests with the JSON null value. By default, fields with empty
925	// values are omitted from API requests. However, any field with an
926	// empty value appearing in NullFields will be sent to the server as
927	// null. It is an error if a field in this list has a non-empty value.
928	// This may be used to include null fields in Patch requests.
929	NullFields []string `json:"-"`
930}
931
932func (s *BasicChartDomain) MarshalJSON() ([]byte, error) {
933	type NoMethod BasicChartDomain
934	raw := NoMethod(*s)
935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
936}
937
938// BasicChartSeries: A single series of data in a chart.
939// For example, if charting stock prices over time, multiple series may
940// exist,
941// one for the "Open Price", "High Price", "Low Price" and "Close
942// Price".
943type BasicChartSeries struct {
944	// Color: The color for elements (i.e. bars, lines, points) associated
945	// with this
946	// series.  If empty, a default color will be used.
947	Color *Color `json:"color,omitempty"`
948
949	// LineStyle: The line style of this series. Valid only if the
950	// chartType is AREA,
951	// LINE, or SCATTER.
952	// COMBO charts are also supported if the
953	// series chart type is
954	// AREA or LINE.
955	LineStyle *LineStyle `json:"lineStyle,omitempty"`
956
957	// Series: The data being visualized in this chart series.
958	Series *ChartData `json:"series,omitempty"`
959
960	// TargetAxis: The minor axis that will specify the range of values for
961	// this series.
962	// For example, if charting stocks over time, the "Volume" series
963	// may want to be pinned to the right with the prices pinned to the
964	// left,
965	// because the scale of trading volume is different than the scale
966	// of
967	// prices.
968	// It is an error to specify an axis that isn't a valid minor axis
969	// for the chart's type.
970	//
971	// Possible values:
972	//   "BASIC_CHART_AXIS_POSITION_UNSPECIFIED" - Default value, do not
973	// use.
974	//   "BOTTOM_AXIS" - The axis rendered at the bottom of a chart.
975	// For most charts, this is the standard major axis.
976	// For bar charts, this is a minor axis.
977	//   "LEFT_AXIS" - The axis rendered at the left of a chart.
978	// For most charts, this is a minor axis.
979	// For bar charts, this is the standard major axis.
980	//   "RIGHT_AXIS" - The axis rendered at the right of a chart.
981	// For most charts, this is a minor axis.
982	// For bar charts, this is an unusual major axis.
983	TargetAxis string `json:"targetAxis,omitempty"`
984
985	// Type: The type of this series. Valid only if the
986	// chartType is
987	// COMBO.
988	// Different types will change the way the series is visualized.
989	// Only LINE, AREA,
990	// and COLUMN are supported.
991	//
992	// Possible values:
993	//   "BASIC_CHART_TYPE_UNSPECIFIED" - Default value, do not use.
994	//   "BAR" - A <a href="/chart/interactive/docs/gallery/barchart">bar
995	// chart</a>.
996	//   "LINE" - A <a href="/chart/interactive/docs/gallery/linechart">line
997	// chart</a>.
998	//   "AREA" - An <a
999	// href="/chart/interactive/docs/gallery/areachart">area chart</a>.
1000	//   "COLUMN" - A <a
1001	// href="/chart/interactive/docs/gallery/columnchart">column chart</a>.
1002	//   "SCATTER" - A <a
1003	// href="/chart/interactive/docs/gallery/scatterchart">scatter
1004	// chart</a>.
1005	//   "COMBO" - A <a
1006	// href="/chart/interactive/docs/gallery/combochart">combo chart</a>.
1007	//   "STEPPED_AREA" - A <a
1008	// href="/chart/interactive/docs/gallery/steppedareachart">stepped area
1009	// chart</a>.
1010	Type string `json:"type,omitempty"`
1011
1012	// ForceSendFields is a list of field names (e.g. "Color") to
1013	// unconditionally include in API requests. By default, fields with
1014	// empty values are omitted from API requests. However, any non-pointer,
1015	// non-interface field appearing in ForceSendFields will be sent to the
1016	// server regardless of whether the field is empty or not. This may be
1017	// used to include empty fields in Patch requests.
1018	ForceSendFields []string `json:"-"`
1019
1020	// NullFields is a list of field names (e.g. "Color") to include in API
1021	// requests with the JSON null value. By default, fields with empty
1022	// values are omitted from API requests. However, any field with an
1023	// empty value appearing in NullFields will be sent to the server as
1024	// null. It is an error if a field in this list has a non-empty value.
1025	// This may be used to include null fields in Patch requests.
1026	NullFields []string `json:"-"`
1027}
1028
1029func (s *BasicChartSeries) MarshalJSON() ([]byte, error) {
1030	type NoMethod BasicChartSeries
1031	raw := NoMethod(*s)
1032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1033}
1034
1035// BasicChartSpec: The specification for a basic chart.  See
1036// BasicChartType for the list
1037// of charts this supports.
1038type BasicChartSpec struct {
1039	// Axis: The axis on the chart.
1040	Axis []*BasicChartAxis `json:"axis,omitempty"`
1041
1042	// ChartType: The type of the chart.
1043	//
1044	// Possible values:
1045	//   "BASIC_CHART_TYPE_UNSPECIFIED" - Default value, do not use.
1046	//   "BAR" - A <a href="/chart/interactive/docs/gallery/barchart">bar
1047	// chart</a>.
1048	//   "LINE" - A <a href="/chart/interactive/docs/gallery/linechart">line
1049	// chart</a>.
1050	//   "AREA" - An <a
1051	// href="/chart/interactive/docs/gallery/areachart">area chart</a>.
1052	//   "COLUMN" - A <a
1053	// href="/chart/interactive/docs/gallery/columnchart">column chart</a>.
1054	//   "SCATTER" - A <a
1055	// href="/chart/interactive/docs/gallery/scatterchart">scatter
1056	// chart</a>.
1057	//   "COMBO" - A <a
1058	// href="/chart/interactive/docs/gallery/combochart">combo chart</a>.
1059	//   "STEPPED_AREA" - A <a
1060	// href="/chart/interactive/docs/gallery/steppedareachart">stepped area
1061	// chart</a>.
1062	ChartType string `json:"chartType,omitempty"`
1063
1064	// CompareMode: The behavior of tooltips and data highlighting when
1065	// hovering on data and
1066	// chart area.
1067	//
1068	// Possible values:
1069	//   "BASIC_CHART_COMPARE_MODE_UNSPECIFIED" - Default value, do not use.
1070	//   "DATUM" - Only the focused data element is highlighted and shown in
1071	// the tooltip.
1072	//   "CATEGORY" - All data elements with the same category (e.g., domain
1073	// value) are
1074	// highlighted and shown in the tooltip.
1075	CompareMode string `json:"compareMode,omitempty"`
1076
1077	// Domains: The domain of data this is charting.
1078	// Only a single domain is supported.
1079	Domains []*BasicChartDomain `json:"domains,omitempty"`
1080
1081	// HeaderCount: The number of rows or columns in the data that are
1082	// "headers".
1083	// If not set, Google Sheets will guess how many rows are headers
1084	// based
1085	// on the data.
1086	//
1087	// (Note that BasicChartAxis.title may override the axis title
1088	//  inferred from the header values.)
1089	HeaderCount int64 `json:"headerCount,omitempty"`
1090
1091	// InterpolateNulls: If some values in a series are missing, gaps may
1092	// appear in the chart (e.g,
1093	// segments of lines in a line chart will be missing).  To eliminate
1094	// these
1095	// gaps set this to true.
1096	// Applies to Line, Area, and Combo charts.
1097	InterpolateNulls bool `json:"interpolateNulls,omitempty"`
1098
1099	// LegendPosition: The position of the chart legend.
1100	//
1101	// Possible values:
1102	//   "BASIC_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
1103	// use.
1104	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
1105	// chart.
1106	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
1107	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
1108	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
1109	//   "NO_LEGEND" - No legend is rendered.
1110	LegendPosition string `json:"legendPosition,omitempty"`
1111
1112	// LineSmoothing: Gets whether all lines should be rendered smooth or
1113	// straight by default.
1114	// Applies to Line charts.
1115	LineSmoothing bool `json:"lineSmoothing,omitempty"`
1116
1117	// Series: The data this chart is visualizing.
1118	Series []*BasicChartSeries `json:"series,omitempty"`
1119
1120	// StackedType: The stacked type for charts that support vertical
1121	// stacking.
1122	// Applies to Area, Bar, Column, Combo, and Stepped Area charts.
1123	//
1124	// Possible values:
1125	//   "BASIC_CHART_STACKED_TYPE_UNSPECIFIED" - Default value, do not use.
1126	//   "NOT_STACKED" - Series are not stacked.
1127	//   "STACKED" - Series values are stacked, each value is rendered
1128	// vertically beginning
1129	// from the top of the value below it.
1130	//   "PERCENT_STACKED" - Vertical stacks are stretched to reach the top
1131	// of the chart, with
1132	// values laid out as percentages of each other.
1133	StackedType string `json:"stackedType,omitempty"`
1134
1135	// ThreeDimensional: True to make the chart 3D.
1136	// Applies to Bar and Column charts.
1137	ThreeDimensional bool `json:"threeDimensional,omitempty"`
1138
1139	// ForceSendFields is a list of field names (e.g. "Axis") 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. "Axis") to include in API
1148	// requests with the JSON null value. By default, fields with empty
1149	// values are omitted from API requests. However, any field with an
1150	// empty value appearing in NullFields will be sent to the server as
1151	// null. It is an error if a field in this list has a non-empty value.
1152	// This may be used to include null fields in Patch requests.
1153	NullFields []string `json:"-"`
1154}
1155
1156func (s *BasicChartSpec) MarshalJSON() ([]byte, error) {
1157	type NoMethod BasicChartSpec
1158	raw := NoMethod(*s)
1159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1160}
1161
1162// BasicFilter: The default filter associated with a sheet.
1163type BasicFilter struct {
1164	// Criteria: The criteria for showing/hiding values per column.
1165	// The map's key is the column index, and the value is the criteria
1166	// for
1167	// that column.
1168	Criteria map[string]FilterCriteria `json:"criteria,omitempty"`
1169
1170	// Range: The range the filter covers.
1171	Range *GridRange `json:"range,omitempty"`
1172
1173	// SortSpecs: The sort order per column. Later specifications are used
1174	// when values
1175	// are equal in the earlier specifications.
1176	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
1177
1178	// ForceSendFields is a list of field names (e.g. "Criteria") to
1179	// unconditionally include in API requests. By default, fields with
1180	// empty values are omitted from API requests. However, any non-pointer,
1181	// non-interface field appearing in ForceSendFields will be sent to the
1182	// server regardless of whether the field is empty or not. This may be
1183	// used to include empty fields in Patch requests.
1184	ForceSendFields []string `json:"-"`
1185
1186	// NullFields is a list of field names (e.g. "Criteria") to include in
1187	// API requests with the JSON null value. By default, fields with empty
1188	// values are omitted from API requests. However, any field with an
1189	// empty value appearing in NullFields will be sent to the server as
1190	// null. It is an error if a field in this list has a non-empty value.
1191	// This may be used to include null fields in Patch requests.
1192	NullFields []string `json:"-"`
1193}
1194
1195func (s *BasicFilter) MarshalJSON() ([]byte, error) {
1196	type NoMethod BasicFilter
1197	raw := NoMethod(*s)
1198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1199}
1200
1201// BatchClearValuesByDataFilterRequest: The request for clearing more
1202// than one range selected by a
1203// DataFilter in a spreadsheet.
1204type BatchClearValuesByDataFilterRequest struct {
1205	// DataFilters: The DataFilters used to determine which ranges to clear.
1206	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
1207
1208	// ForceSendFields is a list of field names (e.g. "DataFilters") to
1209	// unconditionally include in API requests. By default, fields with
1210	// empty values are omitted from API requests. However, any non-pointer,
1211	// non-interface field appearing in ForceSendFields will be sent to the
1212	// server regardless of whether the field is empty or not. This may be
1213	// used to include empty fields in Patch requests.
1214	ForceSendFields []string `json:"-"`
1215
1216	// NullFields is a list of field names (e.g. "DataFilters") to include
1217	// in API requests with the JSON null value. By default, fields with
1218	// empty values are omitted from API requests. However, any field with
1219	// an empty value appearing in NullFields will be sent to the server as
1220	// null. It is an error if a field in this list has a non-empty value.
1221	// This may be used to include null fields in Patch requests.
1222	NullFields []string `json:"-"`
1223}
1224
1225func (s *BatchClearValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
1226	type NoMethod BatchClearValuesByDataFilterRequest
1227	raw := NoMethod(*s)
1228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1229}
1230
1231// BatchClearValuesByDataFilterResponse: The response when clearing a
1232// range of values selected with
1233// DataFilters in a spreadsheet.
1234type BatchClearValuesByDataFilterResponse struct {
1235	// ClearedRanges: The ranges that were cleared, in A1 notation.
1236	// (If the requests were for an unbounded range or a ranger larger
1237	//  than the bounds of the sheet, this will be the actual ranges
1238	//  that were cleared, bounded to the sheet's limits.)
1239	ClearedRanges []string `json:"clearedRanges,omitempty"`
1240
1241	// SpreadsheetId: The spreadsheet the updates were applied to.
1242	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1243
1244	// ServerResponse contains the HTTP response code and headers from the
1245	// server.
1246	googleapi.ServerResponse `json:"-"`
1247
1248	// ForceSendFields is a list of field names (e.g. "ClearedRanges") to
1249	// unconditionally include in API requests. By default, fields with
1250	// empty values are omitted from API requests. However, any non-pointer,
1251	// non-interface field appearing in ForceSendFields will be sent to the
1252	// server regardless of whether the field is empty or not. This may be
1253	// used to include empty fields in Patch requests.
1254	ForceSendFields []string `json:"-"`
1255
1256	// NullFields is a list of field names (e.g. "ClearedRanges") to include
1257	// in API requests with the JSON null value. By default, fields with
1258	// empty values are omitted from API requests. However, any field with
1259	// an empty value appearing in NullFields will be sent to the server as
1260	// null. It is an error if a field in this list has a non-empty value.
1261	// This may be used to include null fields in Patch requests.
1262	NullFields []string `json:"-"`
1263}
1264
1265func (s *BatchClearValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
1266	type NoMethod BatchClearValuesByDataFilterResponse
1267	raw := NoMethod(*s)
1268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1269}
1270
1271// BatchClearValuesRequest: The request for clearing more than one range
1272// of values in a spreadsheet.
1273type BatchClearValuesRequest struct {
1274	// Ranges: The ranges to clear, in A1 notation.
1275	Ranges []string `json:"ranges,omitempty"`
1276
1277	// ForceSendFields is a list of field names (e.g. "Ranges") to
1278	// unconditionally include in API requests. By default, fields with
1279	// empty values are omitted from API requests. However, any non-pointer,
1280	// non-interface field appearing in ForceSendFields will be sent to the
1281	// server regardless of whether the field is empty or not. This may be
1282	// used to include empty fields in Patch requests.
1283	ForceSendFields []string `json:"-"`
1284
1285	// NullFields is a list of field names (e.g. "Ranges") to include in API
1286	// requests with the JSON null value. By default, fields with empty
1287	// values are omitted from API requests. However, any field with an
1288	// empty value appearing in NullFields will be sent to the server as
1289	// null. It is an error if a field in this list has a non-empty value.
1290	// This may be used to include null fields in Patch requests.
1291	NullFields []string `json:"-"`
1292}
1293
1294func (s *BatchClearValuesRequest) MarshalJSON() ([]byte, error) {
1295	type NoMethod BatchClearValuesRequest
1296	raw := NoMethod(*s)
1297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1298}
1299
1300// BatchClearValuesResponse: The response when clearing a range of
1301// values in a spreadsheet.
1302type BatchClearValuesResponse struct {
1303	// ClearedRanges: The ranges that were cleared, in A1 notation.
1304	// (If the requests were for an unbounded range or a ranger larger
1305	//  than the bounds of the sheet, this will be the actual ranges
1306	//  that were cleared, bounded to the sheet's limits.)
1307	ClearedRanges []string `json:"clearedRanges,omitempty"`
1308
1309	// SpreadsheetId: The spreadsheet the updates were applied to.
1310	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1311
1312	// ServerResponse contains the HTTP response code and headers from the
1313	// server.
1314	googleapi.ServerResponse `json:"-"`
1315
1316	// ForceSendFields is a list of field names (e.g. "ClearedRanges") to
1317	// unconditionally include in API requests. By default, fields with
1318	// empty values are omitted from API requests. However, any non-pointer,
1319	// non-interface field appearing in ForceSendFields will be sent to the
1320	// server regardless of whether the field is empty or not. This may be
1321	// used to include empty fields in Patch requests.
1322	ForceSendFields []string `json:"-"`
1323
1324	// NullFields is a list of field names (e.g. "ClearedRanges") to include
1325	// in API requests with the JSON null value. By default, fields with
1326	// empty values are omitted from API requests. However, any field with
1327	// an empty value appearing in NullFields will be sent to the server as
1328	// null. It is an error if a field in this list has a non-empty value.
1329	// This may be used to include null fields in Patch requests.
1330	NullFields []string `json:"-"`
1331}
1332
1333func (s *BatchClearValuesResponse) MarshalJSON() ([]byte, error) {
1334	type NoMethod BatchClearValuesResponse
1335	raw := NoMethod(*s)
1336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1337}
1338
1339// BatchGetValuesByDataFilterRequest: The request for retrieving a range
1340// of values in a spreadsheet selected by a
1341// set of DataFilters.
1342type BatchGetValuesByDataFilterRequest struct {
1343	// DataFilters: The data filters used to match the ranges of values to
1344	// retrieve.  Ranges
1345	// that match any of the specified data filters will be included in
1346	// the
1347	// response.
1348	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
1349
1350	// DateTimeRenderOption: How dates, times, and durations should be
1351	// represented in the output.
1352	// This is ignored if value_render_option is
1353	// FORMATTED_VALUE.
1354	// The default dateTime render option is
1355	// [DateTimeRenderOption.SERIAL_NUMBER].
1356	//
1357	// Possible values:
1358	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
1359	// fields to be output
1360	// as doubles in "serial number" format, as popularized by Lotus
1361	// 1-2-3.
1362	// The whole number portion of the value (left of the decimal)
1363	// counts
1364	// the days since December 30th 1899. The fractional portion (right
1365	// of
1366	// the decimal) counts the time as a fraction of the day. For
1367	// example,
1368	// January 1st 1900 at noon would be 2.5, 2 because it's 2 days
1369	// after
1370	// December 30st 1899, and .5 because noon is half a day.  February
1371	// 1st
1372	// 1900 at 3pm would be 33.625. This correctly treats the year 1900
1373	// as
1374	// not a leap year.
1375	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
1376	// fields to be output
1377	// as strings in their given number format (which is dependent
1378	// on the spreadsheet locale).
1379	DateTimeRenderOption string `json:"dateTimeRenderOption,omitempty"`
1380
1381	// MajorDimension: The major dimension that results should use.
1382	//
1383	// For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
1384	// then a request that selects that range and sets `majorDimension=ROWS`
1385	// will
1386	// return `[[1,2],[3,4]]`,
1387	// whereas a request that sets `majorDimension=COLUMNS` will
1388	// return
1389	// `[[1,3],[2,4]]`.
1390	//
1391	// Possible values:
1392	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
1393	//   "ROWS" - Operates on the rows of a sheet.
1394	//   "COLUMNS" - Operates on the columns of a sheet.
1395	MajorDimension string `json:"majorDimension,omitempty"`
1396
1397	// ValueRenderOption: How values should be represented in the
1398	// output.
1399	// The default render option is ValueRenderOption.FORMATTED_VALUE.
1400	//
1401	// Possible values:
1402	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
1403	// reply according to the
1404	// cell's formatting.  Formatting is based on the spreadsheet's
1405	// locale,
1406	// not the requesting user's locale.
1407	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1408	// currency,
1409	// then `A2` would return "$1.23".
1410	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
1411	// in the reply.
1412	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1413	// currency,
1414	// then `A2` would return the number `1.23`.
1415	//   "FORMULA" - Values will not be calculated.  The reply will include
1416	// the formulas.
1417	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1418	// currency,
1419	// then A2 would return "=A1".
1420	ValueRenderOption string `json:"valueRenderOption,omitempty"`
1421
1422	// ForceSendFields is a list of field names (e.g. "DataFilters") to
1423	// unconditionally include in API requests. By default, fields with
1424	// empty values are omitted from API requests. However, any non-pointer,
1425	// non-interface field appearing in ForceSendFields will be sent to the
1426	// server regardless of whether the field is empty or not. This may be
1427	// used to include empty fields in Patch requests.
1428	ForceSendFields []string `json:"-"`
1429
1430	// NullFields is a list of field names (e.g. "DataFilters") to include
1431	// in API requests with the JSON null value. By default, fields with
1432	// empty values are omitted from API requests. However, any field with
1433	// an empty value appearing in NullFields will be sent to the server as
1434	// null. It is an error if a field in this list has a non-empty value.
1435	// This may be used to include null fields in Patch requests.
1436	NullFields []string `json:"-"`
1437}
1438
1439func (s *BatchGetValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
1440	type NoMethod BatchGetValuesByDataFilterRequest
1441	raw := NoMethod(*s)
1442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1443}
1444
1445// BatchGetValuesByDataFilterResponse: The response when retrieving more
1446// than one range of values in a spreadsheet
1447// selected by DataFilters.
1448type BatchGetValuesByDataFilterResponse struct {
1449	// SpreadsheetId: The ID of the spreadsheet the data was retrieved from.
1450	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1451
1452	// ValueRanges: The requested values with the list of data filters that
1453	// matched them.
1454	ValueRanges []*MatchedValueRange `json:"valueRanges,omitempty"`
1455
1456	// ServerResponse contains the HTTP response code and headers from the
1457	// server.
1458	googleapi.ServerResponse `json:"-"`
1459
1460	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
1461	// unconditionally include in API requests. By default, fields with
1462	// empty values are omitted from API requests. However, any non-pointer,
1463	// non-interface field appearing in ForceSendFields will be sent to the
1464	// server regardless of whether the field is empty or not. This may be
1465	// used to include empty fields in Patch requests.
1466	ForceSendFields []string `json:"-"`
1467
1468	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
1469	// in API requests with the JSON null value. By default, fields with
1470	// empty values are omitted from API requests. However, any field with
1471	// an empty value appearing in NullFields will be sent to the server as
1472	// null. It is an error if a field in this list has a non-empty value.
1473	// This may be used to include null fields in Patch requests.
1474	NullFields []string `json:"-"`
1475}
1476
1477func (s *BatchGetValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
1478	type NoMethod BatchGetValuesByDataFilterResponse
1479	raw := NoMethod(*s)
1480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1481}
1482
1483// BatchGetValuesResponse: The response when retrieving more than one
1484// range of values in a spreadsheet.
1485type BatchGetValuesResponse struct {
1486	// SpreadsheetId: The ID of the spreadsheet the data was retrieved from.
1487	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1488
1489	// ValueRanges: The requested values. The order of the ValueRanges is
1490	// the same as the
1491	// order of the requested ranges.
1492	ValueRanges []*ValueRange `json:"valueRanges,omitempty"`
1493
1494	// ServerResponse contains the HTTP response code and headers from the
1495	// server.
1496	googleapi.ServerResponse `json:"-"`
1497
1498	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
1499	// unconditionally include in API requests. By default, fields with
1500	// empty values are omitted from API requests. However, any non-pointer,
1501	// non-interface field appearing in ForceSendFields will be sent to the
1502	// server regardless of whether the field is empty or not. This may be
1503	// used to include empty fields in Patch requests.
1504	ForceSendFields []string `json:"-"`
1505
1506	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
1507	// in API requests with the JSON null value. By default, fields with
1508	// empty values are omitted from API requests. However, any field with
1509	// an empty value appearing in NullFields will be sent to the server as
1510	// null. It is an error if a field in this list has a non-empty value.
1511	// This may be used to include null fields in Patch requests.
1512	NullFields []string `json:"-"`
1513}
1514
1515func (s *BatchGetValuesResponse) MarshalJSON() ([]byte, error) {
1516	type NoMethod BatchGetValuesResponse
1517	raw := NoMethod(*s)
1518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1519}
1520
1521// BatchUpdateSpreadsheetRequest: The request for updating any aspect of
1522// a spreadsheet.
1523type BatchUpdateSpreadsheetRequest struct {
1524	// IncludeSpreadsheetInResponse: Determines if the update response
1525	// should include the spreadsheet
1526	// resource.
1527	IncludeSpreadsheetInResponse bool `json:"includeSpreadsheetInResponse,omitempty"`
1528
1529	// Requests: A list of updates to apply to the spreadsheet.
1530	// Requests will be applied in the order they are specified.
1531	// If any request is not valid, no requests will be applied.
1532	Requests []*Request `json:"requests,omitempty"`
1533
1534	// ResponseIncludeGridData: True if grid data should be returned.
1535	// Meaningful only if
1536	// if include_spreadsheet_in_response is 'true'.
1537	// This parameter is ignored if a field mask was set in the request.
1538	ResponseIncludeGridData bool `json:"responseIncludeGridData,omitempty"`
1539
1540	// ResponseRanges: Limits the ranges included in the response
1541	// spreadsheet.
1542	// Meaningful only if include_spreadsheet_response is 'true'.
1543	ResponseRanges []string `json:"responseRanges,omitempty"`
1544
1545	// ForceSendFields is a list of field names (e.g.
1546	// "IncludeSpreadsheetInResponse") to unconditionally include in API
1547	// requests. By default, fields with empty values are omitted from API
1548	// requests. However, any non-pointer, non-interface field appearing in
1549	// ForceSendFields will be sent to the server regardless of whether the
1550	// field is empty or not. This may be used to include empty fields in
1551	// Patch requests.
1552	ForceSendFields []string `json:"-"`
1553
1554	// NullFields is a list of field names (e.g.
1555	// "IncludeSpreadsheetInResponse") to include in API requests with the
1556	// JSON null value. By default, fields with empty values are omitted
1557	// from API requests. However, any field with an empty value appearing
1558	// in NullFields will be sent to the server as null. It is an error if a
1559	// field in this list has a non-empty value. This may be used to include
1560	// null fields in Patch requests.
1561	NullFields []string `json:"-"`
1562}
1563
1564func (s *BatchUpdateSpreadsheetRequest) MarshalJSON() ([]byte, error) {
1565	type NoMethod BatchUpdateSpreadsheetRequest
1566	raw := NoMethod(*s)
1567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1568}
1569
1570// BatchUpdateSpreadsheetResponse: The reply for batch updating a
1571// spreadsheet.
1572type BatchUpdateSpreadsheetResponse struct {
1573	// Replies: The reply of the updates.  This maps 1:1 with the updates,
1574	// although
1575	// replies to some requests may be empty.
1576	Replies []*Response `json:"replies,omitempty"`
1577
1578	// SpreadsheetId: The spreadsheet the updates were applied to.
1579	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1580
1581	// UpdatedSpreadsheet: The spreadsheet after updates were applied. This
1582	// is only set
1583	// if
1584	// [BatchUpdateSpreadsheetRequest.include_spreadsheet_in_response] is
1585	// `true`.
1586	UpdatedSpreadsheet *Spreadsheet `json:"updatedSpreadsheet,omitempty"`
1587
1588	// ServerResponse contains the HTTP response code and headers from the
1589	// server.
1590	googleapi.ServerResponse `json:"-"`
1591
1592	// ForceSendFields is a list of field names (e.g. "Replies") to
1593	// unconditionally include in API requests. By default, fields with
1594	// empty values are omitted from API requests. However, any non-pointer,
1595	// non-interface field appearing in ForceSendFields will be sent to the
1596	// server regardless of whether the field is empty or not. This may be
1597	// used to include empty fields in Patch requests.
1598	ForceSendFields []string `json:"-"`
1599
1600	// NullFields is a list of field names (e.g. "Replies") to include in
1601	// API requests with the JSON null value. By default, fields with empty
1602	// values are omitted from API requests. However, any field with an
1603	// empty value appearing in NullFields will be sent to the server as
1604	// null. It is an error if a field in this list has a non-empty value.
1605	// This may be used to include null fields in Patch requests.
1606	NullFields []string `json:"-"`
1607}
1608
1609func (s *BatchUpdateSpreadsheetResponse) MarshalJSON() ([]byte, error) {
1610	type NoMethod BatchUpdateSpreadsheetResponse
1611	raw := NoMethod(*s)
1612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1613}
1614
1615// BatchUpdateValuesByDataFilterRequest: The request for updating more
1616// than one range of values in a spreadsheet.
1617type BatchUpdateValuesByDataFilterRequest struct {
1618	// Data: The new values to apply to the spreadsheet.  If more than one
1619	// range is
1620	// matched by the specified DataFilter the specified values will
1621	// be
1622	// applied to all of those ranges.
1623	Data []*DataFilterValueRange `json:"data,omitempty"`
1624
1625	// IncludeValuesInResponse: Determines if the update response should
1626	// include the values
1627	// of the cells that were updated. By default, responses
1628	// do not include the updated values. The `updatedData` field
1629	// within
1630	// each of the BatchUpdateValuesResponse.responses will contain
1631	// the updated values. If the range to write was larger than than the
1632	// range
1633	// actually written, the response will include all values in the
1634	// requested
1635	// range (excluding trailing empty rows and columns).
1636	IncludeValuesInResponse bool `json:"includeValuesInResponse,omitempty"`
1637
1638	// ResponseDateTimeRenderOption: Determines how dates, times, and
1639	// durations in the response should be
1640	// rendered. This is ignored if response_value_render_option
1641	// is
1642	// FORMATTED_VALUE.
1643	// The default dateTime render option
1644	// is
1645	// DateTimeRenderOption.SERIAL_NUMBER.
1646	//
1647	// Possible values:
1648	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
1649	// fields to be output
1650	// as doubles in "serial number" format, as popularized by Lotus
1651	// 1-2-3.
1652	// The whole number portion of the value (left of the decimal)
1653	// counts
1654	// the days since December 30th 1899. The fractional portion (right
1655	// of
1656	// the decimal) counts the time as a fraction of the day. For
1657	// example,
1658	// January 1st 1900 at noon would be 2.5, 2 because it's 2 days
1659	// after
1660	// December 30st 1899, and .5 because noon is half a day.  February
1661	// 1st
1662	// 1900 at 3pm would be 33.625. This correctly treats the year 1900
1663	// as
1664	// not a leap year.
1665	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
1666	// fields to be output
1667	// as strings in their given number format (which is dependent
1668	// on the spreadsheet locale).
1669	ResponseDateTimeRenderOption string `json:"responseDateTimeRenderOption,omitempty"`
1670
1671	// ResponseValueRenderOption: Determines how values in the response
1672	// should be rendered.
1673	// The default render option is ValueRenderOption.FORMATTED_VALUE.
1674	//
1675	// Possible values:
1676	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
1677	// reply according to the
1678	// cell's formatting.  Formatting is based on the spreadsheet's
1679	// locale,
1680	// not the requesting user's locale.
1681	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1682	// currency,
1683	// then `A2` would return "$1.23".
1684	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
1685	// in the reply.
1686	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1687	// currency,
1688	// then `A2` would return the number `1.23`.
1689	//   "FORMULA" - Values will not be calculated.  The reply will include
1690	// the formulas.
1691	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1692	// currency,
1693	// then A2 would return "=A1".
1694	ResponseValueRenderOption string `json:"responseValueRenderOption,omitempty"`
1695
1696	// ValueInputOption: How the input data should be interpreted.
1697	//
1698	// Possible values:
1699	//   "INPUT_VALUE_OPTION_UNSPECIFIED" - Default input value. This value
1700	// must not be used.
1701	//   "RAW" - The values the user has entered will not be parsed and will
1702	// be stored
1703	// as-is.
1704	//   "USER_ENTERED" - The values will be parsed as if the user typed
1705	// them into the UI.
1706	// Numbers will stay as numbers, but strings may be converted to
1707	// numbers,
1708	// dates, etc. following the same rules that are applied when
1709	// entering
1710	// text into a cell via the Google Sheets UI.
1711	ValueInputOption string `json:"valueInputOption,omitempty"`
1712
1713	// ForceSendFields is a list of field names (e.g. "Data") to
1714	// unconditionally include in API requests. By default, fields with
1715	// empty values are omitted from API requests. However, any non-pointer,
1716	// non-interface field appearing in ForceSendFields will be sent to the
1717	// server regardless of whether the field is empty or not. This may be
1718	// used to include empty fields in Patch requests.
1719	ForceSendFields []string `json:"-"`
1720
1721	// NullFields is a list of field names (e.g. "Data") to include in API
1722	// requests with the JSON null value. By default, fields with empty
1723	// values are omitted from API requests. However, any field with an
1724	// empty value appearing in NullFields will be sent to the server as
1725	// null. It is an error if a field in this list has a non-empty value.
1726	// This may be used to include null fields in Patch requests.
1727	NullFields []string `json:"-"`
1728}
1729
1730func (s *BatchUpdateValuesByDataFilterRequest) MarshalJSON() ([]byte, error) {
1731	type NoMethod BatchUpdateValuesByDataFilterRequest
1732	raw := NoMethod(*s)
1733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1734}
1735
1736// BatchUpdateValuesByDataFilterResponse: The response when updating a
1737// range of values in a spreadsheet.
1738type BatchUpdateValuesByDataFilterResponse struct {
1739	// Responses: The response for each range updated.
1740	Responses []*UpdateValuesByDataFilterResponse `json:"responses,omitempty"`
1741
1742	// SpreadsheetId: The spreadsheet the updates were applied to.
1743	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1744
1745	// TotalUpdatedCells: The total number of cells updated.
1746	TotalUpdatedCells int64 `json:"totalUpdatedCells,omitempty"`
1747
1748	// TotalUpdatedColumns: The total number of columns where at least one
1749	// cell in the column was
1750	// updated.
1751	TotalUpdatedColumns int64 `json:"totalUpdatedColumns,omitempty"`
1752
1753	// TotalUpdatedRows: The total number of rows where at least one cell in
1754	// the row was updated.
1755	TotalUpdatedRows int64 `json:"totalUpdatedRows,omitempty"`
1756
1757	// TotalUpdatedSheets: The total number of sheets where at least one
1758	// cell in the sheet was
1759	// updated.
1760	TotalUpdatedSheets int64 `json:"totalUpdatedSheets,omitempty"`
1761
1762	// ServerResponse contains the HTTP response code and headers from the
1763	// server.
1764	googleapi.ServerResponse `json:"-"`
1765
1766	// ForceSendFields is a list of field names (e.g. "Responses") to
1767	// unconditionally include in API requests. By default, fields with
1768	// empty values are omitted from API requests. However, any non-pointer,
1769	// non-interface field appearing in ForceSendFields will be sent to the
1770	// server regardless of whether the field is empty or not. This may be
1771	// used to include empty fields in Patch requests.
1772	ForceSendFields []string `json:"-"`
1773
1774	// NullFields is a list of field names (e.g. "Responses") to include in
1775	// API requests with the JSON null value. By default, fields with empty
1776	// values are omitted from API requests. However, any field with an
1777	// empty value appearing in NullFields will be sent to the server as
1778	// null. It is an error if a field in this list has a non-empty value.
1779	// This may be used to include null fields in Patch requests.
1780	NullFields []string `json:"-"`
1781}
1782
1783func (s *BatchUpdateValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
1784	type NoMethod BatchUpdateValuesByDataFilterResponse
1785	raw := NoMethod(*s)
1786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1787}
1788
1789// BatchUpdateValuesRequest: The request for updating more than one
1790// range of values in a spreadsheet.
1791type BatchUpdateValuesRequest struct {
1792	// Data: The new values to apply to the spreadsheet.
1793	Data []*ValueRange `json:"data,omitempty"`
1794
1795	// IncludeValuesInResponse: Determines if the update response should
1796	// include the values
1797	// of the cells that were updated. By default, responses
1798	// do not include the updated values. The `updatedData` field
1799	// within
1800	// each of the BatchUpdateValuesResponse.responses will contain
1801	// the updated values. If the range to write was larger than than the
1802	// range
1803	// actually written, the response will include all values in the
1804	// requested
1805	// range (excluding trailing empty rows and columns).
1806	IncludeValuesInResponse bool `json:"includeValuesInResponse,omitempty"`
1807
1808	// ResponseDateTimeRenderOption: Determines how dates, times, and
1809	// durations in the response should be
1810	// rendered. This is ignored if response_value_render_option
1811	// is
1812	// FORMATTED_VALUE.
1813	// The default dateTime render option
1814	// is
1815	// DateTimeRenderOption.SERIAL_NUMBER.
1816	//
1817	// Possible values:
1818	//   "SERIAL_NUMBER" - Instructs date, time, datetime, and duration
1819	// fields to be output
1820	// as doubles in "serial number" format, as popularized by Lotus
1821	// 1-2-3.
1822	// The whole number portion of the value (left of the decimal)
1823	// counts
1824	// the days since December 30th 1899. The fractional portion (right
1825	// of
1826	// the decimal) counts the time as a fraction of the day. For
1827	// example,
1828	// January 1st 1900 at noon would be 2.5, 2 because it's 2 days
1829	// after
1830	// December 30st 1899, and .5 because noon is half a day.  February
1831	// 1st
1832	// 1900 at 3pm would be 33.625. This correctly treats the year 1900
1833	// as
1834	// not a leap year.
1835	//   "FORMATTED_STRING" - Instructs date, time, datetime, and duration
1836	// fields to be output
1837	// as strings in their given number format (which is dependent
1838	// on the spreadsheet locale).
1839	ResponseDateTimeRenderOption string `json:"responseDateTimeRenderOption,omitempty"`
1840
1841	// ResponseValueRenderOption: Determines how values in the response
1842	// should be rendered.
1843	// The default render option is ValueRenderOption.FORMATTED_VALUE.
1844	//
1845	// Possible values:
1846	//   "FORMATTED_VALUE" - Values will be calculated & formatted in the
1847	// reply according to the
1848	// cell's formatting.  Formatting is based on the spreadsheet's
1849	// locale,
1850	// not the requesting user's locale.
1851	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1852	// currency,
1853	// then `A2` would return "$1.23".
1854	//   "UNFORMATTED_VALUE" - Values will be calculated, but not formatted
1855	// in the reply.
1856	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1857	// currency,
1858	// then `A2` would return the number `1.23`.
1859	//   "FORMULA" - Values will not be calculated.  The reply will include
1860	// the formulas.
1861	// For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as
1862	// currency,
1863	// then A2 would return "=A1".
1864	ResponseValueRenderOption string `json:"responseValueRenderOption,omitempty"`
1865
1866	// ValueInputOption: How the input data should be interpreted.
1867	//
1868	// Possible values:
1869	//   "INPUT_VALUE_OPTION_UNSPECIFIED" - Default input value. This value
1870	// must not be used.
1871	//   "RAW" - The values the user has entered will not be parsed and will
1872	// be stored
1873	// as-is.
1874	//   "USER_ENTERED" - The values will be parsed as if the user typed
1875	// them into the UI.
1876	// Numbers will stay as numbers, but strings may be converted to
1877	// numbers,
1878	// dates, etc. following the same rules that are applied when
1879	// entering
1880	// text into a cell via the Google Sheets UI.
1881	ValueInputOption string `json:"valueInputOption,omitempty"`
1882
1883	// ForceSendFields is a list of field names (e.g. "Data") to
1884	// unconditionally include in API requests. By default, fields with
1885	// empty values are omitted from API requests. However, any non-pointer,
1886	// non-interface field appearing in ForceSendFields will be sent to the
1887	// server regardless of whether the field is empty or not. This may be
1888	// used to include empty fields in Patch requests.
1889	ForceSendFields []string `json:"-"`
1890
1891	// NullFields is a list of field names (e.g. "Data") to include in API
1892	// requests with the JSON null value. By default, fields with empty
1893	// values are omitted from API requests. However, any field with an
1894	// empty value appearing in NullFields will be sent to the server as
1895	// null. It is an error if a field in this list has a non-empty value.
1896	// This may be used to include null fields in Patch requests.
1897	NullFields []string `json:"-"`
1898}
1899
1900func (s *BatchUpdateValuesRequest) MarshalJSON() ([]byte, error) {
1901	type NoMethod BatchUpdateValuesRequest
1902	raw := NoMethod(*s)
1903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1904}
1905
1906// BatchUpdateValuesResponse: The response when updating a range of
1907// values in a spreadsheet.
1908type BatchUpdateValuesResponse struct {
1909	// Responses: One UpdateValuesResponse per requested range, in the same
1910	// order as
1911	// the requests appeared.
1912	Responses []*UpdateValuesResponse `json:"responses,omitempty"`
1913
1914	// SpreadsheetId: The spreadsheet the updates were applied to.
1915	SpreadsheetId string `json:"spreadsheetId,omitempty"`
1916
1917	// TotalUpdatedCells: The total number of cells updated.
1918	TotalUpdatedCells int64 `json:"totalUpdatedCells,omitempty"`
1919
1920	// TotalUpdatedColumns: The total number of columns where at least one
1921	// cell in the column was
1922	// updated.
1923	TotalUpdatedColumns int64 `json:"totalUpdatedColumns,omitempty"`
1924
1925	// TotalUpdatedRows: The total number of rows where at least one cell in
1926	// the row was updated.
1927	TotalUpdatedRows int64 `json:"totalUpdatedRows,omitempty"`
1928
1929	// TotalUpdatedSheets: The total number of sheets where at least one
1930	// cell in the sheet was
1931	// updated.
1932	TotalUpdatedSheets int64 `json:"totalUpdatedSheets,omitempty"`
1933
1934	// ServerResponse contains the HTTP response code and headers from the
1935	// server.
1936	googleapi.ServerResponse `json:"-"`
1937
1938	// ForceSendFields is a list of field names (e.g. "Responses") to
1939	// unconditionally include in API requests. By default, fields with
1940	// empty values are omitted from API requests. However, any non-pointer,
1941	// non-interface field appearing in ForceSendFields will be sent to the
1942	// server regardless of whether the field is empty or not. This may be
1943	// used to include empty fields in Patch requests.
1944	ForceSendFields []string `json:"-"`
1945
1946	// NullFields is a list of field names (e.g. "Responses") to include in
1947	// API requests with the JSON null value. By default, fields with empty
1948	// values are omitted from API requests. However, any field with an
1949	// empty value appearing in NullFields will be sent to the server as
1950	// null. It is an error if a field in this list has a non-empty value.
1951	// This may be used to include null fields in Patch requests.
1952	NullFields []string `json:"-"`
1953}
1954
1955func (s *BatchUpdateValuesResponse) MarshalJSON() ([]byte, error) {
1956	type NoMethod BatchUpdateValuesResponse
1957	raw := NoMethod(*s)
1958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1959}
1960
1961// BooleanCondition: A condition that can evaluate to true or
1962// false.
1963// BooleanConditions are used by conditional formatting,
1964// data validation, and the criteria in filters.
1965type BooleanCondition struct {
1966	// Type: The type of condition.
1967	//
1968	// Possible values:
1969	//   "CONDITION_TYPE_UNSPECIFIED" - The default value, do not use.
1970	//   "NUMBER_GREATER" - The cell's value must be greater than the
1971	// condition's value.
1972	// Supported by data validation, conditional formatting and
1973	// filters.
1974	// Requires a single ConditionValue.
1975	//   "NUMBER_GREATER_THAN_EQ" - The cell's value must be greater than or
1976	// equal to the condition's value.
1977	// Supported by data validation, conditional formatting and
1978	// filters.
1979	// Requires a single ConditionValue.
1980	//   "NUMBER_LESS" - The cell's value must be less than the condition's
1981	// value.
1982	// Supported by data validation, conditional formatting and
1983	// filters.
1984	// Requires a single ConditionValue.
1985	//   "NUMBER_LESS_THAN_EQ" - The cell's value must be less than or equal
1986	// to the condition's value.
1987	// Supported by data validation, conditional formatting and
1988	// filters.
1989	// Requires a single ConditionValue.
1990	//   "NUMBER_EQ" - The cell's value must be equal to the condition's
1991	// value.
1992	// Supported by data validation, conditional formatting and
1993	// filters.
1994	// Requires a single ConditionValue.
1995	//   "NUMBER_NOT_EQ" - The cell's value must be not equal to the
1996	// condition's value.
1997	// Supported by data validation, conditional formatting and
1998	// filters.
1999	// Requires a single ConditionValue.
2000	//   "NUMBER_BETWEEN" - The cell's value must be between the two
2001	// condition values.
2002	// Supported by data validation, conditional formatting and
2003	// filters.
2004	// Requires exactly two ConditionValues.
2005	//   "NUMBER_NOT_BETWEEN" - The cell's value must not be between the two
2006	// condition values.
2007	// Supported by data validation, conditional formatting and
2008	// filters.
2009	// Requires exactly two ConditionValues.
2010	//   "TEXT_CONTAINS" - The cell's value must contain the condition's
2011	// value.
2012	// Supported by data validation, conditional formatting and
2013	// filters.
2014	// Requires a single ConditionValue.
2015	//   "TEXT_NOT_CONTAINS" - The cell's value must not contain the
2016	// condition's value.
2017	// Supported by data validation, conditional formatting and
2018	// filters.
2019	// Requires a single ConditionValue.
2020	//   "TEXT_STARTS_WITH" - The cell's value must start with the
2021	// condition's value.
2022	// Supported by conditional formatting and filters.
2023	// Requires a single ConditionValue.
2024	//   "TEXT_ENDS_WITH" - The cell's value must end with the condition's
2025	// value.
2026	// Supported by conditional formatting and filters.
2027	// Requires a single ConditionValue.
2028	//   "TEXT_EQ" - The cell's value must be exactly the condition's
2029	// value.
2030	// Supported by data validation, conditional formatting and
2031	// filters.
2032	// Requires a single ConditionValue.
2033	//   "TEXT_IS_EMAIL" - The cell's value must be a valid email
2034	// address.
2035	// Supported by data validation.
2036	// Requires no ConditionValues.
2037	//   "TEXT_IS_URL" - The cell's value must be a valid URL.
2038	// Supported by data validation.
2039	// Requires no ConditionValues.
2040	//   "DATE_EQ" - The cell's value must be the same date as the
2041	// condition's value.
2042	// Supported by data validation, conditional formatting and
2043	// filters.
2044	// Requires a single ConditionValue.
2045	//   "DATE_BEFORE" - The cell's value must be before the date of the
2046	// condition's value.
2047	// Supported by data validation, conditional formatting and
2048	// filters.
2049	// Requires a single ConditionValue
2050	// that may be a relative date.
2051	//   "DATE_AFTER" - The cell's value must be after the date of the
2052	// condition's value.
2053	// Supported by data validation, conditional formatting and
2054	// filters.
2055	// Requires a single ConditionValue
2056	// that may be a relative date.
2057	//   "DATE_ON_OR_BEFORE" - The cell's value must be on or before the
2058	// date of the condition's value.
2059	// Supported by data validation.
2060	// Requires a single ConditionValue
2061	// that may be a relative date.
2062	//   "DATE_ON_OR_AFTER" - The cell's value must be on or after the date
2063	// of the condition's value.
2064	// Supported by data validation.
2065	// Requires a single ConditionValue
2066	// that may be a relative date.
2067	//   "DATE_BETWEEN" - The cell's value must be between the dates of the
2068	// two condition values.
2069	// Supported by data validation.
2070	// Requires exactly two ConditionValues.
2071	//   "DATE_NOT_BETWEEN" - The cell's value must be outside the dates of
2072	// the two condition values.
2073	// Supported by data validation.
2074	// Requires exactly two ConditionValues.
2075	//   "DATE_IS_VALID" - The cell's value must be a date.
2076	// Supported by data validation.
2077	// Requires no ConditionValues.
2078	//   "ONE_OF_RANGE" - The cell's value must be listed in the grid in
2079	// condition value's range.
2080	// Supported by data validation.
2081	// Requires a single ConditionValue,
2082	// and the value must be a valid range in A1 notation.
2083	//   "ONE_OF_LIST" - The cell's value must be in the list of condition
2084	// values.
2085	// Supported by data validation.
2086	// Supports any number of condition values,
2087	// one per item in the list.
2088	// Formulas are not supported in the values.
2089	//   "BLANK" - The cell's value must be empty.
2090	// Supported by conditional formatting and filters.
2091	// Requires no ConditionValues.
2092	//   "NOT_BLANK" - The cell's value must not be empty.
2093	// Supported by conditional formatting and filters.
2094	// Requires no ConditionValues.
2095	//   "CUSTOM_FORMULA" - The condition's formula must evaluate to
2096	// true.
2097	// Supported by data validation, conditional formatting and
2098	// filters.
2099	// Requires a single ConditionValue.
2100	Type string `json:"type,omitempty"`
2101
2102	// Values: The values of the condition. The number of supported values
2103	// depends
2104	// on the condition type.  Some support zero values,
2105	// others one or two values,
2106	// and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
2107	Values []*ConditionValue `json:"values,omitempty"`
2108
2109	// ForceSendFields is a list of field names (e.g. "Type") to
2110	// unconditionally include in API requests. By default, fields with
2111	// empty values are omitted from API requests. However, any non-pointer,
2112	// non-interface field appearing in ForceSendFields will be sent to the
2113	// server regardless of whether the field is empty or not. This may be
2114	// used to include empty fields in Patch requests.
2115	ForceSendFields []string `json:"-"`
2116
2117	// NullFields is a list of field names (e.g. "Type") to include in API
2118	// requests with the JSON null value. By default, fields with empty
2119	// values are omitted from API requests. However, any field with an
2120	// empty value appearing in NullFields will be sent to the server as
2121	// null. It is an error if a field in this list has a non-empty value.
2122	// This may be used to include null fields in Patch requests.
2123	NullFields []string `json:"-"`
2124}
2125
2126func (s *BooleanCondition) MarshalJSON() ([]byte, error) {
2127	type NoMethod BooleanCondition
2128	raw := NoMethod(*s)
2129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2130}
2131
2132// BooleanRule: A rule that may or may not match, depending on the
2133// condition.
2134type BooleanRule struct {
2135	// Condition: The condition of the rule. If the condition evaluates to
2136	// true,
2137	// the format will be applied.
2138	Condition *BooleanCondition `json:"condition,omitempty"`
2139
2140	// Format: The format to apply.
2141	// Conditional formatting can only apply a subset of formatting:
2142	// bold, italic,
2143	// strikethrough,
2144	// foreground color &
2145	// background color.
2146	Format *CellFormat `json:"format,omitempty"`
2147
2148	// ForceSendFields is a list of field names (e.g. "Condition") to
2149	// unconditionally include in API requests. By default, fields with
2150	// empty values are omitted from API requests. However, any non-pointer,
2151	// non-interface field appearing in ForceSendFields will be sent to the
2152	// server regardless of whether the field is empty or not. This may be
2153	// used to include empty fields in Patch requests.
2154	ForceSendFields []string `json:"-"`
2155
2156	// NullFields is a list of field names (e.g. "Condition") to include in
2157	// API requests with the JSON null value. By default, fields with empty
2158	// values are omitted from API requests. However, any field with an
2159	// empty value appearing in NullFields will be sent to the server as
2160	// null. It is an error if a field in this list has a non-empty value.
2161	// This may be used to include null fields in Patch requests.
2162	NullFields []string `json:"-"`
2163}
2164
2165func (s *BooleanRule) MarshalJSON() ([]byte, error) {
2166	type NoMethod BooleanRule
2167	raw := NoMethod(*s)
2168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2169}
2170
2171// Border: A border along a cell.
2172type Border struct {
2173	// Color: The color of the border.
2174	Color *Color `json:"color,omitempty"`
2175
2176	// Style: The style of the border.
2177	//
2178	// Possible values:
2179	//   "STYLE_UNSPECIFIED" - The style is not specified. Do not use this.
2180	//   "DOTTED" - The border is dotted.
2181	//   "DASHED" - The border is dashed.
2182	//   "SOLID" - The border is a thin solid line.
2183	//   "SOLID_MEDIUM" - The border is a medium solid line.
2184	//   "SOLID_THICK" - The border is a thick solid line.
2185	//   "NONE" - No border.
2186	// Used only when updating a border in order to erase it.
2187	//   "DOUBLE" - The border is two solid lines.
2188	Style string `json:"style,omitempty"`
2189
2190	// Width: The width of the border, in pixels.
2191	// Deprecated; the width is determined by the "style" field.
2192	Width int64 `json:"width,omitempty"`
2193
2194	// ForceSendFields is a list of field names (e.g. "Color") to
2195	// unconditionally include in API requests. By default, fields with
2196	// empty values are omitted from API requests. However, any non-pointer,
2197	// non-interface field appearing in ForceSendFields will be sent to the
2198	// server regardless of whether the field is empty or not. This may be
2199	// used to include empty fields in Patch requests.
2200	ForceSendFields []string `json:"-"`
2201
2202	// NullFields is a list of field names (e.g. "Color") to include in API
2203	// requests with the JSON null value. By default, fields with empty
2204	// values are omitted from API requests. However, any field with an
2205	// empty value appearing in NullFields will be sent to the server as
2206	// null. It is an error if a field in this list has a non-empty value.
2207	// This may be used to include null fields in Patch requests.
2208	NullFields []string `json:"-"`
2209}
2210
2211func (s *Border) MarshalJSON() ([]byte, error) {
2212	type NoMethod Border
2213	raw := NoMethod(*s)
2214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2215}
2216
2217// Borders: The borders of the cell.
2218type Borders struct {
2219	// Bottom: The bottom border of the cell.
2220	Bottom *Border `json:"bottom,omitempty"`
2221
2222	// Left: The left border of the cell.
2223	Left *Border `json:"left,omitempty"`
2224
2225	// Right: The right border of the cell.
2226	Right *Border `json:"right,omitempty"`
2227
2228	// Top: The top border of the cell.
2229	Top *Border `json:"top,omitempty"`
2230
2231	// ForceSendFields is a list of field names (e.g. "Bottom") to
2232	// unconditionally include in API requests. By default, fields with
2233	// empty values are omitted from API requests. However, any non-pointer,
2234	// non-interface field appearing in ForceSendFields will be sent to the
2235	// server regardless of whether the field is empty or not. This may be
2236	// used to include empty fields in Patch requests.
2237	ForceSendFields []string `json:"-"`
2238
2239	// NullFields is a list of field names (e.g. "Bottom") to include in API
2240	// requests with the JSON null value. By default, fields with empty
2241	// values are omitted from API requests. However, any field with an
2242	// empty value appearing in NullFields will be sent to the server as
2243	// null. It is an error if a field in this list has a non-empty value.
2244	// This may be used to include null fields in Patch requests.
2245	NullFields []string `json:"-"`
2246}
2247
2248func (s *Borders) MarshalJSON() ([]byte, error) {
2249	type NoMethod Borders
2250	raw := NoMethod(*s)
2251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2252}
2253
2254// BubbleChartSpec: A <a
2255// href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>.
2256type BubbleChartSpec struct {
2257	// BubbleBorderColor: The bubble border color.
2258	BubbleBorderColor *Color `json:"bubbleBorderColor,omitempty"`
2259
2260	// BubbleLabels: The data containing the bubble labels.  These do not
2261	// need to be unique.
2262	BubbleLabels *ChartData `json:"bubbleLabels,omitempty"`
2263
2264	// BubbleMaxRadiusSize: The max radius size of the bubbles, in
2265	// pixels.
2266	// If specified, the field must be a positive value.
2267	BubbleMaxRadiusSize int64 `json:"bubbleMaxRadiusSize,omitempty"`
2268
2269	// BubbleMinRadiusSize: The minimum radius size of the bubbles, in
2270	// pixels.
2271	// If specific, the field must be a positive value.
2272	BubbleMinRadiusSize int64 `json:"bubbleMinRadiusSize,omitempty"`
2273
2274	// BubbleOpacity: The opacity of the bubbles between 0 and 1.0.
2275	// 0 is fully transparent and 1 is fully opaque.
2276	BubbleOpacity float64 `json:"bubbleOpacity,omitempty"`
2277
2278	// BubbleSizes: The data contianing the bubble sizes.  Bubble sizes are
2279	// used to draw
2280	// the bubbles at different sizes relative to each other.
2281	// If specified, group_ids must also be specified.  This field
2282	// is
2283	// optional.
2284	BubbleSizes *ChartData `json:"bubbleSizes,omitempty"`
2285
2286	// BubbleTextStyle: The format of the text inside the bubbles.
2287	// Underline and Strikethrough are not supported.
2288	BubbleTextStyle *TextFormat `json:"bubbleTextStyle,omitempty"`
2289
2290	// Domain: The data containing the bubble x-values.  These values locate
2291	// the bubbles
2292	// in the chart horizontally.
2293	Domain *ChartData `json:"domain,omitempty"`
2294
2295	// GroupIds: The data containing the bubble group IDs. All bubbles with
2296	// the same group
2297	// ID will be drawn in the same color. If bubble_sizes is specified
2298	// then
2299	// this field must also be specified but may contain blank values.
2300	// This field is optional.
2301	GroupIds *ChartData `json:"groupIds,omitempty"`
2302
2303	// LegendPosition: Where the legend of the chart should be drawn.
2304	//
2305	// Possible values:
2306	//   "BUBBLE_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
2307	// use.
2308	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
2309	// chart.
2310	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
2311	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
2312	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
2313	//   "NO_LEGEND" - No legend is rendered.
2314	//   "INSIDE_LEGEND" - The legend is rendered inside the chart area.
2315	LegendPosition string `json:"legendPosition,omitempty"`
2316
2317	// Series: The data contianing the bubble y-values.  These values locate
2318	// the bubbles
2319	// in the chart vertically.
2320	Series *ChartData `json:"series,omitempty"`
2321
2322	// ForceSendFields is a list of field names (e.g. "BubbleBorderColor")
2323	// to unconditionally include in API requests. By default, fields with
2324	// empty values are omitted from API requests. However, any non-pointer,
2325	// non-interface field appearing in ForceSendFields will be sent to the
2326	// server regardless of whether the field is empty or not. This may be
2327	// used to include empty fields in Patch requests.
2328	ForceSendFields []string `json:"-"`
2329
2330	// NullFields is a list of field names (e.g. "BubbleBorderColor") to
2331	// include in API requests with the JSON null value. By default, fields
2332	// with empty values are omitted from API requests. However, any field
2333	// with an empty value appearing in NullFields will be sent to the
2334	// server as null. It is an error if a field in this list has a
2335	// non-empty value. This may be used to include null fields in Patch
2336	// requests.
2337	NullFields []string `json:"-"`
2338}
2339
2340func (s *BubbleChartSpec) MarshalJSON() ([]byte, error) {
2341	type NoMethod BubbleChartSpec
2342	raw := NoMethod(*s)
2343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2344}
2345
2346func (s *BubbleChartSpec) UnmarshalJSON(data []byte) error {
2347	type NoMethod BubbleChartSpec
2348	var s1 struct {
2349		BubbleOpacity gensupport.JSONFloat64 `json:"bubbleOpacity"`
2350		*NoMethod
2351	}
2352	s1.NoMethod = (*NoMethod)(s)
2353	if err := json.Unmarshal(data, &s1); err != nil {
2354		return err
2355	}
2356	s.BubbleOpacity = float64(s1.BubbleOpacity)
2357	return nil
2358}
2359
2360// CandlestickChartSpec: A <a
2361// href="/chart/interactive/docs/gallery/candlestickchart">candlestick
2362// chart</a>.
2363type CandlestickChartSpec struct {
2364	// Data: The Candlestick chart data.
2365	// Only one CandlestickData is supported.
2366	Data []*CandlestickData `json:"data,omitempty"`
2367
2368	// Domain: The domain data (horizontal axis) for the candlestick chart.
2369	// String data
2370	// will be treated as discrete labels, other data will be treated
2371	// as
2372	// continuous values.
2373	Domain *CandlestickDomain `json:"domain,omitempty"`
2374
2375	// ForceSendFields is a list of field names (e.g. "Data") to
2376	// unconditionally include in API requests. By default, fields with
2377	// empty values are omitted from API requests. However, any non-pointer,
2378	// non-interface field appearing in ForceSendFields will be sent to the
2379	// server regardless of whether the field is empty or not. This may be
2380	// used to include empty fields in Patch requests.
2381	ForceSendFields []string `json:"-"`
2382
2383	// NullFields is a list of field names (e.g. "Data") to include in API
2384	// requests with the JSON null value. By default, fields with empty
2385	// values are omitted from API requests. However, any field with an
2386	// empty value appearing in NullFields will be sent to the server as
2387	// null. It is an error if a field in this list has a non-empty value.
2388	// This may be used to include null fields in Patch requests.
2389	NullFields []string `json:"-"`
2390}
2391
2392func (s *CandlestickChartSpec) MarshalJSON() ([]byte, error) {
2393	type NoMethod CandlestickChartSpec
2394	raw := NoMethod(*s)
2395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2396}
2397
2398// CandlestickData: The Candlestick chart data, each containing the low,
2399// open, close, and high
2400// values for a series.
2401type CandlestickData struct {
2402	// CloseSeries: The range data (vertical axis) for the close/final value
2403	// for each candle.
2404	// This is the top of the candle body.  If greater than the open value
2405	// the
2406	// candle will be filled.  Otherwise the candle will be hollow.
2407	CloseSeries *CandlestickSeries `json:"closeSeries,omitempty"`
2408
2409	// HighSeries: The range data (vertical axis) for the high/maximum value
2410	// for each
2411	// candle. This is the top of the candle's center line.
2412	HighSeries *CandlestickSeries `json:"highSeries,omitempty"`
2413
2414	// LowSeries: The range data (vertical axis) for the low/minimum value
2415	// for each candle.
2416	// This is the bottom of the candle's center line.
2417	LowSeries *CandlestickSeries `json:"lowSeries,omitempty"`
2418
2419	// OpenSeries: The range data (vertical axis) for the open/initial value
2420	// for each
2421	// candle. This is the bottom of the candle body.  If less than the
2422	// close
2423	// value the candle will be filled.  Otherwise the candle will be
2424	// hollow.
2425	OpenSeries *CandlestickSeries `json:"openSeries,omitempty"`
2426
2427	// ForceSendFields is a list of field names (e.g. "CloseSeries") to
2428	// unconditionally include in API requests. By default, fields with
2429	// empty values are omitted from API requests. However, any non-pointer,
2430	// non-interface field appearing in ForceSendFields will be sent to the
2431	// server regardless of whether the field is empty or not. This may be
2432	// used to include empty fields in Patch requests.
2433	ForceSendFields []string `json:"-"`
2434
2435	// NullFields is a list of field names (e.g. "CloseSeries") to include
2436	// in API requests with the JSON null value. By default, fields with
2437	// empty values are omitted from API requests. However, any field with
2438	// an empty value appearing in NullFields will be sent to the server as
2439	// null. It is an error if a field in this list has a non-empty value.
2440	// This may be used to include null fields in Patch requests.
2441	NullFields []string `json:"-"`
2442}
2443
2444func (s *CandlestickData) MarshalJSON() ([]byte, error) {
2445	type NoMethod CandlestickData
2446	raw := NoMethod(*s)
2447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2448}
2449
2450// CandlestickDomain: The domain of a CandlestickChart.
2451type CandlestickDomain struct {
2452	// Data: The data of the CandlestickDomain.
2453	Data *ChartData `json:"data,omitempty"`
2454
2455	// Reversed: True to reverse the order of the domain values (horizontal
2456	// axis).
2457	Reversed bool `json:"reversed,omitempty"`
2458
2459	// ForceSendFields is a list of field names (e.g. "Data") to
2460	// unconditionally include in API requests. By default, fields with
2461	// empty values are omitted from API requests. However, any non-pointer,
2462	// non-interface field appearing in ForceSendFields will be sent to the
2463	// server regardless of whether the field is empty or not. This may be
2464	// used to include empty fields in Patch requests.
2465	ForceSendFields []string `json:"-"`
2466
2467	// NullFields is a list of field names (e.g. "Data") to include in API
2468	// requests with the JSON null value. By default, fields with empty
2469	// values are omitted from API requests. However, any field with an
2470	// empty value appearing in NullFields will be sent to the server as
2471	// null. It is an error if a field in this list has a non-empty value.
2472	// This may be used to include null fields in Patch requests.
2473	NullFields []string `json:"-"`
2474}
2475
2476func (s *CandlestickDomain) MarshalJSON() ([]byte, error) {
2477	type NoMethod CandlestickDomain
2478	raw := NoMethod(*s)
2479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2480}
2481
2482// CandlestickSeries: The series of a CandlestickData.
2483type CandlestickSeries struct {
2484	// Data: The data of the CandlestickSeries.
2485	Data *ChartData `json:"data,omitempty"`
2486
2487	// ForceSendFields is a list of field names (e.g. "Data") to
2488	// unconditionally include in API requests. By default, fields with
2489	// empty values are omitted from API requests. However, any non-pointer,
2490	// non-interface field appearing in ForceSendFields will be sent to the
2491	// server regardless of whether the field is empty or not. This may be
2492	// used to include empty fields in Patch requests.
2493	ForceSendFields []string `json:"-"`
2494
2495	// NullFields is a list of field names (e.g. "Data") to include in API
2496	// requests with the JSON null value. By default, fields with empty
2497	// values are omitted from API requests. However, any field with an
2498	// empty value appearing in NullFields will be sent to the server as
2499	// null. It is an error if a field in this list has a non-empty value.
2500	// This may be used to include null fields in Patch requests.
2501	NullFields []string `json:"-"`
2502}
2503
2504func (s *CandlestickSeries) MarshalJSON() ([]byte, error) {
2505	type NoMethod CandlestickSeries
2506	raw := NoMethod(*s)
2507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2508}
2509
2510// CellData: Data about a specific cell.
2511type CellData struct {
2512	// DataValidation: A data validation rule on the cell, if any.
2513	//
2514	// When writing, the new data validation rule will overwrite any prior
2515	// rule.
2516	DataValidation *DataValidationRule `json:"dataValidation,omitempty"`
2517
2518	// EffectiveFormat: The effective format being used by the cell.
2519	// This includes the results of applying any conditional formatting
2520	// and,
2521	// if the cell contains a formula, the computed number format.
2522	// If the effective format is the default format, effective format
2523	// will
2524	// not be written.
2525	// This field is read-only.
2526	EffectiveFormat *CellFormat `json:"effectiveFormat,omitempty"`
2527
2528	// EffectiveValue: The effective value of the cell. For cells with
2529	// formulas, this will be
2530	// the calculated value.  For cells with literals, this will be
2531	// the same as the user_entered_value.
2532	// This field is read-only.
2533	EffectiveValue *ExtendedValue `json:"effectiveValue,omitempty"`
2534
2535	// FormattedValue: The formatted value of the cell.
2536	// This is the value as it's shown to the user.
2537	// This field is read-only.
2538	FormattedValue string `json:"formattedValue,omitempty"`
2539
2540	// Hyperlink: A hyperlink this cell points to, if any.
2541	// This field is read-only.  (To set it, use a `=HYPERLINK` formula
2542	// in the userEnteredValue.formulaValue
2543	// field.)
2544	Hyperlink string `json:"hyperlink,omitempty"`
2545
2546	// Note: Any note on the cell.
2547	Note string `json:"note,omitempty"`
2548
2549	// PivotTable: A pivot table anchored at this cell. The size of pivot
2550	// table itself
2551	// is computed dynamically based on its data, grouping, filters,
2552	// values,
2553	// etc. Only the top-left cell of the pivot table contains the pivot
2554	// table
2555	// definition. The other cells will contain the calculated values of
2556	// the
2557	// results of the pivot in their effective_value fields.
2558	PivotTable *PivotTable `json:"pivotTable,omitempty"`
2559
2560	// TextFormatRuns: Runs of rich text applied to subsections of the cell.
2561	//  Runs are only valid
2562	// on user entered strings, not formulas, bools, or numbers.
2563	// Runs start at specific indexes in the text and continue until the
2564	// next
2565	// run. Properties of a run will continue unless explicitly changed
2566	// in a subsequent run (and properties of the first run will
2567	// continue
2568	// the properties of the cell unless explicitly changed).
2569	//
2570	// When writing, the new runs will overwrite any prior runs.  When
2571	// writing a
2572	// new user_entered_value, previous runs will be erased.
2573	TextFormatRuns []*TextFormatRun `json:"textFormatRuns,omitempty"`
2574
2575	// UserEnteredFormat: The format the user entered for the cell.
2576	//
2577	// When writing, the new format will be merged with the existing format.
2578	UserEnteredFormat *CellFormat `json:"userEnteredFormat,omitempty"`
2579
2580	// UserEnteredValue: The value the user entered in the cell. e.g,
2581	// `1234`, `'Hello'`, or `=NOW()`
2582	// Note: Dates, Times and DateTimes are represented as doubles in
2583	// serial number format.
2584	UserEnteredValue *ExtendedValue `json:"userEnteredValue,omitempty"`
2585
2586	// ForceSendFields is a list of field names (e.g. "DataValidation") to
2587	// unconditionally include in API requests. By default, fields with
2588	// empty values are omitted from API requests. However, any non-pointer,
2589	// non-interface field appearing in ForceSendFields will be sent to the
2590	// server regardless of whether the field is empty or not. This may be
2591	// used to include empty fields in Patch requests.
2592	ForceSendFields []string `json:"-"`
2593
2594	// NullFields is a list of field names (e.g. "DataValidation") to
2595	// include in API requests with the JSON null value. By default, fields
2596	// with empty values are omitted from API requests. However, any field
2597	// with an empty value appearing in NullFields will be sent to the
2598	// server as null. It is an error if a field in this list has a
2599	// non-empty value. This may be used to include null fields in Patch
2600	// requests.
2601	NullFields []string `json:"-"`
2602}
2603
2604func (s *CellData) MarshalJSON() ([]byte, error) {
2605	type NoMethod CellData
2606	raw := NoMethod(*s)
2607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2608}
2609
2610// CellFormat: The format of a cell.
2611type CellFormat struct {
2612	// BackgroundColor: The background color of the cell.
2613	BackgroundColor *Color `json:"backgroundColor,omitempty"`
2614
2615	// Borders: The borders of the cell.
2616	Borders *Borders `json:"borders,omitempty"`
2617
2618	// HorizontalAlignment: The horizontal alignment of the value in the
2619	// cell.
2620	//
2621	// Possible values:
2622	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
2623	// specified. Do not use this.
2624	//   "LEFT" - The text is explicitly aligned to the left of the cell.
2625	//   "CENTER" - The text is explicitly aligned to the center of the
2626	// cell.
2627	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
2628	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
2629
2630	// HyperlinkDisplayType: How a hyperlink, if it exists, should be
2631	// displayed in the cell.
2632	//
2633	// Possible values:
2634	//   "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED" - The default value: the
2635	// hyperlink is rendered. Do not use this.
2636	//   "LINKED" - A hyperlink should be explicitly rendered.
2637	//   "PLAIN_TEXT" - A hyperlink should not be rendered.
2638	HyperlinkDisplayType string `json:"hyperlinkDisplayType,omitempty"`
2639
2640	// NumberFormat: A format describing how number values should be
2641	// represented to the user.
2642	NumberFormat *NumberFormat `json:"numberFormat,omitempty"`
2643
2644	// Padding: The padding of the cell.
2645	Padding *Padding `json:"padding,omitempty"`
2646
2647	// TextDirection: The direction of the text in the cell.
2648	//
2649	// Possible values:
2650	//   "TEXT_DIRECTION_UNSPECIFIED" - The text direction is not specified.
2651	// Do not use this.
2652	//   "LEFT_TO_RIGHT" - The text direction of left-to-right was set by
2653	// the user.
2654	//   "RIGHT_TO_LEFT" - The text direction of right-to-left was set by
2655	// the user.
2656	TextDirection string `json:"textDirection,omitempty"`
2657
2658	// TextFormat: The format of the text in the cell (unless overridden by
2659	// a format run).
2660	TextFormat *TextFormat `json:"textFormat,omitempty"`
2661
2662	// TextRotation: The rotation applied to text in a cell
2663	TextRotation *TextRotation `json:"textRotation,omitempty"`
2664
2665	// VerticalAlignment: The vertical alignment of the value in the cell.
2666	//
2667	// Possible values:
2668	//   "VERTICAL_ALIGN_UNSPECIFIED" - The vertical alignment is not
2669	// specified.  Do not use this.
2670	//   "TOP" - The text is explicitly aligned to the top of the cell.
2671	//   "MIDDLE" - The text is explicitly aligned to the middle of the
2672	// cell.
2673	//   "BOTTOM" - The text is explicitly aligned to the bottom of the
2674	// cell.
2675	VerticalAlignment string `json:"verticalAlignment,omitempty"`
2676
2677	// WrapStrategy: The wrap strategy for the value in the cell.
2678	//
2679	// Possible values:
2680	//   "WRAP_STRATEGY_UNSPECIFIED" - The default value, do not use.
2681	//   "OVERFLOW_CELL" - Lines that are longer than the cell width will be
2682	// written in the next
2683	// cell over, so long as that cell is empty. If the next cell over
2684	// is
2685	// non-empty, this behaves the same as CLIP. The text will never wrap
2686	// to the next line unless the user manually inserts a new
2687	// line.
2688	// Example:
2689	//
2690	//     | First sentence. |
2691	//     | Manual newline that is very long. <- Text continues into next
2692	// cell
2693	//     | Next newline.   |
2694	//   "LEGACY_WRAP" - This wrap strategy represents the old Google Sheets
2695	// wrap strategy where
2696	// words that are longer than a line are clipped rather than broken.
2697	// This
2698	// strategy is not supported on all platforms and is being phased
2699	// out.
2700	// Example:
2701	//
2702	//     | Cell has a |
2703	//     | loooooooooo| <- Word is clipped.
2704	//     | word.      |
2705	//   "CLIP" - Lines that are longer than the cell width will be
2706	// clipped.
2707	// The text will never wrap to the next line unless the user
2708	// manually
2709	// inserts a new line.
2710	// Example:
2711	//
2712	//     | First sentence. |
2713	//     | Manual newline t| <- Text is clipped
2714	//     | Next newline.   |
2715	//   "WRAP" - Words that are longer than a line are wrapped at the
2716	// character level
2717	// rather than clipped.
2718	// Example:
2719	//
2720	//     | Cell has a |
2721	//     | loooooooooo| <- Word is broken.
2722	//     | ong word.  |
2723	WrapStrategy string `json:"wrapStrategy,omitempty"`
2724
2725	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
2726	// unconditionally include in API requests. By default, fields with
2727	// empty values are omitted from API requests. However, any non-pointer,
2728	// non-interface field appearing in ForceSendFields will be sent to the
2729	// server regardless of whether the field is empty or not. This may be
2730	// used to include empty fields in Patch requests.
2731	ForceSendFields []string `json:"-"`
2732
2733	// NullFields is a list of field names (e.g. "BackgroundColor") to
2734	// include in API requests with the JSON null value. By default, fields
2735	// with empty values are omitted from API requests. However, any field
2736	// with an empty value appearing in NullFields will be sent to the
2737	// server as null. It is an error if a field in this list has a
2738	// non-empty value. This may be used to include null fields in Patch
2739	// requests.
2740	NullFields []string `json:"-"`
2741}
2742
2743func (s *CellFormat) MarshalJSON() ([]byte, error) {
2744	type NoMethod CellFormat
2745	raw := NoMethod(*s)
2746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2747}
2748
2749// ChartData: The data included in a domain or series.
2750type ChartData struct {
2751	// SourceRange: The source ranges of the data.
2752	SourceRange *ChartSourceRange `json:"sourceRange,omitempty"`
2753
2754	// ForceSendFields is a list of field names (e.g. "SourceRange") to
2755	// unconditionally include in API requests. By default, fields with
2756	// empty values are omitted from API requests. However, any non-pointer,
2757	// non-interface field appearing in ForceSendFields will be sent to the
2758	// server regardless of whether the field is empty or not. This may be
2759	// used to include empty fields in Patch requests.
2760	ForceSendFields []string `json:"-"`
2761
2762	// NullFields is a list of field names (e.g. "SourceRange") to include
2763	// in API requests with the JSON null value. By default, fields with
2764	// empty values are omitted from API requests. However, any field with
2765	// an empty value appearing in NullFields will be sent to the server as
2766	// null. It is an error if a field in this list has a non-empty value.
2767	// This may be used to include null fields in Patch requests.
2768	NullFields []string `json:"-"`
2769}
2770
2771func (s *ChartData) MarshalJSON() ([]byte, error) {
2772	type NoMethod ChartData
2773	raw := NoMethod(*s)
2774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2775}
2776
2777// ChartSourceRange: Source ranges for a chart.
2778type ChartSourceRange struct {
2779	// Sources: The ranges of data for a series or domain.
2780	// Exactly one dimension must have a length of 1,
2781	// and all sources in the list must have the same dimension
2782	// with length 1.
2783	// The domain (if it exists) & all series must have the same number
2784	// of source ranges. If using more than one source range, then the
2785	// source
2786	// range at a given offset must be in order and contiguous across the
2787	// domain
2788	// and series.
2789	//
2790	// For example, these are valid configurations:
2791	//
2792	//     domain sources: A1:A5
2793	//     series1 sources: B1:B5
2794	//     series2 sources: D6:D10
2795	//
2796	//     domain sources: A1:A5, C10:C12
2797	//     series1 sources: B1:B5, D10:D12
2798	//     series2 sources: C1:C5, E10:E12
2799	Sources []*GridRange `json:"sources,omitempty"`
2800
2801	// ForceSendFields is a list of field names (e.g. "Sources") to
2802	// unconditionally include in API requests. By default, fields with
2803	// empty values are omitted from API requests. However, any non-pointer,
2804	// non-interface field appearing in ForceSendFields will be sent to the
2805	// server regardless of whether the field is empty or not. This may be
2806	// used to include empty fields in Patch requests.
2807	ForceSendFields []string `json:"-"`
2808
2809	// NullFields is a list of field names (e.g. "Sources") to include in
2810	// API requests with the JSON null value. By default, fields with empty
2811	// values are omitted from API requests. However, any field with an
2812	// empty value appearing in NullFields will be sent to the server as
2813	// null. It is an error if a field in this list has a non-empty value.
2814	// This may be used to include null fields in Patch requests.
2815	NullFields []string `json:"-"`
2816}
2817
2818func (s *ChartSourceRange) MarshalJSON() ([]byte, error) {
2819	type NoMethod ChartSourceRange
2820	raw := NoMethod(*s)
2821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2822}
2823
2824// ChartSpec: The specifications of a chart.
2825type ChartSpec struct {
2826	// AltText: The alternative text that describes the chart.  This is
2827	// often used
2828	// for accessibility.
2829	AltText string `json:"altText,omitempty"`
2830
2831	// BackgroundColor: The background color of the entire chart.
2832	// Not applicable to Org charts.
2833	BackgroundColor *Color `json:"backgroundColor,omitempty"`
2834
2835	// BasicChart: A basic chart specification, can be one of many kinds of
2836	// charts.
2837	// See BasicChartType for the list of all
2838	// charts this supports.
2839	BasicChart *BasicChartSpec `json:"basicChart,omitempty"`
2840
2841	// BubbleChart: A bubble chart specification.
2842	BubbleChart *BubbleChartSpec `json:"bubbleChart,omitempty"`
2843
2844	// CandlestickChart: A candlestick chart specification.
2845	CandlestickChart *CandlestickChartSpec `json:"candlestickChart,omitempty"`
2846
2847	// FontName: The name of the font to use by default for all chart text
2848	// (e.g. title,
2849	// axis labels, legend).  If a font is specified for a specific part of
2850	// the
2851	// chart it will override this font name.
2852	FontName string `json:"fontName,omitempty"`
2853
2854	// HiddenDimensionStrategy: Determines how the charts will use hidden
2855	// rows or columns.
2856	//
2857	// Possible values:
2858	//   "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED" - Default value, do
2859	// not use.
2860	//   "SKIP_HIDDEN_ROWS_AND_COLUMNS" - Charts will skip hidden rows and
2861	// columns.
2862	//   "SKIP_HIDDEN_ROWS" - Charts will skip hidden rows only.
2863	//   "SKIP_HIDDEN_COLUMNS" - Charts will skip hidden columns only.
2864	//   "SHOW_ALL" - Charts will not skip any hidden rows or columns.
2865	HiddenDimensionStrategy string `json:"hiddenDimensionStrategy,omitempty"`
2866
2867	// HistogramChart: A histogram chart specification.
2868	HistogramChart *HistogramChartSpec `json:"histogramChart,omitempty"`
2869
2870	// Maximized: True to make a chart fill the entire space in which it's
2871	// rendered with
2872	// minimum padding.  False to use the default padding.
2873	// (Not applicable to Geo and Org charts.)
2874	Maximized bool `json:"maximized,omitempty"`
2875
2876	// OrgChart: An org chart specification.
2877	OrgChart *OrgChartSpec `json:"orgChart,omitempty"`
2878
2879	// PieChart: A pie chart specification.
2880	PieChart *PieChartSpec `json:"pieChart,omitempty"`
2881
2882	// Subtitle: The subtitle of the chart.
2883	Subtitle string `json:"subtitle,omitempty"`
2884
2885	// SubtitleTextFormat: The subtitle text format.
2886	// Strikethrough and underline are not supported.
2887	SubtitleTextFormat *TextFormat `json:"subtitleTextFormat,omitempty"`
2888
2889	// SubtitleTextPosition: The subtitle text position.
2890	// This field is optional.
2891	SubtitleTextPosition *TextPosition `json:"subtitleTextPosition,omitempty"`
2892
2893	// Title: The title of the chart.
2894	Title string `json:"title,omitempty"`
2895
2896	// TitleTextFormat: The title text format.
2897	// Strikethrough and underline are not supported.
2898	TitleTextFormat *TextFormat `json:"titleTextFormat,omitempty"`
2899
2900	// TitleTextPosition: The title text position.
2901	// This field is optional.
2902	TitleTextPosition *TextPosition `json:"titleTextPosition,omitempty"`
2903
2904	// TreemapChart: A treemap chart specification.
2905	TreemapChart *TreemapChartSpec `json:"treemapChart,omitempty"`
2906
2907	// WaterfallChart: A waterfall chart specification.
2908	WaterfallChart *WaterfallChartSpec `json:"waterfallChart,omitempty"`
2909
2910	// ForceSendFields is a list of field names (e.g. "AltText") to
2911	// unconditionally include in API requests. By default, fields with
2912	// empty values are omitted from API requests. However, any non-pointer,
2913	// non-interface field appearing in ForceSendFields will be sent to the
2914	// server regardless of whether the field is empty or not. This may be
2915	// used to include empty fields in Patch requests.
2916	ForceSendFields []string `json:"-"`
2917
2918	// NullFields is a list of field names (e.g. "AltText") to include in
2919	// API requests with the JSON null value. By default, fields with empty
2920	// values are omitted from API requests. However, any field with an
2921	// empty value appearing in NullFields will be sent to the server as
2922	// null. It is an error if a field in this list has a non-empty value.
2923	// This may be used to include null fields in Patch requests.
2924	NullFields []string `json:"-"`
2925}
2926
2927func (s *ChartSpec) MarshalJSON() ([]byte, error) {
2928	type NoMethod ChartSpec
2929	raw := NoMethod(*s)
2930	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2931}
2932
2933// ClearBasicFilterRequest: Clears the basic filter, if any exists on
2934// the sheet.
2935type ClearBasicFilterRequest struct {
2936	// SheetId: The sheet ID on which the basic filter should be cleared.
2937	SheetId int64 `json:"sheetId,omitempty"`
2938
2939	// ForceSendFields is a list of field names (e.g. "SheetId") to
2940	// unconditionally include in API requests. By default, fields with
2941	// empty values are omitted from API requests. However, any non-pointer,
2942	// non-interface field appearing in ForceSendFields will be sent to the
2943	// server regardless of whether the field is empty or not. This may be
2944	// used to include empty fields in Patch requests.
2945	ForceSendFields []string `json:"-"`
2946
2947	// NullFields is a list of field names (e.g. "SheetId") to include in
2948	// API requests with the JSON null value. By default, fields with empty
2949	// values are omitted from API requests. However, any field with an
2950	// empty value appearing in NullFields will be sent to the server as
2951	// null. It is an error if a field in this list has a non-empty value.
2952	// This may be used to include null fields in Patch requests.
2953	NullFields []string `json:"-"`
2954}
2955
2956func (s *ClearBasicFilterRequest) MarshalJSON() ([]byte, error) {
2957	type NoMethod ClearBasicFilterRequest
2958	raw := NoMethod(*s)
2959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2960}
2961
2962// ClearValuesRequest: The request for clearing a range of values in a
2963// spreadsheet.
2964type ClearValuesRequest struct {
2965}
2966
2967// ClearValuesResponse: The response when clearing a range of values in
2968// a spreadsheet.
2969type ClearValuesResponse struct {
2970	// ClearedRange: The range (in A1 notation) that was cleared.
2971	// (If the request was for an unbounded range or a ranger larger
2972	//  than the bounds of the sheet, this will be the actual range
2973	//  that was cleared, bounded to the sheet's limits.)
2974	ClearedRange string `json:"clearedRange,omitempty"`
2975
2976	// SpreadsheetId: The spreadsheet the updates were applied to.
2977	SpreadsheetId string `json:"spreadsheetId,omitempty"`
2978
2979	// ServerResponse contains the HTTP response code and headers from the
2980	// server.
2981	googleapi.ServerResponse `json:"-"`
2982
2983	// ForceSendFields is a list of field names (e.g. "ClearedRange") to
2984	// unconditionally include in API requests. By default, fields with
2985	// empty values are omitted from API requests. However, any non-pointer,
2986	// non-interface field appearing in ForceSendFields will be sent to the
2987	// server regardless of whether the field is empty or not. This may be
2988	// used to include empty fields in Patch requests.
2989	ForceSendFields []string `json:"-"`
2990
2991	// NullFields is a list of field names (e.g. "ClearedRange") to include
2992	// in API requests with the JSON null value. By default, fields with
2993	// empty values are omitted from API requests. However, any field with
2994	// an empty value appearing in NullFields will be sent to the server as
2995	// null. It is an error if a field in this list has a non-empty value.
2996	// This may be used to include null fields in Patch requests.
2997	NullFields []string `json:"-"`
2998}
2999
3000func (s *ClearValuesResponse) MarshalJSON() ([]byte, error) {
3001	type NoMethod ClearValuesResponse
3002	raw := NoMethod(*s)
3003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3004}
3005
3006// Color: Represents a color in the RGBA color space. This
3007// representation is designed
3008// for simplicity of conversion to/from color representations in
3009// various
3010// languages over compactness; for example, the fields of this
3011// representation
3012// can be trivially provided to the constructor of "java.awt.Color" in
3013// Java; it
3014// can also be trivially provided to UIColor's
3015// "+colorWithRed:green:blue:alpha"
3016// method in iOS; and, with just a little work, it can be easily
3017// formatted into
3018// a CSS "rgba()" string in JavaScript, as well. Here are some
3019// examples:
3020//
3021// Example (Java):
3022//
3023//      import com.google.type.Color;
3024//
3025//      // ...
3026//      public static java.awt.Color fromProto(Color protocolor) {
3027//        float alpha = protocolor.hasAlpha()
3028//            ? protocolor.getAlpha().getValue()
3029//            : 1.0;
3030//
3031//        return new java.awt.Color(
3032//            protocolor.getRed(),
3033//            protocolor.getGreen(),
3034//            protocolor.getBlue(),
3035//            alpha);
3036//      }
3037//
3038//      public static Color toProto(java.awt.Color color) {
3039//        float red = (float) color.getRed();
3040//        float green = (float) color.getGreen();
3041//        float blue = (float) color.getBlue();
3042//        float denominator = 255.0;
3043//        Color.Builder resultBuilder =
3044//            Color
3045//                .newBuilder()
3046//                .setRed(red / denominator)
3047//                .setGreen(green / denominator)
3048//                .setBlue(blue / denominator);
3049//        int alpha = color.getAlpha();
3050//        if (alpha != 255) {
3051//          result.setAlpha(
3052//              FloatValue
3053//                  .newBuilder()
3054//                  .setValue(((float) alpha) / denominator)
3055//                  .build());
3056//        }
3057//        return resultBuilder.build();
3058//      }
3059//      // ...
3060//
3061// Example (iOS / Obj-C):
3062//
3063//      // ...
3064//      static UIColor* fromProto(Color* protocolor) {
3065//         float red = [protocolor red];
3066//         float green = [protocolor green];
3067//         float blue = [protocolor blue];
3068//         FloatValue* alpha_wrapper = [protocolor alpha];
3069//         float alpha = 1.0;
3070//         if (alpha_wrapper != nil) {
3071//           alpha = [alpha_wrapper value];
3072//         }
3073//         return [UIColor colorWithRed:red green:green blue:blue
3074// alpha:alpha];
3075//      }
3076//
3077//      static Color* toProto(UIColor* color) {
3078//          CGFloat red, green, blue, alpha;
3079//          if (![color getRed:&red green:&green blue:&blue
3080// alpha:&alpha]) {
3081//            return nil;
3082//          }
3083//          Color* result = [Color alloc] init];
3084//          [result setRed:red];
3085//          [result setGreen:green];
3086//          [result setBlue:blue];
3087//          if (alpha <= 0.9999) {
3088//            [result setAlpha:floatWrapperWithValue(alpha)];
3089//          }
3090//          [result autorelease];
3091//          return result;
3092//     }
3093//     // ...
3094//
3095//  Example (JavaScript):
3096//
3097//     // ...
3098//
3099//     var protoToCssColor = function(rgb_color) {
3100//        var redFrac = rgb_color.red || 0.0;
3101//        var greenFrac = rgb_color.green || 0.0;
3102//        var blueFrac = rgb_color.blue || 0.0;
3103//        var red = Math.floor(redFrac * 255);
3104//        var green = Math.floor(greenFrac * 255);
3105//        var blue = Math.floor(blueFrac * 255);
3106//
3107//        if (!('alpha' in rgb_color)) {
3108//           return rgbToCssColor_(red, green, blue);
3109//        }
3110//
3111//        var alphaFrac = rgb_color.alpha.value || 0.0;
3112//        var rgbParams = [red, green, blue].join(',');
3113//        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
3114//     };
3115//
3116//     var rgbToCssColor_ = function(red, green, blue) {
3117//       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
3118//       var hexString = rgbNumber.toString(16);
3119//       var missingZeros = 6 - hexString.length;
3120//       var resultBuilder = ['#'];
3121//       for (var i = 0; i < missingZeros; i++) {
3122//          resultBuilder.push('0');
3123//       }
3124//       resultBuilder.push(hexString);
3125//       return resultBuilder.join('');
3126//     };
3127//
3128//     // ...
3129type Color struct {
3130	// Alpha: The fraction of this color that should be applied to the
3131	// pixel. That is,
3132	// the final pixel color is defined by the equation:
3133	//
3134	//   pixel color = alpha * (this color) + (1.0 - alpha) * (background
3135	// color)
3136	//
3137	// This means that a value of 1.0 corresponds to a solid color,
3138	// whereas
3139	// a value of 0.0 corresponds to a completely transparent color.
3140	// This
3141	// uses a wrapper message rather than a simple float scalar so that it
3142	// is
3143	// possible to distinguish between a default value and the value being
3144	// unset.
3145	// If omitted, this color object is to be rendered as a solid color
3146	// (as if the alpha value had been explicitly given with a value of
3147	// 1.0).
3148	Alpha float64 `json:"alpha,omitempty"`
3149
3150	// Blue: The amount of blue in the color as a value in the interval [0,
3151	// 1].
3152	Blue float64 `json:"blue,omitempty"`
3153
3154	// Green: The amount of green in the color as a value in the interval
3155	// [0, 1].
3156	Green float64 `json:"green,omitempty"`
3157
3158	// Red: The amount of red in the color as a value in the interval [0,
3159	// 1].
3160	Red float64 `json:"red,omitempty"`
3161
3162	// ForceSendFields is a list of field names (e.g. "Alpha") to
3163	// unconditionally include in API requests. By default, fields with
3164	// empty values are omitted from API requests. However, any non-pointer,
3165	// non-interface field appearing in ForceSendFields will be sent to the
3166	// server regardless of whether the field is empty or not. This may be
3167	// used to include empty fields in Patch requests.
3168	ForceSendFields []string `json:"-"`
3169
3170	// NullFields is a list of field names (e.g. "Alpha") to include in API
3171	// requests with the JSON null value. By default, fields with empty
3172	// values are omitted from API requests. However, any field with an
3173	// empty value appearing in NullFields will be sent to the server as
3174	// null. It is an error if a field in this list has a non-empty value.
3175	// This may be used to include null fields in Patch requests.
3176	NullFields []string `json:"-"`
3177}
3178
3179func (s *Color) MarshalJSON() ([]byte, error) {
3180	type NoMethod Color
3181	raw := NoMethod(*s)
3182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3183}
3184
3185func (s *Color) UnmarshalJSON(data []byte) error {
3186	type NoMethod Color
3187	var s1 struct {
3188		Alpha gensupport.JSONFloat64 `json:"alpha"`
3189		Blue  gensupport.JSONFloat64 `json:"blue"`
3190		Green gensupport.JSONFloat64 `json:"green"`
3191		Red   gensupport.JSONFloat64 `json:"red"`
3192		*NoMethod
3193	}
3194	s1.NoMethod = (*NoMethod)(s)
3195	if err := json.Unmarshal(data, &s1); err != nil {
3196		return err
3197	}
3198	s.Alpha = float64(s1.Alpha)
3199	s.Blue = float64(s1.Blue)
3200	s.Green = float64(s1.Green)
3201	s.Red = float64(s1.Red)
3202	return nil
3203}
3204
3205// ConditionValue: The value of the condition.
3206type ConditionValue struct {
3207	// RelativeDate: A relative date (based on the current date).
3208	// Valid only if the type is
3209	// DATE_BEFORE,
3210	// DATE_AFTER,
3211	// DATE_ON_OR_BEFORE or
3212	// DATE_ON_OR_AFTER.
3213	//
3214	// Relative dates are not supported in data validation.
3215	// They are supported only in conditional formatting and
3216	// conditional filters.
3217	//
3218	// Possible values:
3219	//   "RELATIVE_DATE_UNSPECIFIED" - Default value, do not use.
3220	//   "PAST_YEAR" - The value is one year before today.
3221	//   "PAST_MONTH" - The value is one month before today.
3222	//   "PAST_WEEK" - The value is one week before today.
3223	//   "YESTERDAY" - The value is yesterday.
3224	//   "TODAY" - The value is today.
3225	//   "TOMORROW" - The value is tomorrow.
3226	RelativeDate string `json:"relativeDate,omitempty"`
3227
3228	// UserEnteredValue: A value the condition is based on.
3229	// The value will be parsed as if the user typed into a cell.
3230	// Formulas are supported (and must begin with an `=` or a '+').
3231	UserEnteredValue string `json:"userEnteredValue,omitempty"`
3232
3233	// ForceSendFields is a list of field names (e.g. "RelativeDate") to
3234	// unconditionally include in API requests. By default, fields with
3235	// empty values are omitted from API requests. However, any non-pointer,
3236	// non-interface field appearing in ForceSendFields will be sent to the
3237	// server regardless of whether the field is empty or not. This may be
3238	// used to include empty fields in Patch requests.
3239	ForceSendFields []string `json:"-"`
3240
3241	// NullFields is a list of field names (e.g. "RelativeDate") to include
3242	// in API requests with the JSON null value. By default, fields with
3243	// empty values are omitted from API requests. However, any field with
3244	// an empty value appearing in NullFields will be sent to the server as
3245	// null. It is an error if a field in this list has a non-empty value.
3246	// This may be used to include null fields in Patch requests.
3247	NullFields []string `json:"-"`
3248}
3249
3250func (s *ConditionValue) MarshalJSON() ([]byte, error) {
3251	type NoMethod ConditionValue
3252	raw := NoMethod(*s)
3253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3254}
3255
3256// ConditionalFormatRule: A rule describing a conditional format.
3257type ConditionalFormatRule struct {
3258	// BooleanRule: The formatting is either "on" or "off" according to the
3259	// rule.
3260	BooleanRule *BooleanRule `json:"booleanRule,omitempty"`
3261
3262	// GradientRule: The formatting will vary based on the gradients in the
3263	// rule.
3264	GradientRule *GradientRule `json:"gradientRule,omitempty"`
3265
3266	// Ranges: The ranges that will be formatted if the condition is
3267	// true.
3268	// All the ranges must be on the same grid.
3269	Ranges []*GridRange `json:"ranges,omitempty"`
3270
3271	// ForceSendFields is a list of field names (e.g. "BooleanRule") to
3272	// unconditionally include in API requests. By default, fields with
3273	// empty values are omitted from API requests. However, any non-pointer,
3274	// non-interface field appearing in ForceSendFields will be sent to the
3275	// server regardless of whether the field is empty or not. This may be
3276	// used to include empty fields in Patch requests.
3277	ForceSendFields []string `json:"-"`
3278
3279	// NullFields is a list of field names (e.g. "BooleanRule") to include
3280	// in API requests with the JSON null value. By default, fields with
3281	// empty values are omitted from API requests. However, any field with
3282	// an empty value appearing in NullFields will be sent to the server as
3283	// null. It is an error if a field in this list has a non-empty value.
3284	// This may be used to include null fields in Patch requests.
3285	NullFields []string `json:"-"`
3286}
3287
3288func (s *ConditionalFormatRule) MarshalJSON() ([]byte, error) {
3289	type NoMethod ConditionalFormatRule
3290	raw := NoMethod(*s)
3291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3292}
3293
3294// CopyPasteRequest: Copies data from the source to the destination.
3295type CopyPasteRequest struct {
3296	// Destination: The location to paste to. If the range covers a span
3297	// that's
3298	// a multiple of the source's height or width, then the
3299	// data will be repeated to fill in the destination range.
3300	// If the range is smaller than the source range, the entire
3301	// source data will still be copied (beyond the end of the destination
3302	// range).
3303	Destination *GridRange `json:"destination,omitempty"`
3304
3305	// PasteOrientation: How that data should be oriented when pasting.
3306	//
3307	// Possible values:
3308	//   "NORMAL" - Paste normally.
3309	//   "TRANSPOSE" - Paste transposed, where all rows become columns and
3310	// vice versa.
3311	PasteOrientation string `json:"pasteOrientation,omitempty"`
3312
3313	// PasteType: What kind of data to paste.
3314	//
3315	// Possible values:
3316	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
3317	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
3318	// or merges.
3319	//   "PASTE_FORMAT" - Paste the format and data validation only.
3320	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
3321	//   "PASTE_FORMULA" - Paste the formulas only.
3322	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
3323	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
3324	// rules only.
3325	PasteType string `json:"pasteType,omitempty"`
3326
3327	// Source: The source range to copy.
3328	Source *GridRange `json:"source,omitempty"`
3329
3330	// ForceSendFields is a list of field names (e.g. "Destination") to
3331	// unconditionally include in API requests. By default, fields with
3332	// empty values are omitted from API requests. However, any non-pointer,
3333	// non-interface field appearing in ForceSendFields will be sent to the
3334	// server regardless of whether the field is empty or not. This may be
3335	// used to include empty fields in Patch requests.
3336	ForceSendFields []string `json:"-"`
3337
3338	// NullFields is a list of field names (e.g. "Destination") to include
3339	// in API requests with the JSON null value. By default, fields with
3340	// empty values are omitted from API requests. However, any field with
3341	// an empty value appearing in NullFields will be sent to the server as
3342	// null. It is an error if a field in this list has a non-empty value.
3343	// This may be used to include null fields in Patch requests.
3344	NullFields []string `json:"-"`
3345}
3346
3347func (s *CopyPasteRequest) MarshalJSON() ([]byte, error) {
3348	type NoMethod CopyPasteRequest
3349	raw := NoMethod(*s)
3350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3351}
3352
3353// CopySheetToAnotherSpreadsheetRequest: The request to copy a sheet
3354// across spreadsheets.
3355type CopySheetToAnotherSpreadsheetRequest struct {
3356	// DestinationSpreadsheetId: The ID of the spreadsheet to copy the sheet
3357	// to.
3358	DestinationSpreadsheetId string `json:"destinationSpreadsheetId,omitempty"`
3359
3360	// ForceSendFields is a list of field names (e.g.
3361	// "DestinationSpreadsheetId") to unconditionally include in API
3362	// requests. By default, fields with empty values are omitted from API
3363	// requests. However, any non-pointer, non-interface field appearing in
3364	// ForceSendFields will be sent to the server regardless of whether the
3365	// field is empty or not. This may be used to include empty fields in
3366	// Patch requests.
3367	ForceSendFields []string `json:"-"`
3368
3369	// NullFields is a list of field names (e.g. "DestinationSpreadsheetId")
3370	// to include in API requests with the JSON null value. By default,
3371	// fields with empty values are omitted from API requests. However, any
3372	// field with an empty value appearing in NullFields will be sent to the
3373	// server as null. It is an error if a field in this list has a
3374	// non-empty value. This may be used to include null fields in Patch
3375	// requests.
3376	NullFields []string `json:"-"`
3377}
3378
3379func (s *CopySheetToAnotherSpreadsheetRequest) MarshalJSON() ([]byte, error) {
3380	type NoMethod CopySheetToAnotherSpreadsheetRequest
3381	raw := NoMethod(*s)
3382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3383}
3384
3385// CreateDeveloperMetadataRequest: A request to create developer
3386// metadata.
3387type CreateDeveloperMetadataRequest struct {
3388	// DeveloperMetadata: The developer metadata to create.
3389	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
3390
3391	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
3392	// to unconditionally include in API requests. By default, fields with
3393	// empty values are omitted from API requests. However, any non-pointer,
3394	// non-interface field appearing in ForceSendFields will be sent to the
3395	// server regardless of whether the field is empty or not. This may be
3396	// used to include empty fields in Patch requests.
3397	ForceSendFields []string `json:"-"`
3398
3399	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
3400	// include in API requests with the JSON null value. By default, fields
3401	// with empty values are omitted from API requests. However, any field
3402	// with an empty value appearing in NullFields will be sent to the
3403	// server as null. It is an error if a field in this list has a
3404	// non-empty value. This may be used to include null fields in Patch
3405	// requests.
3406	NullFields []string `json:"-"`
3407}
3408
3409func (s *CreateDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
3410	type NoMethod CreateDeveloperMetadataRequest
3411	raw := NoMethod(*s)
3412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3413}
3414
3415// CreateDeveloperMetadataResponse: The response from creating developer
3416// metadata.
3417type CreateDeveloperMetadataResponse struct {
3418	// DeveloperMetadata: The developer metadata that was created.
3419	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
3420
3421	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
3422	// to unconditionally include in API requests. By default, fields with
3423	// empty values are omitted from API requests. However, any non-pointer,
3424	// non-interface field appearing in ForceSendFields will be sent to the
3425	// server regardless of whether the field is empty or not. This may be
3426	// used to include empty fields in Patch requests.
3427	ForceSendFields []string `json:"-"`
3428
3429	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
3430	// include in API requests with the JSON null value. By default, fields
3431	// with empty values are omitted from API requests. However, any field
3432	// with an empty value appearing in NullFields will be sent to the
3433	// server as null. It is an error if a field in this list has a
3434	// non-empty value. This may be used to include null fields in Patch
3435	// requests.
3436	NullFields []string `json:"-"`
3437}
3438
3439func (s *CreateDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
3440	type NoMethod CreateDeveloperMetadataResponse
3441	raw := NoMethod(*s)
3442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3443}
3444
3445// CutPasteRequest: Moves data from the source to the destination.
3446type CutPasteRequest struct {
3447	// Destination: The top-left coordinate where the data should be pasted.
3448	Destination *GridCoordinate `json:"destination,omitempty"`
3449
3450	// PasteType: What kind of data to paste.  All the source data will be
3451	// cut, regardless
3452	// of what is pasted.
3453	//
3454	// Possible values:
3455	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
3456	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
3457	// or merges.
3458	//   "PASTE_FORMAT" - Paste the format and data validation only.
3459	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
3460	//   "PASTE_FORMULA" - Paste the formulas only.
3461	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
3462	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
3463	// rules only.
3464	PasteType string `json:"pasteType,omitempty"`
3465
3466	// Source: The source data to cut.
3467	Source *GridRange `json:"source,omitempty"`
3468
3469	// ForceSendFields is a list of field names (e.g. "Destination") to
3470	// unconditionally include in API requests. By default, fields with
3471	// empty values are omitted from API requests. However, any non-pointer,
3472	// non-interface field appearing in ForceSendFields will be sent to the
3473	// server regardless of whether the field is empty or not. This may be
3474	// used to include empty fields in Patch requests.
3475	ForceSendFields []string `json:"-"`
3476
3477	// NullFields is a list of field names (e.g. "Destination") to include
3478	// in API requests with the JSON null value. By default, fields with
3479	// empty values are omitted from API requests. However, any field with
3480	// an empty value appearing in NullFields will be sent to the server as
3481	// null. It is an error if a field in this list has a non-empty value.
3482	// This may be used to include null fields in Patch requests.
3483	NullFields []string `json:"-"`
3484}
3485
3486func (s *CutPasteRequest) MarshalJSON() ([]byte, error) {
3487	type NoMethod CutPasteRequest
3488	raw := NoMethod(*s)
3489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3490}
3491
3492// DataFilter: Filter that describes what data should be selected or
3493// returned from a
3494// request.
3495type DataFilter struct {
3496	// A1Range: Selects data that matches the specified A1 range.
3497	A1Range string `json:"a1Range,omitempty"`
3498
3499	// DeveloperMetadataLookup: Selects data associated with the developer
3500	// metadata matching the criteria
3501	// described by this DeveloperMetadataLookup.
3502	DeveloperMetadataLookup *DeveloperMetadataLookup `json:"developerMetadataLookup,omitempty"`
3503
3504	// GridRange: Selects data that matches the range described by the
3505	// GridRange.
3506	GridRange *GridRange `json:"gridRange,omitempty"`
3507
3508	// ForceSendFields is a list of field names (e.g. "A1Range") to
3509	// unconditionally include in API requests. By default, fields with
3510	// empty values are omitted from API requests. However, any non-pointer,
3511	// non-interface field appearing in ForceSendFields will be sent to the
3512	// server regardless of whether the field is empty or not. This may be
3513	// used to include empty fields in Patch requests.
3514	ForceSendFields []string `json:"-"`
3515
3516	// NullFields is a list of field names (e.g. "A1Range") to include in
3517	// API requests with the JSON null value. By default, fields with empty
3518	// values are omitted from API requests. However, any field with an
3519	// empty value appearing in NullFields will be sent to the server as
3520	// null. It is an error if a field in this list has a non-empty value.
3521	// This may be used to include null fields in Patch requests.
3522	NullFields []string `json:"-"`
3523}
3524
3525func (s *DataFilter) MarshalJSON() ([]byte, error) {
3526	type NoMethod DataFilter
3527	raw := NoMethod(*s)
3528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3529}
3530
3531// DataFilterValueRange: A range of values whose location is specified
3532// by a DataFilter.
3533type DataFilterValueRange struct {
3534	// DataFilter: The data filter describing the location of the values in
3535	// the spreadsheet.
3536	DataFilter *DataFilter `json:"dataFilter,omitempty"`
3537
3538	// MajorDimension: The major dimension of the values.
3539	//
3540	// Possible values:
3541	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
3542	//   "ROWS" - Operates on the rows of a sheet.
3543	//   "COLUMNS" - Operates on the columns of a sheet.
3544	MajorDimension string `json:"majorDimension,omitempty"`
3545
3546	// Values: The data to be written.  If the provided values exceed any of
3547	// the ranges
3548	// matched by the data filter then the request will fail.  If the
3549	// provided
3550	// values are less than the matched ranges only the specified values
3551	// will be
3552	// written, existing values in the matched ranges will remain
3553	// unaffected.
3554	Values [][]interface{} `json:"values,omitempty"`
3555
3556	// ForceSendFields is a list of field names (e.g. "DataFilter") to
3557	// unconditionally include in API requests. By default, fields with
3558	// empty values are omitted from API requests. However, any non-pointer,
3559	// non-interface field appearing in ForceSendFields will be sent to the
3560	// server regardless of whether the field is empty or not. This may be
3561	// used to include empty fields in Patch requests.
3562	ForceSendFields []string `json:"-"`
3563
3564	// NullFields is a list of field names (e.g. "DataFilter") to include in
3565	// API requests with the JSON null value. By default, fields with empty
3566	// values are omitted from API requests. However, any field with an
3567	// empty value appearing in NullFields will be sent to the server as
3568	// null. It is an error if a field in this list has a non-empty value.
3569	// This may be used to include null fields in Patch requests.
3570	NullFields []string `json:"-"`
3571}
3572
3573func (s *DataFilterValueRange) MarshalJSON() ([]byte, error) {
3574	type NoMethod DataFilterValueRange
3575	raw := NoMethod(*s)
3576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3577}
3578
3579// DataValidationRule: A data validation rule.
3580type DataValidationRule struct {
3581	// Condition: The condition that data in the cell must match.
3582	Condition *BooleanCondition `json:"condition,omitempty"`
3583
3584	// InputMessage: A message to show the user when adding data to the
3585	// cell.
3586	InputMessage string `json:"inputMessage,omitempty"`
3587
3588	// ShowCustomUi: True if the UI should be customized based on the kind
3589	// of condition.
3590	// If true, "List" conditions will show a dropdown.
3591	ShowCustomUi bool `json:"showCustomUi,omitempty"`
3592
3593	// Strict: True if invalid data should be rejected.
3594	Strict bool `json:"strict,omitempty"`
3595
3596	// ForceSendFields is a list of field names (e.g. "Condition") to
3597	// unconditionally include in API requests. By default, fields with
3598	// empty values are omitted from API requests. However, any non-pointer,
3599	// non-interface field appearing in ForceSendFields will be sent to the
3600	// server regardless of whether the field is empty or not. This may be
3601	// used to include empty fields in Patch requests.
3602	ForceSendFields []string `json:"-"`
3603
3604	// NullFields is a list of field names (e.g. "Condition") to include in
3605	// API requests with the JSON null value. By default, fields with empty
3606	// values are omitted from API requests. However, any field with an
3607	// empty value appearing in NullFields will be sent to the server as
3608	// null. It is an error if a field in this list has a non-empty value.
3609	// This may be used to include null fields in Patch requests.
3610	NullFields []string `json:"-"`
3611}
3612
3613func (s *DataValidationRule) MarshalJSON() ([]byte, error) {
3614	type NoMethod DataValidationRule
3615	raw := NoMethod(*s)
3616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3617}
3618
3619// DeleteBandingRequest: Removes the banded range with the given ID from
3620// the spreadsheet.
3621type DeleteBandingRequest struct {
3622	// BandedRangeId: The ID of the banded range to delete.
3623	BandedRangeId int64 `json:"bandedRangeId,omitempty"`
3624
3625	// ForceSendFields is a list of field names (e.g. "BandedRangeId") to
3626	// unconditionally include in API requests. By default, fields with
3627	// empty values are omitted from API requests. However, any non-pointer,
3628	// non-interface field appearing in ForceSendFields will be sent to the
3629	// server regardless of whether the field is empty or not. This may be
3630	// used to include empty fields in Patch requests.
3631	ForceSendFields []string `json:"-"`
3632
3633	// NullFields is a list of field names (e.g. "BandedRangeId") to include
3634	// in API requests with the JSON null value. By default, fields with
3635	// empty values are omitted from API requests. However, any field with
3636	// an empty value appearing in NullFields will be sent to the server as
3637	// null. It is an error if a field in this list has a non-empty value.
3638	// This may be used to include null fields in Patch requests.
3639	NullFields []string `json:"-"`
3640}
3641
3642func (s *DeleteBandingRequest) MarshalJSON() ([]byte, error) {
3643	type NoMethod DeleteBandingRequest
3644	raw := NoMethod(*s)
3645	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3646}
3647
3648// DeleteConditionalFormatRuleRequest: Deletes a conditional format rule
3649// at the given index.
3650// All subsequent rules' indexes are decremented.
3651type DeleteConditionalFormatRuleRequest struct {
3652	// Index: The zero-based index of the rule to be deleted.
3653	Index int64 `json:"index,omitempty"`
3654
3655	// SheetId: The sheet the rule is being deleted from.
3656	SheetId int64 `json:"sheetId,omitempty"`
3657
3658	// ForceSendFields is a list of field names (e.g. "Index") to
3659	// unconditionally include in API requests. By default, fields with
3660	// empty values are omitted from API requests. However, any non-pointer,
3661	// non-interface field appearing in ForceSendFields will be sent to the
3662	// server regardless of whether the field is empty or not. This may be
3663	// used to include empty fields in Patch requests.
3664	ForceSendFields []string `json:"-"`
3665
3666	// NullFields is a list of field names (e.g. "Index") to include in API
3667	// requests with the JSON null value. By default, fields with empty
3668	// values are omitted from API requests. However, any field with an
3669	// empty value appearing in NullFields will be sent to the server as
3670	// null. It is an error if a field in this list has a non-empty value.
3671	// This may be used to include null fields in Patch requests.
3672	NullFields []string `json:"-"`
3673}
3674
3675func (s *DeleteConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
3676	type NoMethod DeleteConditionalFormatRuleRequest
3677	raw := NoMethod(*s)
3678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3679}
3680
3681// DeleteConditionalFormatRuleResponse: The result of deleting a
3682// conditional format rule.
3683type DeleteConditionalFormatRuleResponse struct {
3684	// Rule: The rule that was deleted.
3685	Rule *ConditionalFormatRule `json:"rule,omitempty"`
3686
3687	// ForceSendFields is a list of field names (e.g. "Rule") to
3688	// unconditionally include in API requests. By default, fields with
3689	// empty values are omitted from API requests. However, any non-pointer,
3690	// non-interface field appearing in ForceSendFields will be sent to the
3691	// server regardless of whether the field is empty or not. This may be
3692	// used to include empty fields in Patch requests.
3693	ForceSendFields []string `json:"-"`
3694
3695	// NullFields is a list of field names (e.g. "Rule") to include in API
3696	// requests with the JSON null value. By default, fields with empty
3697	// values are omitted from API requests. However, any field with an
3698	// empty value appearing in NullFields will be sent to the server as
3699	// null. It is an error if a field in this list has a non-empty value.
3700	// This may be used to include null fields in Patch requests.
3701	NullFields []string `json:"-"`
3702}
3703
3704func (s *DeleteConditionalFormatRuleResponse) MarshalJSON() ([]byte, error) {
3705	type NoMethod DeleteConditionalFormatRuleResponse
3706	raw := NoMethod(*s)
3707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3708}
3709
3710// DeleteDeveloperMetadataRequest: A request to delete developer
3711// metadata.
3712type DeleteDeveloperMetadataRequest struct {
3713	// DataFilter: The data filter describing the criteria used to select
3714	// which developer
3715	// metadata entry to delete.
3716	DataFilter *DataFilter `json:"dataFilter,omitempty"`
3717
3718	// ForceSendFields is a list of field names (e.g. "DataFilter") to
3719	// unconditionally include in API requests. By default, fields with
3720	// empty values are omitted from API requests. However, any non-pointer,
3721	// non-interface field appearing in ForceSendFields will be sent to the
3722	// server regardless of whether the field is empty or not. This may be
3723	// used to include empty fields in Patch requests.
3724	ForceSendFields []string `json:"-"`
3725
3726	// NullFields is a list of field names (e.g. "DataFilter") to include in
3727	// API requests with the JSON null value. By default, fields with empty
3728	// values are omitted from API requests. However, any field with an
3729	// empty value appearing in NullFields will be sent to the server as
3730	// null. It is an error if a field in this list has a non-empty value.
3731	// This may be used to include null fields in Patch requests.
3732	NullFields []string `json:"-"`
3733}
3734
3735func (s *DeleteDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
3736	type NoMethod DeleteDeveloperMetadataRequest
3737	raw := NoMethod(*s)
3738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3739}
3740
3741// DeleteDeveloperMetadataResponse: The response from deleting developer
3742// metadata.
3743type DeleteDeveloperMetadataResponse struct {
3744	// DeletedDeveloperMetadata: The metadata that was deleted.
3745	DeletedDeveloperMetadata []*DeveloperMetadata `json:"deletedDeveloperMetadata,omitempty"`
3746
3747	// ForceSendFields is a list of field names (e.g.
3748	// "DeletedDeveloperMetadata") to unconditionally include in API
3749	// requests. By default, fields with empty values are omitted from API
3750	// requests. However, any non-pointer, non-interface field appearing in
3751	// ForceSendFields will be sent to the server regardless of whether the
3752	// field is empty or not. This may be used to include empty fields in
3753	// Patch requests.
3754	ForceSendFields []string `json:"-"`
3755
3756	// NullFields is a list of field names (e.g. "DeletedDeveloperMetadata")
3757	// to include in API requests with the JSON null value. By default,
3758	// fields with empty values are omitted from API requests. However, any
3759	// field with an empty value appearing in NullFields will be sent to the
3760	// server as null. It is an error if a field in this list has a
3761	// non-empty value. This may be used to include null fields in Patch
3762	// requests.
3763	NullFields []string `json:"-"`
3764}
3765
3766func (s *DeleteDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
3767	type NoMethod DeleteDeveloperMetadataResponse
3768	raw := NoMethod(*s)
3769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3770}
3771
3772// DeleteDimensionRequest: Deletes the dimensions from the sheet.
3773type DeleteDimensionRequest struct {
3774	// Range: The dimensions to delete from the sheet.
3775	Range *DimensionRange `json:"range,omitempty"`
3776
3777	// ForceSendFields is a list of field names (e.g. "Range") to
3778	// unconditionally include in API requests. By default, fields with
3779	// empty values are omitted from API requests. However, any non-pointer,
3780	// non-interface field appearing in ForceSendFields will be sent to the
3781	// server regardless of whether the field is empty or not. This may be
3782	// used to include empty fields in Patch requests.
3783	ForceSendFields []string `json:"-"`
3784
3785	// NullFields is a list of field names (e.g. "Range") to include in API
3786	// requests with the JSON null value. By default, fields with empty
3787	// values are omitted from API requests. However, any field with an
3788	// empty value appearing in NullFields will be sent to the server as
3789	// null. It is an error if a field in this list has a non-empty value.
3790	// This may be used to include null fields in Patch requests.
3791	NullFields []string `json:"-"`
3792}
3793
3794func (s *DeleteDimensionRequest) MarshalJSON() ([]byte, error) {
3795	type NoMethod DeleteDimensionRequest
3796	raw := NoMethod(*s)
3797	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3798}
3799
3800// DeleteEmbeddedObjectRequest: Deletes the embedded object with the
3801// given ID.
3802type DeleteEmbeddedObjectRequest struct {
3803	// ObjectId: The ID of the embedded object to delete.
3804	ObjectId int64 `json:"objectId,omitempty"`
3805
3806	// ForceSendFields is a list of field names (e.g. "ObjectId") to
3807	// unconditionally include in API requests. By default, fields with
3808	// empty values are omitted from API requests. However, any non-pointer,
3809	// non-interface field appearing in ForceSendFields will be sent to the
3810	// server regardless of whether the field is empty or not. This may be
3811	// used to include empty fields in Patch requests.
3812	ForceSendFields []string `json:"-"`
3813
3814	// NullFields is a list of field names (e.g. "ObjectId") to include in
3815	// API requests with the JSON null value. By default, fields with empty
3816	// values are omitted from API requests. However, any field with an
3817	// empty value appearing in NullFields will be sent to the server as
3818	// null. It is an error if a field in this list has a non-empty value.
3819	// This may be used to include null fields in Patch requests.
3820	NullFields []string `json:"-"`
3821}
3822
3823func (s *DeleteEmbeddedObjectRequest) MarshalJSON() ([]byte, error) {
3824	type NoMethod DeleteEmbeddedObjectRequest
3825	raw := NoMethod(*s)
3826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3827}
3828
3829// DeleteFilterViewRequest: Deletes a particular filter view.
3830type DeleteFilterViewRequest struct {
3831	// FilterId: The ID of the filter to delete.
3832	FilterId int64 `json:"filterId,omitempty"`
3833
3834	// ForceSendFields is a list of field names (e.g. "FilterId") to
3835	// unconditionally include in API requests. By default, fields with
3836	// empty values are omitted from API requests. However, any non-pointer,
3837	// non-interface field appearing in ForceSendFields will be sent to the
3838	// server regardless of whether the field is empty or not. This may be
3839	// used to include empty fields in Patch requests.
3840	ForceSendFields []string `json:"-"`
3841
3842	// NullFields is a list of field names (e.g. "FilterId") to include in
3843	// API requests with the JSON null value. By default, fields with empty
3844	// values are omitted from API requests. However, any field with an
3845	// empty value appearing in NullFields will be sent to the server as
3846	// null. It is an error if a field in this list has a non-empty value.
3847	// This may be used to include null fields in Patch requests.
3848	NullFields []string `json:"-"`
3849}
3850
3851func (s *DeleteFilterViewRequest) MarshalJSON() ([]byte, error) {
3852	type NoMethod DeleteFilterViewRequest
3853	raw := NoMethod(*s)
3854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3855}
3856
3857// DeleteNamedRangeRequest: Removes the named range with the given ID
3858// from the spreadsheet.
3859type DeleteNamedRangeRequest struct {
3860	// NamedRangeId: The ID of the named range to delete.
3861	NamedRangeId string `json:"namedRangeId,omitempty"`
3862
3863	// ForceSendFields is a list of field names (e.g. "NamedRangeId") to
3864	// unconditionally include in API requests. By default, fields with
3865	// empty values are omitted from API requests. However, any non-pointer,
3866	// non-interface field appearing in ForceSendFields will be sent to the
3867	// server regardless of whether the field is empty or not. This may be
3868	// used to include empty fields in Patch requests.
3869	ForceSendFields []string `json:"-"`
3870
3871	// NullFields is a list of field names (e.g. "NamedRangeId") to include
3872	// in API requests with the JSON null value. By default, fields with
3873	// empty values are omitted from API requests. However, any field with
3874	// an empty value appearing in NullFields will be sent to the server as
3875	// null. It is an error if a field in this list has a non-empty value.
3876	// This may be used to include null fields in Patch requests.
3877	NullFields []string `json:"-"`
3878}
3879
3880func (s *DeleteNamedRangeRequest) MarshalJSON() ([]byte, error) {
3881	type NoMethod DeleteNamedRangeRequest
3882	raw := NoMethod(*s)
3883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3884}
3885
3886// DeleteProtectedRangeRequest: Deletes the protected range with the
3887// given ID.
3888type DeleteProtectedRangeRequest struct {
3889	// ProtectedRangeId: The ID of the protected range to delete.
3890	ProtectedRangeId int64 `json:"protectedRangeId,omitempty"`
3891
3892	// ForceSendFields is a list of field names (e.g. "ProtectedRangeId") to
3893	// unconditionally include in API requests. By default, fields with
3894	// empty values are omitted from API requests. However, any non-pointer,
3895	// non-interface field appearing in ForceSendFields will be sent to the
3896	// server regardless of whether the field is empty or not. This may be
3897	// used to include empty fields in Patch requests.
3898	ForceSendFields []string `json:"-"`
3899
3900	// NullFields is a list of field names (e.g. "ProtectedRangeId") to
3901	// include in API requests with the JSON null value. By default, fields
3902	// with empty values are omitted from API requests. However, any field
3903	// with an empty value appearing in NullFields will be sent to the
3904	// server as null. It is an error if a field in this list has a
3905	// non-empty value. This may be used to include null fields in Patch
3906	// requests.
3907	NullFields []string `json:"-"`
3908}
3909
3910func (s *DeleteProtectedRangeRequest) MarshalJSON() ([]byte, error) {
3911	type NoMethod DeleteProtectedRangeRequest
3912	raw := NoMethod(*s)
3913	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3914}
3915
3916// DeleteRangeRequest: Deletes a range of cells, shifting other cells
3917// into the deleted area.
3918type DeleteRangeRequest struct {
3919	// Range: The range of cells to delete.
3920	Range *GridRange `json:"range,omitempty"`
3921
3922	// ShiftDimension: The dimension from which deleted cells will be
3923	// replaced with.
3924	// If ROWS, existing cells will be shifted upward to
3925	// replace the deleted cells. If COLUMNS, existing cells
3926	// will be shifted left to replace the deleted cells.
3927	//
3928	// Possible values:
3929	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
3930	//   "ROWS" - Operates on the rows of a sheet.
3931	//   "COLUMNS" - Operates on the columns of a sheet.
3932	ShiftDimension string `json:"shiftDimension,omitempty"`
3933
3934	// ForceSendFields is a list of field names (e.g. "Range") to
3935	// unconditionally include in API requests. By default, fields with
3936	// empty values are omitted from API requests. However, any non-pointer,
3937	// non-interface field appearing in ForceSendFields will be sent to the
3938	// server regardless of whether the field is empty or not. This may be
3939	// used to include empty fields in Patch requests.
3940	ForceSendFields []string `json:"-"`
3941
3942	// NullFields is a list of field names (e.g. "Range") to include in API
3943	// requests with the JSON null value. By default, fields with empty
3944	// values are omitted from API requests. However, any field with an
3945	// empty value appearing in NullFields will be sent to the server as
3946	// null. It is an error if a field in this list has a non-empty value.
3947	// This may be used to include null fields in Patch requests.
3948	NullFields []string `json:"-"`
3949}
3950
3951func (s *DeleteRangeRequest) MarshalJSON() ([]byte, error) {
3952	type NoMethod DeleteRangeRequest
3953	raw := NoMethod(*s)
3954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3955}
3956
3957// DeleteSheetRequest: Deletes the requested sheet.
3958type DeleteSheetRequest struct {
3959	// SheetId: The ID of the sheet to delete.
3960	SheetId int64 `json:"sheetId,omitempty"`
3961
3962	// ForceSendFields is a list of field names (e.g. "SheetId") to
3963	// unconditionally include in API requests. By default, fields with
3964	// empty values are omitted from API requests. However, any non-pointer,
3965	// non-interface field appearing in ForceSendFields will be sent to the
3966	// server regardless of whether the field is empty or not. This may be
3967	// used to include empty fields in Patch requests.
3968	ForceSendFields []string `json:"-"`
3969
3970	// NullFields is a list of field names (e.g. "SheetId") to include in
3971	// API requests with the JSON null value. By default, fields with empty
3972	// values are omitted from API requests. However, any field with an
3973	// empty value appearing in NullFields will be sent to the server as
3974	// null. It is an error if a field in this list has a non-empty value.
3975	// This may be used to include null fields in Patch requests.
3976	NullFields []string `json:"-"`
3977}
3978
3979func (s *DeleteSheetRequest) MarshalJSON() ([]byte, error) {
3980	type NoMethod DeleteSheetRequest
3981	raw := NoMethod(*s)
3982	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3983}
3984
3985// DeveloperMetadata: Developer metadata associated with a location or
3986// object in a spreadsheet.
3987// Developer metadata may be used to associate arbitrary data with
3988// various
3989// parts of a spreadsheet and will remain associated at those locations
3990// as they
3991// move around and the spreadsheet is edited.  For example, if
3992// developer
3993// metadata is associated with row 5 and another row is then
3994// subsequently
3995// inserted above row 5, that original metadata will still be associated
3996// with
3997// the row it was first associated with (what is now row 6). If the
3998// associated
3999// object is deleted its metadata will be deleted too.
4000type DeveloperMetadata struct {
4001	// Location: The location where the metadata is associated.
4002	Location *DeveloperMetadataLocation `json:"location,omitempty"`
4003
4004	// MetadataId: The spreadsheet-scoped unique ID that identifies the
4005	// metadata. IDs may be
4006	// specified when metadata is created, otherwise one will be
4007	// randomly
4008	// generated and assigned. Must be positive.
4009	MetadataId int64 `json:"metadataId,omitempty"`
4010
4011	// MetadataKey: The metadata key. There may be multiple metadata in a
4012	// spreadsheet with the
4013	// same key.  Developer metadata must always have a key specified.
4014	MetadataKey string `json:"metadataKey,omitempty"`
4015
4016	// MetadataValue: Data associated with the metadata's key.
4017	MetadataValue string `json:"metadataValue,omitempty"`
4018
4019	// Visibility: The metadata visibility.  Developer metadata must always
4020	// have a visibility
4021	// specified.
4022	//
4023	// Possible values:
4024	//   "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED" - Default value.
4025	//   "DOCUMENT" - Document-visible metadata is accessible from any
4026	// developer project with
4027	// access to the document.
4028	//   "PROJECT" - Project-visible metadata is only visible to and
4029	// accessible by the developer
4030	// project that created the metadata.
4031	Visibility string `json:"visibility,omitempty"`
4032
4033	// ServerResponse contains the HTTP response code and headers from the
4034	// server.
4035	googleapi.ServerResponse `json:"-"`
4036
4037	// ForceSendFields is a list of field names (e.g. "Location") to
4038	// unconditionally include in API requests. By default, fields with
4039	// empty values are omitted from API requests. However, any non-pointer,
4040	// non-interface field appearing in ForceSendFields will be sent to the
4041	// server regardless of whether the field is empty or not. This may be
4042	// used to include empty fields in Patch requests.
4043	ForceSendFields []string `json:"-"`
4044
4045	// NullFields is a list of field names (e.g. "Location") to include in
4046	// API requests with the JSON null value. By default, fields with empty
4047	// values are omitted from API requests. However, any field with an
4048	// empty value appearing in NullFields will be sent to the server as
4049	// null. It is an error if a field in this list has a non-empty value.
4050	// This may be used to include null fields in Patch requests.
4051	NullFields []string `json:"-"`
4052}
4053
4054func (s *DeveloperMetadata) MarshalJSON() ([]byte, error) {
4055	type NoMethod DeveloperMetadata
4056	raw := NoMethod(*s)
4057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4058}
4059
4060// DeveloperMetadataLocation: A location where metadata may be
4061// associated in a spreadsheet.
4062type DeveloperMetadataLocation struct {
4063	// DimensionRange: Represents the row or column when metadata is
4064	// associated with
4065	// a dimension. The specified DimensionRange must represent a single
4066	// row
4067	// or column; it cannot be unbounded or span multiple rows or columns.
4068	DimensionRange *DimensionRange `json:"dimensionRange,omitempty"`
4069
4070	// LocationType: The type of location this object represents.  This
4071	// field is read-only.
4072	//
4073	// Possible values:
4074	//   "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED" - Default value.
4075	//   "ROW" - Developer metadata associated on an entire row dimension.
4076	//   "COLUMN" - Developer metadata associated on an entire column
4077	// dimension.
4078	//   "SHEET" - Developer metadata associated on an entire sheet.
4079	//   "SPREADSHEET" - Developer metadata associated on the entire
4080	// spreadsheet.
4081	LocationType string `json:"locationType,omitempty"`
4082
4083	// SheetId: The ID of the sheet when metadata is associated with an
4084	// entire sheet.
4085	SheetId int64 `json:"sheetId,omitempty"`
4086
4087	// Spreadsheet: True when metadata is associated with an entire
4088	// spreadsheet.
4089	Spreadsheet bool `json:"spreadsheet,omitempty"`
4090
4091	// ForceSendFields is a list of field names (e.g. "DimensionRange") to
4092	// unconditionally include in API requests. By default, fields with
4093	// empty values are omitted from API requests. However, any non-pointer,
4094	// non-interface field appearing in ForceSendFields will be sent to the
4095	// server regardless of whether the field is empty or not. This may be
4096	// used to include empty fields in Patch requests.
4097	ForceSendFields []string `json:"-"`
4098
4099	// NullFields is a list of field names (e.g. "DimensionRange") to
4100	// include in API requests with the JSON null value. By default, fields
4101	// with empty values are omitted from API requests. However, any field
4102	// with an empty value appearing in NullFields will be sent to the
4103	// server as null. It is an error if a field in this list has a
4104	// non-empty value. This may be used to include null fields in Patch
4105	// requests.
4106	NullFields []string `json:"-"`
4107}
4108
4109func (s *DeveloperMetadataLocation) MarshalJSON() ([]byte, error) {
4110	type NoMethod DeveloperMetadataLocation
4111	raw := NoMethod(*s)
4112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4113}
4114
4115// DeveloperMetadataLookup: Selects DeveloperMetadata that matches all
4116// of the specified fields.  For
4117// example, if only a metadata ID is specified this considers
4118// the
4119// DeveloperMetadata with that particular unique ID. If a metadata key
4120// is
4121// specified, this considers all developer metadata with that key.  If
4122// a
4123// key, visibility, and location type are all specified, this considers
4124// all
4125// developer metadata with that key and visibility that are associated
4126// with a
4127// location of that type.  In general, this
4128// selects all DeveloperMetadata that matches the intersection of all
4129// the
4130// specified fields; any field or combination of fields may be
4131// specified.
4132type DeveloperMetadataLookup struct {
4133	// LocationMatchingStrategy: Determines how this lookup matches the
4134	// location.  If this field is
4135	// specified as EXACT, only developer metadata associated on the
4136	// exact
4137	// location specified is matched.  If this field is specified to
4138	// INTERSECTING,
4139	// developer metadata associated on intersecting locations is
4140	// also
4141	// matched.  If left unspecified, this field assumes a default value
4142	// of
4143	// INTERSECTING.
4144	// If this field is specified, a metadataLocation
4145	// must also be specified.
4146	//
4147	// Possible values:
4148	//   "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED" -
4149	// Default value. This value must not be used.
4150	//   "EXACT_LOCATION" - Indicates that a specified location should be
4151	// matched exactly.  For
4152	// example, if row three were specified as a location this matching
4153	// strategy
4154	// would only match developer metadata also associated on row three.
4155	// Metadata
4156	// associated on other locations would not be considered.
4157	//   "INTERSECTING_LOCATION" - Indicates that a specified location
4158	// should match that exact location as
4159	// well as any intersecting locations.  For example, if row three
4160	// were
4161	// specified as a location this matching strategy would match
4162	// developer
4163	// metadata associated on row three as well as metadata associated
4164	// on
4165	// locations that intersect row three.  If, for instance, there was
4166	// developer
4167	// metadata associated on column B, this matching strategy would also
4168	// match
4169	// that location because column B intersects row three.
4170	LocationMatchingStrategy string `json:"locationMatchingStrategy,omitempty"`
4171
4172	// LocationType: Limits the selected developer metadata to those entries
4173	// which are
4174	// associated with locations of the specified type.  For example, when
4175	// this
4176	// field is specified as ROW this lookup
4177	// only considers developer metadata associated on rows.  If the field
4178	// is left
4179	// unspecified, all location types are considered.  This field cannot
4180	// be
4181	// specified as SPREADSHEET when
4182	// the locationMatchingStrategy
4183	// is specified as INTERSECTING or when the
4184	// metadataLocation is specified as a
4185	// non-spreadsheet location: spreadsheet metadata cannot intersect any
4186	// other
4187	// developer metadata location.  This field also must be left
4188	// unspecified when
4189	// the locationMatchingStrategy
4190	// is specified as EXACT.
4191	//
4192	// Possible values:
4193	//   "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED" - Default value.
4194	//   "ROW" - Developer metadata associated on an entire row dimension.
4195	//   "COLUMN" - Developer metadata associated on an entire column
4196	// dimension.
4197	//   "SHEET" - Developer metadata associated on an entire sheet.
4198	//   "SPREADSHEET" - Developer metadata associated on the entire
4199	// spreadsheet.
4200	LocationType string `json:"locationType,omitempty"`
4201
4202	// MetadataId: Limits the selected developer metadata to that which has
4203	// a matching
4204	// DeveloperMetadata.metadata_id.
4205	MetadataId int64 `json:"metadataId,omitempty"`
4206
4207	// MetadataKey: Limits the selected developer metadata to that which has
4208	// a matching
4209	// DeveloperMetadata.metadata_key.
4210	MetadataKey string `json:"metadataKey,omitempty"`
4211
4212	// MetadataLocation: Limits the selected developer metadata to those
4213	// entries associated with
4214	// the specified location.  This field either matches exact locations or
4215	// all
4216	// intersecting locations according the
4217	// specified
4218	// locationMatchingStrategy.
4219	MetadataLocation *DeveloperMetadataLocation `json:"metadataLocation,omitempty"`
4220
4221	// MetadataValue: Limits the selected developer metadata to that which
4222	// has a matching
4223	// DeveloperMetadata.metadata_value.
4224	MetadataValue string `json:"metadataValue,omitempty"`
4225
4226	// Visibility: Limits the selected developer metadata to that which has
4227	// a matching
4228	// DeveloperMetadata.visibility.  If left unspecified, all
4229	// developer
4230	// metadata visibile to the requesting project is considered.
4231	//
4232	// Possible values:
4233	//   "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED" - Default value.
4234	//   "DOCUMENT" - Document-visible metadata is accessible from any
4235	// developer project with
4236	// access to the document.
4237	//   "PROJECT" - Project-visible metadata is only visible to and
4238	// accessible by the developer
4239	// project that created the metadata.
4240	Visibility string `json:"visibility,omitempty"`
4241
4242	// ForceSendFields is a list of field names (e.g.
4243	// "LocationMatchingStrategy") to unconditionally include in API
4244	// requests. By default, fields with empty values are omitted from API
4245	// requests. However, any non-pointer, non-interface field appearing in
4246	// ForceSendFields will be sent to the server regardless of whether the
4247	// field is empty or not. This may be used to include empty fields in
4248	// Patch requests.
4249	ForceSendFields []string `json:"-"`
4250
4251	// NullFields is a list of field names (e.g. "LocationMatchingStrategy")
4252	// to include in API requests with the JSON null value. By default,
4253	// fields with empty values are omitted from API requests. However, any
4254	// field with an empty value appearing in NullFields will be sent to the
4255	// server as null. It is an error if a field in this list has a
4256	// non-empty value. This may be used to include null fields in Patch
4257	// requests.
4258	NullFields []string `json:"-"`
4259}
4260
4261func (s *DeveloperMetadataLookup) MarshalJSON() ([]byte, error) {
4262	type NoMethod DeveloperMetadataLookup
4263	raw := NoMethod(*s)
4264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4265}
4266
4267// DimensionProperties: Properties about a dimension.
4268type DimensionProperties struct {
4269	// DeveloperMetadata: The developer metadata associated with a single
4270	// row or column.
4271	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
4272
4273	// HiddenByFilter: True if this dimension is being filtered.
4274	// This field is read-only.
4275	HiddenByFilter bool `json:"hiddenByFilter,omitempty"`
4276
4277	// HiddenByUser: True if this dimension is explicitly hidden.
4278	HiddenByUser bool `json:"hiddenByUser,omitempty"`
4279
4280	// PixelSize: The height (if a row) or width (if a column) of the
4281	// dimension in pixels.
4282	PixelSize int64 `json:"pixelSize,omitempty"`
4283
4284	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
4285	// to unconditionally include in API requests. By default, fields with
4286	// empty values are omitted from API requests. However, any non-pointer,
4287	// non-interface field appearing in ForceSendFields will be sent to the
4288	// server regardless of whether the field is empty or not. This may be
4289	// used to include empty fields in Patch requests.
4290	ForceSendFields []string `json:"-"`
4291
4292	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
4293	// include in API requests with the JSON null value. By default, fields
4294	// with empty values are omitted from API requests. However, any field
4295	// with an empty value appearing in NullFields will be sent to the
4296	// server as null. It is an error if a field in this list has a
4297	// non-empty value. This may be used to include null fields in Patch
4298	// requests.
4299	NullFields []string `json:"-"`
4300}
4301
4302func (s *DimensionProperties) MarshalJSON() ([]byte, error) {
4303	type NoMethod DimensionProperties
4304	raw := NoMethod(*s)
4305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4306}
4307
4308// DimensionRange: A range along a single dimension on a sheet.
4309// All indexes are zero-based.
4310// Indexes are half open: the start index is inclusive
4311// and the end index is exclusive.
4312// Missing indexes indicate the range is unbounded on that side.
4313type DimensionRange struct {
4314	// Dimension: The dimension of the span.
4315	//
4316	// Possible values:
4317	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
4318	//   "ROWS" - Operates on the rows of a sheet.
4319	//   "COLUMNS" - Operates on the columns of a sheet.
4320	Dimension string `json:"dimension,omitempty"`
4321
4322	// EndIndex: The end (exclusive) of the span, or not set if unbounded.
4323	EndIndex int64 `json:"endIndex,omitempty"`
4324
4325	// SheetId: The sheet this span is on.
4326	SheetId int64 `json:"sheetId,omitempty"`
4327
4328	// StartIndex: The start (inclusive) of the span, or not set if
4329	// unbounded.
4330	StartIndex int64 `json:"startIndex,omitempty"`
4331
4332	// ForceSendFields is a list of field names (e.g. "Dimension") to
4333	// unconditionally include in API requests. By default, fields with
4334	// empty values are omitted from API requests. However, any non-pointer,
4335	// non-interface field appearing in ForceSendFields will be sent to the
4336	// server regardless of whether the field is empty or not. This may be
4337	// used to include empty fields in Patch requests.
4338	ForceSendFields []string `json:"-"`
4339
4340	// NullFields is a list of field names (e.g. "Dimension") to include in
4341	// API requests with the JSON null value. By default, fields with empty
4342	// values are omitted from API requests. However, any field with an
4343	// empty value appearing in NullFields will be sent to the server as
4344	// null. It is an error if a field in this list has a non-empty value.
4345	// This may be used to include null fields in Patch requests.
4346	NullFields []string `json:"-"`
4347}
4348
4349func (s *DimensionRange) MarshalJSON() ([]byte, error) {
4350	type NoMethod DimensionRange
4351	raw := NoMethod(*s)
4352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4353}
4354
4355// DuplicateFilterViewRequest: Duplicates a particular filter view.
4356type DuplicateFilterViewRequest struct {
4357	// FilterId: The ID of the filter being duplicated.
4358	FilterId int64 `json:"filterId,omitempty"`
4359
4360	// ForceSendFields is a list of field names (e.g. "FilterId") to
4361	// unconditionally include in API requests. By default, fields with
4362	// empty values are omitted from API requests. However, any non-pointer,
4363	// non-interface field appearing in ForceSendFields will be sent to the
4364	// server regardless of whether the field is empty or not. This may be
4365	// used to include empty fields in Patch requests.
4366	ForceSendFields []string `json:"-"`
4367
4368	// NullFields is a list of field names (e.g. "FilterId") to include in
4369	// API requests with the JSON null value. By default, fields with empty
4370	// values are omitted from API requests. However, any field with an
4371	// empty value appearing in NullFields will be sent to the server as
4372	// null. It is an error if a field in this list has a non-empty value.
4373	// This may be used to include null fields in Patch requests.
4374	NullFields []string `json:"-"`
4375}
4376
4377func (s *DuplicateFilterViewRequest) MarshalJSON() ([]byte, error) {
4378	type NoMethod DuplicateFilterViewRequest
4379	raw := NoMethod(*s)
4380	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4381}
4382
4383// DuplicateFilterViewResponse: The result of a filter view being
4384// duplicated.
4385type DuplicateFilterViewResponse struct {
4386	// Filter: The newly created filter.
4387	Filter *FilterView `json:"filter,omitempty"`
4388
4389	// ForceSendFields is a list of field names (e.g. "Filter") to
4390	// unconditionally include in API requests. By default, fields with
4391	// empty values are omitted from API requests. However, any non-pointer,
4392	// non-interface field appearing in ForceSendFields will be sent to the
4393	// server regardless of whether the field is empty or not. This may be
4394	// used to include empty fields in Patch requests.
4395	ForceSendFields []string `json:"-"`
4396
4397	// NullFields is a list of field names (e.g. "Filter") to include in API
4398	// requests with the JSON null value. By default, fields with empty
4399	// values are omitted from API requests. However, any field with an
4400	// empty value appearing in NullFields will be sent to the server as
4401	// null. It is an error if a field in this list has a non-empty value.
4402	// This may be used to include null fields in Patch requests.
4403	NullFields []string `json:"-"`
4404}
4405
4406func (s *DuplicateFilterViewResponse) MarshalJSON() ([]byte, error) {
4407	type NoMethod DuplicateFilterViewResponse
4408	raw := NoMethod(*s)
4409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4410}
4411
4412// DuplicateSheetRequest: Duplicates the contents of a sheet.
4413type DuplicateSheetRequest struct {
4414	// InsertSheetIndex: The zero-based index where the new sheet should be
4415	// inserted.
4416	// The index of all sheets after this are incremented.
4417	InsertSheetIndex int64 `json:"insertSheetIndex,omitempty"`
4418
4419	// NewSheetId: If set, the ID of the new sheet. If not set, an ID is
4420	// chosen.
4421	// If set, the ID must not conflict with any existing sheet ID.
4422	// If set, it must be non-negative.
4423	NewSheetId int64 `json:"newSheetId,omitempty"`
4424
4425	// NewSheetName: The name of the new sheet.  If empty, a new name is
4426	// chosen for you.
4427	NewSheetName string `json:"newSheetName,omitempty"`
4428
4429	// SourceSheetId: The sheet to duplicate.
4430	SourceSheetId int64 `json:"sourceSheetId,omitempty"`
4431
4432	// ForceSendFields is a list of field names (e.g. "InsertSheetIndex") to
4433	// unconditionally include in API requests. By default, fields with
4434	// empty values are omitted from API requests. However, any non-pointer,
4435	// non-interface field appearing in ForceSendFields will be sent to the
4436	// server regardless of whether the field is empty or not. This may be
4437	// used to include empty fields in Patch requests.
4438	ForceSendFields []string `json:"-"`
4439
4440	// NullFields is a list of field names (e.g. "InsertSheetIndex") to
4441	// include in API requests with the JSON null value. By default, fields
4442	// with empty values are omitted from API requests. However, any field
4443	// with an empty value appearing in NullFields will be sent to the
4444	// server as null. It is an error if a field in this list has a
4445	// non-empty value. This may be used to include null fields in Patch
4446	// requests.
4447	NullFields []string `json:"-"`
4448}
4449
4450func (s *DuplicateSheetRequest) MarshalJSON() ([]byte, error) {
4451	type NoMethod DuplicateSheetRequest
4452	raw := NoMethod(*s)
4453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4454}
4455
4456// DuplicateSheetResponse: The result of duplicating a sheet.
4457type DuplicateSheetResponse struct {
4458	// Properties: The properties of the duplicate sheet.
4459	Properties *SheetProperties `json:"properties,omitempty"`
4460
4461	// ForceSendFields is a list of field names (e.g. "Properties") to
4462	// unconditionally include in API requests. By default, fields with
4463	// empty values are omitted from API requests. However, any non-pointer,
4464	// non-interface field appearing in ForceSendFields will be sent to the
4465	// server regardless of whether the field is empty or not. This may be
4466	// used to include empty fields in Patch requests.
4467	ForceSendFields []string `json:"-"`
4468
4469	// NullFields is a list of field names (e.g. "Properties") to include in
4470	// API requests with the JSON null value. By default, fields with empty
4471	// values are omitted from API requests. However, any field with an
4472	// empty value appearing in NullFields will be sent to the server as
4473	// null. It is an error if a field in this list has a non-empty value.
4474	// This may be used to include null fields in Patch requests.
4475	NullFields []string `json:"-"`
4476}
4477
4478func (s *DuplicateSheetResponse) MarshalJSON() ([]byte, error) {
4479	type NoMethod DuplicateSheetResponse
4480	raw := NoMethod(*s)
4481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4482}
4483
4484// Editors: The editors of a protected range.
4485type Editors struct {
4486	// DomainUsersCanEdit: True if anyone in the document's domain has edit
4487	// access to the protected
4488	// range.  Domain protection is only supported on documents within a
4489	// domain.
4490	DomainUsersCanEdit bool `json:"domainUsersCanEdit,omitempty"`
4491
4492	// Groups: The email addresses of groups with edit access to the
4493	// protected range.
4494	Groups []string `json:"groups,omitempty"`
4495
4496	// Users: The email addresses of users with edit access to the protected
4497	// range.
4498	Users []string `json:"users,omitempty"`
4499
4500	// ForceSendFields is a list of field names (e.g. "DomainUsersCanEdit")
4501	// to unconditionally include in API requests. By default, fields with
4502	// empty values are omitted from API requests. However, any non-pointer,
4503	// non-interface field appearing in ForceSendFields will be sent to the
4504	// server regardless of whether the field is empty or not. This may be
4505	// used to include empty fields in Patch requests.
4506	ForceSendFields []string `json:"-"`
4507
4508	// NullFields is a list of field names (e.g. "DomainUsersCanEdit") to
4509	// include in API requests with the JSON null value. By default, fields
4510	// with empty values are omitted from API requests. However, any field
4511	// with an empty value appearing in NullFields will be sent to the
4512	// server as null. It is an error if a field in this list has a
4513	// non-empty value. This may be used to include null fields in Patch
4514	// requests.
4515	NullFields []string `json:"-"`
4516}
4517
4518func (s *Editors) MarshalJSON() ([]byte, error) {
4519	type NoMethod Editors
4520	raw := NoMethod(*s)
4521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4522}
4523
4524// EmbeddedChart: A chart embedded in a sheet.
4525type EmbeddedChart struct {
4526	// ChartId: The ID of the chart.
4527	ChartId int64 `json:"chartId,omitempty"`
4528
4529	// Position: The position of the chart.
4530	Position *EmbeddedObjectPosition `json:"position,omitempty"`
4531
4532	// Spec: The specification of the chart.
4533	Spec *ChartSpec `json:"spec,omitempty"`
4534
4535	// ForceSendFields is a list of field names (e.g. "ChartId") to
4536	// unconditionally include in API requests. By default, fields with
4537	// empty values are omitted from API requests. However, any non-pointer,
4538	// non-interface field appearing in ForceSendFields will be sent to the
4539	// server regardless of whether the field is empty or not. This may be
4540	// used to include empty fields in Patch requests.
4541	ForceSendFields []string `json:"-"`
4542
4543	// NullFields is a list of field names (e.g. "ChartId") to include in
4544	// API requests with the JSON null value. By default, fields with empty
4545	// values are omitted from API requests. However, any field with an
4546	// empty value appearing in NullFields will be sent to the server as
4547	// null. It is an error if a field in this list has a non-empty value.
4548	// This may be used to include null fields in Patch requests.
4549	NullFields []string `json:"-"`
4550}
4551
4552func (s *EmbeddedChart) MarshalJSON() ([]byte, error) {
4553	type NoMethod EmbeddedChart
4554	raw := NoMethod(*s)
4555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4556}
4557
4558// EmbeddedObjectPosition: The position of an embedded object such as a
4559// chart.
4560type EmbeddedObjectPosition struct {
4561	// NewSheet: If true, the embedded object will be put on a new sheet
4562	// whose ID
4563	// is chosen for you. Used only when writing.
4564	NewSheet bool `json:"newSheet,omitempty"`
4565
4566	// OverlayPosition: The position at which the object is overlaid on top
4567	// of a grid.
4568	OverlayPosition *OverlayPosition `json:"overlayPosition,omitempty"`
4569
4570	// SheetId: The sheet this is on. Set only if the embedded object
4571	// is on its own sheet. Must be non-negative.
4572	SheetId int64 `json:"sheetId,omitempty"`
4573
4574	// ForceSendFields is a list of field names (e.g. "NewSheet") to
4575	// unconditionally include in API requests. By default, fields with
4576	// empty values are omitted from API requests. However, any non-pointer,
4577	// non-interface field appearing in ForceSendFields will be sent to the
4578	// server regardless of whether the field is empty or not. This may be
4579	// used to include empty fields in Patch requests.
4580	ForceSendFields []string `json:"-"`
4581
4582	// NullFields is a list of field names (e.g. "NewSheet") to include in
4583	// API requests with the JSON null value. By default, fields with empty
4584	// values are omitted from API requests. However, any field with an
4585	// empty value appearing in NullFields will be sent to the server as
4586	// null. It is an error if a field in this list has a non-empty value.
4587	// This may be used to include null fields in Patch requests.
4588	NullFields []string `json:"-"`
4589}
4590
4591func (s *EmbeddedObjectPosition) MarshalJSON() ([]byte, error) {
4592	type NoMethod EmbeddedObjectPosition
4593	raw := NoMethod(*s)
4594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4595}
4596
4597// ErrorValue: An error in a cell.
4598type ErrorValue struct {
4599	// Message: A message with more information about the error
4600	// (in the spreadsheet's locale).
4601	Message string `json:"message,omitempty"`
4602
4603	// Type: The type of error.
4604	//
4605	// Possible values:
4606	//   "ERROR_TYPE_UNSPECIFIED" - The default error type, do not use this.
4607	//   "ERROR" - Corresponds to the `#ERROR!` error.
4608	//   "NULL_VALUE" - Corresponds to the `#NULL!` error.
4609	//   "DIVIDE_BY_ZERO" - Corresponds to the `#DIV/0` error.
4610	//   "VALUE" - Corresponds to the `#VALUE!` error.
4611	//   "REF" - Corresponds to the `#REF!` error.
4612	//   "NAME" - Corresponds to the `#NAME?` error.
4613	//   "NUM" - Corresponds to the `#NUM`! error.
4614	//   "N_A" - Corresponds to the `#N/A` error.
4615	//   "LOADING" - Corresponds to the `Loading...` state.
4616	Type string `json:"type,omitempty"`
4617
4618	// ForceSendFields is a list of field names (e.g. "Message") to
4619	// unconditionally include in API requests. By default, fields with
4620	// empty values are omitted from API requests. However, any non-pointer,
4621	// non-interface field appearing in ForceSendFields will be sent to the
4622	// server regardless of whether the field is empty or not. This may be
4623	// used to include empty fields in Patch requests.
4624	ForceSendFields []string `json:"-"`
4625
4626	// NullFields is a list of field names (e.g. "Message") to include in
4627	// API requests with the JSON null value. By default, fields with empty
4628	// values are omitted from API requests. However, any field with an
4629	// empty value appearing in NullFields will be sent to the server as
4630	// null. It is an error if a field in this list has a non-empty value.
4631	// This may be used to include null fields in Patch requests.
4632	NullFields []string `json:"-"`
4633}
4634
4635func (s *ErrorValue) MarshalJSON() ([]byte, error) {
4636	type NoMethod ErrorValue
4637	raw := NoMethod(*s)
4638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4639}
4640
4641// ExtendedValue: The kinds of value that a cell in a spreadsheet can
4642// have.
4643type ExtendedValue struct {
4644	// BoolValue: Represents a boolean value.
4645	BoolValue bool `json:"boolValue,omitempty"`
4646
4647	// ErrorValue: Represents an error.
4648	// This field is read-only.
4649	ErrorValue *ErrorValue `json:"errorValue,omitempty"`
4650
4651	// FormulaValue: Represents a formula.
4652	FormulaValue string `json:"formulaValue,omitempty"`
4653
4654	// NumberValue: Represents a double value.
4655	// Note: Dates, Times and DateTimes are represented as doubles
4656	// in
4657	// "serial number" format.
4658	NumberValue float64 `json:"numberValue,omitempty"`
4659
4660	// StringValue: Represents a string value.
4661	// Leading single quotes are not included. For example, if the user
4662	// typed
4663	// `'123` into the UI, this would be represented as a `stringValue`
4664	// of
4665	// "123".
4666	StringValue string `json:"stringValue,omitempty"`
4667
4668	// ForceSendFields is a list of field names (e.g. "BoolValue") to
4669	// unconditionally include in API requests. By default, fields with
4670	// empty values are omitted from API requests. However, any non-pointer,
4671	// non-interface field appearing in ForceSendFields will be sent to the
4672	// server regardless of whether the field is empty or not. This may be
4673	// used to include empty fields in Patch requests.
4674	ForceSendFields []string `json:"-"`
4675
4676	// NullFields is a list of field names (e.g. "BoolValue") to include in
4677	// API requests with the JSON null value. By default, fields with empty
4678	// values are omitted from API requests. However, any field with an
4679	// empty value appearing in NullFields will be sent to the server as
4680	// null. It is an error if a field in this list has a non-empty value.
4681	// This may be used to include null fields in Patch requests.
4682	NullFields []string `json:"-"`
4683}
4684
4685func (s *ExtendedValue) MarshalJSON() ([]byte, error) {
4686	type NoMethod ExtendedValue
4687	raw := NoMethod(*s)
4688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4689}
4690
4691func (s *ExtendedValue) UnmarshalJSON(data []byte) error {
4692	type NoMethod ExtendedValue
4693	var s1 struct {
4694		NumberValue gensupport.JSONFloat64 `json:"numberValue"`
4695		*NoMethod
4696	}
4697	s1.NoMethod = (*NoMethod)(s)
4698	if err := json.Unmarshal(data, &s1); err != nil {
4699		return err
4700	}
4701	s.NumberValue = float64(s1.NumberValue)
4702	return nil
4703}
4704
4705// FilterCriteria: Criteria for showing/hiding rows in a filter or
4706// filter view.
4707type FilterCriteria struct {
4708	// Condition: A condition that must be true for values to be
4709	// shown.
4710	// (This does not override hiddenValues -- if a value is listed there,
4711	//  it will still be hidden.)
4712	Condition *BooleanCondition `json:"condition,omitempty"`
4713
4714	// HiddenValues: Values that should be hidden.
4715	HiddenValues []string `json:"hiddenValues,omitempty"`
4716
4717	// ForceSendFields is a list of field names (e.g. "Condition") to
4718	// unconditionally include in API requests. By default, fields with
4719	// empty values are omitted from API requests. However, any non-pointer,
4720	// non-interface field appearing in ForceSendFields will be sent to the
4721	// server regardless of whether the field is empty or not. This may be
4722	// used to include empty fields in Patch requests.
4723	ForceSendFields []string `json:"-"`
4724
4725	// NullFields is a list of field names (e.g. "Condition") to include in
4726	// API requests with the JSON null value. By default, fields with empty
4727	// values are omitted from API requests. However, any field with an
4728	// empty value appearing in NullFields will be sent to the server as
4729	// null. It is an error if a field in this list has a non-empty value.
4730	// This may be used to include null fields in Patch requests.
4731	NullFields []string `json:"-"`
4732}
4733
4734func (s *FilterCriteria) MarshalJSON() ([]byte, error) {
4735	type NoMethod FilterCriteria
4736	raw := NoMethod(*s)
4737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4738}
4739
4740// FilterView: A filter view.
4741type FilterView struct {
4742	// Criteria: The criteria for showing/hiding values per column.
4743	// The map's key is the column index, and the value is the criteria
4744	// for
4745	// that column.
4746	Criteria map[string]FilterCriteria `json:"criteria,omitempty"`
4747
4748	// FilterViewId: The ID of the filter view.
4749	FilterViewId int64 `json:"filterViewId,omitempty"`
4750
4751	// NamedRangeId: The named range this filter view is backed by, if
4752	// any.
4753	//
4754	// When writing, only one of range or named_range_id
4755	// may be set.
4756	NamedRangeId string `json:"namedRangeId,omitempty"`
4757
4758	// Range: The range this filter view covers.
4759	//
4760	// When writing, only one of range or named_range_id
4761	// may be set.
4762	Range *GridRange `json:"range,omitempty"`
4763
4764	// SortSpecs: The sort order per column. Later specifications are used
4765	// when values
4766	// are equal in the earlier specifications.
4767	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
4768
4769	// Title: The name of the filter view.
4770	Title string `json:"title,omitempty"`
4771
4772	// ForceSendFields is a list of field names (e.g. "Criteria") to
4773	// unconditionally include in API requests. By default, fields with
4774	// empty values are omitted from API requests. However, any non-pointer,
4775	// non-interface field appearing in ForceSendFields will be sent to the
4776	// server regardless of whether the field is empty or not. This may be
4777	// used to include empty fields in Patch requests.
4778	ForceSendFields []string `json:"-"`
4779
4780	// NullFields is a list of field names (e.g. "Criteria") to include in
4781	// API requests with the JSON null value. By default, fields with empty
4782	// values are omitted from API requests. However, any field with an
4783	// empty value appearing in NullFields will be sent to the server as
4784	// null. It is an error if a field in this list has a non-empty value.
4785	// This may be used to include null fields in Patch requests.
4786	NullFields []string `json:"-"`
4787}
4788
4789func (s *FilterView) MarshalJSON() ([]byte, error) {
4790	type NoMethod FilterView
4791	raw := NoMethod(*s)
4792	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4793}
4794
4795// FindReplaceRequest: Finds and replaces data in cells over a range,
4796// sheet, or all sheets.
4797type FindReplaceRequest struct {
4798	// AllSheets: True to find/replace over all sheets.
4799	AllSheets bool `json:"allSheets,omitempty"`
4800
4801	// Find: The value to search.
4802	Find string `json:"find,omitempty"`
4803
4804	// IncludeFormulas: True if the search should include cells with
4805	// formulas.
4806	// False to skip cells with formulas.
4807	IncludeFormulas bool `json:"includeFormulas,omitempty"`
4808
4809	// MatchCase: True if the search is case sensitive.
4810	MatchCase bool `json:"matchCase,omitempty"`
4811
4812	// MatchEntireCell: True if the find value should match the entire cell.
4813	MatchEntireCell bool `json:"matchEntireCell,omitempty"`
4814
4815	// Range: The range to find/replace over.
4816	Range *GridRange `json:"range,omitempty"`
4817
4818	// Replacement: The value to use as the replacement.
4819	Replacement string `json:"replacement,omitempty"`
4820
4821	// SearchByRegex: True if the find value is a regex.
4822	// The regular expression and replacement should follow Java regex
4823	// rules
4824	// at
4825	// https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.
4826	// The replacement string is allowed to refer to capturing groups.
4827	// For example, if one cell has the contents "Google Sheets" and
4828	// another
4829	// has "Google Docs", then searching for "o.* (.*)" with a
4830	// replacement of
4831	// "$1 Rocks" would change the contents of the cells to
4832	// "GSheets Rocks" and "GDocs Rocks" respectively.
4833	SearchByRegex bool `json:"searchByRegex,omitempty"`
4834
4835	// SheetId: The sheet to find/replace over.
4836	SheetId int64 `json:"sheetId,omitempty"`
4837
4838	// ForceSendFields is a list of field names (e.g. "AllSheets") to
4839	// unconditionally include in API requests. By default, fields with
4840	// empty values are omitted from API requests. However, any non-pointer,
4841	// non-interface field appearing in ForceSendFields will be sent to the
4842	// server regardless of whether the field is empty or not. This may be
4843	// used to include empty fields in Patch requests.
4844	ForceSendFields []string `json:"-"`
4845
4846	// NullFields is a list of field names (e.g. "AllSheets") to include in
4847	// API requests with the JSON null value. By default, fields with empty
4848	// values are omitted from API requests. However, any field with an
4849	// empty value appearing in NullFields will be sent to the server as
4850	// null. It is an error if a field in this list has a non-empty value.
4851	// This may be used to include null fields in Patch requests.
4852	NullFields []string `json:"-"`
4853}
4854
4855func (s *FindReplaceRequest) MarshalJSON() ([]byte, error) {
4856	type NoMethod FindReplaceRequest
4857	raw := NoMethod(*s)
4858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4859}
4860
4861// FindReplaceResponse: The result of the find/replace.
4862type FindReplaceResponse struct {
4863	// FormulasChanged: The number of formula cells changed.
4864	FormulasChanged int64 `json:"formulasChanged,omitempty"`
4865
4866	// OccurrencesChanged: The number of occurrences (possibly multiple
4867	// within a cell) changed.
4868	// For example, if replacing "e" with "o" in "Google Sheets", this
4869	// would
4870	// be "3" because "Google Sheets" -> "Googlo Shoots".
4871	OccurrencesChanged int64 `json:"occurrencesChanged,omitempty"`
4872
4873	// RowsChanged: The number of rows changed.
4874	RowsChanged int64 `json:"rowsChanged,omitempty"`
4875
4876	// SheetsChanged: The number of sheets changed.
4877	SheetsChanged int64 `json:"sheetsChanged,omitempty"`
4878
4879	// ValuesChanged: The number of non-formula cells changed.
4880	ValuesChanged int64 `json:"valuesChanged,omitempty"`
4881
4882	// ForceSendFields is a list of field names (e.g. "FormulasChanged") to
4883	// unconditionally include in API requests. By default, fields with
4884	// empty values are omitted from API requests. However, any non-pointer,
4885	// non-interface field appearing in ForceSendFields will be sent to the
4886	// server regardless of whether the field is empty or not. This may be
4887	// used to include empty fields in Patch requests.
4888	ForceSendFields []string `json:"-"`
4889
4890	// NullFields is a list of field names (e.g. "FormulasChanged") to
4891	// include in API requests with the JSON null value. By default, fields
4892	// with empty values are omitted from API requests. However, any field
4893	// with an empty value appearing in NullFields will be sent to the
4894	// server as null. It is an error if a field in this list has a
4895	// non-empty value. This may be used to include null fields in Patch
4896	// requests.
4897	NullFields []string `json:"-"`
4898}
4899
4900func (s *FindReplaceResponse) MarshalJSON() ([]byte, error) {
4901	type NoMethod FindReplaceResponse
4902	raw := NoMethod(*s)
4903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4904}
4905
4906// GetSpreadsheetByDataFilterRequest: The request for retrieving a
4907// Spreadsheet.
4908type GetSpreadsheetByDataFilterRequest struct {
4909	// DataFilters: The DataFilters used to select which ranges to retrieve
4910	// from
4911	// the spreadsheet.
4912	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
4913
4914	// IncludeGridData: True if grid data should be returned.
4915	// This parameter is ignored if a field mask was set in the request.
4916	IncludeGridData bool `json:"includeGridData,omitempty"`
4917
4918	// ForceSendFields is a list of field names (e.g. "DataFilters") to
4919	// unconditionally include in API requests. By default, fields with
4920	// empty values are omitted from API requests. However, any non-pointer,
4921	// non-interface field appearing in ForceSendFields will be sent to the
4922	// server regardless of whether the field is empty or not. This may be
4923	// used to include empty fields in Patch requests.
4924	ForceSendFields []string `json:"-"`
4925
4926	// NullFields is a list of field names (e.g. "DataFilters") to include
4927	// in API requests with the JSON null value. By default, fields with
4928	// empty values are omitted from API requests. However, any field with
4929	// an empty value appearing in NullFields will be sent to the server as
4930	// null. It is an error if a field in this list has a non-empty value.
4931	// This may be used to include null fields in Patch requests.
4932	NullFields []string `json:"-"`
4933}
4934
4935func (s *GetSpreadsheetByDataFilterRequest) MarshalJSON() ([]byte, error) {
4936	type NoMethod GetSpreadsheetByDataFilterRequest
4937	raw := NoMethod(*s)
4938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4939}
4940
4941// GradientRule: A rule that applies a gradient color scale format,
4942// based on
4943// the interpolation points listed. The format of a cell will vary
4944// based on its contents as compared to the values of the
4945// interpolation
4946// points.
4947type GradientRule struct {
4948	// Maxpoint: The final interpolation point.
4949	Maxpoint *InterpolationPoint `json:"maxpoint,omitempty"`
4950
4951	// Midpoint: An optional midway interpolation point.
4952	Midpoint *InterpolationPoint `json:"midpoint,omitempty"`
4953
4954	// Minpoint: The starting interpolation point.
4955	Minpoint *InterpolationPoint `json:"minpoint,omitempty"`
4956
4957	// ForceSendFields is a list of field names (e.g. "Maxpoint") to
4958	// unconditionally include in API requests. By default, fields with
4959	// empty values are omitted from API requests. However, any non-pointer,
4960	// non-interface field appearing in ForceSendFields will be sent to the
4961	// server regardless of whether the field is empty or not. This may be
4962	// used to include empty fields in Patch requests.
4963	ForceSendFields []string `json:"-"`
4964
4965	// NullFields is a list of field names (e.g. "Maxpoint") to include in
4966	// API requests with the JSON null value. By default, fields with empty
4967	// values are omitted from API requests. However, any field with an
4968	// empty value appearing in NullFields will be sent to the server as
4969	// null. It is an error if a field in this list has a non-empty value.
4970	// This may be used to include null fields in Patch requests.
4971	NullFields []string `json:"-"`
4972}
4973
4974func (s *GradientRule) MarshalJSON() ([]byte, error) {
4975	type NoMethod GradientRule
4976	raw := NoMethod(*s)
4977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4978}
4979
4980// GridCoordinate: A coordinate in a sheet.
4981// All indexes are zero-based.
4982type GridCoordinate struct {
4983	// ColumnIndex: The column index of the coordinate.
4984	ColumnIndex int64 `json:"columnIndex,omitempty"`
4985
4986	// RowIndex: The row index of the coordinate.
4987	RowIndex int64 `json:"rowIndex,omitempty"`
4988
4989	// SheetId: The sheet this coordinate is on.
4990	SheetId int64 `json:"sheetId,omitempty"`
4991
4992	// ForceSendFields is a list of field names (e.g. "ColumnIndex") to
4993	// unconditionally include in API requests. By default, fields with
4994	// empty values are omitted from API requests. However, any non-pointer,
4995	// non-interface field appearing in ForceSendFields will be sent to the
4996	// server regardless of whether the field is empty or not. This may be
4997	// used to include empty fields in Patch requests.
4998	ForceSendFields []string `json:"-"`
4999
5000	// NullFields is a list of field names (e.g. "ColumnIndex") to include
5001	// in API requests with the JSON null value. By default, fields with
5002	// empty values are omitted from API requests. However, any field with
5003	// an empty value appearing in NullFields will be sent to the server as
5004	// null. It is an error if a field in this list has a non-empty value.
5005	// This may be used to include null fields in Patch requests.
5006	NullFields []string `json:"-"`
5007}
5008
5009func (s *GridCoordinate) MarshalJSON() ([]byte, error) {
5010	type NoMethod GridCoordinate
5011	raw := NoMethod(*s)
5012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5013}
5014
5015// GridData: Data in the grid, as well as metadata about the dimensions.
5016type GridData struct {
5017	// ColumnMetadata: Metadata about the requested columns in the grid,
5018	// starting with the column
5019	// in start_column.
5020	ColumnMetadata []*DimensionProperties `json:"columnMetadata,omitempty"`
5021
5022	// RowData: The data in the grid, one entry per row,
5023	// starting with the row in startRow.
5024	// The values in RowData will correspond to columns starting
5025	// at start_column.
5026	RowData []*RowData `json:"rowData,omitempty"`
5027
5028	// RowMetadata: Metadata about the requested rows in the grid, starting
5029	// with the row
5030	// in start_row.
5031	RowMetadata []*DimensionProperties `json:"rowMetadata,omitempty"`
5032
5033	// StartColumn: The first column this GridData refers to, zero-based.
5034	StartColumn int64 `json:"startColumn,omitempty"`
5035
5036	// StartRow: The first row this GridData refers to, zero-based.
5037	StartRow int64 `json:"startRow,omitempty"`
5038
5039	// ForceSendFields is a list of field names (e.g. "ColumnMetadata") to
5040	// unconditionally include in API requests. By default, fields with
5041	// empty values are omitted from API requests. However, any non-pointer,
5042	// non-interface field appearing in ForceSendFields will be sent to the
5043	// server regardless of whether the field is empty or not. This may be
5044	// used to include empty fields in Patch requests.
5045	ForceSendFields []string `json:"-"`
5046
5047	// NullFields is a list of field names (e.g. "ColumnMetadata") to
5048	// include in API requests with the JSON null value. By default, fields
5049	// with empty values are omitted from API requests. However, any field
5050	// with an empty value appearing in NullFields will be sent to the
5051	// server as null. It is an error if a field in this list has a
5052	// non-empty value. This may be used to include null fields in Patch
5053	// requests.
5054	NullFields []string `json:"-"`
5055}
5056
5057func (s *GridData) MarshalJSON() ([]byte, error) {
5058	type NoMethod GridData
5059	raw := NoMethod(*s)
5060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5061}
5062
5063// GridProperties: Properties of a grid.
5064type GridProperties struct {
5065	// ColumnCount: The number of columns in the grid.
5066	ColumnCount int64 `json:"columnCount,omitempty"`
5067
5068	// FrozenColumnCount: The number of columns that are frozen in the grid.
5069	FrozenColumnCount int64 `json:"frozenColumnCount,omitempty"`
5070
5071	// FrozenRowCount: The number of rows that are frozen in the grid.
5072	FrozenRowCount int64 `json:"frozenRowCount,omitempty"`
5073
5074	// HideGridlines: True if the grid isn't showing gridlines in the UI.
5075	HideGridlines bool `json:"hideGridlines,omitempty"`
5076
5077	// RowCount: The number of rows in the grid.
5078	RowCount int64 `json:"rowCount,omitempty"`
5079
5080	// ForceSendFields is a list of field names (e.g. "ColumnCount") to
5081	// unconditionally include in API requests. By default, fields with
5082	// empty values are omitted from API requests. However, any non-pointer,
5083	// non-interface field appearing in ForceSendFields will be sent to the
5084	// server regardless of whether the field is empty or not. This may be
5085	// used to include empty fields in Patch requests.
5086	ForceSendFields []string `json:"-"`
5087
5088	// NullFields is a list of field names (e.g. "ColumnCount") to include
5089	// in API requests with the JSON null value. By default, fields with
5090	// empty values are omitted from API requests. However, any field with
5091	// an empty value appearing in NullFields will be sent to the server as
5092	// null. It is an error if a field in this list has a non-empty value.
5093	// This may be used to include null fields in Patch requests.
5094	NullFields []string `json:"-"`
5095}
5096
5097func (s *GridProperties) MarshalJSON() ([]byte, error) {
5098	type NoMethod GridProperties
5099	raw := NoMethod(*s)
5100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5101}
5102
5103// GridRange: A range on a sheet.
5104// All indexes are zero-based.
5105// Indexes are half open, e.g the start index is inclusive
5106// and the end index is exclusive -- [start_index, end_index).
5107// Missing indexes indicate the range is unbounded on that side.
5108//
5109// For example, if "Sheet1" is sheet ID 0, then:
5110//
5111//   `Sheet1!A1:A1 == sheet_id: 0,
5112//                   start_row_index: 0, end_row_index: 1,
5113//                   start_column_index: 0, end_column_index: 1`
5114//
5115//   `Sheet1!A3:B4 == sheet_id: 0,
5116//                   start_row_index: 2, end_row_index: 4,
5117//                   start_column_index: 0, end_column_index: 2`
5118//
5119//   `Sheet1!A:B == sheet_id: 0,
5120//                 start_column_index: 0, end_column_index: 2`
5121//
5122//   `Sheet1!A5:B == sheet_id: 0,
5123//                  start_row_index: 4,
5124//                  start_column_index: 0, end_column_index: 2`
5125//
5126//   `Sheet1 == sheet_id:0`
5127//
5128// The start index must always be less than or equal to the end
5129// index.
5130// If the start index equals the end index, then the range is
5131// empty.
5132// Empty ranges are typically not meaningful and are usually rendered in
5133// the
5134// UI as `#REF!`.
5135type GridRange struct {
5136	// EndColumnIndex: The end column (exclusive) of the range, or not set
5137	// if unbounded.
5138	EndColumnIndex int64 `json:"endColumnIndex,omitempty"`
5139
5140	// EndRowIndex: The end row (exclusive) of the range, or not set if
5141	// unbounded.
5142	EndRowIndex int64 `json:"endRowIndex,omitempty"`
5143
5144	// SheetId: The sheet this range is on.
5145	SheetId int64 `json:"sheetId,omitempty"`
5146
5147	// StartColumnIndex: The start column (inclusive) of the range, or not
5148	// set if unbounded.
5149	StartColumnIndex int64 `json:"startColumnIndex,omitempty"`
5150
5151	// StartRowIndex: The start row (inclusive) of the range, or not set if
5152	// unbounded.
5153	StartRowIndex int64 `json:"startRowIndex,omitempty"`
5154
5155	// ForceSendFields is a list of field names (e.g. "EndColumnIndex") to
5156	// unconditionally include in API requests. By default, fields with
5157	// empty values are omitted from API requests. However, any non-pointer,
5158	// non-interface field appearing in ForceSendFields will be sent to the
5159	// server regardless of whether the field is empty or not. This may be
5160	// used to include empty fields in Patch requests.
5161	ForceSendFields []string `json:"-"`
5162
5163	// NullFields is a list of field names (e.g. "EndColumnIndex") to
5164	// include in API requests with the JSON null value. By default, fields
5165	// with empty values are omitted from API requests. However, any field
5166	// with an empty value appearing in NullFields will be sent to the
5167	// server as null. It is an error if a field in this list has a
5168	// non-empty value. This may be used to include null fields in Patch
5169	// requests.
5170	NullFields []string `json:"-"`
5171}
5172
5173func (s *GridRange) MarshalJSON() ([]byte, error) {
5174	type NoMethod GridRange
5175	raw := NoMethod(*s)
5176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5177}
5178
5179// HistogramChartSpec: A <a
5180// href="/chart/interactive/docs/gallery/histogram">histogram
5181// chart</a>.
5182// A histogram chart groups data items into bins, displaying each bin as
5183// a
5184// column of stacked items.  Histograms are used to display the
5185// distribution
5186// of a dataset.  Each column of items represents a range into which
5187// those
5188// items fall.  The number of bins can be chosen automatically or
5189// specified
5190// explicitly.
5191type HistogramChartSpec struct {
5192	// BucketSize: By default the bucket size (the range of values stacked
5193	// in a single
5194	// column) is chosen automatically, but it may be overridden here.
5195	// E.g., A bucket size of 1.5 results in buckets from 0 - 1.5, 1.5 -
5196	// 3.0, etc.
5197	// Cannot be negative.
5198	// This field is optional.
5199	BucketSize float64 `json:"bucketSize,omitempty"`
5200
5201	// LegendPosition: The position of the chart legend.
5202	//
5203	// Possible values:
5204	//   "HISTOGRAM_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do
5205	// not use.
5206	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
5207	// chart.
5208	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
5209	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
5210	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
5211	//   "NO_LEGEND" - No legend is rendered.
5212	//   "INSIDE_LEGEND" - The legend is rendered inside the chart area.
5213	LegendPosition string `json:"legendPosition,omitempty"`
5214
5215	// OutlierPercentile: The outlier percentile is used to ensure that
5216	// outliers do not adversely
5217	// affect the calculation of bucket sizes.  For example, setting an
5218	// outlier
5219	// percentile of 0.05 indicates that the top and bottom 5% of values
5220	// when
5221	// calculating buckets.  The values are still included in the chart,
5222	// they will
5223	// be added to the first or last buckets instead of their own
5224	// buckets.
5225	// Must be between 0.0 and 0.5.
5226	OutlierPercentile float64 `json:"outlierPercentile,omitempty"`
5227
5228	// Series: The series for a histogram may be either a single series of
5229	// values to be
5230	// bucketed or multiple series, each of the same length, containing the
5231	// name
5232	// of the series followed by the values to be bucketed for that series.
5233	Series []*HistogramSeries `json:"series,omitempty"`
5234
5235	// ShowItemDividers: Whether horizontal divider lines should be
5236	// displayed between items in each
5237	// column.
5238	ShowItemDividers bool `json:"showItemDividers,omitempty"`
5239
5240	// ForceSendFields is a list of field names (e.g. "BucketSize") to
5241	// unconditionally include in API requests. By default, fields with
5242	// empty values are omitted from API requests. However, any non-pointer,
5243	// non-interface field appearing in ForceSendFields will be sent to the
5244	// server regardless of whether the field is empty or not. This may be
5245	// used to include empty fields in Patch requests.
5246	ForceSendFields []string `json:"-"`
5247
5248	// NullFields is a list of field names (e.g. "BucketSize") to include in
5249	// API requests with the JSON null value. By default, fields with empty
5250	// values are omitted from API requests. However, any field with an
5251	// empty value appearing in NullFields will be sent to the server as
5252	// null. It is an error if a field in this list has a non-empty value.
5253	// This may be used to include null fields in Patch requests.
5254	NullFields []string `json:"-"`
5255}
5256
5257func (s *HistogramChartSpec) MarshalJSON() ([]byte, error) {
5258	type NoMethod HistogramChartSpec
5259	raw := NoMethod(*s)
5260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5261}
5262
5263func (s *HistogramChartSpec) UnmarshalJSON(data []byte) error {
5264	type NoMethod HistogramChartSpec
5265	var s1 struct {
5266		BucketSize        gensupport.JSONFloat64 `json:"bucketSize"`
5267		OutlierPercentile gensupport.JSONFloat64 `json:"outlierPercentile"`
5268		*NoMethod
5269	}
5270	s1.NoMethod = (*NoMethod)(s)
5271	if err := json.Unmarshal(data, &s1); err != nil {
5272		return err
5273	}
5274	s.BucketSize = float64(s1.BucketSize)
5275	s.OutlierPercentile = float64(s1.OutlierPercentile)
5276	return nil
5277}
5278
5279// HistogramRule: Allows you to organize the numeric values in a source
5280// data column into
5281// buckets of a constant size. All values from HistogramRule.start
5282// to
5283// HistogramRule.end will be placed into groups of
5284// size
5285// HistogramRule.interval. In addition, all values
5286// below
5287// HistogramRule.start will be placed in one group, and all values
5288// above
5289// HistogramRule.end will be placed in another.
5290// Only
5291// HistogramRule.interval is required, though if HistogramRule.start
5292// and HistogramRule.end are both provided, HistogramRule.start must
5293// be less than HistogramRule.end. For example, a pivot table
5294// showing
5295// average purchase amount by age that has 50+ rows:
5296//
5297//     +-----+-------------------+
5298//     | Age | AVERAGE of Amount |
5299//     +-----+-------------------+
5300//     | 16  |            $27.13 |
5301//     | 17  |             $5.24 |
5302//     | 18  |            $20.15 |
5303//     ...
5304//     +-----+-------------------+
5305// could be turned into a pivot table that looks like the one below
5306// by
5307// applying a histogram group rule with a HistogramRule.start of 25,
5308// an HistogramRule.interval of 20, and an HistogramRule.end
5309// of 65.
5310//
5311//     +-------------+-------------------+
5312//     | Grouped Age | AVERAGE of Amount |
5313//     +-------------+-------------------+
5314//     | < 25        |            $19.34 |
5315//     | 25-45       |            $31.43 |
5316//     | 45-65       |            $35.87 |
5317//     | > 65        |            $27.55 |
5318//     +-------------+-------------------+
5319//     | Grand Total |            $29.12 |
5320//     +-------------+-------------------+
5321type HistogramRule struct {
5322	// End: The maximum value at which items will be placed into buckets
5323	// of constant size. Values above end will be lumped into a single
5324	// bucket.
5325	// This field is optional.
5326	End float64 `json:"end,omitempty"`
5327
5328	// Interval: The size of the buckets that will be created. Must be
5329	// positive.
5330	Interval float64 `json:"interval,omitempty"`
5331
5332	// Start: The minimum value at which items will be placed into
5333	// buckets
5334	// of constant size. Values below start will be lumped into a single
5335	// bucket.
5336	// This field is optional.
5337	Start float64 `json:"start,omitempty"`
5338
5339	// ForceSendFields is a list of field names (e.g. "End") to
5340	// unconditionally include in API requests. By default, fields with
5341	// empty values are omitted from API requests. However, any non-pointer,
5342	// non-interface field appearing in ForceSendFields will be sent to the
5343	// server regardless of whether the field is empty or not. This may be
5344	// used to include empty fields in Patch requests.
5345	ForceSendFields []string `json:"-"`
5346
5347	// NullFields is a list of field names (e.g. "End") to include in API
5348	// requests with the JSON null value. By default, fields with empty
5349	// values are omitted from API requests. However, any field with an
5350	// empty value appearing in NullFields will be sent to the server as
5351	// null. It is an error if a field in this list has a non-empty value.
5352	// This may be used to include null fields in Patch requests.
5353	NullFields []string `json:"-"`
5354}
5355
5356func (s *HistogramRule) MarshalJSON() ([]byte, error) {
5357	type NoMethod HistogramRule
5358	raw := NoMethod(*s)
5359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5360}
5361
5362func (s *HistogramRule) UnmarshalJSON(data []byte) error {
5363	type NoMethod HistogramRule
5364	var s1 struct {
5365		End      gensupport.JSONFloat64 `json:"end"`
5366		Interval gensupport.JSONFloat64 `json:"interval"`
5367		Start    gensupport.JSONFloat64 `json:"start"`
5368		*NoMethod
5369	}
5370	s1.NoMethod = (*NoMethod)(s)
5371	if err := json.Unmarshal(data, &s1); err != nil {
5372		return err
5373	}
5374	s.End = float64(s1.End)
5375	s.Interval = float64(s1.Interval)
5376	s.Start = float64(s1.Start)
5377	return nil
5378}
5379
5380// HistogramSeries: A histogram series containing the series color and
5381// data.
5382type HistogramSeries struct {
5383	// BarColor: The color of the column representing this series in each
5384	// bucket.
5385	// This field is optional.
5386	BarColor *Color `json:"barColor,omitempty"`
5387
5388	// Data: The data for this histogram series.
5389	Data *ChartData `json:"data,omitempty"`
5390
5391	// ForceSendFields is a list of field names (e.g. "BarColor") to
5392	// unconditionally include in API requests. By default, fields with
5393	// empty values are omitted from API requests. However, any non-pointer,
5394	// non-interface field appearing in ForceSendFields will be sent to the
5395	// server regardless of whether the field is empty or not. This may be
5396	// used to include empty fields in Patch requests.
5397	ForceSendFields []string `json:"-"`
5398
5399	// NullFields is a list of field names (e.g. "BarColor") to include in
5400	// API requests with the JSON null value. By default, fields with empty
5401	// values are omitted from API requests. However, any field with an
5402	// empty value appearing in NullFields will be sent to the server as
5403	// null. It is an error if a field in this list has a non-empty value.
5404	// This may be used to include null fields in Patch requests.
5405	NullFields []string `json:"-"`
5406}
5407
5408func (s *HistogramSeries) MarshalJSON() ([]byte, error) {
5409	type NoMethod HistogramSeries
5410	raw := NoMethod(*s)
5411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5412}
5413
5414// InsertDimensionRequest: Inserts rows or columns in a sheet at a
5415// particular index.
5416type InsertDimensionRequest struct {
5417	// InheritFromBefore: Whether dimension properties should be extended
5418	// from the dimensions
5419	// before or after the newly inserted dimensions.
5420	// True to inherit from the dimensions before (in which case the
5421	// start
5422	// index must be greater than 0), and false to inherit from the
5423	// dimensions
5424	// after.
5425	//
5426	// For example, if row index 0 has red background and row index 1
5427	// has a green background, then inserting 2 rows at index 1 can
5428	// inherit
5429	// either the green or red background.  If `inheritFromBefore` is
5430	// true,
5431	// the two new rows will be red (because the row before the insertion
5432	// point
5433	// was red), whereas if `inheritFromBefore` is false, the two new rows
5434	// will
5435	// be green (because the row after the insertion point was green).
5436	InheritFromBefore bool `json:"inheritFromBefore,omitempty"`
5437
5438	// Range: The dimensions to insert.  Both the start and end indexes must
5439	// be bounded.
5440	Range *DimensionRange `json:"range,omitempty"`
5441
5442	// ForceSendFields is a list of field names (e.g. "InheritFromBefore")
5443	// to unconditionally include in API requests. By default, fields with
5444	// empty values are omitted from API requests. However, any non-pointer,
5445	// non-interface field appearing in ForceSendFields will be sent to the
5446	// server regardless of whether the field is empty or not. This may be
5447	// used to include empty fields in Patch requests.
5448	ForceSendFields []string `json:"-"`
5449
5450	// NullFields is a list of field names (e.g. "InheritFromBefore") to
5451	// include in API requests with the JSON null value. By default, fields
5452	// with empty values are omitted from API requests. However, any field
5453	// with an empty value appearing in NullFields will be sent to the
5454	// server as null. It is an error if a field in this list has a
5455	// non-empty value. This may be used to include null fields in Patch
5456	// requests.
5457	NullFields []string `json:"-"`
5458}
5459
5460func (s *InsertDimensionRequest) MarshalJSON() ([]byte, error) {
5461	type NoMethod InsertDimensionRequest
5462	raw := NoMethod(*s)
5463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5464}
5465
5466// InsertRangeRequest: Inserts cells into a range, shifting the existing
5467// cells over or down.
5468type InsertRangeRequest struct {
5469	// Range: The range to insert new cells into.
5470	Range *GridRange `json:"range,omitempty"`
5471
5472	// ShiftDimension: The dimension which will be shifted when inserting
5473	// cells.
5474	// If ROWS, existing cells will be shifted down.
5475	// If COLUMNS, existing cells will be shifted right.
5476	//
5477	// Possible values:
5478	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
5479	//   "ROWS" - Operates on the rows of a sheet.
5480	//   "COLUMNS" - Operates on the columns of a sheet.
5481	ShiftDimension string `json:"shiftDimension,omitempty"`
5482
5483	// ForceSendFields is a list of field names (e.g. "Range") to
5484	// unconditionally include in API requests. By default, fields with
5485	// empty values are omitted from API requests. However, any non-pointer,
5486	// non-interface field appearing in ForceSendFields will be sent to the
5487	// server regardless of whether the field is empty or not. This may be
5488	// used to include empty fields in Patch requests.
5489	ForceSendFields []string `json:"-"`
5490
5491	// NullFields is a list of field names (e.g. "Range") to include in API
5492	// requests with the JSON null value. By default, fields with empty
5493	// values are omitted from API requests. However, any field with an
5494	// empty value appearing in NullFields will be sent to the server as
5495	// null. It is an error if a field in this list has a non-empty value.
5496	// This may be used to include null fields in Patch requests.
5497	NullFields []string `json:"-"`
5498}
5499
5500func (s *InsertRangeRequest) MarshalJSON() ([]byte, error) {
5501	type NoMethod InsertRangeRequest
5502	raw := NoMethod(*s)
5503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5504}
5505
5506// InterpolationPoint: A single interpolation point on a gradient
5507// conditional format.
5508// These pin the gradient color scale according to the color,
5509// type and value chosen.
5510type InterpolationPoint struct {
5511	// Color: The color this interpolation point should use.
5512	Color *Color `json:"color,omitempty"`
5513
5514	// Type: How the value should be interpreted.
5515	//
5516	// Possible values:
5517	//   "INTERPOLATION_POINT_TYPE_UNSPECIFIED" - The default value, do not
5518	// use.
5519	//   "MIN" - The interpolation point will use the minimum value in
5520	// the
5521	// cells over the range of the conditional format.
5522	//   "MAX" - The interpolation point will use the maximum value in
5523	// the
5524	// cells over the range of the conditional format.
5525	//   "NUMBER" - The interpolation point will use exactly the value
5526	// in
5527	// InterpolationPoint.value.
5528	//   "PERCENT" - The interpolation point will be the given percentage
5529	// over
5530	// all the cells in the range of the conditional format.
5531	// This is equivalent to NUMBER if the value was:
5532	// `=(MAX(FLATTEN(range)) * (value / 100))
5533	//   + (MIN(FLATTEN(range)) * (1 - (value / 100)))`
5534	// (where errors in the range are ignored when flattening).
5535	//   "PERCENTILE" - The interpolation point will be the given
5536	// percentile
5537	// over all the cells in the range of the conditional format.
5538	// This is equivalent to NUMBER if the value
5539	// was:
5540	// `=PERCENTILE(FLATTEN(range), value / 100)`
5541	// (where errors in the range are ignored when flattening).
5542	Type string `json:"type,omitempty"`
5543
5544	// Value: The value this interpolation point uses.  May be a
5545	// formula.
5546	// Unused if type is MIN or
5547	// MAX.
5548	Value string `json:"value,omitempty"`
5549
5550	// ForceSendFields is a list of field names (e.g. "Color") to
5551	// unconditionally include in API requests. By default, fields with
5552	// empty values are omitted from API requests. However, any non-pointer,
5553	// non-interface field appearing in ForceSendFields will be sent to the
5554	// server regardless of whether the field is empty or not. This may be
5555	// used to include empty fields in Patch requests.
5556	ForceSendFields []string `json:"-"`
5557
5558	// NullFields is a list of field names (e.g. "Color") to include in API
5559	// requests with the JSON null value. By default, fields with empty
5560	// values are omitted from API requests. However, any field with an
5561	// empty value appearing in NullFields will be sent to the server as
5562	// null. It is an error if a field in this list has a non-empty value.
5563	// This may be used to include null fields in Patch requests.
5564	NullFields []string `json:"-"`
5565}
5566
5567func (s *InterpolationPoint) MarshalJSON() ([]byte, error) {
5568	type NoMethod InterpolationPoint
5569	raw := NoMethod(*s)
5570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5571}
5572
5573// IterativeCalculationSettings: Settings to control how circular
5574// dependencies are resolved with iterative
5575// calculation.
5576type IterativeCalculationSettings struct {
5577	// ConvergenceThreshold: When iterative calculation is enabled and
5578	// successive results differ by
5579	// less than this threshold value, the calculation rounds stop.
5580	ConvergenceThreshold float64 `json:"convergenceThreshold,omitempty"`
5581
5582	// MaxIterations: When iterative calculation is enabled, the maximum
5583	// number of calculation
5584	// rounds to perform.
5585	MaxIterations int64 `json:"maxIterations,omitempty"`
5586
5587	// ForceSendFields is a list of field names (e.g.
5588	// "ConvergenceThreshold") to unconditionally include in API requests.
5589	// By default, fields with empty values are omitted from API requests.
5590	// However, any non-pointer, non-interface field appearing in
5591	// ForceSendFields will be sent to the server regardless of whether the
5592	// field is empty or not. This may be used to include empty fields in
5593	// Patch requests.
5594	ForceSendFields []string `json:"-"`
5595
5596	// NullFields is a list of field names (e.g. "ConvergenceThreshold") to
5597	// include in API requests with the JSON null value. By default, fields
5598	// with empty values are omitted from API requests. However, any field
5599	// with an empty value appearing in NullFields will be sent to the
5600	// server as null. It is an error if a field in this list has a
5601	// non-empty value. This may be used to include null fields in Patch
5602	// requests.
5603	NullFields []string `json:"-"`
5604}
5605
5606func (s *IterativeCalculationSettings) MarshalJSON() ([]byte, error) {
5607	type NoMethod IterativeCalculationSettings
5608	raw := NoMethod(*s)
5609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5610}
5611
5612func (s *IterativeCalculationSettings) UnmarshalJSON(data []byte) error {
5613	type NoMethod IterativeCalculationSettings
5614	var s1 struct {
5615		ConvergenceThreshold gensupport.JSONFloat64 `json:"convergenceThreshold"`
5616		*NoMethod
5617	}
5618	s1.NoMethod = (*NoMethod)(s)
5619	if err := json.Unmarshal(data, &s1); err != nil {
5620		return err
5621	}
5622	s.ConvergenceThreshold = float64(s1.ConvergenceThreshold)
5623	return nil
5624}
5625
5626// LineStyle: Properties that describe the style of a line.
5627type LineStyle struct {
5628	// Type: The dash type of the line.
5629	//
5630	// Possible values:
5631	//   "LINE_DASH_TYPE_UNSPECIFIED" - Default value, do not use.
5632	//   "INVISIBLE" - No dash type, which is equivalent to a non-visible
5633	// line.
5634	//   "CUSTOM" - A custom dash for a line. Modifying the exact custom
5635	// dash style is
5636	// currently unsupported.
5637	//   "SOLID" - A solid line.
5638	//   "DOTTED" - A dotted line.
5639	//   "MEDIUM_DASHED" - A dashed line where the dashes have "medium"
5640	// length.
5641	//   "MEDIUM_DASHED_DOTTED" - A line that alternates between a "medium"
5642	// dash and a dot.
5643	//   "LONG_DASHED" - A dashed line where the dashes have "long" length.
5644	//   "LONG_DASHED_DOTTED" - A line that alternates between a "long" dash
5645	// and a dot.
5646	Type string `json:"type,omitempty"`
5647
5648	// Width: The thickness of the line, in px.
5649	Width int64 `json:"width,omitempty"`
5650
5651	// ForceSendFields is a list of field names (e.g. "Type") to
5652	// unconditionally include in API requests. By default, fields with
5653	// empty values are omitted from API requests. However, any non-pointer,
5654	// non-interface field appearing in ForceSendFields will be sent to the
5655	// server regardless of whether the field is empty or not. This may be
5656	// used to include empty fields in Patch requests.
5657	ForceSendFields []string `json:"-"`
5658
5659	// NullFields is a list of field names (e.g. "Type") to include in API
5660	// requests with the JSON null value. By default, fields with empty
5661	// values are omitted from API requests. However, any field with an
5662	// empty value appearing in NullFields will be sent to the server as
5663	// null. It is an error if a field in this list has a non-empty value.
5664	// This may be used to include null fields in Patch requests.
5665	NullFields []string `json:"-"`
5666}
5667
5668func (s *LineStyle) MarshalJSON() ([]byte, error) {
5669	type NoMethod LineStyle
5670	raw := NoMethod(*s)
5671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5672}
5673
5674// ManualRule: Allows you to manually organize the values in a source
5675// data column into
5676// buckets with names of your choosing. For example, a pivot table
5677// that
5678// aggregates population by state:
5679//
5680//     +-------+-------------------+
5681//     | State | SUM of Population |
5682//     +-------+-------------------+
5683//     | AK    |               0.7 |
5684//     | AL    |               4.8 |
5685//     | AR    |               2.9 |
5686//     ...
5687//     +-------+-------------------+
5688// could be turned into a pivot table that aggregates population by time
5689// zone
5690// by providing a list of groups (e.g. groupName = 'Central',
5691// items = ['AL', 'AR', 'IA', ...]) to a manual group rule.
5692// Note that a similar effect could be achieved by adding a time zone
5693// column
5694// to the source data and adjusting the pivot table.
5695//
5696//     +-----------+-------------------+
5697//     | Time Zone | SUM of Population |
5698//     +-----------+-------------------+
5699//     | Central   |             106.3 |
5700//     | Eastern   |             151.9 |
5701//     | Mountain  |              17.4 |
5702//     ...
5703//     +-----------+-------------------+
5704type ManualRule struct {
5705	// Groups: The list of group names and the corresponding items from the
5706	// source data
5707	// that map to each group name.
5708	Groups []*ManualRuleGroup `json:"groups,omitempty"`
5709
5710	// ForceSendFields is a list of field names (e.g. "Groups") to
5711	// unconditionally include in API requests. By default, fields with
5712	// empty values are omitted from API requests. However, any non-pointer,
5713	// non-interface field appearing in ForceSendFields will be sent to the
5714	// server regardless of whether the field is empty or not. This may be
5715	// used to include empty fields in Patch requests.
5716	ForceSendFields []string `json:"-"`
5717
5718	// NullFields is a list of field names (e.g. "Groups") to include in API
5719	// requests with the JSON null value. By default, fields with empty
5720	// values are omitted from API requests. However, any field with an
5721	// empty value appearing in NullFields will be sent to the server as
5722	// null. It is an error if a field in this list has a non-empty value.
5723	// This may be used to include null fields in Patch requests.
5724	NullFields []string `json:"-"`
5725}
5726
5727func (s *ManualRule) MarshalJSON() ([]byte, error) {
5728	type NoMethod ManualRule
5729	raw := NoMethod(*s)
5730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5731}
5732
5733// ManualRuleGroup: A group name and a list of items from the source
5734// data that should be placed
5735// in the group with this name.
5736type ManualRuleGroup struct {
5737	// GroupName: The group name, which must be a string. Each group in a
5738	// given
5739	// ManualRule must have a unique group name.
5740	GroupName *ExtendedValue `json:"groupName,omitempty"`
5741
5742	// Items: The items in the source data that should be placed into this
5743	// group. Each
5744	// item may be a string, number, or boolean. Items may appear in at most
5745	// one
5746	// group within a given ManualRule. Items that do not appear in
5747	// any
5748	// group will appear on their own.
5749	Items []*ExtendedValue `json:"items,omitempty"`
5750
5751	// ForceSendFields is a list of field names (e.g. "GroupName") to
5752	// unconditionally include in API requests. By default, fields with
5753	// empty values are omitted from API requests. However, any non-pointer,
5754	// non-interface field appearing in ForceSendFields will be sent to the
5755	// server regardless of whether the field is empty or not. This may be
5756	// used to include empty fields in Patch requests.
5757	ForceSendFields []string `json:"-"`
5758
5759	// NullFields is a list of field names (e.g. "GroupName") to include in
5760	// API requests with the JSON null value. By default, fields with empty
5761	// values are omitted from API requests. However, any field with an
5762	// empty value appearing in NullFields will be sent to the server as
5763	// null. It is an error if a field in this list has a non-empty value.
5764	// This may be used to include null fields in Patch requests.
5765	NullFields []string `json:"-"`
5766}
5767
5768func (s *ManualRuleGroup) MarshalJSON() ([]byte, error) {
5769	type NoMethod ManualRuleGroup
5770	raw := NoMethod(*s)
5771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5772}
5773
5774// MatchedDeveloperMetadata: A developer metadata entry and the data
5775// filters specified in the original
5776// request that matched it.
5777type MatchedDeveloperMetadata struct {
5778	// DataFilters: All filters matching the returned developer metadata.
5779	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
5780
5781	// DeveloperMetadata: The developer metadata matching the specified
5782	// filters.
5783	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
5784
5785	// ForceSendFields is a list of field names (e.g. "DataFilters") to
5786	// unconditionally include in API requests. By default, fields with
5787	// empty values are omitted from API requests. However, any non-pointer,
5788	// non-interface field appearing in ForceSendFields will be sent to the
5789	// server regardless of whether the field is empty or not. This may be
5790	// used to include empty fields in Patch requests.
5791	ForceSendFields []string `json:"-"`
5792
5793	// NullFields is a list of field names (e.g. "DataFilters") to include
5794	// in API requests with the JSON null value. By default, fields with
5795	// empty values are omitted from API requests. However, any field with
5796	// an empty value appearing in NullFields will be sent to the server as
5797	// null. It is an error if a field in this list has a non-empty value.
5798	// This may be used to include null fields in Patch requests.
5799	NullFields []string `json:"-"`
5800}
5801
5802func (s *MatchedDeveloperMetadata) MarshalJSON() ([]byte, error) {
5803	type NoMethod MatchedDeveloperMetadata
5804	raw := NoMethod(*s)
5805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5806}
5807
5808// MatchedValueRange: A value range that was matched by one or more data
5809// filers.
5810type MatchedValueRange struct {
5811	// DataFilters: The DataFilters from the request that matched the range
5812	// of
5813	// values.
5814	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
5815
5816	// ValueRange: The values matched by the DataFilter.
5817	ValueRange *ValueRange `json:"valueRange,omitempty"`
5818
5819	// ForceSendFields is a list of field names (e.g. "DataFilters") to
5820	// unconditionally include in API requests. By default, fields with
5821	// empty values are omitted from API requests. However, any non-pointer,
5822	// non-interface field appearing in ForceSendFields will be sent to the
5823	// server regardless of whether the field is empty or not. This may be
5824	// used to include empty fields in Patch requests.
5825	ForceSendFields []string `json:"-"`
5826
5827	// NullFields is a list of field names (e.g. "DataFilters") to include
5828	// in API requests with the JSON null value. By default, fields with
5829	// empty values are omitted from API requests. However, any field with
5830	// an empty value appearing in NullFields will be sent to the server as
5831	// null. It is an error if a field in this list has a non-empty value.
5832	// This may be used to include null fields in Patch requests.
5833	NullFields []string `json:"-"`
5834}
5835
5836func (s *MatchedValueRange) MarshalJSON() ([]byte, error) {
5837	type NoMethod MatchedValueRange
5838	raw := NoMethod(*s)
5839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5840}
5841
5842// MergeCellsRequest: Merges all cells in the range.
5843type MergeCellsRequest struct {
5844	// MergeType: How the cells should be merged.
5845	//
5846	// Possible values:
5847	//   "MERGE_ALL" - Create a single merge from the range
5848	//   "MERGE_COLUMNS" - Create a merge for each column in the range
5849	//   "MERGE_ROWS" - Create a merge for each row in the range
5850	MergeType string `json:"mergeType,omitempty"`
5851
5852	// Range: The range of cells to merge.
5853	Range *GridRange `json:"range,omitempty"`
5854
5855	// ForceSendFields is a list of field names (e.g. "MergeType") to
5856	// unconditionally include in API requests. By default, fields with
5857	// empty values are omitted from API requests. However, any non-pointer,
5858	// non-interface field appearing in ForceSendFields will be sent to the
5859	// server regardless of whether the field is empty or not. This may be
5860	// used to include empty fields in Patch requests.
5861	ForceSendFields []string `json:"-"`
5862
5863	// NullFields is a list of field names (e.g. "MergeType") to include in
5864	// API requests with the JSON null value. By default, fields with empty
5865	// values are omitted from API requests. However, any field with an
5866	// empty value appearing in NullFields will be sent to the server as
5867	// null. It is an error if a field in this list has a non-empty value.
5868	// This may be used to include null fields in Patch requests.
5869	NullFields []string `json:"-"`
5870}
5871
5872func (s *MergeCellsRequest) MarshalJSON() ([]byte, error) {
5873	type NoMethod MergeCellsRequest
5874	raw := NoMethod(*s)
5875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5876}
5877
5878// MoveDimensionRequest: Moves one or more rows or columns.
5879type MoveDimensionRequest struct {
5880	// DestinationIndex: The zero-based start index of where to move the
5881	// source data to,
5882	// based on the coordinates *before* the source data is removed
5883	// from the grid.  Existing data will be shifted down or
5884	// right
5885	// (depending on the dimension) to make room for the moved
5886	// dimensions.
5887	// The source dimensions are removed from the grid, so the
5888	// the data may end up in a different index than specified.
5889	//
5890	// For example, given `A1..A5` of `0, 1, 2, 3, 4` and wanting to
5891	// move
5892	// "1" and "2" to between "3" and "4", the source would be
5893	// `ROWS [1..3)`,and the destination index would be "4"
5894	// (the zero-based index of row 5).
5895	// The end result would be `A1..A5` of `0, 3, 1, 2, 4`.
5896	DestinationIndex int64 `json:"destinationIndex,omitempty"`
5897
5898	// Source: The source dimensions to move.
5899	Source *DimensionRange `json:"source,omitempty"`
5900
5901	// ForceSendFields is a list of field names (e.g. "DestinationIndex") to
5902	// unconditionally include in API requests. By default, fields with
5903	// empty values are omitted from API requests. However, any non-pointer,
5904	// non-interface field appearing in ForceSendFields will be sent to the
5905	// server regardless of whether the field is empty or not. This may be
5906	// used to include empty fields in Patch requests.
5907	ForceSendFields []string `json:"-"`
5908
5909	// NullFields is a list of field names (e.g. "DestinationIndex") to
5910	// include in API requests with the JSON null value. By default, fields
5911	// with empty values are omitted from API requests. However, any field
5912	// with an empty value appearing in NullFields will be sent to the
5913	// server as null. It is an error if a field in this list has a
5914	// non-empty value. This may be used to include null fields in Patch
5915	// requests.
5916	NullFields []string `json:"-"`
5917}
5918
5919func (s *MoveDimensionRequest) MarshalJSON() ([]byte, error) {
5920	type NoMethod MoveDimensionRequest
5921	raw := NoMethod(*s)
5922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5923}
5924
5925// NamedRange: A named range.
5926type NamedRange struct {
5927	// Name: The name of the named range.
5928	Name string `json:"name,omitempty"`
5929
5930	// NamedRangeId: The ID of the named range.
5931	NamedRangeId string `json:"namedRangeId,omitempty"`
5932
5933	// Range: The range this represents.
5934	Range *GridRange `json:"range,omitempty"`
5935
5936	// ForceSendFields is a list of field names (e.g. "Name") to
5937	// unconditionally include in API requests. By default, fields with
5938	// empty values are omitted from API requests. However, any non-pointer,
5939	// non-interface field appearing in ForceSendFields will be sent to the
5940	// server regardless of whether the field is empty or not. This may be
5941	// used to include empty fields in Patch requests.
5942	ForceSendFields []string `json:"-"`
5943
5944	// NullFields is a list of field names (e.g. "Name") to include in API
5945	// requests with the JSON null value. By default, fields with empty
5946	// values are omitted from API requests. However, any field with an
5947	// empty value appearing in NullFields will be sent to the server as
5948	// null. It is an error if a field in this list has a non-empty value.
5949	// This may be used to include null fields in Patch requests.
5950	NullFields []string `json:"-"`
5951}
5952
5953func (s *NamedRange) MarshalJSON() ([]byte, error) {
5954	type NoMethod NamedRange
5955	raw := NoMethod(*s)
5956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5957}
5958
5959// NumberFormat: The number format of a cell.
5960type NumberFormat struct {
5961	// Pattern: Pattern string used for formatting.  If not set, a default
5962	// pattern based on
5963	// the user's locale will be used if necessary for the given type.
5964	// See the [Date and Number Formats guide](/sheets/api/guides/formats)
5965	// for more
5966	// information about the supported patterns.
5967	Pattern string `json:"pattern,omitempty"`
5968
5969	// Type: The type of the number format.
5970	// When writing, this field must be set.
5971	//
5972	// Possible values:
5973	//   "NUMBER_FORMAT_TYPE_UNSPECIFIED" - The number format is not
5974	// specified
5975	// and is based on the contents of the cell.
5976	// Do not explicitly use this.
5977	//   "TEXT" - Text formatting, e.g `1000.12`
5978	//   "NUMBER" - Number formatting, e.g, `1,000.12`
5979	//   "PERCENT" - Percent formatting, e.g `10.12%`
5980	//   "CURRENCY" - Currency formatting, e.g `$1,000.12`
5981	//   "DATE" - Date formatting, e.g `9/26/2008`
5982	//   "TIME" - Time formatting, e.g `3:59:00 PM`
5983	//   "DATE_TIME" - Date+Time formatting, e.g `9/26/08 15:59:00`
5984	//   "SCIENTIFIC" - Scientific number formatting, e.g `1.01E+03`
5985	Type string `json:"type,omitempty"`
5986
5987	// ForceSendFields is a list of field names (e.g. "Pattern") to
5988	// unconditionally include in API requests. By default, fields with
5989	// empty values are omitted from API requests. However, any non-pointer,
5990	// non-interface field appearing in ForceSendFields will be sent to the
5991	// server regardless of whether the field is empty or not. This may be
5992	// used to include empty fields in Patch requests.
5993	ForceSendFields []string `json:"-"`
5994
5995	// NullFields is a list of field names (e.g. "Pattern") to include in
5996	// API requests with the JSON null value. By default, fields with empty
5997	// values are omitted from API requests. However, any field with an
5998	// empty value appearing in NullFields will be sent to the server as
5999	// null. It is an error if a field in this list has a non-empty value.
6000	// This may be used to include null fields in Patch requests.
6001	NullFields []string `json:"-"`
6002}
6003
6004func (s *NumberFormat) MarshalJSON() ([]byte, error) {
6005	type NoMethod NumberFormat
6006	raw := NoMethod(*s)
6007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6008}
6009
6010// OrgChartSpec: An <a
6011// href="/chart/interactive/docs/gallery/orgchart">org chart</a>.
6012// Org charts require a unique set of labels in labels and
6013// may
6014// optionally include parent_labels and tooltips.
6015// parent_labels contain, for each node, the label identifying the
6016// parent
6017// node.  tooltips contain, for each node, an optional tooltip.
6018//
6019// For example, to describe an OrgChart with Alice as the CEO, Bob as
6020// the
6021// President (reporting to Alice) and Cathy as VP of Sales (also
6022// reporting to
6023// Alice), have labels contain "Alice", "Bob", "Cathy",
6024// parent_labels contain "", "Alice", "Alice" and tooltips
6025// contain
6026// "CEO", "President", "VP Sales".
6027type OrgChartSpec struct {
6028	// Labels: The data containing the labels for all the nodes in the
6029	// chart.  Labels
6030	// must be unique.
6031	Labels *ChartData `json:"labels,omitempty"`
6032
6033	// NodeColor: The color of the org chart nodes.
6034	NodeColor *Color `json:"nodeColor,omitempty"`
6035
6036	// NodeSize: The size of the org chart nodes.
6037	//
6038	// Possible values:
6039	//   "ORG_CHART_LABEL_SIZE_UNSPECIFIED" - Default value, do not use.
6040	//   "SMALL" - The small org chart node size.
6041	//   "MEDIUM" - The medium org chart node size.
6042	//   "LARGE" - The large org chart node size.
6043	NodeSize string `json:"nodeSize,omitempty"`
6044
6045	// ParentLabels: The data containing the label of the parent for the
6046	// corresponding node.
6047	// A blank value indicates that the node has no parent and is a
6048	// top-level
6049	// node.
6050	// This field is optional.
6051	ParentLabels *ChartData `json:"parentLabels,omitempty"`
6052
6053	// SelectedNodeColor: The color of the selected org chart nodes.
6054	SelectedNodeColor *Color `json:"selectedNodeColor,omitempty"`
6055
6056	// Tooltips: The data containing the tooltip for the corresponding node.
6057	//  A blank value
6058	// results in no tooltip being displayed for the node.
6059	// This field is optional.
6060	Tooltips *ChartData `json:"tooltips,omitempty"`
6061
6062	// ForceSendFields is a list of field names (e.g. "Labels") to
6063	// unconditionally include in API requests. By default, fields with
6064	// empty values are omitted from API requests. However, any non-pointer,
6065	// non-interface field appearing in ForceSendFields will be sent to the
6066	// server regardless of whether the field is empty or not. This may be
6067	// used to include empty fields in Patch requests.
6068	ForceSendFields []string `json:"-"`
6069
6070	// NullFields is a list of field names (e.g. "Labels") to include in API
6071	// requests with the JSON null value. By default, fields with empty
6072	// values are omitted from API requests. However, any field with an
6073	// empty value appearing in NullFields will be sent to the server as
6074	// null. It is an error if a field in this list has a non-empty value.
6075	// This may be used to include null fields in Patch requests.
6076	NullFields []string `json:"-"`
6077}
6078
6079func (s *OrgChartSpec) MarshalJSON() ([]byte, error) {
6080	type NoMethod OrgChartSpec
6081	raw := NoMethod(*s)
6082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6083}
6084
6085// OverlayPosition: The location an object is overlaid on top of a grid.
6086type OverlayPosition struct {
6087	// AnchorCell: The cell the object is anchored to.
6088	AnchorCell *GridCoordinate `json:"anchorCell,omitempty"`
6089
6090	// HeightPixels: The height of the object, in pixels. Defaults to 371.
6091	HeightPixels int64 `json:"heightPixels,omitempty"`
6092
6093	// OffsetXPixels: The horizontal offset, in pixels, that the object is
6094	// offset
6095	// from the anchor cell.
6096	OffsetXPixels int64 `json:"offsetXPixels,omitempty"`
6097
6098	// OffsetYPixels: The vertical offset, in pixels, that the object is
6099	// offset
6100	// from the anchor cell.
6101	OffsetYPixels int64 `json:"offsetYPixels,omitempty"`
6102
6103	// WidthPixels: The width of the object, in pixels. Defaults to 600.
6104	WidthPixels int64 `json:"widthPixels,omitempty"`
6105
6106	// ForceSendFields is a list of field names (e.g. "AnchorCell") to
6107	// unconditionally include in API requests. By default, fields with
6108	// empty values are omitted from API requests. However, any non-pointer,
6109	// non-interface field appearing in ForceSendFields will be sent to the
6110	// server regardless of whether the field is empty or not. This may be
6111	// used to include empty fields in Patch requests.
6112	ForceSendFields []string `json:"-"`
6113
6114	// NullFields is a list of field names (e.g. "AnchorCell") to include in
6115	// API requests with the JSON null value. By default, fields with empty
6116	// values are omitted from API requests. However, any field with an
6117	// empty value appearing in NullFields will be sent to the server as
6118	// null. It is an error if a field in this list has a non-empty value.
6119	// This may be used to include null fields in Patch requests.
6120	NullFields []string `json:"-"`
6121}
6122
6123func (s *OverlayPosition) MarshalJSON() ([]byte, error) {
6124	type NoMethod OverlayPosition
6125	raw := NoMethod(*s)
6126	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6127}
6128
6129// Padding: The amount of padding around the cell, in pixels.
6130// When updating padding, every field must be specified.
6131type Padding struct {
6132	// Bottom: The bottom padding of the cell.
6133	Bottom int64 `json:"bottom,omitempty"`
6134
6135	// Left: The left padding of the cell.
6136	Left int64 `json:"left,omitempty"`
6137
6138	// Right: The right padding of the cell.
6139	Right int64 `json:"right,omitempty"`
6140
6141	// Top: The top padding of the cell.
6142	Top int64 `json:"top,omitempty"`
6143
6144	// ForceSendFields is a list of field names (e.g. "Bottom") to
6145	// unconditionally include in API requests. By default, fields with
6146	// empty values are omitted from API requests. However, any non-pointer,
6147	// non-interface field appearing in ForceSendFields will be sent to the
6148	// server regardless of whether the field is empty or not. This may be
6149	// used to include empty fields in Patch requests.
6150	ForceSendFields []string `json:"-"`
6151
6152	// NullFields is a list of field names (e.g. "Bottom") to include in API
6153	// requests with the JSON null value. By default, fields with empty
6154	// values are omitted from API requests. However, any field with an
6155	// empty value appearing in NullFields will be sent to the server as
6156	// null. It is an error if a field in this list has a non-empty value.
6157	// This may be used to include null fields in Patch requests.
6158	NullFields []string `json:"-"`
6159}
6160
6161func (s *Padding) MarshalJSON() ([]byte, error) {
6162	type NoMethod Padding
6163	raw := NoMethod(*s)
6164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6165}
6166
6167// PasteDataRequest: Inserts data into the spreadsheet starting at the
6168// specified coordinate.
6169type PasteDataRequest struct {
6170	// Coordinate: The coordinate at which the data should start being
6171	// inserted.
6172	Coordinate *GridCoordinate `json:"coordinate,omitempty"`
6173
6174	// Data: The data to insert.
6175	Data string `json:"data,omitempty"`
6176
6177	// Delimiter: The delimiter in the data.
6178	Delimiter string `json:"delimiter,omitempty"`
6179
6180	// Html: True if the data is HTML.
6181	Html bool `json:"html,omitempty"`
6182
6183	// Type: How the data should be pasted.
6184	//
6185	// Possible values:
6186	//   "PASTE_NORMAL" - Paste values, formulas, formats, and merges.
6187	//   "PASTE_VALUES" - Paste the values ONLY without formats, formulas,
6188	// or merges.
6189	//   "PASTE_FORMAT" - Paste the format and data validation only.
6190	//   "PASTE_NO_BORDERS" - Like PASTE_NORMAL but without borders.
6191	//   "PASTE_FORMULA" - Paste the formulas only.
6192	//   "PASTE_DATA_VALIDATION" - Paste the data validation only.
6193	//   "PASTE_CONDITIONAL_FORMATTING" - Paste the conditional formatting
6194	// rules only.
6195	Type string `json:"type,omitempty"`
6196
6197	// ForceSendFields is a list of field names (e.g. "Coordinate") to
6198	// unconditionally include in API requests. By default, fields with
6199	// empty values are omitted from API requests. However, any non-pointer,
6200	// non-interface field appearing in ForceSendFields will be sent to the
6201	// server regardless of whether the field is empty or not. This may be
6202	// used to include empty fields in Patch requests.
6203	ForceSendFields []string `json:"-"`
6204
6205	// NullFields is a list of field names (e.g. "Coordinate") to include in
6206	// API requests with the JSON null value. By default, fields with empty
6207	// values are omitted from API requests. However, any field with an
6208	// empty value appearing in NullFields will be sent to the server as
6209	// null. It is an error if a field in this list has a non-empty value.
6210	// This may be used to include null fields in Patch requests.
6211	NullFields []string `json:"-"`
6212}
6213
6214func (s *PasteDataRequest) MarshalJSON() ([]byte, error) {
6215	type NoMethod PasteDataRequest
6216	raw := NoMethod(*s)
6217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6218}
6219
6220// PieChartSpec: A <a
6221// href="/chart/interactive/docs/gallery/piechart">pie chart</a>.
6222type PieChartSpec struct {
6223	// Domain: The data that covers the domain of the pie chart.
6224	Domain *ChartData `json:"domain,omitempty"`
6225
6226	// LegendPosition: Where the legend of the pie chart should be drawn.
6227	//
6228	// Possible values:
6229	//   "PIE_CHART_LEGEND_POSITION_UNSPECIFIED" - Default value, do not
6230	// use.
6231	//   "BOTTOM_LEGEND" - The legend is rendered on the bottom of the
6232	// chart.
6233	//   "LEFT_LEGEND" - The legend is rendered on the left of the chart.
6234	//   "RIGHT_LEGEND" - The legend is rendered on the right of the chart.
6235	//   "TOP_LEGEND" - The legend is rendered on the top of the chart.
6236	//   "NO_LEGEND" - No legend is rendered.
6237	//   "LABELED_LEGEND" - Each pie slice has a label attached to it.
6238	LegendPosition string `json:"legendPosition,omitempty"`
6239
6240	// PieHole: The size of the hole in the pie chart.
6241	PieHole float64 `json:"pieHole,omitempty"`
6242
6243	// Series: The data that covers the one and only series of the pie
6244	// chart.
6245	Series *ChartData `json:"series,omitempty"`
6246
6247	// ThreeDimensional: True if the pie is three dimensional.
6248	ThreeDimensional bool `json:"threeDimensional,omitempty"`
6249
6250	// ForceSendFields is a list of field names (e.g. "Domain") to
6251	// unconditionally include in API requests. By default, fields with
6252	// empty values are omitted from API requests. However, any non-pointer,
6253	// non-interface field appearing in ForceSendFields will be sent to the
6254	// server regardless of whether the field is empty or not. This may be
6255	// used to include empty fields in Patch requests.
6256	ForceSendFields []string `json:"-"`
6257
6258	// NullFields is a list of field names (e.g. "Domain") to include in API
6259	// requests with the JSON null value. By default, fields with empty
6260	// values are omitted from API requests. However, any field with an
6261	// empty value appearing in NullFields will be sent to the server as
6262	// null. It is an error if a field in this list has a non-empty value.
6263	// This may be used to include null fields in Patch requests.
6264	NullFields []string `json:"-"`
6265}
6266
6267func (s *PieChartSpec) MarshalJSON() ([]byte, error) {
6268	type NoMethod PieChartSpec
6269	raw := NoMethod(*s)
6270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6271}
6272
6273func (s *PieChartSpec) UnmarshalJSON(data []byte) error {
6274	type NoMethod PieChartSpec
6275	var s1 struct {
6276		PieHole gensupport.JSONFloat64 `json:"pieHole"`
6277		*NoMethod
6278	}
6279	s1.NoMethod = (*NoMethod)(s)
6280	if err := json.Unmarshal(data, &s1); err != nil {
6281		return err
6282	}
6283	s.PieHole = float64(s1.PieHole)
6284	return nil
6285}
6286
6287// PivotFilterCriteria: Criteria for showing/hiding rows in a pivot
6288// table.
6289type PivotFilterCriteria struct {
6290	// VisibleValues: Values that should be included.  Values not listed
6291	// here are excluded.
6292	VisibleValues []string `json:"visibleValues,omitempty"`
6293
6294	// ForceSendFields is a list of field names (e.g. "VisibleValues") to
6295	// 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. "VisibleValues") to include
6303	// in API requests with the JSON null value. By default, fields with
6304	// empty values are omitted from API requests. However, any field with
6305	// an empty value appearing in NullFields will be sent to the server as
6306	// null. It is an error if a field in this list has a non-empty value.
6307	// This may be used to include null fields in Patch requests.
6308	NullFields []string `json:"-"`
6309}
6310
6311func (s *PivotFilterCriteria) MarshalJSON() ([]byte, error) {
6312	type NoMethod PivotFilterCriteria
6313	raw := NoMethod(*s)
6314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6315}
6316
6317// PivotGroup: A single grouping (either row or column) in a pivot
6318// table.
6319type PivotGroup struct {
6320	// GroupRule: The group rule to apply to this row/column group.
6321	GroupRule *PivotGroupRule `json:"groupRule,omitempty"`
6322
6323	// Label: The labels to use for the row/column groups which can be
6324	// customized. For
6325	// example, in the following pivot table, the row label is `Region`
6326	// (which
6327	// could be renamed to `State`) and the column label is `Product`
6328	// (which
6329	// could be renamed `Item`). Pivot tables created before December 2017
6330	// do
6331	// not have header labels. If you'd like to add header labels to an
6332	// existing
6333	// pivot table, please delete the existing pivot table and then create a
6334	// new
6335	// pivot table with same parameters.
6336	//
6337	//     +--------------+---------+-------+
6338	//     | SUM of Units | Product |       |
6339	//     | Region       | Pen     | Paper |
6340	//     +--------------+---------+-------+
6341	//     | New York     |     345 |    98 |
6342	//     | Oregon       |     234 |   123 |
6343	//     | Tennessee    |     531 |   415 |
6344	//     +--------------+---------+-------+
6345	//     | Grand Total  |    1110 |   636 |
6346	//     +--------------+---------+-------+
6347	Label string `json:"label,omitempty"`
6348
6349	// RepeatHeadings: True if the headings in this pivot group should be
6350	// repeated.
6351	// This is only valid for row groupings and will be ignored by
6352	// columns.
6353	//
6354	// By default, we minimize repitition of headings by not showing
6355	// higher
6356	// level headings where they are the same. For example, even though
6357	// the
6358	// third row below corresponds to "Q1 Mar", "Q1" is not shown because
6359	// it is redundant with previous rows. Setting repeat_headings to
6360	// true
6361	// would cause "Q1" to be repeated for "Feb" and "Mar".
6362	//
6363	//     +--------------+
6364	//     | Q1     | Jan |
6365	//     |        | Feb |
6366	//     |        | Mar |
6367	//     +--------+-----+
6368	//     | Q1 Total     |
6369	//     +--------------+
6370	RepeatHeadings bool `json:"repeatHeadings,omitempty"`
6371
6372	// ShowTotals: True if the pivot table should include the totals for
6373	// this grouping.
6374	ShowTotals bool `json:"showTotals,omitempty"`
6375
6376	// SortOrder: The order the values in this group should be sorted.
6377	//
6378	// Possible values:
6379	//   "SORT_ORDER_UNSPECIFIED" - Default value, do not use this.
6380	//   "ASCENDING" - Sort ascending.
6381	//   "DESCENDING" - Sort descending.
6382	SortOrder string `json:"sortOrder,omitempty"`
6383
6384	// SourceColumnOffset: The column offset of the source range that this
6385	// grouping is based on.
6386	//
6387	// For example, if the source was `C10:E15`, a `sourceColumnOffset` of
6388	// `0`
6389	// means this group refers to column `C`, whereas the offset `1` would
6390	// refer
6391	// to column `D`.
6392	SourceColumnOffset int64 `json:"sourceColumnOffset,omitempty"`
6393
6394	// ValueBucket: The bucket of the opposite pivot group to sort by.
6395	// If not specified, sorting is alphabetical by this group's values.
6396	ValueBucket *PivotGroupSortValueBucket `json:"valueBucket,omitempty"`
6397
6398	// ValueMetadata: Metadata about values in the grouping.
6399	ValueMetadata []*PivotGroupValueMetadata `json:"valueMetadata,omitempty"`
6400
6401	// ForceSendFields is a list of field names (e.g. "GroupRule") to
6402	// unconditionally include in API requests. By default, fields with
6403	// empty values are omitted from API requests. However, any non-pointer,
6404	// non-interface field appearing in ForceSendFields will be sent to the
6405	// server regardless of whether the field is empty or not. This may be
6406	// used to include empty fields in Patch requests.
6407	ForceSendFields []string `json:"-"`
6408
6409	// NullFields is a list of field names (e.g. "GroupRule") to include in
6410	// API requests with the JSON null value. By default, fields with empty
6411	// values are omitted from API requests. However, any field with an
6412	// empty value appearing in NullFields will be sent to the server as
6413	// null. It is an error if a field in this list has a non-empty value.
6414	// This may be used to include null fields in Patch requests.
6415	NullFields []string `json:"-"`
6416}
6417
6418func (s *PivotGroup) MarshalJSON() ([]byte, error) {
6419	type NoMethod PivotGroup
6420	raw := NoMethod(*s)
6421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6422}
6423
6424// PivotGroupRule: An optional setting on a PivotGroup that defines
6425// buckets for the values
6426// in the source data column rather than breaking out each individual
6427// value.
6428// Only one PivotGroup with a group rule may be added for each column
6429// in
6430// the source data, though on any given column you may add both
6431// a
6432// PivotGroup that has a rule and a PivotGroup that does not.
6433type PivotGroupRule struct {
6434	// HistogramRule: A HistogramRule.
6435	HistogramRule *HistogramRule `json:"histogramRule,omitempty"`
6436
6437	// ManualRule: A ManualRule.
6438	ManualRule *ManualRule `json:"manualRule,omitempty"`
6439
6440	// ForceSendFields is a list of field names (e.g. "HistogramRule") to
6441	// unconditionally include in API requests. By default, fields with
6442	// empty values are omitted from API requests. However, any non-pointer,
6443	// non-interface field appearing in ForceSendFields will be sent to the
6444	// server regardless of whether the field is empty or not. This may be
6445	// used to include empty fields in Patch requests.
6446	ForceSendFields []string `json:"-"`
6447
6448	// NullFields is a list of field names (e.g. "HistogramRule") to include
6449	// in API requests with the JSON null value. By default, fields with
6450	// empty values are omitted from API requests. However, any field with
6451	// an empty value appearing in NullFields will be sent to the server as
6452	// null. It is an error if a field in this list has a non-empty value.
6453	// This may be used to include null fields in Patch requests.
6454	NullFields []string `json:"-"`
6455}
6456
6457func (s *PivotGroupRule) MarshalJSON() ([]byte, error) {
6458	type NoMethod PivotGroupRule
6459	raw := NoMethod(*s)
6460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6461}
6462
6463// PivotGroupSortValueBucket: Information about which values in a pivot
6464// group should be used for sorting.
6465type PivotGroupSortValueBucket struct {
6466	// Buckets: Determines the bucket from which values are chosen to
6467	// sort.
6468	//
6469	// For example, in a pivot table with one row group & two column
6470	// groups,
6471	// the row group can list up to two values. The first value
6472	// corresponds
6473	// to a value within the first column group, and the second
6474	// value
6475	// corresponds to a value in the second column group.  If no values
6476	// are listed, this would indicate that the row should be sorted
6477	// according
6478	// to the "Grand Total" over the column groups. If a single value is
6479	// listed,
6480	// this would correspond to using the "Total" of that bucket.
6481	Buckets []*ExtendedValue `json:"buckets,omitempty"`
6482
6483	// ValuesIndex: The offset in the PivotTable.values list which the
6484	// values in this
6485	// grouping should be sorted by.
6486	ValuesIndex int64 `json:"valuesIndex,omitempty"`
6487
6488	// ForceSendFields is a list of field names (e.g. "Buckets") to
6489	// unconditionally include in API requests. By default, fields with
6490	// empty values are omitted from API requests. However, any non-pointer,
6491	// non-interface field appearing in ForceSendFields will be sent to the
6492	// server regardless of whether the field is empty or not. This may be
6493	// used to include empty fields in Patch requests.
6494	ForceSendFields []string `json:"-"`
6495
6496	// NullFields is a list of field names (e.g. "Buckets") to include in
6497	// API requests with the JSON null value. By default, fields with empty
6498	// values are omitted from API requests. However, any field with an
6499	// empty value appearing in NullFields will be sent to the server as
6500	// null. It is an error if a field in this list has a non-empty value.
6501	// This may be used to include null fields in Patch requests.
6502	NullFields []string `json:"-"`
6503}
6504
6505func (s *PivotGroupSortValueBucket) MarshalJSON() ([]byte, error) {
6506	type NoMethod PivotGroupSortValueBucket
6507	raw := NoMethod(*s)
6508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6509}
6510
6511// PivotGroupValueMetadata: Metadata about a value in a pivot grouping.
6512type PivotGroupValueMetadata struct {
6513	// Collapsed: True if the data corresponding to the value is collapsed.
6514	Collapsed bool `json:"collapsed,omitempty"`
6515
6516	// Value: The calculated value the metadata corresponds to.
6517	// (Note that formulaValue is not valid,
6518	//  because the values will be calculated.)
6519	Value *ExtendedValue `json:"value,omitempty"`
6520
6521	// ForceSendFields is a list of field names (e.g. "Collapsed") to
6522	// unconditionally include in API requests. By default, fields with
6523	// empty values are omitted from API requests. However, any non-pointer,
6524	// non-interface field appearing in ForceSendFields will be sent to the
6525	// server regardless of whether the field is empty or not. This may be
6526	// used to include empty fields in Patch requests.
6527	ForceSendFields []string `json:"-"`
6528
6529	// NullFields is a list of field names (e.g. "Collapsed") to include in
6530	// API requests with the JSON null value. By default, fields with empty
6531	// values are omitted from API requests. However, any field with an
6532	// empty value appearing in NullFields will be sent to the server as
6533	// null. It is an error if a field in this list has a non-empty value.
6534	// This may be used to include null fields in Patch requests.
6535	NullFields []string `json:"-"`
6536}
6537
6538func (s *PivotGroupValueMetadata) MarshalJSON() ([]byte, error) {
6539	type NoMethod PivotGroupValueMetadata
6540	raw := NoMethod(*s)
6541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6542}
6543
6544// PivotTable: A pivot table.
6545type PivotTable struct {
6546	// Columns: Each column grouping in the pivot table.
6547	Columns []*PivotGroup `json:"columns,omitempty"`
6548
6549	// Criteria: An optional mapping of filters per source column
6550	// offset.
6551	//
6552	// The filters will be applied before aggregating data into the pivot
6553	// table.
6554	// The map's key is the column offset of the source range that you want
6555	// to
6556	// filter, and the value is the criteria for that column.
6557	//
6558	// For example, if the source was `C10:E15`, a key of `0` will have the
6559	// filter
6560	// for column `C`, whereas the key `1` is for column `D`.
6561	Criteria map[string]PivotFilterCriteria `json:"criteria,omitempty"`
6562
6563	// Rows: Each row grouping in the pivot table.
6564	Rows []*PivotGroup `json:"rows,omitempty"`
6565
6566	// Source: The range the pivot table is reading data from.
6567	Source *GridRange `json:"source,omitempty"`
6568
6569	// ValueLayout: Whether values should be listed horizontally (as
6570	// columns)
6571	// or vertically (as rows).
6572	//
6573	// Possible values:
6574	//   "HORIZONTAL" - Values are laid out horizontally (as columns).
6575	//   "VERTICAL" - Values are laid out vertically (as rows).
6576	ValueLayout string `json:"valueLayout,omitempty"`
6577
6578	// Values: A list of values to include in the pivot table.
6579	Values []*PivotValue `json:"values,omitempty"`
6580
6581	// ForceSendFields is a list of field names (e.g. "Columns") to
6582	// unconditionally include in API requests. By default, fields with
6583	// empty values are omitted from API requests. However, any non-pointer,
6584	// non-interface field appearing in ForceSendFields will be sent to the
6585	// server regardless of whether the field is empty or not. This may be
6586	// used to include empty fields in Patch requests.
6587	ForceSendFields []string `json:"-"`
6588
6589	// NullFields is a list of field names (e.g. "Columns") to include in
6590	// API requests with the JSON null value. By default, fields with empty
6591	// values are omitted from API requests. However, any field with an
6592	// empty value appearing in NullFields will be sent to the server as
6593	// null. It is an error if a field in this list has a non-empty value.
6594	// This may be used to include null fields in Patch requests.
6595	NullFields []string `json:"-"`
6596}
6597
6598func (s *PivotTable) MarshalJSON() ([]byte, error) {
6599	type NoMethod PivotTable
6600	raw := NoMethod(*s)
6601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6602}
6603
6604// PivotValue: The definition of how a value in a pivot table should be
6605// calculated.
6606type PivotValue struct {
6607	// CalculatedDisplayType: If specified, indicates that pivot values
6608	// should be displayed as
6609	// the result of a calculation with another pivot value. For example,
6610	// if
6611	// calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all
6612	// the
6613	// pivot values will be displayed as the percentage of the grand total.
6614	// In
6615	// the Sheets UI, this is referred to as "Show As" in the value section
6616	// of a
6617	// pivot table.
6618	//
6619	// Possible values:
6620	//   "PIVOT_VALUE_CALCULATED_DISPLAY_TYPE_UNSPECIFIED" - Default value,
6621	// do not use.
6622	//   "PERCENT_OF_ROW_TOTAL" - Shows the pivot values as percentage of
6623	// the row total values.
6624	//   "PERCENT_OF_COLUMN_TOTAL" - Shows the pivot values as percentage of
6625	// the column total values.
6626	//   "PERCENT_OF_GRAND_TOTAL" - Shows the pivot values as percentage of
6627	// the grand total values.
6628	CalculatedDisplayType string `json:"calculatedDisplayType,omitempty"`
6629
6630	// Formula: A custom formula to calculate the value.  The formula must
6631	// start
6632	// with an `=` character.
6633	Formula string `json:"formula,omitempty"`
6634
6635	// Name: A name to use for the value.
6636	Name string `json:"name,omitempty"`
6637
6638	// SourceColumnOffset: The column offset of the source range that this
6639	// value reads from.
6640	//
6641	// For example, if the source was `C10:E15`, a `sourceColumnOffset` of
6642	// `0`
6643	// means this value refers to column `C`, whereas the offset `1`
6644	// would
6645	// refer to column `D`.
6646	SourceColumnOffset int64 `json:"sourceColumnOffset,omitempty"`
6647
6648	// SummarizeFunction: A function to summarize the value.
6649	// If formula is set, the only supported values are
6650	// SUM and
6651	// CUSTOM.
6652	// If sourceColumnOffset is set, then `CUSTOM`
6653	// is not supported.
6654	//
6655	// Possible values:
6656	//   "PIVOT_STANDARD_VALUE_FUNCTION_UNSPECIFIED" - The default, do not
6657	// use.
6658	//   "SUM" - Corresponds to the `SUM` function.
6659	//   "COUNTA" - Corresponds to the `COUNTA` function.
6660	//   "COUNT" - Corresponds to the `COUNT` function.
6661	//   "COUNTUNIQUE" - Corresponds to the `COUNTUNIQUE` function.
6662	//   "AVERAGE" - Corresponds to the `AVERAGE` function.
6663	//   "MAX" - Corresponds to the `MAX` function.
6664	//   "MIN" - Corresponds to the `MIN` function.
6665	//   "MEDIAN" - Corresponds to the `MEDIAN` function.
6666	//   "PRODUCT" - Corresponds to the `PRODUCT` function.
6667	//   "STDEV" - Corresponds to the `STDEV` function.
6668	//   "STDEVP" - Corresponds to the `STDEVP` function.
6669	//   "VAR" - Corresponds to the `VAR` function.
6670	//   "VARP" - Corresponds to the `VARP` function.
6671	//   "CUSTOM" - Indicates the formula should be used as-is.
6672	// Only valid if PivotValue.formula was set.
6673	SummarizeFunction string `json:"summarizeFunction,omitempty"`
6674
6675	// ForceSendFields is a list of field names (e.g.
6676	// "CalculatedDisplayType") to unconditionally include in API requests.
6677	// By default, fields with empty values are omitted from API requests.
6678	// However, any non-pointer, non-interface field appearing in
6679	// ForceSendFields will be sent to the server regardless of whether the
6680	// field is empty or not. This may be used to include empty fields in
6681	// Patch requests.
6682	ForceSendFields []string `json:"-"`
6683
6684	// NullFields is a list of field names (e.g. "CalculatedDisplayType") to
6685	// include in API requests with the JSON null value. By default, fields
6686	// with empty values are omitted from API requests. However, any field
6687	// with an empty value appearing in NullFields will be sent to the
6688	// server as null. It is an error if a field in this list has a
6689	// non-empty value. This may be used to include null fields in Patch
6690	// requests.
6691	NullFields []string `json:"-"`
6692}
6693
6694func (s *PivotValue) MarshalJSON() ([]byte, error) {
6695	type NoMethod PivotValue
6696	raw := NoMethod(*s)
6697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6698}
6699
6700// ProtectedRange: A protected range.
6701type ProtectedRange struct {
6702	// Description: The description of this protected range.
6703	Description string `json:"description,omitempty"`
6704
6705	// Editors: The users and groups with edit access to the protected
6706	// range.
6707	// This field is only visible to users with edit access to the
6708	// protected
6709	// range and the document.
6710	// Editors are not supported with warning_only protection.
6711	Editors *Editors `json:"editors,omitempty"`
6712
6713	// NamedRangeId: The named range this protected range is backed by, if
6714	// any.
6715	//
6716	// When writing, only one of range or named_range_id
6717	// may be set.
6718	NamedRangeId string `json:"namedRangeId,omitempty"`
6719
6720	// ProtectedRangeId: The ID of the protected range.
6721	// This field is read-only.
6722	ProtectedRangeId int64 `json:"protectedRangeId,omitempty"`
6723
6724	// Range: The range that is being protected.
6725	// The range may be fully unbounded, in which case this is considered
6726	// a protected sheet.
6727	//
6728	// When writing, only one of range or named_range_id
6729	// may be set.
6730	Range *GridRange `json:"range,omitempty"`
6731
6732	// RequestingUserCanEdit: True if the user who requested this protected
6733	// range can edit the
6734	// protected area.
6735	// This field is read-only.
6736	RequestingUserCanEdit bool `json:"requestingUserCanEdit,omitempty"`
6737
6738	// UnprotectedRanges: The list of unprotected ranges within a protected
6739	// sheet.
6740	// Unprotected ranges are only supported on protected sheets.
6741	UnprotectedRanges []*GridRange `json:"unprotectedRanges,omitempty"`
6742
6743	// WarningOnly: True if this protected range will show a warning when
6744	// editing.
6745	// Warning-based protection means that every user can edit data in
6746	// the
6747	// protected range, except editing will prompt a warning asking the
6748	// user
6749	// to confirm the edit.
6750	//
6751	// When writing: if this field is true, then editors is
6752	// ignored.
6753	// Additionally, if this field is changed from true to false and
6754	// the
6755	// `editors` field is not set (nor included in the field mask), then
6756	// the editors will be set to all the editors in the document.
6757	WarningOnly bool `json:"warningOnly,omitempty"`
6758
6759	// ForceSendFields is a list of field names (e.g. "Description") to
6760	// unconditionally include in API requests. By default, fields with
6761	// empty values are omitted from API requests. However, any non-pointer,
6762	// non-interface field appearing in ForceSendFields will be sent to the
6763	// server regardless of whether the field is empty or not. This may be
6764	// used to include empty fields in Patch requests.
6765	ForceSendFields []string `json:"-"`
6766
6767	// NullFields is a list of field names (e.g. "Description") to include
6768	// in API requests with the JSON null value. By default, fields with
6769	// empty values are omitted from API requests. However, any field with
6770	// an empty value appearing in NullFields will be sent to the server as
6771	// null. It is an error if a field in this list has a non-empty value.
6772	// This may be used to include null fields in Patch requests.
6773	NullFields []string `json:"-"`
6774}
6775
6776func (s *ProtectedRange) MarshalJSON() ([]byte, error) {
6777	type NoMethod ProtectedRange
6778	raw := NoMethod(*s)
6779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6780}
6781
6782// RandomizeRangeRequest: Randomizes the order of the rows in a range.
6783type RandomizeRangeRequest struct {
6784	// Range: The range to randomize.
6785	Range *GridRange `json:"range,omitempty"`
6786
6787	// ForceSendFields is a list of field names (e.g. "Range") to
6788	// unconditionally include in API requests. By default, fields with
6789	// empty values are omitted from API requests. However, any non-pointer,
6790	// non-interface field appearing in ForceSendFields will be sent to the
6791	// server regardless of whether the field is empty or not. This may be
6792	// used to include empty fields in Patch requests.
6793	ForceSendFields []string `json:"-"`
6794
6795	// NullFields is a list of field names (e.g. "Range") to include in API
6796	// requests with the JSON null value. By default, fields with empty
6797	// values are omitted from API requests. However, any field with an
6798	// empty value appearing in NullFields will be sent to the server as
6799	// null. It is an error if a field in this list has a non-empty value.
6800	// This may be used to include null fields in Patch requests.
6801	NullFields []string `json:"-"`
6802}
6803
6804func (s *RandomizeRangeRequest) MarshalJSON() ([]byte, error) {
6805	type NoMethod RandomizeRangeRequest
6806	raw := NoMethod(*s)
6807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6808}
6809
6810// RepeatCellRequest: Updates all cells in the range to the values in
6811// the given Cell object.
6812// Only the fields listed in the fields field are updated; others
6813// are
6814// unchanged.
6815//
6816// If writing a cell with a formula, the formula's ranges will
6817// automatically
6818// increment for each field in the range.
6819// For example, if writing a cell with formula `=A1` into range
6820// B2:C4,
6821// B2 would be `=A1`, B3 would be `=A2`, B4 would be `=A3`,
6822// C2 would be `=B1`, C3 would be `=B2`, C4 would be `=B3`.
6823//
6824// To keep the formula's ranges static, use the `$` indicator.
6825// For example, use the formula `=$A$1` to prevent both the row and
6826// the
6827// column from incrementing.
6828type RepeatCellRequest struct {
6829	// Cell: The data to write.
6830	Cell *CellData `json:"cell,omitempty"`
6831
6832	// Fields: The fields that should be updated.  At least one field must
6833	// be specified.
6834	// The root `cell` is implied and should not be specified.
6835	// A single "*" can be used as short-hand for listing every field.
6836	Fields string `json:"fields,omitempty"`
6837
6838	// Range: The range to repeat the cell in.
6839	Range *GridRange `json:"range,omitempty"`
6840
6841	// ForceSendFields is a list of field names (e.g. "Cell") to
6842	// unconditionally include in API requests. By default, fields with
6843	// empty values are omitted from API requests. However, any non-pointer,
6844	// non-interface field appearing in ForceSendFields will be sent to the
6845	// server regardless of whether the field is empty or not. This may be
6846	// used to include empty fields in Patch requests.
6847	ForceSendFields []string `json:"-"`
6848
6849	// NullFields is a list of field names (e.g. "Cell") to include in API
6850	// requests with the JSON null value. By default, fields with empty
6851	// values are omitted from API requests. However, any field with an
6852	// empty value appearing in NullFields will be sent to the server as
6853	// null. It is an error if a field in this list has a non-empty value.
6854	// This may be used to include null fields in Patch requests.
6855	NullFields []string `json:"-"`
6856}
6857
6858func (s *RepeatCellRequest) MarshalJSON() ([]byte, error) {
6859	type NoMethod RepeatCellRequest
6860	raw := NoMethod(*s)
6861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6862}
6863
6864// Request: A single kind of update to apply to a spreadsheet.
6865type Request struct {
6866	// AddBanding: Adds a new banded range
6867	AddBanding *AddBandingRequest `json:"addBanding,omitempty"`
6868
6869	// AddChart: Adds a chart.
6870	AddChart *AddChartRequest `json:"addChart,omitempty"`
6871
6872	// AddConditionalFormatRule: Adds a new conditional format rule.
6873	AddConditionalFormatRule *AddConditionalFormatRuleRequest `json:"addConditionalFormatRule,omitempty"`
6874
6875	// AddFilterView: Adds a filter view.
6876	AddFilterView *AddFilterViewRequest `json:"addFilterView,omitempty"`
6877
6878	// AddNamedRange: Adds a named range.
6879	AddNamedRange *AddNamedRangeRequest `json:"addNamedRange,omitempty"`
6880
6881	// AddProtectedRange: Adds a protected range.
6882	AddProtectedRange *AddProtectedRangeRequest `json:"addProtectedRange,omitempty"`
6883
6884	// AddSheet: Adds a sheet.
6885	AddSheet *AddSheetRequest `json:"addSheet,omitempty"`
6886
6887	// AppendCells: Appends cells after the last row with data in a sheet.
6888	AppendCells *AppendCellsRequest `json:"appendCells,omitempty"`
6889
6890	// AppendDimension: Appends dimensions to the end of a sheet.
6891	AppendDimension *AppendDimensionRequest `json:"appendDimension,omitempty"`
6892
6893	// AutoFill: Automatically fills in more data based on existing data.
6894	AutoFill *AutoFillRequest `json:"autoFill,omitempty"`
6895
6896	// AutoResizeDimensions: Automatically resizes one or more dimensions
6897	// based on the contents
6898	// of the cells in that dimension.
6899	AutoResizeDimensions *AutoResizeDimensionsRequest `json:"autoResizeDimensions,omitempty"`
6900
6901	// ClearBasicFilter: Clears the basic filter on a sheet.
6902	ClearBasicFilter *ClearBasicFilterRequest `json:"clearBasicFilter,omitempty"`
6903
6904	// CopyPaste: Copies data from one area and pastes it to another.
6905	CopyPaste *CopyPasteRequest `json:"copyPaste,omitempty"`
6906
6907	// CreateDeveloperMetadata: Creates new developer metadata
6908	CreateDeveloperMetadata *CreateDeveloperMetadataRequest `json:"createDeveloperMetadata,omitempty"`
6909
6910	// CutPaste: Cuts data from one area and pastes it to another.
6911	CutPaste *CutPasteRequest `json:"cutPaste,omitempty"`
6912
6913	// DeleteBanding: Removes a banded range
6914	DeleteBanding *DeleteBandingRequest `json:"deleteBanding,omitempty"`
6915
6916	// DeleteConditionalFormatRule: Deletes an existing conditional format
6917	// rule.
6918	DeleteConditionalFormatRule *DeleteConditionalFormatRuleRequest `json:"deleteConditionalFormatRule,omitempty"`
6919
6920	// DeleteDeveloperMetadata: Deletes developer metadata
6921	DeleteDeveloperMetadata *DeleteDeveloperMetadataRequest `json:"deleteDeveloperMetadata,omitempty"`
6922
6923	// DeleteDimension: Deletes rows or columns in a sheet.
6924	DeleteDimension *DeleteDimensionRequest `json:"deleteDimension,omitempty"`
6925
6926	// DeleteEmbeddedObject: Deletes an embedded object (e.g, chart, image)
6927	// in a sheet.
6928	DeleteEmbeddedObject *DeleteEmbeddedObjectRequest `json:"deleteEmbeddedObject,omitempty"`
6929
6930	// DeleteFilterView: Deletes a filter view from a sheet.
6931	DeleteFilterView *DeleteFilterViewRequest `json:"deleteFilterView,omitempty"`
6932
6933	// DeleteNamedRange: Deletes a named range.
6934	DeleteNamedRange *DeleteNamedRangeRequest `json:"deleteNamedRange,omitempty"`
6935
6936	// DeleteProtectedRange: Deletes a protected range.
6937	DeleteProtectedRange *DeleteProtectedRangeRequest `json:"deleteProtectedRange,omitempty"`
6938
6939	// DeleteRange: Deletes a range of cells from a sheet, shifting the
6940	// remaining cells.
6941	DeleteRange *DeleteRangeRequest `json:"deleteRange,omitempty"`
6942
6943	// DeleteSheet: Deletes a sheet.
6944	DeleteSheet *DeleteSheetRequest `json:"deleteSheet,omitempty"`
6945
6946	// DuplicateFilterView: Duplicates a filter view.
6947	DuplicateFilterView *DuplicateFilterViewRequest `json:"duplicateFilterView,omitempty"`
6948
6949	// DuplicateSheet: Duplicates a sheet.
6950	DuplicateSheet *DuplicateSheetRequest `json:"duplicateSheet,omitempty"`
6951
6952	// FindReplace: Finds and replaces occurrences of some text with other
6953	// text.
6954	FindReplace *FindReplaceRequest `json:"findReplace,omitempty"`
6955
6956	// InsertDimension: Inserts new rows or columns in a sheet.
6957	InsertDimension *InsertDimensionRequest `json:"insertDimension,omitempty"`
6958
6959	// InsertRange: Inserts new cells in a sheet, shifting the existing
6960	// cells.
6961	InsertRange *InsertRangeRequest `json:"insertRange,omitempty"`
6962
6963	// MergeCells: Merges cells together.
6964	MergeCells *MergeCellsRequest `json:"mergeCells,omitempty"`
6965
6966	// MoveDimension: Moves rows or columns to another location in a sheet.
6967	MoveDimension *MoveDimensionRequest `json:"moveDimension,omitempty"`
6968
6969	// PasteData: Pastes data (HTML or delimited) into a sheet.
6970	PasteData *PasteDataRequest `json:"pasteData,omitempty"`
6971
6972	// RandomizeRange: Randomizes the order of the rows in a range.
6973	RandomizeRange *RandomizeRangeRequest `json:"randomizeRange,omitempty"`
6974
6975	// RepeatCell: Repeats a single cell across a range.
6976	RepeatCell *RepeatCellRequest `json:"repeatCell,omitempty"`
6977
6978	// SetBasicFilter: Sets the basic filter on a sheet.
6979	SetBasicFilter *SetBasicFilterRequest `json:"setBasicFilter,omitempty"`
6980
6981	// SetDataValidation: Sets data validation for one or more cells.
6982	SetDataValidation *SetDataValidationRequest `json:"setDataValidation,omitempty"`
6983
6984	// SortRange: Sorts data in a range.
6985	SortRange *SortRangeRequest `json:"sortRange,omitempty"`
6986
6987	// TextToColumns: Converts a column of text into many columns of text.
6988	TextToColumns *TextToColumnsRequest `json:"textToColumns,omitempty"`
6989
6990	// UnmergeCells: Unmerges merged cells.
6991	UnmergeCells *UnmergeCellsRequest `json:"unmergeCells,omitempty"`
6992
6993	// UpdateBanding: Updates a banded range
6994	UpdateBanding *UpdateBandingRequest `json:"updateBanding,omitempty"`
6995
6996	// UpdateBorders: Updates the borders in a range of cells.
6997	UpdateBorders *UpdateBordersRequest `json:"updateBorders,omitempty"`
6998
6999	// UpdateCells: Updates many cells at once.
7000	UpdateCells *UpdateCellsRequest `json:"updateCells,omitempty"`
7001
7002	// UpdateChartSpec: Updates a chart's specifications.
7003	UpdateChartSpec *UpdateChartSpecRequest `json:"updateChartSpec,omitempty"`
7004
7005	// UpdateConditionalFormatRule: Updates an existing conditional format
7006	// rule.
7007	UpdateConditionalFormatRule *UpdateConditionalFormatRuleRequest `json:"updateConditionalFormatRule,omitempty"`
7008
7009	// UpdateDeveloperMetadata: Updates an existing developer metadata entry
7010	UpdateDeveloperMetadata *UpdateDeveloperMetadataRequest `json:"updateDeveloperMetadata,omitempty"`
7011
7012	// UpdateDimensionProperties: Updates dimensions' properties.
7013	UpdateDimensionProperties *UpdateDimensionPropertiesRequest `json:"updateDimensionProperties,omitempty"`
7014
7015	// UpdateEmbeddedObjectPosition: Updates an embedded object's (e.g.
7016	// chart, image) position.
7017	UpdateEmbeddedObjectPosition *UpdateEmbeddedObjectPositionRequest `json:"updateEmbeddedObjectPosition,omitempty"`
7018
7019	// UpdateFilterView: Updates the properties of a filter view.
7020	UpdateFilterView *UpdateFilterViewRequest `json:"updateFilterView,omitempty"`
7021
7022	// UpdateNamedRange: Updates a named range.
7023	UpdateNamedRange *UpdateNamedRangeRequest `json:"updateNamedRange,omitempty"`
7024
7025	// UpdateProtectedRange: Updates a protected range.
7026	UpdateProtectedRange *UpdateProtectedRangeRequest `json:"updateProtectedRange,omitempty"`
7027
7028	// UpdateSheetProperties: Updates a sheet's properties.
7029	UpdateSheetProperties *UpdateSheetPropertiesRequest `json:"updateSheetProperties,omitempty"`
7030
7031	// UpdateSpreadsheetProperties: Updates the spreadsheet's properties.
7032	UpdateSpreadsheetProperties *UpdateSpreadsheetPropertiesRequest `json:"updateSpreadsheetProperties,omitempty"`
7033
7034	// ForceSendFields is a list of field names (e.g. "AddBanding") to
7035	// unconditionally include in API requests. By default, fields with
7036	// empty values are omitted from API requests. However, any non-pointer,
7037	// non-interface field appearing in ForceSendFields will be sent to the
7038	// server regardless of whether the field is empty or not. This may be
7039	// used to include empty fields in Patch requests.
7040	ForceSendFields []string `json:"-"`
7041
7042	// NullFields is a list of field names (e.g. "AddBanding") to include in
7043	// API requests with the JSON null value. By default, fields with empty
7044	// values are omitted from API requests. However, any field with an
7045	// empty value appearing in NullFields will be sent to the server as
7046	// null. It is an error if a field in this list has a non-empty value.
7047	// This may be used to include null fields in Patch requests.
7048	NullFields []string `json:"-"`
7049}
7050
7051func (s *Request) MarshalJSON() ([]byte, error) {
7052	type NoMethod Request
7053	raw := NoMethod(*s)
7054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7055}
7056
7057// Response: A single response from an update.
7058type Response struct {
7059	// AddBanding: A reply from adding a banded range.
7060	AddBanding *AddBandingResponse `json:"addBanding,omitempty"`
7061
7062	// AddChart: A reply from adding a chart.
7063	AddChart *AddChartResponse `json:"addChart,omitempty"`
7064
7065	// AddFilterView: A reply from adding a filter view.
7066	AddFilterView *AddFilterViewResponse `json:"addFilterView,omitempty"`
7067
7068	// AddNamedRange: A reply from adding a named range.
7069	AddNamedRange *AddNamedRangeResponse `json:"addNamedRange,omitempty"`
7070
7071	// AddProtectedRange: A reply from adding a protected range.
7072	AddProtectedRange *AddProtectedRangeResponse `json:"addProtectedRange,omitempty"`
7073
7074	// AddSheet: A reply from adding a sheet.
7075	AddSheet *AddSheetResponse `json:"addSheet,omitempty"`
7076
7077	// CreateDeveloperMetadata: A reply from creating a developer metadata
7078	// entry.
7079	CreateDeveloperMetadata *CreateDeveloperMetadataResponse `json:"createDeveloperMetadata,omitempty"`
7080
7081	// DeleteConditionalFormatRule: A reply from deleting a conditional
7082	// format rule.
7083	DeleteConditionalFormatRule *DeleteConditionalFormatRuleResponse `json:"deleteConditionalFormatRule,omitempty"`
7084
7085	// DeleteDeveloperMetadata: A reply from deleting a developer metadata
7086	// entry.
7087	DeleteDeveloperMetadata *DeleteDeveloperMetadataResponse `json:"deleteDeveloperMetadata,omitempty"`
7088
7089	// DuplicateFilterView: A reply from duplicating a filter view.
7090	DuplicateFilterView *DuplicateFilterViewResponse `json:"duplicateFilterView,omitempty"`
7091
7092	// DuplicateSheet: A reply from duplicating a sheet.
7093	DuplicateSheet *DuplicateSheetResponse `json:"duplicateSheet,omitempty"`
7094
7095	// FindReplace: A reply from doing a find/replace.
7096	FindReplace *FindReplaceResponse `json:"findReplace,omitempty"`
7097
7098	// UpdateConditionalFormatRule: A reply from updating a conditional
7099	// format rule.
7100	UpdateConditionalFormatRule *UpdateConditionalFormatRuleResponse `json:"updateConditionalFormatRule,omitempty"`
7101
7102	// UpdateDeveloperMetadata: A reply from updating a developer metadata
7103	// entry.
7104	UpdateDeveloperMetadata *UpdateDeveloperMetadataResponse `json:"updateDeveloperMetadata,omitempty"`
7105
7106	// UpdateEmbeddedObjectPosition: A reply from updating an embedded
7107	// object's position.
7108	UpdateEmbeddedObjectPosition *UpdateEmbeddedObjectPositionResponse `json:"updateEmbeddedObjectPosition,omitempty"`
7109
7110	// ForceSendFields is a list of field names (e.g. "AddBanding") to
7111	// unconditionally include in API requests. By default, fields with
7112	// empty values are omitted from API requests. However, any non-pointer,
7113	// non-interface field appearing in ForceSendFields will be sent to the
7114	// server regardless of whether the field is empty or not. This may be
7115	// used to include empty fields in Patch requests.
7116	ForceSendFields []string `json:"-"`
7117
7118	// NullFields is a list of field names (e.g. "AddBanding") to include in
7119	// API requests with the JSON null value. By default, fields with empty
7120	// values are omitted from API requests. However, any field with an
7121	// empty value appearing in NullFields will be sent to the server as
7122	// null. It is an error if a field in this list has a non-empty value.
7123	// This may be used to include null fields in Patch requests.
7124	NullFields []string `json:"-"`
7125}
7126
7127func (s *Response) MarshalJSON() ([]byte, error) {
7128	type NoMethod Response
7129	raw := NoMethod(*s)
7130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7131}
7132
7133// RowData: Data about each cell in a row.
7134type RowData struct {
7135	// Values: The values in the row, one per column.
7136	Values []*CellData `json:"values,omitempty"`
7137
7138	// ForceSendFields is a list of field names (e.g. "Values") to
7139	// unconditionally include in API requests. By default, fields with
7140	// empty values are omitted from API requests. However, any non-pointer,
7141	// non-interface field appearing in ForceSendFields will be sent to the
7142	// server regardless of whether the field is empty or not. This may be
7143	// used to include empty fields in Patch requests.
7144	ForceSendFields []string `json:"-"`
7145
7146	// NullFields is a list of field names (e.g. "Values") to include in API
7147	// requests with the JSON null value. By default, fields with empty
7148	// values are omitted from API requests. However, any field with an
7149	// empty value appearing in NullFields will be sent to the server as
7150	// null. It is an error if a field in this list has a non-empty value.
7151	// This may be used to include null fields in Patch requests.
7152	NullFields []string `json:"-"`
7153}
7154
7155func (s *RowData) MarshalJSON() ([]byte, error) {
7156	type NoMethod RowData
7157	raw := NoMethod(*s)
7158	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7159}
7160
7161// SearchDeveloperMetadataRequest: A request to retrieve all developer
7162// metadata matching the set of specified
7163// criteria.
7164type SearchDeveloperMetadataRequest struct {
7165	// DataFilters: The data filters describing the criteria used to
7166	// determine which
7167	// DeveloperMetadata entries to return.  DeveloperMetadata matching any
7168	// of the
7169	// specified filters will be included in the response.
7170	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
7171
7172	// ForceSendFields is a list of field names (e.g. "DataFilters") to
7173	// unconditionally include in API requests. By default, fields with
7174	// empty values are omitted from API requests. However, any non-pointer,
7175	// non-interface field appearing in ForceSendFields will be sent to the
7176	// server regardless of whether the field is empty or not. This may be
7177	// used to include empty fields in Patch requests.
7178	ForceSendFields []string `json:"-"`
7179
7180	// NullFields is a list of field names (e.g. "DataFilters") to include
7181	// in API requests with the JSON null value. By default, fields with
7182	// empty values are omitted from API requests. However, any field with
7183	// an empty value appearing in NullFields will be sent to the server as
7184	// null. It is an error if a field in this list has a non-empty value.
7185	// This may be used to include null fields in Patch requests.
7186	NullFields []string `json:"-"`
7187}
7188
7189func (s *SearchDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
7190	type NoMethod SearchDeveloperMetadataRequest
7191	raw := NoMethod(*s)
7192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7193}
7194
7195// SearchDeveloperMetadataResponse: A reply to a developer metadata
7196// search request.
7197type SearchDeveloperMetadataResponse struct {
7198	// MatchedDeveloperMetadata: The metadata matching the criteria of the
7199	// search request.
7200	MatchedDeveloperMetadata []*MatchedDeveloperMetadata `json:"matchedDeveloperMetadata,omitempty"`
7201
7202	// ServerResponse contains the HTTP response code and headers from the
7203	// server.
7204	googleapi.ServerResponse `json:"-"`
7205
7206	// ForceSendFields is a list of field names (e.g.
7207	// "MatchedDeveloperMetadata") to unconditionally include in API
7208	// requests. By default, fields with empty values are omitted from API
7209	// requests. However, any non-pointer, non-interface field appearing in
7210	// ForceSendFields will be sent to the server regardless of whether the
7211	// field is empty or not. This may be used to include empty fields in
7212	// Patch requests.
7213	ForceSendFields []string `json:"-"`
7214
7215	// NullFields is a list of field names (e.g. "MatchedDeveloperMetadata")
7216	// to include in API requests with the JSON null value. By default,
7217	// fields with empty values are omitted from API requests. However, any
7218	// field with an empty value appearing in NullFields will be sent to the
7219	// server as null. It is an error if a field in this list has a
7220	// non-empty value. This may be used to include null fields in Patch
7221	// requests.
7222	NullFields []string `json:"-"`
7223}
7224
7225func (s *SearchDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
7226	type NoMethod SearchDeveloperMetadataResponse
7227	raw := NoMethod(*s)
7228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7229}
7230
7231// SetBasicFilterRequest: Sets the basic filter associated with a sheet.
7232type SetBasicFilterRequest struct {
7233	// Filter: The filter to set.
7234	Filter *BasicFilter `json:"filter,omitempty"`
7235
7236	// ForceSendFields is a list of field names (e.g. "Filter") to
7237	// unconditionally include in API requests. By default, fields with
7238	// empty values are omitted from API requests. However, any non-pointer,
7239	// non-interface field appearing in ForceSendFields will be sent to the
7240	// server regardless of whether the field is empty or not. This may be
7241	// used to include empty fields in Patch requests.
7242	ForceSendFields []string `json:"-"`
7243
7244	// NullFields is a list of field names (e.g. "Filter") to include in API
7245	// requests with the JSON null value. By default, fields with empty
7246	// values are omitted from API requests. However, any field with an
7247	// empty value appearing in NullFields will be sent to the server as
7248	// null. It is an error if a field in this list has a non-empty value.
7249	// This may be used to include null fields in Patch requests.
7250	NullFields []string `json:"-"`
7251}
7252
7253func (s *SetBasicFilterRequest) MarshalJSON() ([]byte, error) {
7254	type NoMethod SetBasicFilterRequest
7255	raw := NoMethod(*s)
7256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7257}
7258
7259// SetDataValidationRequest: Sets a data validation rule to every cell
7260// in the range.
7261// To clear validation in a range, call this with no rule specified.
7262type SetDataValidationRequest struct {
7263	// Range: The range the data validation rule should apply to.
7264	Range *GridRange `json:"range,omitempty"`
7265
7266	// Rule: The data validation rule to set on each cell in the range,
7267	// or empty to clear the data validation in the range.
7268	Rule *DataValidationRule `json:"rule,omitempty"`
7269
7270	// ForceSendFields is a list of field names (e.g. "Range") to
7271	// unconditionally include in API requests. By default, fields with
7272	// empty values are omitted from API requests. However, any non-pointer,
7273	// non-interface field appearing in ForceSendFields will be sent to the
7274	// server regardless of whether the field is empty or not. This may be
7275	// used to include empty fields in Patch requests.
7276	ForceSendFields []string `json:"-"`
7277
7278	// NullFields is a list of field names (e.g. "Range") to include in API
7279	// requests with the JSON null value. By default, fields with empty
7280	// values are omitted from API requests. However, any field with an
7281	// empty value appearing in NullFields will be sent to the server as
7282	// null. It is an error if a field in this list has a non-empty value.
7283	// This may be used to include null fields in Patch requests.
7284	NullFields []string `json:"-"`
7285}
7286
7287func (s *SetDataValidationRequest) MarshalJSON() ([]byte, error) {
7288	type NoMethod SetDataValidationRequest
7289	raw := NoMethod(*s)
7290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7291}
7292
7293// Sheet: A sheet in a spreadsheet.
7294type Sheet struct {
7295	// BandedRanges: The banded (i.e. alternating colors) ranges on this
7296	// sheet.
7297	BandedRanges []*BandedRange `json:"bandedRanges,omitempty"`
7298
7299	// BasicFilter: The filter on this sheet, if any.
7300	BasicFilter *BasicFilter `json:"basicFilter,omitempty"`
7301
7302	// Charts: The specifications of every chart on this sheet.
7303	Charts []*EmbeddedChart `json:"charts,omitempty"`
7304
7305	// ConditionalFormats: The conditional format rules in this sheet.
7306	ConditionalFormats []*ConditionalFormatRule `json:"conditionalFormats,omitempty"`
7307
7308	// Data: Data in the grid, if this is a grid sheet.
7309	// The number of GridData objects returned is dependent on the number
7310	// of
7311	// ranges requested on this sheet. For example, if this is
7312	// representing
7313	// `Sheet1`, and the spreadsheet was requested with
7314	// ranges
7315	// `Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will
7316	// have a
7317	// startRow/startColumn of `0`,
7318	// while the second one will have `startRow 14` (zero-based row 15),
7319	// and `startColumn 3` (zero-based column D).
7320	Data []*GridData `json:"data,omitempty"`
7321
7322	// DeveloperMetadata: The developer metadata associated with a sheet.
7323	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
7324
7325	// FilterViews: The filter views in this sheet.
7326	FilterViews []*FilterView `json:"filterViews,omitempty"`
7327
7328	// Merges: The ranges that are merged together.
7329	Merges []*GridRange `json:"merges,omitempty"`
7330
7331	// Properties: The properties of the sheet.
7332	Properties *SheetProperties `json:"properties,omitempty"`
7333
7334	// ProtectedRanges: The protected ranges in this sheet.
7335	ProtectedRanges []*ProtectedRange `json:"protectedRanges,omitempty"`
7336
7337	// ForceSendFields is a list of field names (e.g. "BandedRanges") to
7338	// unconditionally include in API requests. By default, fields with
7339	// empty values are omitted from API requests. However, any non-pointer,
7340	// non-interface field appearing in ForceSendFields will be sent to the
7341	// server regardless of whether the field is empty or not. This may be
7342	// used to include empty fields in Patch requests.
7343	ForceSendFields []string `json:"-"`
7344
7345	// NullFields is a list of field names (e.g. "BandedRanges") to include
7346	// in API requests with the JSON null value. By default, fields with
7347	// empty values are omitted from API requests. However, any field with
7348	// an empty value appearing in NullFields will be sent to the server as
7349	// null. It is an error if a field in this list has a non-empty value.
7350	// This may be used to include null fields in Patch requests.
7351	NullFields []string `json:"-"`
7352}
7353
7354func (s *Sheet) MarshalJSON() ([]byte, error) {
7355	type NoMethod Sheet
7356	raw := NoMethod(*s)
7357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7358}
7359
7360// SheetProperties: Properties of a sheet.
7361type SheetProperties struct {
7362	// GridProperties: Additional properties of the sheet if this sheet is a
7363	// grid.
7364	// (If the sheet is an object sheet, containing a chart or image,
7365	// then
7366	// this field will be absent.)
7367	// When writing it is an error to set any grid properties on non-grid
7368	// sheets.
7369	GridProperties *GridProperties `json:"gridProperties,omitempty"`
7370
7371	// Hidden: True if the sheet is hidden in the UI, false if it's visible.
7372	Hidden bool `json:"hidden,omitempty"`
7373
7374	// Index: The index of the sheet within the spreadsheet.
7375	// When adding or updating sheet properties, if this field
7376	// is excluded then the sheet will be added or moved to the end
7377	// of the sheet list. When updating sheet indices or inserting
7378	// sheets, movement is considered in "before the move" indexes.
7379	// For example, if there were 3 sheets (S1, S2, S3) in order to
7380	// move S1 ahead of S2 the index would have to be set to 2. A
7381	// sheet
7382	// index update request will be ignored if the requested index
7383	// is
7384	// identical to the sheets current index or if the requested new
7385	// index is equal to the current sheet index + 1.
7386	Index int64 `json:"index,omitempty"`
7387
7388	// RightToLeft: True if the sheet is an RTL sheet instead of an LTR
7389	// sheet.
7390	RightToLeft bool `json:"rightToLeft,omitempty"`
7391
7392	// SheetId: The ID of the sheet. Must be non-negative.
7393	// This field cannot be changed once set.
7394	SheetId int64 `json:"sheetId,omitempty"`
7395
7396	// SheetType: The type of sheet. Defaults to GRID.
7397	// This field cannot be changed once set.
7398	//
7399	// Possible values:
7400	//   "SHEET_TYPE_UNSPECIFIED" - Default value, do not use.
7401	//   "GRID" - The sheet is a grid.
7402	//   "OBJECT" - The sheet has no grid and instead has an object like a
7403	// chart or image.
7404	SheetType string `json:"sheetType,omitempty"`
7405
7406	// TabColor: The color of the tab in the UI.
7407	TabColor *Color `json:"tabColor,omitempty"`
7408
7409	// Title: The name of the sheet.
7410	Title string `json:"title,omitempty"`
7411
7412	// ServerResponse contains the HTTP response code and headers from the
7413	// server.
7414	googleapi.ServerResponse `json:"-"`
7415
7416	// ForceSendFields is a list of field names (e.g. "GridProperties") to
7417	// unconditionally include in API requests. By default, fields with
7418	// empty values are omitted from API requests. However, any non-pointer,
7419	// non-interface field appearing in ForceSendFields will be sent to the
7420	// server regardless of whether the field is empty or not. This may be
7421	// used to include empty fields in Patch requests.
7422	ForceSendFields []string `json:"-"`
7423
7424	// NullFields is a list of field names (e.g. "GridProperties") to
7425	// include in API requests with the JSON null value. By default, fields
7426	// with empty values are omitted from API requests. However, any field
7427	// with an empty value appearing in NullFields will be sent to the
7428	// server as null. It is an error if a field in this list has a
7429	// non-empty value. This may be used to include null fields in Patch
7430	// requests.
7431	NullFields []string `json:"-"`
7432}
7433
7434func (s *SheetProperties) MarshalJSON() ([]byte, error) {
7435	type NoMethod SheetProperties
7436	raw := NoMethod(*s)
7437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7438}
7439
7440// SortRangeRequest: Sorts data in rows based on a sort order per
7441// column.
7442type SortRangeRequest struct {
7443	// Range: The range to sort.
7444	Range *GridRange `json:"range,omitempty"`
7445
7446	// SortSpecs: The sort order per column. Later specifications are used
7447	// when values
7448	// are equal in the earlier specifications.
7449	SortSpecs []*SortSpec `json:"sortSpecs,omitempty"`
7450
7451	// ForceSendFields is a list of field names (e.g. "Range") to
7452	// unconditionally include in API requests. By default, fields with
7453	// empty values are omitted from API requests. However, any non-pointer,
7454	// non-interface field appearing in ForceSendFields will be sent to the
7455	// server regardless of whether the field is empty or not. This may be
7456	// used to include empty fields in Patch requests.
7457	ForceSendFields []string `json:"-"`
7458
7459	// NullFields is a list of field names (e.g. "Range") to include in API
7460	// requests with the JSON null value. By default, fields with empty
7461	// values are omitted from API requests. However, any field with an
7462	// empty value appearing in NullFields will be sent to the server as
7463	// null. It is an error if a field in this list has a non-empty value.
7464	// This may be used to include null fields in Patch requests.
7465	NullFields []string `json:"-"`
7466}
7467
7468func (s *SortRangeRequest) MarshalJSON() ([]byte, error) {
7469	type NoMethod SortRangeRequest
7470	raw := NoMethod(*s)
7471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7472}
7473
7474// SortSpec: A sort order associated with a specific column or row.
7475type SortSpec struct {
7476	// DimensionIndex: The dimension the sort should be applied to.
7477	DimensionIndex int64 `json:"dimensionIndex,omitempty"`
7478
7479	// SortOrder: The order data should be sorted.
7480	//
7481	// Possible values:
7482	//   "SORT_ORDER_UNSPECIFIED" - Default value, do not use this.
7483	//   "ASCENDING" - Sort ascending.
7484	//   "DESCENDING" - Sort descending.
7485	SortOrder string `json:"sortOrder,omitempty"`
7486
7487	// ForceSendFields is a list of field names (e.g. "DimensionIndex") to
7488	// unconditionally include in API requests. By default, fields with
7489	// empty values are omitted from API requests. However, any non-pointer,
7490	// non-interface field appearing in ForceSendFields will be sent to the
7491	// server regardless of whether the field is empty or not. This may be
7492	// used to include empty fields in Patch requests.
7493	ForceSendFields []string `json:"-"`
7494
7495	// NullFields is a list of field names (e.g. "DimensionIndex") to
7496	// include in API requests with the JSON null value. By default, fields
7497	// with empty values are omitted from API requests. However, any field
7498	// with an empty value appearing in NullFields will be sent to the
7499	// server as null. It is an error if a field in this list has a
7500	// non-empty value. This may be used to include null fields in Patch
7501	// requests.
7502	NullFields []string `json:"-"`
7503}
7504
7505func (s *SortSpec) MarshalJSON() ([]byte, error) {
7506	type NoMethod SortSpec
7507	raw := NoMethod(*s)
7508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7509}
7510
7511// SourceAndDestination: A combination of a source range and how to
7512// extend that source.
7513type SourceAndDestination struct {
7514	// Dimension: The dimension that data should be filled into.
7515	//
7516	// Possible values:
7517	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
7518	//   "ROWS" - Operates on the rows of a sheet.
7519	//   "COLUMNS" - Operates on the columns of a sheet.
7520	Dimension string `json:"dimension,omitempty"`
7521
7522	// FillLength: The number of rows or columns that data should be filled
7523	// into.
7524	// Positive numbers expand beyond the last row or last column
7525	// of the source.  Negative numbers expand before the first row
7526	// or first column of the source.
7527	FillLength int64 `json:"fillLength,omitempty"`
7528
7529	// Source: The location of the data to use as the source of the
7530	// autofill.
7531	Source *GridRange `json:"source,omitempty"`
7532
7533	// ForceSendFields is a list of field names (e.g. "Dimension") to
7534	// unconditionally include in API requests. By default, fields with
7535	// empty values are omitted from API requests. However, any non-pointer,
7536	// non-interface field appearing in ForceSendFields will be sent to the
7537	// server regardless of whether the field is empty or not. This may be
7538	// used to include empty fields in Patch requests.
7539	ForceSendFields []string `json:"-"`
7540
7541	// NullFields is a list of field names (e.g. "Dimension") to include in
7542	// API requests with the JSON null value. By default, fields with empty
7543	// values are omitted from API requests. However, any field with an
7544	// empty value appearing in NullFields will be sent to the server as
7545	// null. It is an error if a field in this list has a non-empty value.
7546	// This may be used to include null fields in Patch requests.
7547	NullFields []string `json:"-"`
7548}
7549
7550func (s *SourceAndDestination) MarshalJSON() ([]byte, error) {
7551	type NoMethod SourceAndDestination
7552	raw := NoMethod(*s)
7553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7554}
7555
7556// Spreadsheet: Resource that represents a spreadsheet.
7557type Spreadsheet struct {
7558	// DeveloperMetadata: The developer metadata associated with a
7559	// spreadsheet.
7560	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
7561
7562	// NamedRanges: The named ranges defined in a spreadsheet.
7563	NamedRanges []*NamedRange `json:"namedRanges,omitempty"`
7564
7565	// Properties: Overall properties of a spreadsheet.
7566	Properties *SpreadsheetProperties `json:"properties,omitempty"`
7567
7568	// Sheets: The sheets that are part of a spreadsheet.
7569	Sheets []*Sheet `json:"sheets,omitempty"`
7570
7571	// SpreadsheetId: The ID of the spreadsheet.
7572	// This field is read-only.
7573	SpreadsheetId string `json:"spreadsheetId,omitempty"`
7574
7575	// SpreadsheetUrl: The url of the spreadsheet.
7576	// This field is read-only.
7577	SpreadsheetUrl string `json:"spreadsheetUrl,omitempty"`
7578
7579	// ServerResponse contains the HTTP response code and headers from the
7580	// server.
7581	googleapi.ServerResponse `json:"-"`
7582
7583	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
7584	// to unconditionally include in API requests. By default, fields with
7585	// empty values are omitted from API requests. However, any non-pointer,
7586	// non-interface field appearing in ForceSendFields will be sent to the
7587	// server regardless of whether the field is empty or not. This may be
7588	// used to include empty fields in Patch requests.
7589	ForceSendFields []string `json:"-"`
7590
7591	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
7592	// include in API requests with the JSON null value. By default, fields
7593	// with empty values are omitted from API requests. However, any field
7594	// with an empty value appearing in NullFields will be sent to the
7595	// server as null. It is an error if a field in this list has a
7596	// non-empty value. This may be used to include null fields in Patch
7597	// requests.
7598	NullFields []string `json:"-"`
7599}
7600
7601func (s *Spreadsheet) MarshalJSON() ([]byte, error) {
7602	type NoMethod Spreadsheet
7603	raw := NoMethod(*s)
7604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7605}
7606
7607// SpreadsheetProperties: Properties of a spreadsheet.
7608type SpreadsheetProperties struct {
7609	// AutoRecalc: The amount of time to wait before volatile functions are
7610	// recalculated.
7611	//
7612	// Possible values:
7613	//   "RECALCULATION_INTERVAL_UNSPECIFIED" - Default value. This value
7614	// must not be used.
7615	//   "ON_CHANGE" - Volatile functions are updated on every change.
7616	//   "MINUTE" - Volatile functions are updated on every change and every
7617	// minute.
7618	//   "HOUR" - Volatile functions are updated on every change and hourly.
7619	AutoRecalc string `json:"autoRecalc,omitempty"`
7620
7621	// DefaultFormat: The default format of all cells in the
7622	// spreadsheet.
7623	// CellData.effectiveFormat will not be set if
7624	// the cell's format is equal to this default format. This field is
7625	// read-only.
7626	DefaultFormat *CellFormat `json:"defaultFormat,omitempty"`
7627
7628	// IterativeCalculationSettings: Determines whether and how circular
7629	// references are resolved with iterative
7630	// calculation.  Absence of this field means that circular references
7631	// will
7632	// result in calculation errors.
7633	IterativeCalculationSettings *IterativeCalculationSettings `json:"iterativeCalculationSettings,omitempty"`
7634
7635	// Locale: The locale of the spreadsheet in one of the following
7636	// formats:
7637	//
7638	// * an ISO 639-1 language code such as `en`
7639	//
7640	// * an ISO 639-2 language code such as `fil`, if no 639-1 code
7641	// exists
7642	//
7643	// * a combination of the ISO language code and country code, such as
7644	// `en_US`
7645	//
7646	// Note: when updating this field, not all locales/languages are
7647	// supported.
7648	Locale string `json:"locale,omitempty"`
7649
7650	// TimeZone: The time zone of the spreadsheet, in CLDR format such
7651	// as
7652	// `America/New_York`. If the time zone isn't recognized, this may
7653	// be a custom time zone such as `GMT-07:00`.
7654	TimeZone string `json:"timeZone,omitempty"`
7655
7656	// Title: The title of the spreadsheet.
7657	Title string `json:"title,omitempty"`
7658
7659	// ForceSendFields is a list of field names (e.g. "AutoRecalc") to
7660	// unconditionally include in API requests. By default, fields with
7661	// empty values are omitted from API requests. However, any non-pointer,
7662	// non-interface field appearing in ForceSendFields will be sent to the
7663	// server regardless of whether the field is empty or not. This may be
7664	// used to include empty fields in Patch requests.
7665	ForceSendFields []string `json:"-"`
7666
7667	// NullFields is a list of field names (e.g. "AutoRecalc") to include in
7668	// API requests with the JSON null value. By default, fields with empty
7669	// values are omitted from API requests. However, any field with an
7670	// empty value appearing in NullFields will be sent to the server as
7671	// null. It is an error if a field in this list has a non-empty value.
7672	// This may be used to include null fields in Patch requests.
7673	NullFields []string `json:"-"`
7674}
7675
7676func (s *SpreadsheetProperties) MarshalJSON() ([]byte, error) {
7677	type NoMethod SpreadsheetProperties
7678	raw := NoMethod(*s)
7679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7680}
7681
7682// TextFormat: The format of a run of text in a cell.
7683// Absent values indicate that the field isn't specified.
7684type TextFormat struct {
7685	// Bold: True if the text is bold.
7686	Bold bool `json:"bold,omitempty"`
7687
7688	// FontFamily: The font family.
7689	FontFamily string `json:"fontFamily,omitempty"`
7690
7691	// FontSize: The size of the font.
7692	FontSize int64 `json:"fontSize,omitempty"`
7693
7694	// ForegroundColor: The foreground color of the text.
7695	ForegroundColor *Color `json:"foregroundColor,omitempty"`
7696
7697	// Italic: True if the text is italicized.
7698	Italic bool `json:"italic,omitempty"`
7699
7700	// Strikethrough: True if the text has a strikethrough.
7701	Strikethrough bool `json:"strikethrough,omitempty"`
7702
7703	// Underline: True if the text is underlined.
7704	Underline bool `json:"underline,omitempty"`
7705
7706	// ForceSendFields is a list of field names (e.g. "Bold") to
7707	// unconditionally include in API requests. By default, fields with
7708	// empty values are omitted from API requests. However, any non-pointer,
7709	// non-interface field appearing in ForceSendFields will be sent to the
7710	// server regardless of whether the field is empty or not. This may be
7711	// used to include empty fields in Patch requests.
7712	ForceSendFields []string `json:"-"`
7713
7714	// NullFields is a list of field names (e.g. "Bold") to include in API
7715	// requests with the JSON null value. By default, fields with empty
7716	// values are omitted from API requests. However, any field with an
7717	// empty value appearing in NullFields will be sent to the server as
7718	// null. It is an error if a field in this list has a non-empty value.
7719	// This may be used to include null fields in Patch requests.
7720	NullFields []string `json:"-"`
7721}
7722
7723func (s *TextFormat) MarshalJSON() ([]byte, error) {
7724	type NoMethod TextFormat
7725	raw := NoMethod(*s)
7726	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7727}
7728
7729// TextFormatRun: A run of a text format. The format of this run
7730// continues until the start
7731// index of the next run.
7732// When updating, all fields must be set.
7733type TextFormatRun struct {
7734	// Format: The format of this run.  Absent values inherit the cell's
7735	// format.
7736	Format *TextFormat `json:"format,omitempty"`
7737
7738	// StartIndex: The character index where this run starts.
7739	StartIndex int64 `json:"startIndex,omitempty"`
7740
7741	// ForceSendFields is a list of field names (e.g. "Format") to
7742	// unconditionally include in API requests. By default, fields with
7743	// empty values are omitted from API requests. However, any non-pointer,
7744	// non-interface field appearing in ForceSendFields will be sent to the
7745	// server regardless of whether the field is empty or not. This may be
7746	// used to include empty fields in Patch requests.
7747	ForceSendFields []string `json:"-"`
7748
7749	// NullFields is a list of field names (e.g. "Format") to include in API
7750	// requests with the JSON null value. By default, fields with empty
7751	// values are omitted from API requests. However, any field with an
7752	// empty value appearing in NullFields will be sent to the server as
7753	// null. It is an error if a field in this list has a non-empty value.
7754	// This may be used to include null fields in Patch requests.
7755	NullFields []string `json:"-"`
7756}
7757
7758func (s *TextFormatRun) MarshalJSON() ([]byte, error) {
7759	type NoMethod TextFormatRun
7760	raw := NoMethod(*s)
7761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7762}
7763
7764// TextPosition: Position settings for text.
7765type TextPosition struct {
7766	// HorizontalAlignment: Horizontal alignment setting for the piece of
7767	// text.
7768	//
7769	// Possible values:
7770	//   "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not
7771	// specified. Do not use this.
7772	//   "LEFT" - The text is explicitly aligned to the left of the cell.
7773	//   "CENTER" - The text is explicitly aligned to the center of the
7774	// cell.
7775	//   "RIGHT" - The text is explicitly aligned to the right of the cell.
7776	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
7777
7778	// ForceSendFields is a list of field names (e.g. "HorizontalAlignment")
7779	// to unconditionally include in API requests. By default, fields with
7780	// empty values are omitted from API requests. However, any non-pointer,
7781	// non-interface field appearing in ForceSendFields will be sent to the
7782	// server regardless of whether the field is empty or not. This may be
7783	// used to include empty fields in Patch requests.
7784	ForceSendFields []string `json:"-"`
7785
7786	// NullFields is a list of field names (e.g. "HorizontalAlignment") to
7787	// include in API requests with the JSON null value. By default, fields
7788	// with empty values are omitted from API requests. However, any field
7789	// with an empty value appearing in NullFields will be sent to the
7790	// server as null. It is an error if a field in this list has a
7791	// non-empty value. This may be used to include null fields in Patch
7792	// requests.
7793	NullFields []string `json:"-"`
7794}
7795
7796func (s *TextPosition) MarshalJSON() ([]byte, error) {
7797	type NoMethod TextPosition
7798	raw := NoMethod(*s)
7799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7800}
7801
7802// TextRotation: The rotation applied to text in a cell.
7803type TextRotation struct {
7804	// Angle: The angle between the standard orientation and the desired
7805	// orientation.
7806	// Measured in degrees. Valid values are between -90 and 90.
7807	// Positive
7808	// angles are angled upwards, negative are angled downwards.
7809	//
7810	// Note: For LTR text direction positive angles are in the
7811	// counterclockwise
7812	// direction, whereas for RTL they are in the clockwise direction
7813	Angle int64 `json:"angle,omitempty"`
7814
7815	// Vertical: If true, text reads top to bottom, but the orientation of
7816	// individual
7817	// characters is unchanged.
7818	// For example:
7819	//
7820	//     | V |
7821	//     | e |
7822	//     | r |
7823	//     | t |
7824	//     | i |
7825	//     | c |
7826	//     | a |
7827	//     | l |
7828	Vertical bool `json:"vertical,omitempty"`
7829
7830	// ForceSendFields is a list of field names (e.g. "Angle") to
7831	// unconditionally include in API requests. By default, fields with
7832	// empty values are omitted from API requests. However, any non-pointer,
7833	// non-interface field appearing in ForceSendFields will be sent to the
7834	// server regardless of whether the field is empty or not. This may be
7835	// used to include empty fields in Patch requests.
7836	ForceSendFields []string `json:"-"`
7837
7838	// NullFields is a list of field names (e.g. "Angle") to include in API
7839	// requests with the JSON null value. By default, fields with empty
7840	// values are omitted from API requests. However, any field with an
7841	// empty value appearing in NullFields will be sent to the server as
7842	// null. It is an error if a field in this list has a non-empty value.
7843	// This may be used to include null fields in Patch requests.
7844	NullFields []string `json:"-"`
7845}
7846
7847func (s *TextRotation) MarshalJSON() ([]byte, error) {
7848	type NoMethod TextRotation
7849	raw := NoMethod(*s)
7850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7851}
7852
7853// TextToColumnsRequest: Splits a column of text into multiple
7854// columns,
7855// based on a delimiter in each cell.
7856type TextToColumnsRequest struct {
7857	// Delimiter: The delimiter to use. Used only if delimiterType
7858	// is
7859	// CUSTOM.
7860	Delimiter string `json:"delimiter,omitempty"`
7861
7862	// DelimiterType: The delimiter type to use.
7863	//
7864	// Possible values:
7865	//   "DELIMITER_TYPE_UNSPECIFIED" - Default value. This value must not
7866	// be used.
7867	//   "COMMA" - ","
7868	//   "SEMICOLON" - ";"
7869	//   "PERIOD" - "."
7870	//   "SPACE" - " "
7871	//   "CUSTOM" - A custom value as defined in delimiter.
7872	//   "AUTODETECT" - Automatically detect columns.
7873	DelimiterType string `json:"delimiterType,omitempty"`
7874
7875	// Source: The source data range.  This must span exactly one column.
7876	Source *GridRange `json:"source,omitempty"`
7877
7878	// ForceSendFields is a list of field names (e.g. "Delimiter") to
7879	// unconditionally include in API requests. By default, fields with
7880	// empty values are omitted from API requests. However, any non-pointer,
7881	// non-interface field appearing in ForceSendFields will be sent to the
7882	// server regardless of whether the field is empty or not. This may be
7883	// used to include empty fields in Patch requests.
7884	ForceSendFields []string `json:"-"`
7885
7886	// NullFields is a list of field names (e.g. "Delimiter") to include in
7887	// API requests with the JSON null value. By default, fields with empty
7888	// values are omitted from API requests. However, any field with an
7889	// empty value appearing in NullFields will be sent to the server as
7890	// null. It is an error if a field in this list has a non-empty value.
7891	// This may be used to include null fields in Patch requests.
7892	NullFields []string `json:"-"`
7893}
7894
7895func (s *TextToColumnsRequest) MarshalJSON() ([]byte, error) {
7896	type NoMethod TextToColumnsRequest
7897	raw := NoMethod(*s)
7898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7899}
7900
7901// TreemapChartColorScale: A color scale for a treemap chart.
7902type TreemapChartColorScale struct {
7903	// MaxValueColor: The background color for cells with a color value
7904	// greater than or equal
7905	// to maxValue. Defaults to #109618 if not
7906	// specified.
7907	MaxValueColor *Color `json:"maxValueColor,omitempty"`
7908
7909	// MidValueColor: The background color for cells with a color value at
7910	// the midpoint between
7911	// minValue and
7912	// maxValue. Defaults to #efe6dc if not
7913	// specified.
7914	MidValueColor *Color `json:"midValueColor,omitempty"`
7915
7916	// MinValueColor: The background color for cells with a color value less
7917	// than or equal to
7918	// minValue. Defaults to #dc3912 if not
7919	// specified.
7920	MinValueColor *Color `json:"minValueColor,omitempty"`
7921
7922	// NoDataColor: The background color for cells that have no color data
7923	// associated with
7924	// them. Defaults to #000000 if not specified.
7925	NoDataColor *Color `json:"noDataColor,omitempty"`
7926
7927	// ForceSendFields is a list of field names (e.g. "MaxValueColor") to
7928	// unconditionally include in API requests. By default, fields with
7929	// empty values are omitted from API requests. However, any non-pointer,
7930	// non-interface field appearing in ForceSendFields will be sent to the
7931	// server regardless of whether the field is empty or not. This may be
7932	// used to include empty fields in Patch requests.
7933	ForceSendFields []string `json:"-"`
7934
7935	// NullFields is a list of field names (e.g. "MaxValueColor") to include
7936	// in API requests with the JSON null value. By default, fields with
7937	// empty values are omitted from API requests. However, any field with
7938	// an empty value appearing in NullFields will be sent to the server as
7939	// null. It is an error if a field in this list has a non-empty value.
7940	// This may be used to include null fields in Patch requests.
7941	NullFields []string `json:"-"`
7942}
7943
7944func (s *TreemapChartColorScale) MarshalJSON() ([]byte, error) {
7945	type NoMethod TreemapChartColorScale
7946	raw := NoMethod(*s)
7947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7948}
7949
7950// TreemapChartSpec: A <a
7951// href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>.
7952type TreemapChartSpec struct {
7953	// ColorData: The data that determines the background color of each
7954	// treemap data cell.
7955	// This field is optional. If not specified, size_data will be used
7956	// to
7957	// determine background colors. If specified, the data is expected to
7958	// be
7959	// numeric. color_scale will determine how the values in this data map
7960	// to
7961	// data cell background colors.
7962	ColorData *ChartData `json:"colorData,omitempty"`
7963
7964	// ColorScale: The color scale for data cells in the treemap chart. Data
7965	// cells are
7966	// assigned colors based on their color values. These color values come
7967	// from
7968	// color_data, or from size_data if color_data is not specified.
7969	// Cells with color values less than or equal to min_value will
7970	// have minValueColor as their
7971	// background color. Cells with color values greater than or equal
7972	// to
7973	// max_value will have
7974	// maxValueColor as their background
7975	// color. Cells with color values between min_value and max_value
7976	// will
7977	// have background colors on a gradient between
7978	// minValueColor and
7979	// maxValueColor, the midpoint of
7980	// the gradient being midValueColor.
7981	// Cells with missing or non-numeric color values will have
7982	// noDataColor as their background
7983	// color.
7984	ColorScale *TreemapChartColorScale `json:"colorScale,omitempty"`
7985
7986	// HeaderColor: The background color for header cells.
7987	HeaderColor *Color `json:"headerColor,omitempty"`
7988
7989	// HideTooltips: True to hide tooltips.
7990	HideTooltips bool `json:"hideTooltips,omitempty"`
7991
7992	// HintedLevels: The number of additional data levels beyond the labeled
7993	// levels to be shown
7994	// on the treemap chart. These levels are not interactive and are
7995	// shown
7996	// without their labels. Defaults to 0 if not specified.
7997	HintedLevels int64 `json:"hintedLevels,omitempty"`
7998
7999	// Labels: The data that contains the treemap cell labels.
8000	Labels *ChartData `json:"labels,omitempty"`
8001
8002	// Levels: The number of data levels to show on the treemap chart. These
8003	// levels are
8004	// interactive and are shown with their labels. Defaults to 2 if
8005	// not
8006	// specified.
8007	Levels int64 `json:"levels,omitempty"`
8008
8009	// MaxValue: The maximum possible data value. Cells with values greater
8010	// than this will
8011	// have the same color as cells with this value. If not specified,
8012	// defaults
8013	// to the actual maximum value from color_data, or the maximum value
8014	// from
8015	// size_data if color_data is not specified.
8016	MaxValue float64 `json:"maxValue,omitempty"`
8017
8018	// MinValue: The minimum possible data value. Cells with values less
8019	// than this will
8020	// have the same color as cells with this value. If not specified,
8021	// defaults
8022	// to the actual minimum value from color_data, or the minimum value
8023	// from
8024	// size_data if color_data is not specified.
8025	MinValue float64 `json:"minValue,omitempty"`
8026
8027	// ParentLabels: The data the contains the treemap cells' parent labels.
8028	ParentLabels *ChartData `json:"parentLabels,omitempty"`
8029
8030	// SizeData: The data that determines the size of each treemap data
8031	// cell. This data is
8032	// expected to be numeric. The cells corresponding to non-numeric or
8033	// missing
8034	// data will not be rendered. If color_data is not specified, this
8035	// data
8036	// will be used to determine data cell background colors as well.
8037	SizeData *ChartData `json:"sizeData,omitempty"`
8038
8039	// TextFormat: The text format for all labels on the chart.
8040	TextFormat *TextFormat `json:"textFormat,omitempty"`
8041
8042	// ForceSendFields is a list of field names (e.g. "ColorData") to
8043	// unconditionally include in API requests. By default, fields with
8044	// empty values are omitted from API requests. However, any non-pointer,
8045	// non-interface field appearing in ForceSendFields will be sent to the
8046	// server regardless of whether the field is empty or not. This may be
8047	// used to include empty fields in Patch requests.
8048	ForceSendFields []string `json:"-"`
8049
8050	// NullFields is a list of field names (e.g. "ColorData") to include in
8051	// API requests with the JSON null value. By default, fields with empty
8052	// values are omitted from API requests. However, any field with an
8053	// empty value appearing in NullFields will be sent to the server as
8054	// null. It is an error if a field in this list has a non-empty value.
8055	// This may be used to include null fields in Patch requests.
8056	NullFields []string `json:"-"`
8057}
8058
8059func (s *TreemapChartSpec) MarshalJSON() ([]byte, error) {
8060	type NoMethod TreemapChartSpec
8061	raw := NoMethod(*s)
8062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8063}
8064
8065func (s *TreemapChartSpec) UnmarshalJSON(data []byte) error {
8066	type NoMethod TreemapChartSpec
8067	var s1 struct {
8068		MaxValue gensupport.JSONFloat64 `json:"maxValue"`
8069		MinValue gensupport.JSONFloat64 `json:"minValue"`
8070		*NoMethod
8071	}
8072	s1.NoMethod = (*NoMethod)(s)
8073	if err := json.Unmarshal(data, &s1); err != nil {
8074		return err
8075	}
8076	s.MaxValue = float64(s1.MaxValue)
8077	s.MinValue = float64(s1.MinValue)
8078	return nil
8079}
8080
8081// UnmergeCellsRequest: Unmerges cells in the given range.
8082type UnmergeCellsRequest struct {
8083	// Range: The range within which all cells should be unmerged.
8084	// If the range spans multiple merges, all will be unmerged.
8085	// The range must not partially span any merge.
8086	Range *GridRange `json:"range,omitempty"`
8087
8088	// ForceSendFields is a list of field names (e.g. "Range") to
8089	// unconditionally include in API requests. By default, fields with
8090	// empty values are omitted from API requests. However, any non-pointer,
8091	// non-interface field appearing in ForceSendFields will be sent to the
8092	// server regardless of whether the field is empty or not. This may be
8093	// used to include empty fields in Patch requests.
8094	ForceSendFields []string `json:"-"`
8095
8096	// NullFields is a list of field names (e.g. "Range") to include in API
8097	// requests with the JSON null value. By default, fields with empty
8098	// values are omitted from API requests. However, any field with an
8099	// empty value appearing in NullFields will be sent to the server as
8100	// null. It is an error if a field in this list has a non-empty value.
8101	// This may be used to include null fields in Patch requests.
8102	NullFields []string `json:"-"`
8103}
8104
8105func (s *UnmergeCellsRequest) MarshalJSON() ([]byte, error) {
8106	type NoMethod UnmergeCellsRequest
8107	raw := NoMethod(*s)
8108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8109}
8110
8111// UpdateBandingRequest: Updates properties of the supplied banded
8112// range.
8113type UpdateBandingRequest struct {
8114	// BandedRange: The banded range to update with the new properties.
8115	BandedRange *BandedRange `json:"bandedRange,omitempty"`
8116
8117	// Fields: The fields that should be updated.  At least one field must
8118	// be specified.
8119	// The root `bandedRange` is implied and should not be specified.
8120	// A single "*" can be used as short-hand for listing every field.
8121	Fields string `json:"fields,omitempty"`
8122
8123	// ForceSendFields is a list of field names (e.g. "BandedRange") to
8124	// unconditionally include in API requests. By default, fields with
8125	// empty values are omitted from API requests. However, any non-pointer,
8126	// non-interface field appearing in ForceSendFields will be sent to the
8127	// server regardless of whether the field is empty or not. This may be
8128	// used to include empty fields in Patch requests.
8129	ForceSendFields []string `json:"-"`
8130
8131	// NullFields is a list of field names (e.g. "BandedRange") to include
8132	// in API requests with the JSON null value. By default, fields with
8133	// empty values are omitted from API requests. However, any field with
8134	// an empty value appearing in NullFields will be sent to the server as
8135	// null. It is an error if a field in this list has a non-empty value.
8136	// This may be used to include null fields in Patch requests.
8137	NullFields []string `json:"-"`
8138}
8139
8140func (s *UpdateBandingRequest) MarshalJSON() ([]byte, error) {
8141	type NoMethod UpdateBandingRequest
8142	raw := NoMethod(*s)
8143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8144}
8145
8146// UpdateBordersRequest: Updates the borders of a range.
8147// If a field is not set in the request, that means the border remains
8148// as-is.
8149// For example, with two subsequent UpdateBordersRequest:
8150//
8151//  1. range: A1:A5 `{ top: RED, bottom: WHITE }`
8152//  2. range: A1:A5 `{ left: BLUE }`
8153//
8154// That would result in A1:A5 having a borders of
8155// `{ top: RED, bottom: WHITE, left: BLUE }`.
8156// If you want to clear a border, explicitly set the style to
8157// NONE.
8158type UpdateBordersRequest struct {
8159	// Bottom: The border to put at the bottom of the range.
8160	Bottom *Border `json:"bottom,omitempty"`
8161
8162	// InnerHorizontal: The horizontal border to put within the range.
8163	InnerHorizontal *Border `json:"innerHorizontal,omitempty"`
8164
8165	// InnerVertical: The vertical border to put within the range.
8166	InnerVertical *Border `json:"innerVertical,omitempty"`
8167
8168	// Left: The border to put at the left of the range.
8169	Left *Border `json:"left,omitempty"`
8170
8171	// Range: The range whose borders should be updated.
8172	Range *GridRange `json:"range,omitempty"`
8173
8174	// Right: The border to put at the right of the range.
8175	Right *Border `json:"right,omitempty"`
8176
8177	// Top: The border to put at the top of the range.
8178	Top *Border `json:"top,omitempty"`
8179
8180	// ForceSendFields is a list of field names (e.g. "Bottom") to
8181	// unconditionally include in API requests. By default, fields with
8182	// empty values are omitted from API requests. However, any non-pointer,
8183	// non-interface field appearing in ForceSendFields will be sent to the
8184	// server regardless of whether the field is empty or not. This may be
8185	// used to include empty fields in Patch requests.
8186	ForceSendFields []string `json:"-"`
8187
8188	// NullFields is a list of field names (e.g. "Bottom") to include in API
8189	// requests with the JSON null value. By default, fields with empty
8190	// values are omitted from API requests. However, any field with an
8191	// empty value appearing in NullFields will be sent to the server as
8192	// null. It is an error if a field in this list has a non-empty value.
8193	// This may be used to include null fields in Patch requests.
8194	NullFields []string `json:"-"`
8195}
8196
8197func (s *UpdateBordersRequest) MarshalJSON() ([]byte, error) {
8198	type NoMethod UpdateBordersRequest
8199	raw := NoMethod(*s)
8200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8201}
8202
8203// UpdateCellsRequest: Updates all cells in a range with new data.
8204type UpdateCellsRequest struct {
8205	// Fields: The fields of CellData that should be updated.
8206	// At least one field must be specified.
8207	// The root is the CellData; 'row.values.' should not be specified.
8208	// A single "*" can be used as short-hand for listing every field.
8209	Fields string `json:"fields,omitempty"`
8210
8211	// Range: The range to write data to.
8212	//
8213	// If the data in rows does not cover the entire requested range,
8214	// the fields matching those set in fields will be cleared.
8215	Range *GridRange `json:"range,omitempty"`
8216
8217	// Rows: The data to write.
8218	Rows []*RowData `json:"rows,omitempty"`
8219
8220	// Start: The coordinate to start writing data at.
8221	// Any number of rows and columns (including a different number
8222	// of
8223	// columns per row) may be written.
8224	Start *GridCoordinate `json:"start,omitempty"`
8225
8226	// ForceSendFields is a list of field names (e.g. "Fields") to
8227	// unconditionally include in API requests. By default, fields with
8228	// empty values are omitted from API requests. However, any non-pointer,
8229	// non-interface field appearing in ForceSendFields will be sent to the
8230	// server regardless of whether the field is empty or not. This may be
8231	// used to include empty fields in Patch requests.
8232	ForceSendFields []string `json:"-"`
8233
8234	// NullFields is a list of field names (e.g. "Fields") to include in API
8235	// requests with the JSON null value. By default, fields with empty
8236	// values are omitted from API requests. However, any field with an
8237	// empty value appearing in NullFields will be sent to the server as
8238	// null. It is an error if a field in this list has a non-empty value.
8239	// This may be used to include null fields in Patch requests.
8240	NullFields []string `json:"-"`
8241}
8242
8243func (s *UpdateCellsRequest) MarshalJSON() ([]byte, error) {
8244	type NoMethod UpdateCellsRequest
8245	raw := NoMethod(*s)
8246	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8247}
8248
8249// UpdateChartSpecRequest: Updates a chart's specifications.
8250// (This does not move or resize a chart. To move or resize a chart,
8251// use
8252//  UpdateEmbeddedObjectPositionRequest.)
8253type UpdateChartSpecRequest struct {
8254	// ChartId: The ID of the chart to update.
8255	ChartId int64 `json:"chartId,omitempty"`
8256
8257	// Spec: The specification to apply to the chart.
8258	Spec *ChartSpec `json:"spec,omitempty"`
8259
8260	// ForceSendFields is a list of field names (e.g. "ChartId") to
8261	// unconditionally include in API requests. By default, fields with
8262	// empty values are omitted from API requests. However, any non-pointer,
8263	// non-interface field appearing in ForceSendFields will be sent to the
8264	// server regardless of whether the field is empty or not. This may be
8265	// used to include empty fields in Patch requests.
8266	ForceSendFields []string `json:"-"`
8267
8268	// NullFields is a list of field names (e.g. "ChartId") to include in
8269	// API requests with the JSON null value. By default, fields with empty
8270	// values are omitted from API requests. However, any field with an
8271	// empty value appearing in NullFields will be sent to the server as
8272	// null. It is an error if a field in this list has a non-empty value.
8273	// This may be used to include null fields in Patch requests.
8274	NullFields []string `json:"-"`
8275}
8276
8277func (s *UpdateChartSpecRequest) MarshalJSON() ([]byte, error) {
8278	type NoMethod UpdateChartSpecRequest
8279	raw := NoMethod(*s)
8280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8281}
8282
8283// UpdateConditionalFormatRuleRequest: Updates a conditional format rule
8284// at the given index,
8285// or moves a conditional format rule to another index.
8286type UpdateConditionalFormatRuleRequest struct {
8287	// Index: The zero-based index of the rule that should be replaced or
8288	// moved.
8289	Index int64 `json:"index,omitempty"`
8290
8291	// NewIndex: The zero-based new index the rule should end up at.
8292	NewIndex int64 `json:"newIndex,omitempty"`
8293
8294	// Rule: The rule that should replace the rule at the given index.
8295	Rule *ConditionalFormatRule `json:"rule,omitempty"`
8296
8297	// SheetId: The sheet of the rule to move.  Required if new_index is
8298	// set,
8299	// unused otherwise.
8300	SheetId int64 `json:"sheetId,omitempty"`
8301
8302	// ForceSendFields is a list of field names (e.g. "Index") to
8303	// unconditionally include in API requests. By default, fields with
8304	// empty values are omitted from API requests. However, any non-pointer,
8305	// non-interface field appearing in ForceSendFields will be sent to the
8306	// server regardless of whether the field is empty or not. This may be
8307	// used to include empty fields in Patch requests.
8308	ForceSendFields []string `json:"-"`
8309
8310	// NullFields is a list of field names (e.g. "Index") to include in API
8311	// requests with the JSON null value. By default, fields with empty
8312	// values are omitted from API requests. However, any field with an
8313	// empty value appearing in NullFields will be sent to the server as
8314	// null. It is an error if a field in this list has a non-empty value.
8315	// This may be used to include null fields in Patch requests.
8316	NullFields []string `json:"-"`
8317}
8318
8319func (s *UpdateConditionalFormatRuleRequest) MarshalJSON() ([]byte, error) {
8320	type NoMethod UpdateConditionalFormatRuleRequest
8321	raw := NoMethod(*s)
8322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8323}
8324
8325// UpdateConditionalFormatRuleResponse: The result of updating a
8326// conditional format rule.
8327type UpdateConditionalFormatRuleResponse struct {
8328	// NewIndex: The index of the new rule.
8329	NewIndex int64 `json:"newIndex,omitempty"`
8330
8331	// NewRule: The new rule that replaced the old rule (if replacing),
8332	// or the rule that was moved (if moved)
8333	NewRule *ConditionalFormatRule `json:"newRule,omitempty"`
8334
8335	// OldIndex: The old index of the rule. Not set if a rule was
8336	// replaced
8337	// (because it is the same as new_index).
8338	OldIndex int64 `json:"oldIndex,omitempty"`
8339
8340	// OldRule: The old (deleted) rule. Not set if a rule was moved
8341	// (because it is the same as new_rule).
8342	OldRule *ConditionalFormatRule `json:"oldRule,omitempty"`
8343
8344	// ForceSendFields is a list of field names (e.g. "NewIndex") to
8345	// unconditionally include in API requests. By default, fields with
8346	// empty values are omitted from API requests. However, any non-pointer,
8347	// non-interface field appearing in ForceSendFields will be sent to the
8348	// server regardless of whether the field is empty or not. This may be
8349	// used to include empty fields in Patch requests.
8350	ForceSendFields []string `json:"-"`
8351
8352	// NullFields is a list of field names (e.g. "NewIndex") to include in
8353	// API requests with the JSON null value. By default, fields with empty
8354	// values are omitted from API requests. However, any field with an
8355	// empty value appearing in NullFields will be sent to the server as
8356	// null. It is an error if a field in this list has a non-empty value.
8357	// This may be used to include null fields in Patch requests.
8358	NullFields []string `json:"-"`
8359}
8360
8361func (s *UpdateConditionalFormatRuleResponse) MarshalJSON() ([]byte, error) {
8362	type NoMethod UpdateConditionalFormatRuleResponse
8363	raw := NoMethod(*s)
8364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8365}
8366
8367// UpdateDeveloperMetadataRequest: A request to update properties of
8368// developer metadata.
8369// Updates the properties of the developer metadata selected by the
8370// filters to
8371// the values provided in the DeveloperMetadata resource.  Callers
8372// must
8373// specify the properties they wish to update in the fields parameter,
8374// as well
8375// as specify at least one DataFilter matching the metadata they wish
8376// to
8377// update.
8378type UpdateDeveloperMetadataRequest struct {
8379	// DataFilters: The filters matching the developer metadata entries to
8380	// update.
8381	DataFilters []*DataFilter `json:"dataFilters,omitempty"`
8382
8383	// DeveloperMetadata: The value that all metadata matched by the data
8384	// filters will be updated to.
8385	DeveloperMetadata *DeveloperMetadata `json:"developerMetadata,omitempty"`
8386
8387	// Fields: The fields that should be updated.  At least one field must
8388	// be specified.
8389	// The root `developerMetadata` is implied and should not be
8390	// specified.
8391	// A single "*" can be used as short-hand for listing every field.
8392	Fields string `json:"fields,omitempty"`
8393
8394	// ForceSendFields is a list of field names (e.g. "DataFilters") to
8395	// unconditionally include in API requests. By default, fields with
8396	// empty values are omitted from API requests. However, any non-pointer,
8397	// non-interface field appearing in ForceSendFields will be sent to the
8398	// server regardless of whether the field is empty or not. This may be
8399	// used to include empty fields in Patch requests.
8400	ForceSendFields []string `json:"-"`
8401
8402	// NullFields is a list of field names (e.g. "DataFilters") to include
8403	// in API requests with the JSON null value. By default, fields with
8404	// empty values are omitted from API requests. However, any field with
8405	// an empty value appearing in NullFields will be sent to the server as
8406	// null. It is an error if a field in this list has a non-empty value.
8407	// This may be used to include null fields in Patch requests.
8408	NullFields []string `json:"-"`
8409}
8410
8411func (s *UpdateDeveloperMetadataRequest) MarshalJSON() ([]byte, error) {
8412	type NoMethod UpdateDeveloperMetadataRequest
8413	raw := NoMethod(*s)
8414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8415}
8416
8417// UpdateDeveloperMetadataResponse: The response from updating developer
8418// metadata.
8419type UpdateDeveloperMetadataResponse struct {
8420	// DeveloperMetadata: The updated developer metadata.
8421	DeveloperMetadata []*DeveloperMetadata `json:"developerMetadata,omitempty"`
8422
8423	// ForceSendFields is a list of field names (e.g. "DeveloperMetadata")
8424	// to unconditionally include in API requests. By default, fields with
8425	// empty values are omitted from API requests. However, any non-pointer,
8426	// non-interface field appearing in ForceSendFields will be sent to the
8427	// server regardless of whether the field is empty or not. This may be
8428	// used to include empty fields in Patch requests.
8429	ForceSendFields []string `json:"-"`
8430
8431	// NullFields is a list of field names (e.g. "DeveloperMetadata") to
8432	// include in API requests with the JSON null value. By default, fields
8433	// with empty values are omitted from API requests. However, any field
8434	// with an empty value appearing in NullFields will be sent to the
8435	// server as null. It is an error if a field in this list has a
8436	// non-empty value. This may be used to include null fields in Patch
8437	// requests.
8438	NullFields []string `json:"-"`
8439}
8440
8441func (s *UpdateDeveloperMetadataResponse) MarshalJSON() ([]byte, error) {
8442	type NoMethod UpdateDeveloperMetadataResponse
8443	raw := NoMethod(*s)
8444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8445}
8446
8447// UpdateDimensionPropertiesRequest: Updates properties of dimensions
8448// within the specified range.
8449type UpdateDimensionPropertiesRequest struct {
8450	// Fields: The fields that should be updated.  At least one field must
8451	// be specified.
8452	// The root `properties` is implied and should not be specified.
8453	// A single "*" can be used as short-hand for listing every field.
8454	Fields string `json:"fields,omitempty"`
8455
8456	// Properties: Properties to update.
8457	Properties *DimensionProperties `json:"properties,omitempty"`
8458
8459	// Range: The rows or columns to update.
8460	Range *DimensionRange `json:"range,omitempty"`
8461
8462	// ForceSendFields is a list of field names (e.g. "Fields") to
8463	// unconditionally include in API requests. By default, fields with
8464	// empty values are omitted from API requests. However, any non-pointer,
8465	// non-interface field appearing in ForceSendFields will be sent to the
8466	// server regardless of whether the field is empty or not. This may be
8467	// used to include empty fields in Patch requests.
8468	ForceSendFields []string `json:"-"`
8469
8470	// NullFields is a list of field names (e.g. "Fields") to include in API
8471	// requests with the JSON null value. By default, fields with empty
8472	// values are omitted from API requests. However, any field with an
8473	// empty value appearing in NullFields will be sent to the server as
8474	// null. It is an error if a field in this list has a non-empty value.
8475	// This may be used to include null fields in Patch requests.
8476	NullFields []string `json:"-"`
8477}
8478
8479func (s *UpdateDimensionPropertiesRequest) MarshalJSON() ([]byte, error) {
8480	type NoMethod UpdateDimensionPropertiesRequest
8481	raw := NoMethod(*s)
8482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8483}
8484
8485// UpdateEmbeddedObjectPositionRequest: Update an embedded object's
8486// position (such as a moving or resizing a
8487// chart or image).
8488type UpdateEmbeddedObjectPositionRequest struct {
8489	// Fields: The fields of OverlayPosition
8490	// that should be updated when setting a new position. Used only
8491	// if
8492	// newPosition.overlayPosition
8493	// is set, in which case at least one field must
8494	// be specified.  The root `newPosition.overlayPosition` is implied
8495	// and
8496	// should not be specified.
8497	// A single "*" can be used as short-hand for listing every field.
8498	Fields string `json:"fields,omitempty"`
8499
8500	// NewPosition: An explicit position to move the embedded object to.
8501	// If newPosition.sheetId is set,
8502	// a new sheet with that ID will be created.
8503	// If newPosition.newSheet is set to true,
8504	// a new sheet will be created with an ID that will be chosen for you.
8505	NewPosition *EmbeddedObjectPosition `json:"newPosition,omitempty"`
8506
8507	// ObjectId: The ID of the object to moved.
8508	ObjectId int64 `json:"objectId,omitempty"`
8509
8510	// ForceSendFields is a list of field names (e.g. "Fields") to
8511	// unconditionally include in API requests. By default, fields with
8512	// empty values are omitted from API requests. However, any non-pointer,
8513	// non-interface field appearing in ForceSendFields will be sent to the
8514	// server regardless of whether the field is empty or not. This may be
8515	// used to include empty fields in Patch requests.
8516	ForceSendFields []string `json:"-"`
8517
8518	// NullFields is a list of field names (e.g. "Fields") to include in API
8519	// requests with the JSON null value. By default, fields with empty
8520	// values are omitted from API requests. However, any field with an
8521	// empty value appearing in NullFields will be sent to the server as
8522	// null. It is an error if a field in this list has a non-empty value.
8523	// This may be used to include null fields in Patch requests.
8524	NullFields []string `json:"-"`
8525}
8526
8527func (s *UpdateEmbeddedObjectPositionRequest) MarshalJSON() ([]byte, error) {
8528	type NoMethod UpdateEmbeddedObjectPositionRequest
8529	raw := NoMethod(*s)
8530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8531}
8532
8533// UpdateEmbeddedObjectPositionResponse: The result of updating an
8534// embedded object's position.
8535type UpdateEmbeddedObjectPositionResponse struct {
8536	// Position: The new position of the embedded object.
8537	Position *EmbeddedObjectPosition `json:"position,omitempty"`
8538
8539	// ForceSendFields is a list of field names (e.g. "Position") to
8540	// unconditionally include in API requests. By default, fields with
8541	// empty values are omitted from API requests. However, any non-pointer,
8542	// non-interface field appearing in ForceSendFields will be sent to the
8543	// server regardless of whether the field is empty or not. This may be
8544	// used to include empty fields in Patch requests.
8545	ForceSendFields []string `json:"-"`
8546
8547	// NullFields is a list of field names (e.g. "Position") to include in
8548	// API requests with the JSON null value. By default, fields with empty
8549	// values are omitted from API requests. However, any field with an
8550	// empty value appearing in NullFields will be sent to the server as
8551	// null. It is an error if a field in this list has a non-empty value.
8552	// This may be used to include null fields in Patch requests.
8553	NullFields []string `json:"-"`
8554}
8555
8556func (s *UpdateEmbeddedObjectPositionResponse) MarshalJSON() ([]byte, error) {
8557	type NoMethod UpdateEmbeddedObjectPositionResponse
8558	raw := NoMethod(*s)
8559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8560}
8561
8562// UpdateFilterViewRequest: Updates properties of the filter view.
8563type UpdateFilterViewRequest struct {
8564	// Fields: The fields that should be updated.  At least one field must
8565	// be specified.
8566	// The root `filter` is implied and should not be specified.
8567	// A single "*" can be used as short-hand for listing every field.
8568	Fields string `json:"fields,omitempty"`
8569
8570	// Filter: The new properties of the filter view.
8571	Filter *FilterView `json:"filter,omitempty"`
8572
8573	// ForceSendFields is a list of field names (e.g. "Fields") to
8574	// unconditionally include in API requests. By default, fields with
8575	// empty values are omitted from API requests. However, any non-pointer,
8576	// non-interface field appearing in ForceSendFields will be sent to the
8577	// server regardless of whether the field is empty or not. This may be
8578	// used to include empty fields in Patch requests.
8579	ForceSendFields []string `json:"-"`
8580
8581	// NullFields is a list of field names (e.g. "Fields") to include in API
8582	// requests with the JSON null value. By default, fields with empty
8583	// values are omitted from API requests. However, any field with an
8584	// empty value appearing in NullFields will be sent to the server as
8585	// null. It is an error if a field in this list has a non-empty value.
8586	// This may be used to include null fields in Patch requests.
8587	NullFields []string `json:"-"`
8588}
8589
8590func (s *UpdateFilterViewRequest) MarshalJSON() ([]byte, error) {
8591	type NoMethod UpdateFilterViewRequest
8592	raw := NoMethod(*s)
8593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8594}
8595
8596// UpdateNamedRangeRequest: Updates properties of the named range with
8597// the specified
8598// namedRangeId.
8599type UpdateNamedRangeRequest struct {
8600	// Fields: The fields that should be updated.  At least one field must
8601	// be specified.
8602	// The root `namedRange` is implied and should not be specified.
8603	// A single "*" can be used as short-hand for listing every field.
8604	Fields string `json:"fields,omitempty"`
8605
8606	// NamedRange: The named range to update with the new properties.
8607	NamedRange *NamedRange `json:"namedRange,omitempty"`
8608
8609	// ForceSendFields is a list of field names (e.g. "Fields") to
8610	// unconditionally include in API requests. By default, fields with
8611	// empty values are omitted from API requests. However, any non-pointer,
8612	// non-interface field appearing in ForceSendFields will be sent to the
8613	// server regardless of whether the field is empty or not. This may be
8614	// used to include empty fields in Patch requests.
8615	ForceSendFields []string `json:"-"`
8616
8617	// NullFields is a list of field names (e.g. "Fields") to include in API
8618	// requests with the JSON null value. By default, fields with empty
8619	// values are omitted from API requests. However, any field with an
8620	// empty value appearing in NullFields will be sent to the server as
8621	// null. It is an error if a field in this list has a non-empty value.
8622	// This may be used to include null fields in Patch requests.
8623	NullFields []string `json:"-"`
8624}
8625
8626func (s *UpdateNamedRangeRequest) MarshalJSON() ([]byte, error) {
8627	type NoMethod UpdateNamedRangeRequest
8628	raw := NoMethod(*s)
8629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8630}
8631
8632// UpdateProtectedRangeRequest: Updates an existing protected range with
8633// the specified
8634// protectedRangeId.
8635type UpdateProtectedRangeRequest struct {
8636	// Fields: The fields that should be updated.  At least one field must
8637	// be specified.
8638	// The root `protectedRange` is implied and should not be specified.
8639	// A single "*" can be used as short-hand for listing every field.
8640	Fields string `json:"fields,omitempty"`
8641
8642	// ProtectedRange: The protected range to update with the new
8643	// properties.
8644	ProtectedRange *ProtectedRange `json:"protectedRange,omitempty"`
8645
8646	// ForceSendFields is a list of field names (e.g. "Fields") to
8647	// unconditionally include in API requests. By default, fields with
8648	// empty values are omitted from API requests. However, any non-pointer,
8649	// non-interface field appearing in ForceSendFields will be sent to the
8650	// server regardless of whether the field is empty or not. This may be
8651	// used to include empty fields in Patch requests.
8652	ForceSendFields []string `json:"-"`
8653
8654	// NullFields is a list of field names (e.g. "Fields") to include in API
8655	// requests with the JSON null value. By default, fields with empty
8656	// values are omitted from API requests. However, any field with an
8657	// empty value appearing in NullFields will be sent to the server as
8658	// null. It is an error if a field in this list has a non-empty value.
8659	// This may be used to include null fields in Patch requests.
8660	NullFields []string `json:"-"`
8661}
8662
8663func (s *UpdateProtectedRangeRequest) MarshalJSON() ([]byte, error) {
8664	type NoMethod UpdateProtectedRangeRequest
8665	raw := NoMethod(*s)
8666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8667}
8668
8669// UpdateSheetPropertiesRequest: Updates properties of the sheet with
8670// the specified
8671// sheetId.
8672type UpdateSheetPropertiesRequest struct {
8673	// Fields: The fields that should be updated.  At least one field must
8674	// be specified.
8675	// The root `properties` is implied and should not be specified.
8676	// A single "*" can be used as short-hand for listing every field.
8677	Fields string `json:"fields,omitempty"`
8678
8679	// Properties: The properties to update.
8680	Properties *SheetProperties `json:"properties,omitempty"`
8681
8682	// ForceSendFields is a list of field names (e.g. "Fields") to
8683	// unconditionally include in API requests. By default, fields with
8684	// empty values are omitted from API requests. However, any non-pointer,
8685	// non-interface field appearing in ForceSendFields will be sent to the
8686	// server regardless of whether the field is empty or not. This may be
8687	// used to include empty fields in Patch requests.
8688	ForceSendFields []string `json:"-"`
8689
8690	// NullFields is a list of field names (e.g. "Fields") to include in API
8691	// requests with the JSON null value. By default, fields with empty
8692	// values are omitted from API requests. However, any field with an
8693	// empty value appearing in NullFields will be sent to the server as
8694	// null. It is an error if a field in this list has a non-empty value.
8695	// This may be used to include null fields in Patch requests.
8696	NullFields []string `json:"-"`
8697}
8698
8699func (s *UpdateSheetPropertiesRequest) MarshalJSON() ([]byte, error) {
8700	type NoMethod UpdateSheetPropertiesRequest
8701	raw := NoMethod(*s)
8702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8703}
8704
8705// UpdateSpreadsheetPropertiesRequest: Updates properties of a
8706// spreadsheet.
8707type UpdateSpreadsheetPropertiesRequest struct {
8708	// Fields: The fields that should be updated.  At least one field must
8709	// be specified.
8710	// The root 'properties' is implied and should not be specified.
8711	// A single "*" can be used as short-hand for listing every field.
8712	Fields string `json:"fields,omitempty"`
8713
8714	// Properties: The properties to update.
8715	Properties *SpreadsheetProperties `json:"properties,omitempty"`
8716
8717	// ForceSendFields is a list of field names (e.g. "Fields") to
8718	// unconditionally include in API requests. By default, fields with
8719	// empty values are omitted from API requests. However, any non-pointer,
8720	// non-interface field appearing in ForceSendFields will be sent to the
8721	// server regardless of whether the field is empty or not. This may be
8722	// used to include empty fields in Patch requests.
8723	ForceSendFields []string `json:"-"`
8724
8725	// NullFields is a list of field names (e.g. "Fields") to include in API
8726	// requests with the JSON null value. By default, fields with empty
8727	// values are omitted from API requests. However, any field with an
8728	// empty value appearing in NullFields will be sent to the server as
8729	// null. It is an error if a field in this list has a non-empty value.
8730	// This may be used to include null fields in Patch requests.
8731	NullFields []string `json:"-"`
8732}
8733
8734func (s *UpdateSpreadsheetPropertiesRequest) MarshalJSON() ([]byte, error) {
8735	type NoMethod UpdateSpreadsheetPropertiesRequest
8736	raw := NoMethod(*s)
8737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8738}
8739
8740// UpdateValuesByDataFilterResponse: The response when updating a range
8741// of values by a data filter in a
8742// spreadsheet.
8743type UpdateValuesByDataFilterResponse struct {
8744	// DataFilter: The data filter that selected the range that was updated.
8745	DataFilter *DataFilter `json:"dataFilter,omitempty"`
8746
8747	// UpdatedCells: The number of cells updated.
8748	UpdatedCells int64 `json:"updatedCells,omitempty"`
8749
8750	// UpdatedColumns: The number of columns where at least one cell in the
8751	// column was updated.
8752	UpdatedColumns int64 `json:"updatedColumns,omitempty"`
8753
8754	// UpdatedData: The values of the cells in the range matched by the
8755	// dataFilter after all
8756	// updates were applied. This is only included if the
8757	// request's
8758	// `includeValuesInResponse` field was `true`.
8759	UpdatedData *ValueRange `json:"updatedData,omitempty"`
8760
8761	// UpdatedRange: The range (in A1 notation) that updates were applied
8762	// to.
8763	UpdatedRange string `json:"updatedRange,omitempty"`
8764
8765	// UpdatedRows: The number of rows where at least one cell in the row
8766	// was updated.
8767	UpdatedRows int64 `json:"updatedRows,omitempty"`
8768
8769	// ForceSendFields is a list of field names (e.g. "DataFilter") to
8770	// unconditionally include in API requests. By default, fields with
8771	// empty values are omitted from API requests. However, any non-pointer,
8772	// non-interface field appearing in ForceSendFields will be sent to the
8773	// server regardless of whether the field is empty or not. This may be
8774	// used to include empty fields in Patch requests.
8775	ForceSendFields []string `json:"-"`
8776
8777	// NullFields is a list of field names (e.g. "DataFilter") to include in
8778	// API requests with the JSON null value. By default, fields with empty
8779	// values are omitted from API requests. However, any field with an
8780	// empty value appearing in NullFields will be sent to the server as
8781	// null. It is an error if a field in this list has a non-empty value.
8782	// This may be used to include null fields in Patch requests.
8783	NullFields []string `json:"-"`
8784}
8785
8786func (s *UpdateValuesByDataFilterResponse) MarshalJSON() ([]byte, error) {
8787	type NoMethod UpdateValuesByDataFilterResponse
8788	raw := NoMethod(*s)
8789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8790}
8791
8792// UpdateValuesResponse: The response when updating a range of values in
8793// a spreadsheet.
8794type UpdateValuesResponse struct {
8795	// SpreadsheetId: The spreadsheet the updates were applied to.
8796	SpreadsheetId string `json:"spreadsheetId,omitempty"`
8797
8798	// UpdatedCells: The number of cells updated.
8799	UpdatedCells int64 `json:"updatedCells,omitempty"`
8800
8801	// UpdatedColumns: The number of columns where at least one cell in the
8802	// column was updated.
8803	UpdatedColumns int64 `json:"updatedColumns,omitempty"`
8804
8805	// UpdatedData: The values of the cells after updates were applied.
8806	// This is only included if the request's `includeValuesInResponse`
8807	// field
8808	// was `true`.
8809	UpdatedData *ValueRange `json:"updatedData,omitempty"`
8810
8811	// UpdatedRange: The range (in A1 notation) that updates were applied
8812	// to.
8813	UpdatedRange string `json:"updatedRange,omitempty"`
8814
8815	// UpdatedRows: The number of rows where at least one cell in the row
8816	// was updated.
8817	UpdatedRows int64 `json:"updatedRows,omitempty"`
8818
8819	// ServerResponse contains the HTTP response code and headers from the
8820	// server.
8821	googleapi.ServerResponse `json:"-"`
8822
8823	// ForceSendFields is a list of field names (e.g. "SpreadsheetId") to
8824	// unconditionally include in API requests. By default, fields with
8825	// empty values are omitted from API requests. However, any non-pointer,
8826	// non-interface field appearing in ForceSendFields will be sent to the
8827	// server regardless of whether the field is empty or not. This may be
8828	// used to include empty fields in Patch requests.
8829	ForceSendFields []string `json:"-"`
8830
8831	// NullFields is a list of field names (e.g. "SpreadsheetId") to include
8832	// in API requests with the JSON null value. By default, fields with
8833	// empty values are omitted from API requests. However, any field with
8834	// an empty value appearing in NullFields will be sent to the server as
8835	// null. It is an error if a field in this list has a non-empty value.
8836	// This may be used to include null fields in Patch requests.
8837	NullFields []string `json:"-"`
8838}
8839
8840func (s *UpdateValuesResponse) MarshalJSON() ([]byte, error) {
8841	type NoMethod UpdateValuesResponse
8842	raw := NoMethod(*s)
8843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8844}
8845
8846// ValueRange: Data within a range of the spreadsheet.
8847type ValueRange struct {
8848	// MajorDimension: The major dimension of the values.
8849	//
8850	// For output, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
8851	// then requesting `range=A1:B2,majorDimension=ROWS` will
8852	// return
8853	// `[[1,2],[3,4]]`,
8854	// whereas requesting `range=A1:B2,majorDimension=COLUMNS` will
8855	// return
8856	// `[[1,3],[2,4]]`.
8857	//
8858	// For input, with `range=A1:B2,majorDimension=ROWS` then
8859	// `[[1,2],[3,4]]`
8860	// will set `A1=1,B1=2,A2=3,B2=4`. With
8861	// `range=A1:B2,majorDimension=COLUMNS`
8862	// then `[[1,2],[3,4]]` will set `A1=1,B1=3,A2=2,B2=4`.
8863	//
8864	// When writing, if this field is not set, it defaults to ROWS.
8865	//
8866	// Possible values:
8867	//   "DIMENSION_UNSPECIFIED" - The default value, do not use.
8868	//   "ROWS" - Operates on the rows of a sheet.
8869	//   "COLUMNS" - Operates on the columns of a sheet.
8870	MajorDimension string `json:"majorDimension,omitempty"`
8871
8872	// Range: The range the values cover, in A1 notation.
8873	// For output, this range indicates the entire requested range,
8874	// even though the values will exclude trailing rows and columns.
8875	// When appending values, this field represents the range to search for
8876	// a
8877	// table, after which values will be appended.
8878	Range string `json:"range,omitempty"`
8879
8880	// Values: The data that was read or to be written.  This is an array of
8881	// arrays,
8882	// the outer array representing all the data and each inner
8883	// array
8884	// representing a major dimension. Each item in the inner
8885	// array
8886	// corresponds with one cell.
8887	//
8888	// For output, empty trailing rows and columns will not be
8889	// included.
8890	//
8891	// For input, supported value types are: bool, string, and double.
8892	// Null values will be skipped.
8893	// To set a cell to an empty value, set the string value to an empty
8894	// string.
8895	Values [][]interface{} `json:"values,omitempty"`
8896
8897	// ServerResponse contains the HTTP response code and headers from the
8898	// server.
8899	googleapi.ServerResponse `json:"-"`
8900
8901	// ForceSendFields is a list of field names (e.g. "MajorDimension") to
8902	// unconditionally include in API requests. By default, fields with
8903	// empty values are omitted from API requests. However, any non-pointer,
8904	// non-interface field appearing in ForceSendFields will be sent to the
8905	// server regardless of whether the field is empty or not. This may be
8906	// used to include empty fields in Patch requests.
8907	ForceSendFields []string `json:"-"`
8908
8909	// NullFields is a list of field names (e.g. "MajorDimension") to
8910	// include in API requests with the JSON null value. By default, fields
8911	// with empty values are omitted from API requests. However, any field
8912	// with an empty value appearing in NullFields will be sent to the
8913	// server as null. It is an error if a field in this list has a
8914	// non-empty value. This may be used to include null fields in Patch
8915	// requests.
8916	NullFields []string `json:"-"`
8917}
8918
8919func (s *ValueRange) MarshalJSON() ([]byte, error) {
8920	type NoMethod ValueRange
8921	raw := NoMethod(*s)
8922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8923}
8924
8925// WaterfallChartColumnStyle: Styles for a waterfall chart column.
8926type WaterfallChartColumnStyle struct {
8927	// Color: The color of the column.
8928	Color *Color `json:"color,omitempty"`
8929
8930	// Label: The label of the column's legend.
8931	Label string `json:"label,omitempty"`
8932
8933	// ForceSendFields is a list of field names (e.g. "Color") to
8934	// unconditionally include in API requests. By default, fields with
8935	// empty values are omitted from API requests. However, any non-pointer,
8936	// non-interface field appearing in ForceSendFields will be sent to the
8937	// server regardless of whether the field is empty or not. This may be
8938	// used to include empty fields in Patch requests.
8939	ForceSendFields []string `json:"-"`
8940
8941	// NullFields is a list of field names (e.g. "Color") to include in API
8942	// requests with the JSON null value. By default, fields with empty
8943	// values are omitted from API requests. However, any field with an
8944	// empty value appearing in NullFields will be sent to the server as
8945	// null. It is an error if a field in this list has a non-empty value.
8946	// This may be used to include null fields in Patch requests.
8947	NullFields []string `json:"-"`
8948}
8949
8950func (s *WaterfallChartColumnStyle) MarshalJSON() ([]byte, error) {
8951	type NoMethod WaterfallChartColumnStyle
8952	raw := NoMethod(*s)
8953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8954}
8955
8956// WaterfallChartCustomSubtotal: A custom subtotal column for a
8957// waterfall chart series.
8958type WaterfallChartCustomSubtotal struct {
8959	// DataIsSubtotal: True if the data point at subtotal_index is the
8960	// subtotal. If false,
8961	// the subtotal will be computed and appear after the data point.
8962	DataIsSubtotal bool `json:"dataIsSubtotal,omitempty"`
8963
8964	// Label: A label for the subtotal column.
8965	Label string `json:"label,omitempty"`
8966
8967	// SubtotalIndex: The 0-based index of a data point within the series.
8968	// If
8969	// data_is_subtotal is true, the data point at this index is
8970	// the
8971	// subtotal. Otherwise, the subtotal appears after the data point
8972	// with
8973	// this index. A series can have multiple subtotals at arbitrary
8974	// indices,
8975	// but subtotals do not affect the indices of the data points.
8976	// For
8977	// example, if a series has three data points, their indices will
8978	// always
8979	// be 0, 1, and 2, regardless of how many subtotals exist on the series
8980	// or
8981	// what data points they are associated with.
8982	SubtotalIndex int64 `json:"subtotalIndex,omitempty"`
8983
8984	// ForceSendFields is a list of field names (e.g. "DataIsSubtotal") to
8985	// unconditionally include in API requests. By default, fields with
8986	// empty values are omitted from API requests. However, any non-pointer,
8987	// non-interface field appearing in ForceSendFields will be sent to the
8988	// server regardless of whether the field is empty or not. This may be
8989	// used to include empty fields in Patch requests.
8990	ForceSendFields []string `json:"-"`
8991
8992	// NullFields is a list of field names (e.g. "DataIsSubtotal") to
8993	// include in API requests with the JSON null value. By default, fields
8994	// with empty values are omitted from API requests. However, any field
8995	// with an empty value appearing in NullFields will be sent to the
8996	// server as null. It is an error if a field in this list has a
8997	// non-empty value. This may be used to include null fields in Patch
8998	// requests.
8999	NullFields []string `json:"-"`
9000}
9001
9002func (s *WaterfallChartCustomSubtotal) MarshalJSON() ([]byte, error) {
9003	type NoMethod WaterfallChartCustomSubtotal
9004	raw := NoMethod(*s)
9005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9006}
9007
9008// WaterfallChartDomain: The domain of a waterfall chart.
9009type WaterfallChartDomain struct {
9010	// Data: The data of the WaterfallChartDomain.
9011	Data *ChartData `json:"data,omitempty"`
9012
9013	// Reversed: True to reverse the order of the domain values (horizontal
9014	// axis).
9015	Reversed bool `json:"reversed,omitempty"`
9016
9017	// ForceSendFields is a list of field names (e.g. "Data") to
9018	// unconditionally include in API requests. By default, fields with
9019	// empty values are omitted from API requests. However, any non-pointer,
9020	// non-interface field appearing in ForceSendFields will be sent to the
9021	// server regardless of whether the field is empty or not. This may be
9022	// used to include empty fields in Patch requests.
9023	ForceSendFields []string `json:"-"`
9024
9025	// NullFields is a list of field names (e.g. "Data") to include in API
9026	// requests with the JSON null value. By default, fields with empty
9027	// values are omitted from API requests. However, any field with an
9028	// empty value appearing in NullFields will be sent to the server as
9029	// null. It is an error if a field in this list has a non-empty value.
9030	// This may be used to include null fields in Patch requests.
9031	NullFields []string `json:"-"`
9032}
9033
9034func (s *WaterfallChartDomain) MarshalJSON() ([]byte, error) {
9035	type NoMethod WaterfallChartDomain
9036	raw := NoMethod(*s)
9037	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9038}
9039
9040// WaterfallChartSeries: A single series of data for a waterfall chart.
9041type WaterfallChartSeries struct {
9042	// CustomSubtotals: Custom subtotal columns appearing in this series.
9043	// The order in which
9044	// subtotals are defined is not significant. Only one subtotal may
9045	// be
9046	// defined for each data point.
9047	CustomSubtotals []*WaterfallChartCustomSubtotal `json:"customSubtotals,omitempty"`
9048
9049	// Data: The data being visualized in this series.
9050	Data *ChartData `json:"data,omitempty"`
9051
9052	// HideTrailingSubtotal: True to hide the subtotal column from the end
9053	// of the series. By default,
9054	// a subtotal column will appear at the end of each series. Setting
9055	// this
9056	// field to true will hide that subtotal column for this series.
9057	HideTrailingSubtotal bool `json:"hideTrailingSubtotal,omitempty"`
9058
9059	// NegativeColumnsStyle: Styles for all columns in this series with
9060	// negative values.
9061	NegativeColumnsStyle *WaterfallChartColumnStyle `json:"negativeColumnsStyle,omitempty"`
9062
9063	// PositiveColumnsStyle: Styles for all columns in this series with
9064	// positive values.
9065	PositiveColumnsStyle *WaterfallChartColumnStyle `json:"positiveColumnsStyle,omitempty"`
9066
9067	// SubtotalColumnsStyle: Styles for all subtotal columns in this series.
9068	SubtotalColumnsStyle *WaterfallChartColumnStyle `json:"subtotalColumnsStyle,omitempty"`
9069
9070	// ForceSendFields is a list of field names (e.g. "CustomSubtotals") to
9071	// unconditionally include in API requests. By default, fields with
9072	// empty values are omitted from API requests. However, any non-pointer,
9073	// non-interface field appearing in ForceSendFields will be sent to the
9074	// server regardless of whether the field is empty or not. This may be
9075	// used to include empty fields in Patch requests.
9076	ForceSendFields []string `json:"-"`
9077
9078	// NullFields is a list of field names (e.g. "CustomSubtotals") to
9079	// include in API requests with the JSON null value. By default, fields
9080	// with empty values are omitted from API requests. However, any field
9081	// with an empty value appearing in NullFields will be sent to the
9082	// server as null. It is an error if a field in this list has a
9083	// non-empty value. This may be used to include null fields in Patch
9084	// requests.
9085	NullFields []string `json:"-"`
9086}
9087
9088func (s *WaterfallChartSeries) MarshalJSON() ([]byte, error) {
9089	type NoMethod WaterfallChartSeries
9090	raw := NoMethod(*s)
9091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9092}
9093
9094// WaterfallChartSpec: A waterfall chart.
9095type WaterfallChartSpec struct {
9096	// ConnectorLineStyle: The line style for the connector lines.
9097	ConnectorLineStyle *LineStyle `json:"connectorLineStyle,omitempty"`
9098
9099	// Domain: The domain data (horizontal axis) for the waterfall chart.
9100	Domain *WaterfallChartDomain `json:"domain,omitempty"`
9101
9102	// FirstValueIsTotal: True to interpret the first value as a total.
9103	FirstValueIsTotal bool `json:"firstValueIsTotal,omitempty"`
9104
9105	// HideConnectorLines: True to hide connector lines between columns.
9106	HideConnectorLines bool `json:"hideConnectorLines,omitempty"`
9107
9108	// Series: The data this waterfall chart is visualizing.
9109	Series []*WaterfallChartSeries `json:"series,omitempty"`
9110
9111	// StackedType: The stacked type.
9112	//
9113	// Possible values:
9114	//   "WATERFALL_STACKED_TYPE_UNSPECIFIED" - Default value, do not use.
9115	//   "STACKED" - Values corresponding to the same domain (horizontal
9116	// axis) value will be
9117	// stacked vertically.
9118	//   "SEQUENTIAL" - Series will spread out along the horizontal axis.
9119	StackedType string `json:"stackedType,omitempty"`
9120
9121	// ForceSendFields is a list of field names (e.g. "ConnectorLineStyle")
9122	// to unconditionally include in API requests. By default, fields with
9123	// empty values are omitted from API requests. However, any non-pointer,
9124	// non-interface field appearing in ForceSendFields will be sent to the
9125	// server regardless of whether the field is empty or not. This may be
9126	// used to include empty fields in Patch requests.
9127	ForceSendFields []string `json:"-"`
9128
9129	// NullFields is a list of field names (e.g. "ConnectorLineStyle") to
9130	// include in API requests with the JSON null value. By default, fields
9131	// with empty values are omitted from API requests. However, any field
9132	// with an empty value appearing in NullFields will be sent to the
9133	// server as null. It is an error if a field in this list has a
9134	// non-empty value. This may be used to include null fields in Patch
9135	// requests.
9136	NullFields []string `json:"-"`
9137}
9138
9139func (s *WaterfallChartSpec) MarshalJSON() ([]byte, error) {
9140	type NoMethod WaterfallChartSpec
9141	raw := NoMethod(*s)
9142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9143}
9144
9145// method id "sheets.spreadsheets.batchUpdate":
9146
9147type SpreadsheetsBatchUpdateCall struct {
9148	s                             *Service
9149	spreadsheetId                 string
9150	batchupdatespreadsheetrequest *BatchUpdateSpreadsheetRequest
9151	urlParams_                    gensupport.URLParams
9152	ctx_                          context.Context
9153	header_                       http.Header
9154}
9155
9156// BatchUpdate: Applies one or more updates to the spreadsheet.
9157//
9158// Each request is validated before
9159// being applied. If any request is not valid then the entire request
9160// will
9161// fail and nothing will be applied.
9162//
9163// Some requests have replies to
9164// give you some information about how
9165// they are applied. The replies will mirror the requests.  For
9166// example,
9167// if you applied 4 updates and the 3rd one had a reply, then
9168// the
9169// response will have 2 empty replies, the actual reply, and another
9170// empty
9171// reply, in that order.
9172//
9173// Due to the collaborative nature of spreadsheets, it is not guaranteed
9174// that
9175// the spreadsheet will reflect exactly your changes after this
9176// completes,
9177// however it is guaranteed that the updates in the request will
9178// be
9179// applied together atomically. Your changes may be altered with respect
9180// to
9181// collaborator changes. If there are no collaborators, the
9182// spreadsheet
9183// should reflect your changes.
9184func (r *SpreadsheetsService) BatchUpdate(spreadsheetId string, batchupdatespreadsheetrequest *BatchUpdateSpreadsheetRequest) *SpreadsheetsBatchUpdateCall {
9185	c := &SpreadsheetsBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9186	c.spreadsheetId = spreadsheetId
9187	c.batchupdatespreadsheetrequest = batchupdatespreadsheetrequest
9188	return c
9189}
9190
9191// Fields allows partial responses to be retrieved. See
9192// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9193// for more information.
9194func (c *SpreadsheetsBatchUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsBatchUpdateCall {
9195	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9196	return c
9197}
9198
9199// Context sets the context to be used in this call's Do method. Any
9200// pending HTTP request will be aborted if the provided context is
9201// canceled.
9202func (c *SpreadsheetsBatchUpdateCall) Context(ctx context.Context) *SpreadsheetsBatchUpdateCall {
9203	c.ctx_ = ctx
9204	return c
9205}
9206
9207// Header returns an http.Header that can be modified by the caller to
9208// add HTTP headers to the request.
9209func (c *SpreadsheetsBatchUpdateCall) Header() http.Header {
9210	if c.header_ == nil {
9211		c.header_ = make(http.Header)
9212	}
9213	return c.header_
9214}
9215
9216func (c *SpreadsheetsBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
9217	reqHeaders := make(http.Header)
9218	for k, v := range c.header_ {
9219		reqHeaders[k] = v
9220	}
9221	reqHeaders.Set("User-Agent", c.s.userAgent())
9222	var body io.Reader = nil
9223	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatespreadsheetrequest)
9224	if err != nil {
9225		return nil, err
9226	}
9227	reqHeaders.Set("Content-Type", "application/json")
9228	c.urlParams_.Set("alt", alt)
9229	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}:batchUpdate")
9230	urls += "?" + c.urlParams_.Encode()
9231	req, _ := http.NewRequest("POST", urls, body)
9232	req.Header = reqHeaders
9233	googleapi.Expand(req.URL, map[string]string{
9234		"spreadsheetId": c.spreadsheetId,
9235	})
9236	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9237}
9238
9239// Do executes the "sheets.spreadsheets.batchUpdate" call.
9240// Exactly one of *BatchUpdateSpreadsheetResponse or error will be
9241// non-nil. Any non-2xx status code is an error. Response headers are in
9242// either *BatchUpdateSpreadsheetResponse.ServerResponse.Header or (if a
9243// response was returned at all) in error.(*googleapi.Error).Header. Use
9244// googleapi.IsNotModified to check whether the returned error was
9245// because http.StatusNotModified was returned.
9246func (c *SpreadsheetsBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdateSpreadsheetResponse, error) {
9247	gensupport.SetOptions(c.urlParams_, opts...)
9248	res, err := c.doRequest("json")
9249	if res != nil && res.StatusCode == http.StatusNotModified {
9250		if res.Body != nil {
9251			res.Body.Close()
9252		}
9253		return nil, &googleapi.Error{
9254			Code:   res.StatusCode,
9255			Header: res.Header,
9256		}
9257	}
9258	if err != nil {
9259		return nil, err
9260	}
9261	defer googleapi.CloseBody(res)
9262	if err := googleapi.CheckResponse(res); err != nil {
9263		return nil, err
9264	}
9265	ret := &BatchUpdateSpreadsheetResponse{
9266		ServerResponse: googleapi.ServerResponse{
9267			Header:         res.Header,
9268			HTTPStatusCode: res.StatusCode,
9269		},
9270	}
9271	target := &ret
9272	if err := gensupport.DecodeResponse(target, res); err != nil {
9273		return nil, err
9274	}
9275	return ret, nil
9276	// {
9277	//   "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.",
9278	//   "flatPath": "v4/spreadsheets/{spreadsheetId}:batchUpdate",
9279	//   "httpMethod": "POST",
9280	//   "id": "sheets.spreadsheets.batchUpdate",
9281	//   "parameterOrder": [
9282	//     "spreadsheetId"
9283	//   ],
9284	//   "parameters": {
9285	//     "spreadsheetId": {
9286	//       "description": "The spreadsheet to apply the updates to.",
9287	//       "location": "path",
9288	//       "required": true,
9289	//       "type": "string"
9290	//     }
9291	//   },
9292	//   "path": "v4/spreadsheets/{spreadsheetId}:batchUpdate",
9293	//   "request": {
9294	//     "$ref": "BatchUpdateSpreadsheetRequest"
9295	//   },
9296	//   "response": {
9297	//     "$ref": "BatchUpdateSpreadsheetResponse"
9298	//   },
9299	//   "scopes": [
9300	//     "https://www.googleapis.com/auth/drive",
9301	//     "https://www.googleapis.com/auth/drive.file",
9302	//     "https://www.googleapis.com/auth/spreadsheets"
9303	//   ]
9304	// }
9305
9306}
9307
9308// method id "sheets.spreadsheets.create":
9309
9310type SpreadsheetsCreateCall struct {
9311	s           *Service
9312	spreadsheet *Spreadsheet
9313	urlParams_  gensupport.URLParams
9314	ctx_        context.Context
9315	header_     http.Header
9316}
9317
9318// Create: Creates a spreadsheet, returning the newly created
9319// spreadsheet.
9320func (r *SpreadsheetsService) Create(spreadsheet *Spreadsheet) *SpreadsheetsCreateCall {
9321	c := &SpreadsheetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9322	c.spreadsheet = spreadsheet
9323	return c
9324}
9325
9326// Fields allows partial responses to be retrieved. See
9327// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9328// for more information.
9329func (c *SpreadsheetsCreateCall) Fields(s ...googleapi.Field) *SpreadsheetsCreateCall {
9330	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9331	return c
9332}
9333
9334// Context sets the context to be used in this call's Do method. Any
9335// pending HTTP request will be aborted if the provided context is
9336// canceled.
9337func (c *SpreadsheetsCreateCall) Context(ctx context.Context) *SpreadsheetsCreateCall {
9338	c.ctx_ = ctx
9339	return c
9340}
9341
9342// Header returns an http.Header that can be modified by the caller to
9343// add HTTP headers to the request.
9344func (c *SpreadsheetsCreateCall) Header() http.Header {
9345	if c.header_ == nil {
9346		c.header_ = make(http.Header)
9347	}
9348	return c.header_
9349}
9350
9351func (c *SpreadsheetsCreateCall) doRequest(alt string) (*http.Response, error) {
9352	reqHeaders := make(http.Header)
9353	for k, v := range c.header_ {
9354		reqHeaders[k] = v
9355	}
9356	reqHeaders.Set("User-Agent", c.s.userAgent())
9357	var body io.Reader = nil
9358	body, err := googleapi.WithoutDataWrapper.JSONReader(c.spreadsheet)
9359	if err != nil {
9360		return nil, err
9361	}
9362	reqHeaders.Set("Content-Type", "application/json")
9363	c.urlParams_.Set("alt", alt)
9364	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets")
9365	urls += "?" + c.urlParams_.Encode()
9366	req, _ := http.NewRequest("POST", urls, body)
9367	req.Header = reqHeaders
9368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9369}
9370
9371// Do executes the "sheets.spreadsheets.create" call.
9372// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
9373// status code is an error. Response headers are in either
9374// *Spreadsheet.ServerResponse.Header or (if a response was returned at
9375// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9376// to check whether the returned error was because
9377// http.StatusNotModified was returned.
9378func (c *SpreadsheetsCreateCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
9379	gensupport.SetOptions(c.urlParams_, opts...)
9380	res, err := c.doRequest("json")
9381	if res != nil && res.StatusCode == http.StatusNotModified {
9382		if res.Body != nil {
9383			res.Body.Close()
9384		}
9385		return nil, &googleapi.Error{
9386			Code:   res.StatusCode,
9387			Header: res.Header,
9388		}
9389	}
9390	if err != nil {
9391		return nil, err
9392	}
9393	defer googleapi.CloseBody(res)
9394	if err := googleapi.CheckResponse(res); err != nil {
9395		return nil, err
9396	}
9397	ret := &Spreadsheet{
9398		ServerResponse: googleapi.ServerResponse{
9399			Header:         res.Header,
9400			HTTPStatusCode: res.StatusCode,
9401		},
9402	}
9403	target := &ret
9404	if err := gensupport.DecodeResponse(target, res); err != nil {
9405		return nil, err
9406	}
9407	return ret, nil
9408	// {
9409	//   "description": "Creates a spreadsheet, returning the newly created spreadsheet.",
9410	//   "flatPath": "v4/spreadsheets",
9411	//   "httpMethod": "POST",
9412	//   "id": "sheets.spreadsheets.create",
9413	//   "parameterOrder": [],
9414	//   "parameters": {},
9415	//   "path": "v4/spreadsheets",
9416	//   "request": {
9417	//     "$ref": "Spreadsheet"
9418	//   },
9419	//   "response": {
9420	//     "$ref": "Spreadsheet"
9421	//   },
9422	//   "scopes": [
9423	//     "https://www.googleapis.com/auth/drive",
9424	//     "https://www.googleapis.com/auth/drive.file",
9425	//     "https://www.googleapis.com/auth/spreadsheets"
9426	//   ]
9427	// }
9428
9429}
9430
9431// method id "sheets.spreadsheets.get":
9432
9433type SpreadsheetsGetCall struct {
9434	s             *Service
9435	spreadsheetId string
9436	urlParams_    gensupport.URLParams
9437	ifNoneMatch_  string
9438	ctx_          context.Context
9439	header_       http.Header
9440}
9441
9442// Get: Returns the spreadsheet at the given ID.
9443// The caller must specify the spreadsheet ID.
9444//
9445// By default, data within grids will not be returned.
9446// You can include grid data one of two ways:
9447//
9448// * Specify a field mask listing your desired fields using the `fields`
9449// URL
9450// parameter in HTTP
9451//
9452// * Set the includeGridData
9453// URL parameter to true.  If a field mask is set, the
9454// `includeGridData`
9455// parameter is ignored
9456//
9457// For large spreadsheets, it is recommended to retrieve only the
9458// specific
9459// fields of the spreadsheet that you want.
9460//
9461// To retrieve only subsets of the spreadsheet, use the
9462// ranges URL parameter.
9463// Multiple ranges can be specified.  Limiting the range will
9464// return only the portions of the spreadsheet that intersect the
9465// requested
9466// ranges. Ranges are specified using A1 notation.
9467func (r *SpreadsheetsService) Get(spreadsheetId string) *SpreadsheetsGetCall {
9468	c := &SpreadsheetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9469	c.spreadsheetId = spreadsheetId
9470	return c
9471}
9472
9473// IncludeGridData sets the optional parameter "includeGridData": True
9474// if grid data should be returned.
9475// This parameter is ignored if a field mask was set in the request.
9476func (c *SpreadsheetsGetCall) IncludeGridData(includeGridData bool) *SpreadsheetsGetCall {
9477	c.urlParams_.Set("includeGridData", fmt.Sprint(includeGridData))
9478	return c
9479}
9480
9481// Ranges sets the optional parameter "ranges": The ranges to retrieve
9482// from the spreadsheet.
9483func (c *SpreadsheetsGetCall) Ranges(ranges ...string) *SpreadsheetsGetCall {
9484	c.urlParams_.SetMulti("ranges", append([]string{}, ranges...))
9485	return c
9486}
9487
9488// Fields allows partial responses to be retrieved. See
9489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9490// for more information.
9491func (c *SpreadsheetsGetCall) Fields(s ...googleapi.Field) *SpreadsheetsGetCall {
9492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9493	return c
9494}
9495
9496// IfNoneMatch sets the optional parameter which makes the operation
9497// fail if the object's ETag matches the given value. This is useful for
9498// getting updates only after the object has changed since the last
9499// request. Use googleapi.IsNotModified to check whether the response
9500// error from Do is the result of In-None-Match.
9501func (c *SpreadsheetsGetCall) IfNoneMatch(entityTag string) *SpreadsheetsGetCall {
9502	c.ifNoneMatch_ = entityTag
9503	return c
9504}
9505
9506// Context sets the context to be used in this call's Do method. Any
9507// pending HTTP request will be aborted if the provided context is
9508// canceled.
9509func (c *SpreadsheetsGetCall) Context(ctx context.Context) *SpreadsheetsGetCall {
9510	c.ctx_ = ctx
9511	return c
9512}
9513
9514// Header returns an http.Header that can be modified by the caller to
9515// add HTTP headers to the request.
9516func (c *SpreadsheetsGetCall) Header() http.Header {
9517	if c.header_ == nil {
9518		c.header_ = make(http.Header)
9519	}
9520	return c.header_
9521}
9522
9523func (c *SpreadsheetsGetCall) doRequest(alt string) (*http.Response, error) {
9524	reqHeaders := make(http.Header)
9525	for k, v := range c.header_ {
9526		reqHeaders[k] = v
9527	}
9528	reqHeaders.Set("User-Agent", c.s.userAgent())
9529	if c.ifNoneMatch_ != "" {
9530		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9531	}
9532	var body io.Reader = nil
9533	c.urlParams_.Set("alt", alt)
9534	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}")
9535	urls += "?" + c.urlParams_.Encode()
9536	req, _ := http.NewRequest("GET", urls, body)
9537	req.Header = reqHeaders
9538	googleapi.Expand(req.URL, map[string]string{
9539		"spreadsheetId": c.spreadsheetId,
9540	})
9541	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9542}
9543
9544// Do executes the "sheets.spreadsheets.get" call.
9545// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
9546// status code is an error. Response headers are in either
9547// *Spreadsheet.ServerResponse.Header or (if a response was returned at
9548// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9549// to check whether the returned error was because
9550// http.StatusNotModified was returned.
9551func (c *SpreadsheetsGetCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
9552	gensupport.SetOptions(c.urlParams_, opts...)
9553	res, err := c.doRequest("json")
9554	if res != nil && res.StatusCode == http.StatusNotModified {
9555		if res.Body != nil {
9556			res.Body.Close()
9557		}
9558		return nil, &googleapi.Error{
9559			Code:   res.StatusCode,
9560			Header: res.Header,
9561		}
9562	}
9563	if err != nil {
9564		return nil, err
9565	}
9566	defer googleapi.CloseBody(res)
9567	if err := googleapi.CheckResponse(res); err != nil {
9568		return nil, err
9569	}
9570	ret := &Spreadsheet{
9571		ServerResponse: googleapi.ServerResponse{
9572			Header:         res.Header,
9573			HTTPStatusCode: res.StatusCode,
9574		},
9575	}
9576	target := &ret
9577	if err := gensupport.DecodeResponse(target, res); err != nil {
9578		return nil, err
9579	}
9580	return ret, nil
9581	// {
9582	//   "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.",
9583	//   "flatPath": "v4/spreadsheets/{spreadsheetId}",
9584	//   "httpMethod": "GET",
9585	//   "id": "sheets.spreadsheets.get",
9586	//   "parameterOrder": [
9587	//     "spreadsheetId"
9588	//   ],
9589	//   "parameters": {
9590	//     "includeGridData": {
9591	//       "description": "True if grid data should be returned.\nThis parameter is ignored if a field mask was set in the request.",
9592	//       "location": "query",
9593	//       "type": "boolean"
9594	//     },
9595	//     "ranges": {
9596	//       "description": "The ranges to retrieve from the spreadsheet.",
9597	//       "location": "query",
9598	//       "repeated": true,
9599	//       "type": "string"
9600	//     },
9601	//     "spreadsheetId": {
9602	//       "description": "The spreadsheet to request.",
9603	//       "location": "path",
9604	//       "required": true,
9605	//       "type": "string"
9606	//     }
9607	//   },
9608	//   "path": "v4/spreadsheets/{spreadsheetId}",
9609	//   "response": {
9610	//     "$ref": "Spreadsheet"
9611	//   },
9612	//   "scopes": [
9613	//     "https://www.googleapis.com/auth/drive",
9614	//     "https://www.googleapis.com/auth/drive.file",
9615	//     "https://www.googleapis.com/auth/drive.readonly",
9616	//     "https://www.googleapis.com/auth/spreadsheets",
9617	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
9618	//   ]
9619	// }
9620
9621}
9622
9623// method id "sheets.spreadsheets.getByDataFilter":
9624
9625type SpreadsheetsGetByDataFilterCall struct {
9626	s                                 *Service
9627	spreadsheetId                     string
9628	getspreadsheetbydatafilterrequest *GetSpreadsheetByDataFilterRequest
9629	urlParams_                        gensupport.URLParams
9630	ctx_                              context.Context
9631	header_                           http.Header
9632}
9633
9634// GetByDataFilter: Returns the spreadsheet at the given ID.
9635// The caller must specify the spreadsheet ID.
9636//
9637// This method differs from GetSpreadsheet in that it allows
9638// selecting
9639// which subsets of spreadsheet data to return by specifying
9640// a
9641// dataFilters parameter.
9642// Multiple DataFilters can be specified.  Specifying one or
9643// more data filters will return the portions of the spreadsheet
9644// that
9645// intersect ranges matched by any of the filters.
9646//
9647// By default, data within grids will not be returned.
9648// You can include grid data one of two ways:
9649//
9650// * Specify a field mask listing your desired fields using the `fields`
9651// URL
9652// parameter in HTTP
9653//
9654// * Set the includeGridData
9655// parameter to true.  If a field mask is set, the
9656// `includeGridData`
9657// parameter is ignored
9658//
9659// For large spreadsheets, it is recommended to retrieve only the
9660// specific
9661// fields of the spreadsheet that you want.
9662func (r *SpreadsheetsService) GetByDataFilter(spreadsheetId string, getspreadsheetbydatafilterrequest *GetSpreadsheetByDataFilterRequest) *SpreadsheetsGetByDataFilterCall {
9663	c := &SpreadsheetsGetByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9664	c.spreadsheetId = spreadsheetId
9665	c.getspreadsheetbydatafilterrequest = getspreadsheetbydatafilterrequest
9666	return c
9667}
9668
9669// Fields allows partial responses to be retrieved. See
9670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9671// for more information.
9672func (c *SpreadsheetsGetByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsGetByDataFilterCall {
9673	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9674	return c
9675}
9676
9677// Context sets the context to be used in this call's Do method. Any
9678// pending HTTP request will be aborted if the provided context is
9679// canceled.
9680func (c *SpreadsheetsGetByDataFilterCall) Context(ctx context.Context) *SpreadsheetsGetByDataFilterCall {
9681	c.ctx_ = ctx
9682	return c
9683}
9684
9685// Header returns an http.Header that can be modified by the caller to
9686// add HTTP headers to the request.
9687func (c *SpreadsheetsGetByDataFilterCall) Header() http.Header {
9688	if c.header_ == nil {
9689		c.header_ = make(http.Header)
9690	}
9691	return c.header_
9692}
9693
9694func (c *SpreadsheetsGetByDataFilterCall) doRequest(alt string) (*http.Response, error) {
9695	reqHeaders := make(http.Header)
9696	for k, v := range c.header_ {
9697		reqHeaders[k] = v
9698	}
9699	reqHeaders.Set("User-Agent", c.s.userAgent())
9700	var body io.Reader = nil
9701	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getspreadsheetbydatafilterrequest)
9702	if err != nil {
9703		return nil, err
9704	}
9705	reqHeaders.Set("Content-Type", "application/json")
9706	c.urlParams_.Set("alt", alt)
9707	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}:getByDataFilter")
9708	urls += "?" + c.urlParams_.Encode()
9709	req, _ := http.NewRequest("POST", urls, body)
9710	req.Header = reqHeaders
9711	googleapi.Expand(req.URL, map[string]string{
9712		"spreadsheetId": c.spreadsheetId,
9713	})
9714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9715}
9716
9717// Do executes the "sheets.spreadsheets.getByDataFilter" call.
9718// Exactly one of *Spreadsheet or error will be non-nil. Any non-2xx
9719// status code is an error. Response headers are in either
9720// *Spreadsheet.ServerResponse.Header or (if a response was returned at
9721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9722// to check whether the returned error was because
9723// http.StatusNotModified was returned.
9724func (c *SpreadsheetsGetByDataFilterCall) Do(opts ...googleapi.CallOption) (*Spreadsheet, error) {
9725	gensupport.SetOptions(c.urlParams_, opts...)
9726	res, err := c.doRequest("json")
9727	if res != nil && res.StatusCode == http.StatusNotModified {
9728		if res.Body != nil {
9729			res.Body.Close()
9730		}
9731		return nil, &googleapi.Error{
9732			Code:   res.StatusCode,
9733			Header: res.Header,
9734		}
9735	}
9736	if err != nil {
9737		return nil, err
9738	}
9739	defer googleapi.CloseBody(res)
9740	if err := googleapi.CheckResponse(res); err != nil {
9741		return nil, err
9742	}
9743	ret := &Spreadsheet{
9744		ServerResponse: googleapi.ServerResponse{
9745			Header:         res.Header,
9746			HTTPStatusCode: res.StatusCode,
9747		},
9748	}
9749	target := &ret
9750	if err := gensupport.DecodeResponse(target, res); err != nil {
9751		return nil, err
9752	}
9753	return ret, nil
9754	// {
9755	//   "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.",
9756	//   "flatPath": "v4/spreadsheets/{spreadsheetId}:getByDataFilter",
9757	//   "httpMethod": "POST",
9758	//   "id": "sheets.spreadsheets.getByDataFilter",
9759	//   "parameterOrder": [
9760	//     "spreadsheetId"
9761	//   ],
9762	//   "parameters": {
9763	//     "spreadsheetId": {
9764	//       "description": "The spreadsheet to request.",
9765	//       "location": "path",
9766	//       "required": true,
9767	//       "type": "string"
9768	//     }
9769	//   },
9770	//   "path": "v4/spreadsheets/{spreadsheetId}:getByDataFilter",
9771	//   "request": {
9772	//     "$ref": "GetSpreadsheetByDataFilterRequest"
9773	//   },
9774	//   "response": {
9775	//     "$ref": "Spreadsheet"
9776	//   },
9777	//   "scopes": [
9778	//     "https://www.googleapis.com/auth/drive",
9779	//     "https://www.googleapis.com/auth/drive.file",
9780	//     "https://www.googleapis.com/auth/spreadsheets"
9781	//   ]
9782	// }
9783
9784}
9785
9786// method id "sheets.spreadsheets.developerMetadata.get":
9787
9788type SpreadsheetsDeveloperMetadataGetCall struct {
9789	s             *Service
9790	spreadsheetId string
9791	metadataId    int64
9792	urlParams_    gensupport.URLParams
9793	ifNoneMatch_  string
9794	ctx_          context.Context
9795	header_       http.Header
9796}
9797
9798// Get: Returns the developer metadata with the specified ID.
9799// The caller must specify the spreadsheet ID and the developer
9800// metadata's
9801// unique metadataId.
9802func (r *SpreadsheetsDeveloperMetadataService) Get(spreadsheetId string, metadataId int64) *SpreadsheetsDeveloperMetadataGetCall {
9803	c := &SpreadsheetsDeveloperMetadataGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9804	c.spreadsheetId = spreadsheetId
9805	c.metadataId = metadataId
9806	return c
9807}
9808
9809// Fields allows partial responses to be retrieved. See
9810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9811// for more information.
9812func (c *SpreadsheetsDeveloperMetadataGetCall) Fields(s ...googleapi.Field) *SpreadsheetsDeveloperMetadataGetCall {
9813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9814	return c
9815}
9816
9817// IfNoneMatch sets the optional parameter which makes the operation
9818// fail if the object's ETag matches the given value. This is useful for
9819// getting updates only after the object has changed since the last
9820// request. Use googleapi.IsNotModified to check whether the response
9821// error from Do is the result of In-None-Match.
9822func (c *SpreadsheetsDeveloperMetadataGetCall) IfNoneMatch(entityTag string) *SpreadsheetsDeveloperMetadataGetCall {
9823	c.ifNoneMatch_ = entityTag
9824	return c
9825}
9826
9827// Context sets the context to be used in this call's Do method. Any
9828// pending HTTP request will be aborted if the provided context is
9829// canceled.
9830func (c *SpreadsheetsDeveloperMetadataGetCall) Context(ctx context.Context) *SpreadsheetsDeveloperMetadataGetCall {
9831	c.ctx_ = ctx
9832	return c
9833}
9834
9835// Header returns an http.Header that can be modified by the caller to
9836// add HTTP headers to the request.
9837func (c *SpreadsheetsDeveloperMetadataGetCall) Header() http.Header {
9838	if c.header_ == nil {
9839		c.header_ = make(http.Header)
9840	}
9841	return c.header_
9842}
9843
9844func (c *SpreadsheetsDeveloperMetadataGetCall) doRequest(alt string) (*http.Response, error) {
9845	reqHeaders := make(http.Header)
9846	for k, v := range c.header_ {
9847		reqHeaders[k] = v
9848	}
9849	reqHeaders.Set("User-Agent", c.s.userAgent())
9850	if c.ifNoneMatch_ != "" {
9851		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9852	}
9853	var body io.Reader = nil
9854	c.urlParams_.Set("alt", alt)
9855	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}")
9856	urls += "?" + c.urlParams_.Encode()
9857	req, _ := http.NewRequest("GET", urls, body)
9858	req.Header = reqHeaders
9859	googleapi.Expand(req.URL, map[string]string{
9860		"spreadsheetId": c.spreadsheetId,
9861		"metadataId":    strconv.FormatInt(c.metadataId, 10),
9862	})
9863	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9864}
9865
9866// Do executes the "sheets.spreadsheets.developerMetadata.get" call.
9867// Exactly one of *DeveloperMetadata or error will be non-nil. Any
9868// non-2xx status code is an error. Response headers are in either
9869// *DeveloperMetadata.ServerResponse.Header or (if a response was
9870// returned at all) in error.(*googleapi.Error).Header. Use
9871// googleapi.IsNotModified to check whether the returned error was
9872// because http.StatusNotModified was returned.
9873func (c *SpreadsheetsDeveloperMetadataGetCall) Do(opts ...googleapi.CallOption) (*DeveloperMetadata, error) {
9874	gensupport.SetOptions(c.urlParams_, opts...)
9875	res, err := c.doRequest("json")
9876	if res != nil && res.StatusCode == http.StatusNotModified {
9877		if res.Body != nil {
9878			res.Body.Close()
9879		}
9880		return nil, &googleapi.Error{
9881			Code:   res.StatusCode,
9882			Header: res.Header,
9883		}
9884	}
9885	if err != nil {
9886		return nil, err
9887	}
9888	defer googleapi.CloseBody(res)
9889	if err := googleapi.CheckResponse(res); err != nil {
9890		return nil, err
9891	}
9892	ret := &DeveloperMetadata{
9893		ServerResponse: googleapi.ServerResponse{
9894			Header:         res.Header,
9895			HTTPStatusCode: res.StatusCode,
9896		},
9897	}
9898	target := &ret
9899	if err := gensupport.DecodeResponse(target, res); err != nil {
9900		return nil, err
9901	}
9902	return ret, nil
9903	// {
9904	//   "description": "Returns the developer metadata with the specified ID.\nThe caller must specify the spreadsheet ID and the developer metadata's\nunique metadataId.",
9905	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}",
9906	//   "httpMethod": "GET",
9907	//   "id": "sheets.spreadsheets.developerMetadata.get",
9908	//   "parameterOrder": [
9909	//     "spreadsheetId",
9910	//     "metadataId"
9911	//   ],
9912	//   "parameters": {
9913	//     "metadataId": {
9914	//       "description": "The ID of the developer metadata to retrieve.",
9915	//       "format": "int32",
9916	//       "location": "path",
9917	//       "required": true,
9918	//       "type": "integer"
9919	//     },
9920	//     "spreadsheetId": {
9921	//       "description": "The ID of the spreadsheet to retrieve metadata from.",
9922	//       "location": "path",
9923	//       "required": true,
9924	//       "type": "string"
9925	//     }
9926	//   },
9927	//   "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}",
9928	//   "response": {
9929	//     "$ref": "DeveloperMetadata"
9930	//   },
9931	//   "scopes": [
9932	//     "https://www.googleapis.com/auth/drive",
9933	//     "https://www.googleapis.com/auth/drive.file",
9934	//     "https://www.googleapis.com/auth/spreadsheets"
9935	//   ]
9936	// }
9937
9938}
9939
9940// method id "sheets.spreadsheets.developerMetadata.search":
9941
9942type SpreadsheetsDeveloperMetadataSearchCall struct {
9943	s                              *Service
9944	spreadsheetId                  string
9945	searchdevelopermetadatarequest *SearchDeveloperMetadataRequest
9946	urlParams_                     gensupport.URLParams
9947	ctx_                           context.Context
9948	header_                        http.Header
9949}
9950
9951// Search: Returns all developer metadata matching the specified
9952// DataFilter.
9953// If the provided DataFilter represents a DeveloperMetadataLookup
9954// object,
9955// this will return all DeveloperMetadata entries selected by it. If
9956// the
9957// DataFilter represents a location in a spreadsheet, this will return
9958// all
9959// developer metadata associated with locations intersecting that
9960// region.
9961func (r *SpreadsheetsDeveloperMetadataService) Search(spreadsheetId string, searchdevelopermetadatarequest *SearchDeveloperMetadataRequest) *SpreadsheetsDeveloperMetadataSearchCall {
9962	c := &SpreadsheetsDeveloperMetadataSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9963	c.spreadsheetId = spreadsheetId
9964	c.searchdevelopermetadatarequest = searchdevelopermetadatarequest
9965	return c
9966}
9967
9968// Fields allows partial responses to be retrieved. See
9969// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9970// for more information.
9971func (c *SpreadsheetsDeveloperMetadataSearchCall) Fields(s ...googleapi.Field) *SpreadsheetsDeveloperMetadataSearchCall {
9972	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9973	return c
9974}
9975
9976// Context sets the context to be used in this call's Do method. Any
9977// pending HTTP request will be aborted if the provided context is
9978// canceled.
9979func (c *SpreadsheetsDeveloperMetadataSearchCall) Context(ctx context.Context) *SpreadsheetsDeveloperMetadataSearchCall {
9980	c.ctx_ = ctx
9981	return c
9982}
9983
9984// Header returns an http.Header that can be modified by the caller to
9985// add HTTP headers to the request.
9986func (c *SpreadsheetsDeveloperMetadataSearchCall) Header() http.Header {
9987	if c.header_ == nil {
9988		c.header_ = make(http.Header)
9989	}
9990	return c.header_
9991}
9992
9993func (c *SpreadsheetsDeveloperMetadataSearchCall) doRequest(alt string) (*http.Response, error) {
9994	reqHeaders := make(http.Header)
9995	for k, v := range c.header_ {
9996		reqHeaders[k] = v
9997	}
9998	reqHeaders.Set("User-Agent", c.s.userAgent())
9999	var body io.Reader = nil
10000	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchdevelopermetadatarequest)
10001	if err != nil {
10002		return nil, err
10003	}
10004	reqHeaders.Set("Content-Type", "application/json")
10005	c.urlParams_.Set("alt", alt)
10006	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/developerMetadata:search")
10007	urls += "?" + c.urlParams_.Encode()
10008	req, _ := http.NewRequest("POST", urls, body)
10009	req.Header = reqHeaders
10010	googleapi.Expand(req.URL, map[string]string{
10011		"spreadsheetId": c.spreadsheetId,
10012	})
10013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10014}
10015
10016// Do executes the "sheets.spreadsheets.developerMetadata.search" call.
10017// Exactly one of *SearchDeveloperMetadataResponse or error will be
10018// non-nil. Any non-2xx status code is an error. Response headers are in
10019// either *SearchDeveloperMetadataResponse.ServerResponse.Header or (if
10020// a response was returned at all) in error.(*googleapi.Error).Header.
10021// Use googleapi.IsNotModified to check whether the returned error was
10022// because http.StatusNotModified was returned.
10023func (c *SpreadsheetsDeveloperMetadataSearchCall) Do(opts ...googleapi.CallOption) (*SearchDeveloperMetadataResponse, error) {
10024	gensupport.SetOptions(c.urlParams_, opts...)
10025	res, err := c.doRequest("json")
10026	if res != nil && res.StatusCode == http.StatusNotModified {
10027		if res.Body != nil {
10028			res.Body.Close()
10029		}
10030		return nil, &googleapi.Error{
10031			Code:   res.StatusCode,
10032			Header: res.Header,
10033		}
10034	}
10035	if err != nil {
10036		return nil, err
10037	}
10038	defer googleapi.CloseBody(res)
10039	if err := googleapi.CheckResponse(res); err != nil {
10040		return nil, err
10041	}
10042	ret := &SearchDeveloperMetadataResponse{
10043		ServerResponse: googleapi.ServerResponse{
10044			Header:         res.Header,
10045			HTTPStatusCode: res.StatusCode,
10046		},
10047	}
10048	target := &ret
10049	if err := gensupport.DecodeResponse(target, res); err != nil {
10050		return nil, err
10051	}
10052	return ret, nil
10053	// {
10054	//   "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.",
10055	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search",
10056	//   "httpMethod": "POST",
10057	//   "id": "sheets.spreadsheets.developerMetadata.search",
10058	//   "parameterOrder": [
10059	//     "spreadsheetId"
10060	//   ],
10061	//   "parameters": {
10062	//     "spreadsheetId": {
10063	//       "description": "The ID of the spreadsheet to retrieve metadata from.",
10064	//       "location": "path",
10065	//       "required": true,
10066	//       "type": "string"
10067	//     }
10068	//   },
10069	//   "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search",
10070	//   "request": {
10071	//     "$ref": "SearchDeveloperMetadataRequest"
10072	//   },
10073	//   "response": {
10074	//     "$ref": "SearchDeveloperMetadataResponse"
10075	//   },
10076	//   "scopes": [
10077	//     "https://www.googleapis.com/auth/drive",
10078	//     "https://www.googleapis.com/auth/drive.file",
10079	//     "https://www.googleapis.com/auth/spreadsheets"
10080	//   ]
10081	// }
10082
10083}
10084
10085// method id "sheets.spreadsheets.sheets.copyTo":
10086
10087type SpreadsheetsSheetsCopyToCall struct {
10088	s                                    *Service
10089	spreadsheetId                        string
10090	sheetId                              int64
10091	copysheettoanotherspreadsheetrequest *CopySheetToAnotherSpreadsheetRequest
10092	urlParams_                           gensupport.URLParams
10093	ctx_                                 context.Context
10094	header_                              http.Header
10095}
10096
10097// CopyTo: Copies a single sheet from a spreadsheet to another
10098// spreadsheet.
10099// Returns the properties of the newly created sheet.
10100func (r *SpreadsheetsSheetsService) CopyTo(spreadsheetId string, sheetId int64, copysheettoanotherspreadsheetrequest *CopySheetToAnotherSpreadsheetRequest) *SpreadsheetsSheetsCopyToCall {
10101	c := &SpreadsheetsSheetsCopyToCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10102	c.spreadsheetId = spreadsheetId
10103	c.sheetId = sheetId
10104	c.copysheettoanotherspreadsheetrequest = copysheettoanotherspreadsheetrequest
10105	return c
10106}
10107
10108// Fields allows partial responses to be retrieved. See
10109// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10110// for more information.
10111func (c *SpreadsheetsSheetsCopyToCall) Fields(s ...googleapi.Field) *SpreadsheetsSheetsCopyToCall {
10112	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10113	return c
10114}
10115
10116// Context sets the context to be used in this call's Do method. Any
10117// pending HTTP request will be aborted if the provided context is
10118// canceled.
10119func (c *SpreadsheetsSheetsCopyToCall) Context(ctx context.Context) *SpreadsheetsSheetsCopyToCall {
10120	c.ctx_ = ctx
10121	return c
10122}
10123
10124// Header returns an http.Header that can be modified by the caller to
10125// add HTTP headers to the request.
10126func (c *SpreadsheetsSheetsCopyToCall) Header() http.Header {
10127	if c.header_ == nil {
10128		c.header_ = make(http.Header)
10129	}
10130	return c.header_
10131}
10132
10133func (c *SpreadsheetsSheetsCopyToCall) doRequest(alt string) (*http.Response, error) {
10134	reqHeaders := make(http.Header)
10135	for k, v := range c.header_ {
10136		reqHeaders[k] = v
10137	}
10138	reqHeaders.Set("User-Agent", c.s.userAgent())
10139	var body io.Reader = nil
10140	body, err := googleapi.WithoutDataWrapper.JSONReader(c.copysheettoanotherspreadsheetrequest)
10141	if err != nil {
10142		return nil, err
10143	}
10144	reqHeaders.Set("Content-Type", "application/json")
10145	c.urlParams_.Set("alt", alt)
10146	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo")
10147	urls += "?" + c.urlParams_.Encode()
10148	req, _ := http.NewRequest("POST", urls, body)
10149	req.Header = reqHeaders
10150	googleapi.Expand(req.URL, map[string]string{
10151		"spreadsheetId": c.spreadsheetId,
10152		"sheetId":       strconv.FormatInt(c.sheetId, 10),
10153	})
10154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10155}
10156
10157// Do executes the "sheets.spreadsheets.sheets.copyTo" call.
10158// Exactly one of *SheetProperties or error will be non-nil. Any non-2xx
10159// status code is an error. Response headers are in either
10160// *SheetProperties.ServerResponse.Header or (if a response was returned
10161// at all) in error.(*googleapi.Error).Header. Use
10162// googleapi.IsNotModified to check whether the returned error was
10163// because http.StatusNotModified was returned.
10164func (c *SpreadsheetsSheetsCopyToCall) Do(opts ...googleapi.CallOption) (*SheetProperties, error) {
10165	gensupport.SetOptions(c.urlParams_, opts...)
10166	res, err := c.doRequest("json")
10167	if res != nil && res.StatusCode == http.StatusNotModified {
10168		if res.Body != nil {
10169			res.Body.Close()
10170		}
10171		return nil, &googleapi.Error{
10172			Code:   res.StatusCode,
10173			Header: res.Header,
10174		}
10175	}
10176	if err != nil {
10177		return nil, err
10178	}
10179	defer googleapi.CloseBody(res)
10180	if err := googleapi.CheckResponse(res); err != nil {
10181		return nil, err
10182	}
10183	ret := &SheetProperties{
10184		ServerResponse: googleapi.ServerResponse{
10185			Header:         res.Header,
10186			HTTPStatusCode: res.StatusCode,
10187		},
10188	}
10189	target := &ret
10190	if err := gensupport.DecodeResponse(target, res); err != nil {
10191		return nil, err
10192	}
10193	return ret, nil
10194	// {
10195	//   "description": "Copies a single sheet from a spreadsheet to another spreadsheet.\nReturns the properties of the newly created sheet.",
10196	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo",
10197	//   "httpMethod": "POST",
10198	//   "id": "sheets.spreadsheets.sheets.copyTo",
10199	//   "parameterOrder": [
10200	//     "spreadsheetId",
10201	//     "sheetId"
10202	//   ],
10203	//   "parameters": {
10204	//     "sheetId": {
10205	//       "description": "The ID of the sheet to copy.",
10206	//       "format": "int32",
10207	//       "location": "path",
10208	//       "required": true,
10209	//       "type": "integer"
10210	//     },
10211	//     "spreadsheetId": {
10212	//       "description": "The ID of the spreadsheet containing the sheet to copy.",
10213	//       "location": "path",
10214	//       "required": true,
10215	//       "type": "string"
10216	//     }
10217	//   },
10218	//   "path": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo",
10219	//   "request": {
10220	//     "$ref": "CopySheetToAnotherSpreadsheetRequest"
10221	//   },
10222	//   "response": {
10223	//     "$ref": "SheetProperties"
10224	//   },
10225	//   "scopes": [
10226	//     "https://www.googleapis.com/auth/drive",
10227	//     "https://www.googleapis.com/auth/drive.file",
10228	//     "https://www.googleapis.com/auth/spreadsheets"
10229	//   ]
10230	// }
10231
10232}
10233
10234// method id "sheets.spreadsheets.values.append":
10235
10236type SpreadsheetsValuesAppendCall struct {
10237	s             *Service
10238	spreadsheetId string
10239	range_        string
10240	valuerange    *ValueRange
10241	urlParams_    gensupport.URLParams
10242	ctx_          context.Context
10243	header_       http.Header
10244}
10245
10246// Append: Appends values to a spreadsheet. The input range is used to
10247// search for
10248// existing data and find a "table" within that range. Values will
10249// be
10250// appended to the next row of the table, starting with the first column
10251// of
10252// the table. See
10253// the
10254// [guide](/sheets/api/guides/values#appending_values)
10255// and
10256// [sample code](/sheets/api/samples/writing#append_values)
10257// for specific details of how tables are detected and data is
10258// appended.
10259//
10260// The caller must specify the spreadsheet ID, range, and
10261// a valueInputOption.  The `valueInputOption` only
10262// controls how the input data will be added to the sheet (column-wise
10263// or
10264// row-wise), it does not influence what cell the data starts being
10265// written
10266// to.
10267func (r *SpreadsheetsValuesService) Append(spreadsheetId string, range_ string, valuerange *ValueRange) *SpreadsheetsValuesAppendCall {
10268	c := &SpreadsheetsValuesAppendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10269	c.spreadsheetId = spreadsheetId
10270	c.range_ = range_
10271	c.valuerange = valuerange
10272	return c
10273}
10274
10275// IncludeValuesInResponse sets the optional parameter
10276// "includeValuesInResponse": Determines if the update response should
10277// include the values
10278// of the cells that were appended. By default, responses
10279// do not include the updated values.
10280func (c *SpreadsheetsValuesAppendCall) IncludeValuesInResponse(includeValuesInResponse bool) *SpreadsheetsValuesAppendCall {
10281	c.urlParams_.Set("includeValuesInResponse", fmt.Sprint(includeValuesInResponse))
10282	return c
10283}
10284
10285// InsertDataOption sets the optional parameter "insertDataOption": How
10286// the input data should be inserted.
10287//
10288// Possible values:
10289//   "OVERWRITE"
10290//   "INSERT_ROWS"
10291func (c *SpreadsheetsValuesAppendCall) InsertDataOption(insertDataOption string) *SpreadsheetsValuesAppendCall {
10292	c.urlParams_.Set("insertDataOption", insertDataOption)
10293	return c
10294}
10295
10296// ResponseDateTimeRenderOption sets the optional parameter
10297// "responseDateTimeRenderOption": Determines how dates, times, and
10298// durations in the response should be
10299// rendered. This is ignored if response_value_render_option
10300// is
10301// FORMATTED_VALUE.
10302// The default dateTime render option is
10303// [DateTimeRenderOption.SERIAL_NUMBER].
10304//
10305// Possible values:
10306//   "SERIAL_NUMBER"
10307//   "FORMATTED_STRING"
10308func (c *SpreadsheetsValuesAppendCall) ResponseDateTimeRenderOption(responseDateTimeRenderOption string) *SpreadsheetsValuesAppendCall {
10309	c.urlParams_.Set("responseDateTimeRenderOption", responseDateTimeRenderOption)
10310	return c
10311}
10312
10313// ResponseValueRenderOption sets the optional parameter
10314// "responseValueRenderOption": Determines how values in the response
10315// should be rendered.
10316// The default render option is ValueRenderOption.FORMATTED_VALUE.
10317//
10318// Possible values:
10319//   "FORMATTED_VALUE"
10320//   "UNFORMATTED_VALUE"
10321//   "FORMULA"
10322func (c *SpreadsheetsValuesAppendCall) ResponseValueRenderOption(responseValueRenderOption string) *SpreadsheetsValuesAppendCall {
10323	c.urlParams_.Set("responseValueRenderOption", responseValueRenderOption)
10324	return c
10325}
10326
10327// ValueInputOption sets the optional parameter "valueInputOption": How
10328// the input data should be interpreted.
10329//
10330// Possible values:
10331//   "INPUT_VALUE_OPTION_UNSPECIFIED"
10332//   "RAW"
10333//   "USER_ENTERED"
10334func (c *SpreadsheetsValuesAppendCall) ValueInputOption(valueInputOption string) *SpreadsheetsValuesAppendCall {
10335	c.urlParams_.Set("valueInputOption", valueInputOption)
10336	return c
10337}
10338
10339// Fields allows partial responses to be retrieved. See
10340// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10341// for more information.
10342func (c *SpreadsheetsValuesAppendCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesAppendCall {
10343	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10344	return c
10345}
10346
10347// Context sets the context to be used in this call's Do method. Any
10348// pending HTTP request will be aborted if the provided context is
10349// canceled.
10350func (c *SpreadsheetsValuesAppendCall) Context(ctx context.Context) *SpreadsheetsValuesAppendCall {
10351	c.ctx_ = ctx
10352	return c
10353}
10354
10355// Header returns an http.Header that can be modified by the caller to
10356// add HTTP headers to the request.
10357func (c *SpreadsheetsValuesAppendCall) Header() http.Header {
10358	if c.header_ == nil {
10359		c.header_ = make(http.Header)
10360	}
10361	return c.header_
10362}
10363
10364func (c *SpreadsheetsValuesAppendCall) doRequest(alt string) (*http.Response, error) {
10365	reqHeaders := make(http.Header)
10366	for k, v := range c.header_ {
10367		reqHeaders[k] = v
10368	}
10369	reqHeaders.Set("User-Agent", c.s.userAgent())
10370	var body io.Reader = nil
10371	body, err := googleapi.WithoutDataWrapper.JSONReader(c.valuerange)
10372	if err != nil {
10373		return nil, err
10374	}
10375	reqHeaders.Set("Content-Type", "application/json")
10376	c.urlParams_.Set("alt", alt)
10377	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}:append")
10378	urls += "?" + c.urlParams_.Encode()
10379	req, _ := http.NewRequest("POST", urls, body)
10380	req.Header = reqHeaders
10381	googleapi.Expand(req.URL, map[string]string{
10382		"spreadsheetId": c.spreadsheetId,
10383		"range":         c.range_,
10384	})
10385	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10386}
10387
10388// Do executes the "sheets.spreadsheets.values.append" call.
10389// Exactly one of *AppendValuesResponse or error will be non-nil. Any
10390// non-2xx status code is an error. Response headers are in either
10391// *AppendValuesResponse.ServerResponse.Header or (if a response was
10392// returned at all) in error.(*googleapi.Error).Header. Use
10393// googleapi.IsNotModified to check whether the returned error was
10394// because http.StatusNotModified was returned.
10395func (c *SpreadsheetsValuesAppendCall) Do(opts ...googleapi.CallOption) (*AppendValuesResponse, error) {
10396	gensupport.SetOptions(c.urlParams_, opts...)
10397	res, err := c.doRequest("json")
10398	if res != nil && res.StatusCode == http.StatusNotModified {
10399		if res.Body != nil {
10400			res.Body.Close()
10401		}
10402		return nil, &googleapi.Error{
10403			Code:   res.StatusCode,
10404			Header: res.Header,
10405		}
10406	}
10407	if err != nil {
10408		return nil, err
10409	}
10410	defer googleapi.CloseBody(res)
10411	if err := googleapi.CheckResponse(res); err != nil {
10412		return nil, err
10413	}
10414	ret := &AppendValuesResponse{
10415		ServerResponse: googleapi.ServerResponse{
10416			Header:         res.Header,
10417			HTTPStatusCode: res.StatusCode,
10418		},
10419	}
10420	target := &ret
10421	if err := gensupport.DecodeResponse(target, res); err != nil {
10422		return nil, err
10423	}
10424	return ret, nil
10425	// {
10426	//   "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.",
10427	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:append",
10428	//   "httpMethod": "POST",
10429	//   "id": "sheets.spreadsheets.values.append",
10430	//   "parameterOrder": [
10431	//     "spreadsheetId",
10432	//     "range"
10433	//   ],
10434	//   "parameters": {
10435	//     "includeValuesInResponse": {
10436	//       "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.",
10437	//       "location": "query",
10438	//       "type": "boolean"
10439	//     },
10440	//     "insertDataOption": {
10441	//       "description": "How the input data should be inserted.",
10442	//       "enum": [
10443	//         "OVERWRITE",
10444	//         "INSERT_ROWS"
10445	//       ],
10446	//       "location": "query",
10447	//       "type": "string"
10448	//     },
10449	//     "range": {
10450	//       "description": "The A1 notation of a range to search for a logical table of data.\nValues will be appended after the last row of the table.",
10451	//       "location": "path",
10452	//       "required": true,
10453	//       "type": "string"
10454	//     },
10455	//     "responseDateTimeRenderOption": {
10456	//       "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].",
10457	//       "enum": [
10458	//         "SERIAL_NUMBER",
10459	//         "FORMATTED_STRING"
10460	//       ],
10461	//       "location": "query",
10462	//       "type": "string"
10463	//     },
10464	//     "responseValueRenderOption": {
10465	//       "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
10466	//       "enum": [
10467	//         "FORMATTED_VALUE",
10468	//         "UNFORMATTED_VALUE",
10469	//         "FORMULA"
10470	//       ],
10471	//       "location": "query",
10472	//       "type": "string"
10473	//     },
10474	//     "spreadsheetId": {
10475	//       "description": "The ID of the spreadsheet to update.",
10476	//       "location": "path",
10477	//       "required": true,
10478	//       "type": "string"
10479	//     },
10480	//     "valueInputOption": {
10481	//       "description": "How the input data should be interpreted.",
10482	//       "enum": [
10483	//         "INPUT_VALUE_OPTION_UNSPECIFIED",
10484	//         "RAW",
10485	//         "USER_ENTERED"
10486	//       ],
10487	//       "location": "query",
10488	//       "type": "string"
10489	//     }
10490	//   },
10491	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:append",
10492	//   "request": {
10493	//     "$ref": "ValueRange"
10494	//   },
10495	//   "response": {
10496	//     "$ref": "AppendValuesResponse"
10497	//   },
10498	//   "scopes": [
10499	//     "https://www.googleapis.com/auth/drive",
10500	//     "https://www.googleapis.com/auth/drive.file",
10501	//     "https://www.googleapis.com/auth/spreadsheets"
10502	//   ]
10503	// }
10504
10505}
10506
10507// method id "sheets.spreadsheets.values.batchClear":
10508
10509type SpreadsheetsValuesBatchClearCall struct {
10510	s                       *Service
10511	spreadsheetId           string
10512	batchclearvaluesrequest *BatchClearValuesRequest
10513	urlParams_              gensupport.URLParams
10514	ctx_                    context.Context
10515	header_                 http.Header
10516}
10517
10518// BatchClear: Clears one or more ranges of values from a
10519// spreadsheet.
10520// The caller must specify the spreadsheet ID and one or more
10521// ranges.
10522// Only values are cleared -- all other properties of the cell (such
10523// as
10524// formatting, data validation, etc..) are kept.
10525func (r *SpreadsheetsValuesService) BatchClear(spreadsheetId string, batchclearvaluesrequest *BatchClearValuesRequest) *SpreadsheetsValuesBatchClearCall {
10526	c := &SpreadsheetsValuesBatchClearCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10527	c.spreadsheetId = spreadsheetId
10528	c.batchclearvaluesrequest = batchclearvaluesrequest
10529	return c
10530}
10531
10532// Fields allows partial responses to be retrieved. See
10533// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10534// for more information.
10535func (c *SpreadsheetsValuesBatchClearCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchClearCall {
10536	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10537	return c
10538}
10539
10540// Context sets the context to be used in this call's Do method. Any
10541// pending HTTP request will be aborted if the provided context is
10542// canceled.
10543func (c *SpreadsheetsValuesBatchClearCall) Context(ctx context.Context) *SpreadsheetsValuesBatchClearCall {
10544	c.ctx_ = ctx
10545	return c
10546}
10547
10548// Header returns an http.Header that can be modified by the caller to
10549// add HTTP headers to the request.
10550func (c *SpreadsheetsValuesBatchClearCall) Header() http.Header {
10551	if c.header_ == nil {
10552		c.header_ = make(http.Header)
10553	}
10554	return c.header_
10555}
10556
10557func (c *SpreadsheetsValuesBatchClearCall) doRequest(alt string) (*http.Response, error) {
10558	reqHeaders := make(http.Header)
10559	for k, v := range c.header_ {
10560		reqHeaders[k] = v
10561	}
10562	reqHeaders.Set("User-Agent", c.s.userAgent())
10563	var body io.Reader = nil
10564	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchclearvaluesrequest)
10565	if err != nil {
10566		return nil, err
10567	}
10568	reqHeaders.Set("Content-Type", "application/json")
10569	c.urlParams_.Set("alt", alt)
10570	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchClear")
10571	urls += "?" + c.urlParams_.Encode()
10572	req, _ := http.NewRequest("POST", urls, body)
10573	req.Header = reqHeaders
10574	googleapi.Expand(req.URL, map[string]string{
10575		"spreadsheetId": c.spreadsheetId,
10576	})
10577	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10578}
10579
10580// Do executes the "sheets.spreadsheets.values.batchClear" call.
10581// Exactly one of *BatchClearValuesResponse or error will be non-nil.
10582// Any non-2xx status code is an error. Response headers are in either
10583// *BatchClearValuesResponse.ServerResponse.Header or (if a response was
10584// returned at all) in error.(*googleapi.Error).Header. Use
10585// googleapi.IsNotModified to check whether the returned error was
10586// because http.StatusNotModified was returned.
10587func (c *SpreadsheetsValuesBatchClearCall) Do(opts ...googleapi.CallOption) (*BatchClearValuesResponse, error) {
10588	gensupport.SetOptions(c.urlParams_, opts...)
10589	res, err := c.doRequest("json")
10590	if res != nil && res.StatusCode == http.StatusNotModified {
10591		if res.Body != nil {
10592			res.Body.Close()
10593		}
10594		return nil, &googleapi.Error{
10595			Code:   res.StatusCode,
10596			Header: res.Header,
10597		}
10598	}
10599	if err != nil {
10600		return nil, err
10601	}
10602	defer googleapi.CloseBody(res)
10603	if err := googleapi.CheckResponse(res); err != nil {
10604		return nil, err
10605	}
10606	ret := &BatchClearValuesResponse{
10607		ServerResponse: googleapi.ServerResponse{
10608			Header:         res.Header,
10609			HTTPStatusCode: res.StatusCode,
10610		},
10611	}
10612	target := &ret
10613	if err := gensupport.DecodeResponse(target, res); err != nil {
10614		return nil, err
10615	}
10616	return ret, nil
10617	// {
10618	//   "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.",
10619	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClear",
10620	//   "httpMethod": "POST",
10621	//   "id": "sheets.spreadsheets.values.batchClear",
10622	//   "parameterOrder": [
10623	//     "spreadsheetId"
10624	//   ],
10625	//   "parameters": {
10626	//     "spreadsheetId": {
10627	//       "description": "The ID of the spreadsheet to update.",
10628	//       "location": "path",
10629	//       "required": true,
10630	//       "type": "string"
10631	//     }
10632	//   },
10633	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchClear",
10634	//   "request": {
10635	//     "$ref": "BatchClearValuesRequest"
10636	//   },
10637	//   "response": {
10638	//     "$ref": "BatchClearValuesResponse"
10639	//   },
10640	//   "scopes": [
10641	//     "https://www.googleapis.com/auth/drive",
10642	//     "https://www.googleapis.com/auth/drive.file",
10643	//     "https://www.googleapis.com/auth/spreadsheets"
10644	//   ]
10645	// }
10646
10647}
10648
10649// method id "sheets.spreadsheets.values.batchClearByDataFilter":
10650
10651type SpreadsheetsValuesBatchClearByDataFilterCall struct {
10652	s                                   *Service
10653	spreadsheetId                       string
10654	batchclearvaluesbydatafilterrequest *BatchClearValuesByDataFilterRequest
10655	urlParams_                          gensupport.URLParams
10656	ctx_                                context.Context
10657	header_                             http.Header
10658}
10659
10660// BatchClearByDataFilter: Clears one or more ranges of values from a
10661// spreadsheet.
10662// The caller must specify the spreadsheet ID and one or
10663// more
10664// DataFilters. Ranges matching any of the specified data
10665// filters will be cleared.  Only values are cleared -- all other
10666// properties
10667// of the cell (such as formatting, data validation, etc..) are kept.
10668func (r *SpreadsheetsValuesService) BatchClearByDataFilter(spreadsheetId string, batchclearvaluesbydatafilterrequest *BatchClearValuesByDataFilterRequest) *SpreadsheetsValuesBatchClearByDataFilterCall {
10669	c := &SpreadsheetsValuesBatchClearByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10670	c.spreadsheetId = spreadsheetId
10671	c.batchclearvaluesbydatafilterrequest = batchclearvaluesbydatafilterrequest
10672	return c
10673}
10674
10675// Fields allows partial responses to be retrieved. See
10676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10677// for more information.
10678func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchClearByDataFilterCall {
10679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10680	return c
10681}
10682
10683// Context sets the context to be used in this call's Do method. Any
10684// pending HTTP request will be aborted if the provided context is
10685// canceled.
10686func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchClearByDataFilterCall {
10687	c.ctx_ = ctx
10688	return c
10689}
10690
10691// Header returns an http.Header that can be modified by the caller to
10692// add HTTP headers to the request.
10693func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Header() http.Header {
10694	if c.header_ == nil {
10695		c.header_ = make(http.Header)
10696	}
10697	return c.header_
10698}
10699
10700func (c *SpreadsheetsValuesBatchClearByDataFilterCall) doRequest(alt string) (*http.Response, error) {
10701	reqHeaders := make(http.Header)
10702	for k, v := range c.header_ {
10703		reqHeaders[k] = v
10704	}
10705	reqHeaders.Set("User-Agent", c.s.userAgent())
10706	var body io.Reader = nil
10707	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchclearvaluesbydatafilterrequest)
10708	if err != nil {
10709		return nil, err
10710	}
10711	reqHeaders.Set("Content-Type", "application/json")
10712	c.urlParams_.Set("alt", alt)
10713	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter")
10714	urls += "?" + c.urlParams_.Encode()
10715	req, _ := http.NewRequest("POST", urls, body)
10716	req.Header = reqHeaders
10717	googleapi.Expand(req.URL, map[string]string{
10718		"spreadsheetId": c.spreadsheetId,
10719	})
10720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10721}
10722
10723// Do executes the "sheets.spreadsheets.values.batchClearByDataFilter" call.
10724// Exactly one of *BatchClearValuesByDataFilterResponse or error will be
10725// non-nil. Any non-2xx status code is an error. Response headers are in
10726// either *BatchClearValuesByDataFilterResponse.ServerResponse.Header or
10727// (if a response was returned at all) in
10728// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
10729// whether the returned error was because http.StatusNotModified was
10730// returned.
10731func (c *SpreadsheetsValuesBatchClearByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchClearValuesByDataFilterResponse, error) {
10732	gensupport.SetOptions(c.urlParams_, opts...)
10733	res, err := c.doRequest("json")
10734	if res != nil && res.StatusCode == http.StatusNotModified {
10735		if res.Body != nil {
10736			res.Body.Close()
10737		}
10738		return nil, &googleapi.Error{
10739			Code:   res.StatusCode,
10740			Header: res.Header,
10741		}
10742	}
10743	if err != nil {
10744		return nil, err
10745	}
10746	defer googleapi.CloseBody(res)
10747	if err := googleapi.CheckResponse(res); err != nil {
10748		return nil, err
10749	}
10750	ret := &BatchClearValuesByDataFilterResponse{
10751		ServerResponse: googleapi.ServerResponse{
10752			Header:         res.Header,
10753			HTTPStatusCode: res.StatusCode,
10754		},
10755	}
10756	target := &ret
10757	if err := gensupport.DecodeResponse(target, res); err != nil {
10758		return nil, err
10759	}
10760	return ret, nil
10761	// {
10762	//   "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.",
10763	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter",
10764	//   "httpMethod": "POST",
10765	//   "id": "sheets.spreadsheets.values.batchClearByDataFilter",
10766	//   "parameterOrder": [
10767	//     "spreadsheetId"
10768	//   ],
10769	//   "parameters": {
10770	//     "spreadsheetId": {
10771	//       "description": "The ID of the spreadsheet to update.",
10772	//       "location": "path",
10773	//       "required": true,
10774	//       "type": "string"
10775	//     }
10776	//   },
10777	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter",
10778	//   "request": {
10779	//     "$ref": "BatchClearValuesByDataFilterRequest"
10780	//   },
10781	//   "response": {
10782	//     "$ref": "BatchClearValuesByDataFilterResponse"
10783	//   },
10784	//   "scopes": [
10785	//     "https://www.googleapis.com/auth/drive",
10786	//     "https://www.googleapis.com/auth/drive.file",
10787	//     "https://www.googleapis.com/auth/spreadsheets"
10788	//   ]
10789	// }
10790
10791}
10792
10793// method id "sheets.spreadsheets.values.batchGet":
10794
10795type SpreadsheetsValuesBatchGetCall struct {
10796	s             *Service
10797	spreadsheetId string
10798	urlParams_    gensupport.URLParams
10799	ifNoneMatch_  string
10800	ctx_          context.Context
10801	header_       http.Header
10802}
10803
10804// BatchGet: Returns one or more ranges of values from a
10805// spreadsheet.
10806// The caller must specify the spreadsheet ID and one or more ranges.
10807func (r *SpreadsheetsValuesService) BatchGet(spreadsheetId string) *SpreadsheetsValuesBatchGetCall {
10808	c := &SpreadsheetsValuesBatchGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10809	c.spreadsheetId = spreadsheetId
10810	return c
10811}
10812
10813// DateTimeRenderOption sets the optional parameter
10814// "dateTimeRenderOption": How dates, times, and durations should be
10815// represented in the output.
10816// This is ignored if value_render_option is
10817// FORMATTED_VALUE.
10818// The default dateTime render option is
10819// [DateTimeRenderOption.SERIAL_NUMBER].
10820//
10821// Possible values:
10822//   "SERIAL_NUMBER"
10823//   "FORMATTED_STRING"
10824func (c *SpreadsheetsValuesBatchGetCall) DateTimeRenderOption(dateTimeRenderOption string) *SpreadsheetsValuesBatchGetCall {
10825	c.urlParams_.Set("dateTimeRenderOption", dateTimeRenderOption)
10826	return c
10827}
10828
10829// MajorDimension sets the optional parameter "majorDimension": The
10830// major dimension that results should use.
10831//
10832// For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
10833// then requesting `range=A1:B2,majorDimension=ROWS` will
10834// return
10835// `[[1,2],[3,4]]`,
10836// whereas requesting `range=A1:B2,majorDimension=COLUMNS` will
10837// return
10838// `[[1,3],[2,4]]`.
10839//
10840// Possible values:
10841//   "DIMENSION_UNSPECIFIED"
10842//   "ROWS"
10843//   "COLUMNS"
10844func (c *SpreadsheetsValuesBatchGetCall) MajorDimension(majorDimension string) *SpreadsheetsValuesBatchGetCall {
10845	c.urlParams_.Set("majorDimension", majorDimension)
10846	return c
10847}
10848
10849// Ranges sets the optional parameter "ranges": The A1 notation of the
10850// values to retrieve.
10851func (c *SpreadsheetsValuesBatchGetCall) Ranges(ranges ...string) *SpreadsheetsValuesBatchGetCall {
10852	c.urlParams_.SetMulti("ranges", append([]string{}, ranges...))
10853	return c
10854}
10855
10856// ValueRenderOption sets the optional parameter "valueRenderOption":
10857// How values should be represented in the output.
10858// The default render option is ValueRenderOption.FORMATTED_VALUE.
10859//
10860// Possible values:
10861//   "FORMATTED_VALUE"
10862//   "UNFORMATTED_VALUE"
10863//   "FORMULA"
10864func (c *SpreadsheetsValuesBatchGetCall) ValueRenderOption(valueRenderOption string) *SpreadsheetsValuesBatchGetCall {
10865	c.urlParams_.Set("valueRenderOption", valueRenderOption)
10866	return c
10867}
10868
10869// Fields allows partial responses to be retrieved. See
10870// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10871// for more information.
10872func (c *SpreadsheetsValuesBatchGetCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchGetCall {
10873	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10874	return c
10875}
10876
10877// IfNoneMatch sets the optional parameter which makes the operation
10878// fail if the object's ETag matches the given value. This is useful for
10879// getting updates only after the object has changed since the last
10880// request. Use googleapi.IsNotModified to check whether the response
10881// error from Do is the result of In-None-Match.
10882func (c *SpreadsheetsValuesBatchGetCall) IfNoneMatch(entityTag string) *SpreadsheetsValuesBatchGetCall {
10883	c.ifNoneMatch_ = entityTag
10884	return c
10885}
10886
10887// Context sets the context to be used in this call's Do method. Any
10888// pending HTTP request will be aborted if the provided context is
10889// canceled.
10890func (c *SpreadsheetsValuesBatchGetCall) Context(ctx context.Context) *SpreadsheetsValuesBatchGetCall {
10891	c.ctx_ = ctx
10892	return c
10893}
10894
10895// Header returns an http.Header that can be modified by the caller to
10896// add HTTP headers to the request.
10897func (c *SpreadsheetsValuesBatchGetCall) Header() http.Header {
10898	if c.header_ == nil {
10899		c.header_ = make(http.Header)
10900	}
10901	return c.header_
10902}
10903
10904func (c *SpreadsheetsValuesBatchGetCall) doRequest(alt string) (*http.Response, error) {
10905	reqHeaders := make(http.Header)
10906	for k, v := range c.header_ {
10907		reqHeaders[k] = v
10908	}
10909	reqHeaders.Set("User-Agent", c.s.userAgent())
10910	if c.ifNoneMatch_ != "" {
10911		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10912	}
10913	var body io.Reader = nil
10914	c.urlParams_.Set("alt", alt)
10915	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchGet")
10916	urls += "?" + c.urlParams_.Encode()
10917	req, _ := http.NewRequest("GET", urls, body)
10918	req.Header = reqHeaders
10919	googleapi.Expand(req.URL, map[string]string{
10920		"spreadsheetId": c.spreadsheetId,
10921	})
10922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10923}
10924
10925// Do executes the "sheets.spreadsheets.values.batchGet" call.
10926// Exactly one of *BatchGetValuesResponse or error will be non-nil. Any
10927// non-2xx status code is an error. Response headers are in either
10928// *BatchGetValuesResponse.ServerResponse.Header or (if a response was
10929// returned at all) in error.(*googleapi.Error).Header. Use
10930// googleapi.IsNotModified to check whether the returned error was
10931// because http.StatusNotModified was returned.
10932func (c *SpreadsheetsValuesBatchGetCall) Do(opts ...googleapi.CallOption) (*BatchGetValuesResponse, error) {
10933	gensupport.SetOptions(c.urlParams_, opts...)
10934	res, err := c.doRequest("json")
10935	if res != nil && res.StatusCode == http.StatusNotModified {
10936		if res.Body != nil {
10937			res.Body.Close()
10938		}
10939		return nil, &googleapi.Error{
10940			Code:   res.StatusCode,
10941			Header: res.Header,
10942		}
10943	}
10944	if err != nil {
10945		return nil, err
10946	}
10947	defer googleapi.CloseBody(res)
10948	if err := googleapi.CheckResponse(res); err != nil {
10949		return nil, err
10950	}
10951	ret := &BatchGetValuesResponse{
10952		ServerResponse: googleapi.ServerResponse{
10953			Header:         res.Header,
10954			HTTPStatusCode: res.StatusCode,
10955		},
10956	}
10957	target := &ret
10958	if err := gensupport.DecodeResponse(target, res); err != nil {
10959		return nil, err
10960	}
10961	return ret, nil
10962	// {
10963	//   "description": "Returns one or more ranges of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and one or more ranges.",
10964	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGet",
10965	//   "httpMethod": "GET",
10966	//   "id": "sheets.spreadsheets.values.batchGet",
10967	//   "parameterOrder": [
10968	//     "spreadsheetId"
10969	//   ],
10970	//   "parameters": {
10971	//     "dateTimeRenderOption": {
10972	//       "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].",
10973	//       "enum": [
10974	//         "SERIAL_NUMBER",
10975	//         "FORMATTED_STRING"
10976	//       ],
10977	//       "location": "query",
10978	//       "type": "string"
10979	//     },
10980	//     "majorDimension": {
10981	//       "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` will return\n`[[1,2],[3,4]]`,\nwhereas requesting `range=A1:B2,majorDimension=COLUMNS` will return\n`[[1,3],[2,4]]`.",
10982	//       "enum": [
10983	//         "DIMENSION_UNSPECIFIED",
10984	//         "ROWS",
10985	//         "COLUMNS"
10986	//       ],
10987	//       "location": "query",
10988	//       "type": "string"
10989	//     },
10990	//     "ranges": {
10991	//       "description": "The A1 notation of the values to retrieve.",
10992	//       "location": "query",
10993	//       "repeated": true,
10994	//       "type": "string"
10995	//     },
10996	//     "spreadsheetId": {
10997	//       "description": "The ID of the spreadsheet to retrieve data from.",
10998	//       "location": "path",
10999	//       "required": true,
11000	//       "type": "string"
11001	//     },
11002	//     "valueRenderOption": {
11003	//       "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
11004	//       "enum": [
11005	//         "FORMATTED_VALUE",
11006	//         "UNFORMATTED_VALUE",
11007	//         "FORMULA"
11008	//       ],
11009	//       "location": "query",
11010	//       "type": "string"
11011	//     }
11012	//   },
11013	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchGet",
11014	//   "response": {
11015	//     "$ref": "BatchGetValuesResponse"
11016	//   },
11017	//   "scopes": [
11018	//     "https://www.googleapis.com/auth/drive",
11019	//     "https://www.googleapis.com/auth/drive.file",
11020	//     "https://www.googleapis.com/auth/drive.readonly",
11021	//     "https://www.googleapis.com/auth/spreadsheets",
11022	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
11023	//   ]
11024	// }
11025
11026}
11027
11028// method id "sheets.spreadsheets.values.batchGetByDataFilter":
11029
11030type SpreadsheetsValuesBatchGetByDataFilterCall struct {
11031	s                                 *Service
11032	spreadsheetId                     string
11033	batchgetvaluesbydatafilterrequest *BatchGetValuesByDataFilterRequest
11034	urlParams_                        gensupport.URLParams
11035	ctx_                              context.Context
11036	header_                           http.Header
11037}
11038
11039// BatchGetByDataFilter: Returns one or more ranges of values that match
11040// the specified data filters.
11041// The caller must specify the spreadsheet ID and one or
11042// more
11043// DataFilters.  Ranges that match any of the data filters in
11044// the request will be returned.
11045func (r *SpreadsheetsValuesService) BatchGetByDataFilter(spreadsheetId string, batchgetvaluesbydatafilterrequest *BatchGetValuesByDataFilterRequest) *SpreadsheetsValuesBatchGetByDataFilterCall {
11046	c := &SpreadsheetsValuesBatchGetByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11047	c.spreadsheetId = spreadsheetId
11048	c.batchgetvaluesbydatafilterrequest = batchgetvaluesbydatafilterrequest
11049	return c
11050}
11051
11052// Fields allows partial responses to be retrieved. See
11053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11054// for more information.
11055func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchGetByDataFilterCall {
11056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11057	return c
11058}
11059
11060// Context sets the context to be used in this call's Do method. Any
11061// pending HTTP request will be aborted if the provided context is
11062// canceled.
11063func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchGetByDataFilterCall {
11064	c.ctx_ = ctx
11065	return c
11066}
11067
11068// Header returns an http.Header that can be modified by the caller to
11069// add HTTP headers to the request.
11070func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Header() http.Header {
11071	if c.header_ == nil {
11072		c.header_ = make(http.Header)
11073	}
11074	return c.header_
11075}
11076
11077func (c *SpreadsheetsValuesBatchGetByDataFilterCall) doRequest(alt string) (*http.Response, error) {
11078	reqHeaders := make(http.Header)
11079	for k, v := range c.header_ {
11080		reqHeaders[k] = v
11081	}
11082	reqHeaders.Set("User-Agent", c.s.userAgent())
11083	var body io.Reader = nil
11084	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchgetvaluesbydatafilterrequest)
11085	if err != nil {
11086		return nil, err
11087	}
11088	reqHeaders.Set("Content-Type", "application/json")
11089	c.urlParams_.Set("alt", alt)
11090	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter")
11091	urls += "?" + c.urlParams_.Encode()
11092	req, _ := http.NewRequest("POST", urls, body)
11093	req.Header = reqHeaders
11094	googleapi.Expand(req.URL, map[string]string{
11095		"spreadsheetId": c.spreadsheetId,
11096	})
11097	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11098}
11099
11100// Do executes the "sheets.spreadsheets.values.batchGetByDataFilter" call.
11101// Exactly one of *BatchGetValuesByDataFilterResponse or error will be
11102// non-nil. Any non-2xx status code is an error. Response headers are in
11103// either *BatchGetValuesByDataFilterResponse.ServerResponse.Header or
11104// (if a response was returned at all) in
11105// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
11106// whether the returned error was because http.StatusNotModified was
11107// returned.
11108func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchGetValuesByDataFilterResponse, error) {
11109	gensupport.SetOptions(c.urlParams_, opts...)
11110	res, err := c.doRequest("json")
11111	if res != nil && res.StatusCode == http.StatusNotModified {
11112		if res.Body != nil {
11113			res.Body.Close()
11114		}
11115		return nil, &googleapi.Error{
11116			Code:   res.StatusCode,
11117			Header: res.Header,
11118		}
11119	}
11120	if err != nil {
11121		return nil, err
11122	}
11123	defer googleapi.CloseBody(res)
11124	if err := googleapi.CheckResponse(res); err != nil {
11125		return nil, err
11126	}
11127	ret := &BatchGetValuesByDataFilterResponse{
11128		ServerResponse: googleapi.ServerResponse{
11129			Header:         res.Header,
11130			HTTPStatusCode: res.StatusCode,
11131		},
11132	}
11133	target := &ret
11134	if err := gensupport.DecodeResponse(target, res); err != nil {
11135		return nil, err
11136	}
11137	return ret, nil
11138	// {
11139	//   "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.",
11140	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter",
11141	//   "httpMethod": "POST",
11142	//   "id": "sheets.spreadsheets.values.batchGetByDataFilter",
11143	//   "parameterOrder": [
11144	//     "spreadsheetId"
11145	//   ],
11146	//   "parameters": {
11147	//     "spreadsheetId": {
11148	//       "description": "The ID of the spreadsheet to retrieve data from.",
11149	//       "location": "path",
11150	//       "required": true,
11151	//       "type": "string"
11152	//     }
11153	//   },
11154	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter",
11155	//   "request": {
11156	//     "$ref": "BatchGetValuesByDataFilterRequest"
11157	//   },
11158	//   "response": {
11159	//     "$ref": "BatchGetValuesByDataFilterResponse"
11160	//   },
11161	//   "scopes": [
11162	//     "https://www.googleapis.com/auth/drive",
11163	//     "https://www.googleapis.com/auth/drive.file",
11164	//     "https://www.googleapis.com/auth/spreadsheets"
11165	//   ]
11166	// }
11167
11168}
11169
11170// method id "sheets.spreadsheets.values.batchUpdate":
11171
11172type SpreadsheetsValuesBatchUpdateCall struct {
11173	s                        *Service
11174	spreadsheetId            string
11175	batchupdatevaluesrequest *BatchUpdateValuesRequest
11176	urlParams_               gensupport.URLParams
11177	ctx_                     context.Context
11178	header_                  http.Header
11179}
11180
11181// BatchUpdate: Sets values in one or more ranges of a spreadsheet.
11182// The caller must specify the spreadsheet ID,
11183// a valueInputOption, and one or more
11184// ValueRanges.
11185func (r *SpreadsheetsValuesService) BatchUpdate(spreadsheetId string, batchupdatevaluesrequest *BatchUpdateValuesRequest) *SpreadsheetsValuesBatchUpdateCall {
11186	c := &SpreadsheetsValuesBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11187	c.spreadsheetId = spreadsheetId
11188	c.batchupdatevaluesrequest = batchupdatevaluesrequest
11189	return c
11190}
11191
11192// Fields allows partial responses to be retrieved. See
11193// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11194// for more information.
11195func (c *SpreadsheetsValuesBatchUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchUpdateCall {
11196	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11197	return c
11198}
11199
11200// Context sets the context to be used in this call's Do method. Any
11201// pending HTTP request will be aborted if the provided context is
11202// canceled.
11203func (c *SpreadsheetsValuesBatchUpdateCall) Context(ctx context.Context) *SpreadsheetsValuesBatchUpdateCall {
11204	c.ctx_ = ctx
11205	return c
11206}
11207
11208// Header returns an http.Header that can be modified by the caller to
11209// add HTTP headers to the request.
11210func (c *SpreadsheetsValuesBatchUpdateCall) Header() http.Header {
11211	if c.header_ == nil {
11212		c.header_ = make(http.Header)
11213	}
11214	return c.header_
11215}
11216
11217func (c *SpreadsheetsValuesBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
11218	reqHeaders := make(http.Header)
11219	for k, v := range c.header_ {
11220		reqHeaders[k] = v
11221	}
11222	reqHeaders.Set("User-Agent", c.s.userAgent())
11223	var body io.Reader = nil
11224	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatevaluesrequest)
11225	if err != nil {
11226		return nil, err
11227	}
11228	reqHeaders.Set("Content-Type", "application/json")
11229	c.urlParams_.Set("alt", alt)
11230	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchUpdate")
11231	urls += "?" + c.urlParams_.Encode()
11232	req, _ := http.NewRequest("POST", urls, body)
11233	req.Header = reqHeaders
11234	googleapi.Expand(req.URL, map[string]string{
11235		"spreadsheetId": c.spreadsheetId,
11236	})
11237	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11238}
11239
11240// Do executes the "sheets.spreadsheets.values.batchUpdate" call.
11241// Exactly one of *BatchUpdateValuesResponse or error will be non-nil.
11242// Any non-2xx status code is an error. Response headers are in either
11243// *BatchUpdateValuesResponse.ServerResponse.Header or (if a response
11244// was returned at all) in error.(*googleapi.Error).Header. Use
11245// googleapi.IsNotModified to check whether the returned error was
11246// because http.StatusNotModified was returned.
11247func (c *SpreadsheetsValuesBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdateValuesResponse, error) {
11248	gensupport.SetOptions(c.urlParams_, opts...)
11249	res, err := c.doRequest("json")
11250	if res != nil && res.StatusCode == http.StatusNotModified {
11251		if res.Body != nil {
11252			res.Body.Close()
11253		}
11254		return nil, &googleapi.Error{
11255			Code:   res.StatusCode,
11256			Header: res.Header,
11257		}
11258	}
11259	if err != nil {
11260		return nil, err
11261	}
11262	defer googleapi.CloseBody(res)
11263	if err := googleapi.CheckResponse(res); err != nil {
11264		return nil, err
11265	}
11266	ret := &BatchUpdateValuesResponse{
11267		ServerResponse: googleapi.ServerResponse{
11268			Header:         res.Header,
11269			HTTPStatusCode: res.StatusCode,
11270		},
11271	}
11272	target := &ret
11273	if err := gensupport.DecodeResponse(target, res); err != nil {
11274		return nil, err
11275	}
11276	return ret, nil
11277	// {
11278	//   "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.",
11279	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate",
11280	//   "httpMethod": "POST",
11281	//   "id": "sheets.spreadsheets.values.batchUpdate",
11282	//   "parameterOrder": [
11283	//     "spreadsheetId"
11284	//   ],
11285	//   "parameters": {
11286	//     "spreadsheetId": {
11287	//       "description": "The ID of the spreadsheet to update.",
11288	//       "location": "path",
11289	//       "required": true,
11290	//       "type": "string"
11291	//     }
11292	//   },
11293	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate",
11294	//   "request": {
11295	//     "$ref": "BatchUpdateValuesRequest"
11296	//   },
11297	//   "response": {
11298	//     "$ref": "BatchUpdateValuesResponse"
11299	//   },
11300	//   "scopes": [
11301	//     "https://www.googleapis.com/auth/drive",
11302	//     "https://www.googleapis.com/auth/drive.file",
11303	//     "https://www.googleapis.com/auth/spreadsheets"
11304	//   ]
11305	// }
11306
11307}
11308
11309// method id "sheets.spreadsheets.values.batchUpdateByDataFilter":
11310
11311type SpreadsheetsValuesBatchUpdateByDataFilterCall struct {
11312	s                                    *Service
11313	spreadsheetId                        string
11314	batchupdatevaluesbydatafilterrequest *BatchUpdateValuesByDataFilterRequest
11315	urlParams_                           gensupport.URLParams
11316	ctx_                                 context.Context
11317	header_                              http.Header
11318}
11319
11320// BatchUpdateByDataFilter: Sets values in one or more ranges of a
11321// spreadsheet.
11322// The caller must specify the spreadsheet ID,
11323// a valueInputOption, and one or more
11324// DataFilterValueRanges.
11325func (r *SpreadsheetsValuesService) BatchUpdateByDataFilter(spreadsheetId string, batchupdatevaluesbydatafilterrequest *BatchUpdateValuesByDataFilterRequest) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
11326	c := &SpreadsheetsValuesBatchUpdateByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11327	c.spreadsheetId = spreadsheetId
11328	c.batchupdatevaluesbydatafilterrequest = batchupdatevaluesbydatafilterrequest
11329	return c
11330}
11331
11332// Fields allows partial responses to be retrieved. See
11333// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11334// for more information.
11335func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
11336	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11337	return c
11338}
11339
11340// Context sets the context to be used in this call's Do method. Any
11341// pending HTTP request will be aborted if the provided context is
11342// canceled.
11343func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Context(ctx context.Context) *SpreadsheetsValuesBatchUpdateByDataFilterCall {
11344	c.ctx_ = ctx
11345	return c
11346}
11347
11348// Header returns an http.Header that can be modified by the caller to
11349// add HTTP headers to the request.
11350func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Header() http.Header {
11351	if c.header_ == nil {
11352		c.header_ = make(http.Header)
11353	}
11354	return c.header_
11355}
11356
11357func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) doRequest(alt string) (*http.Response, error) {
11358	reqHeaders := make(http.Header)
11359	for k, v := range c.header_ {
11360		reqHeaders[k] = v
11361	}
11362	reqHeaders.Set("User-Agent", c.s.userAgent())
11363	var body io.Reader = nil
11364	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatevaluesbydatafilterrequest)
11365	if err != nil {
11366		return nil, err
11367	}
11368	reqHeaders.Set("Content-Type", "application/json")
11369	c.urlParams_.Set("alt", alt)
11370	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter")
11371	urls += "?" + c.urlParams_.Encode()
11372	req, _ := http.NewRequest("POST", urls, body)
11373	req.Header = reqHeaders
11374	googleapi.Expand(req.URL, map[string]string{
11375		"spreadsheetId": c.spreadsheetId,
11376	})
11377	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11378}
11379
11380// Do executes the "sheets.spreadsheets.values.batchUpdateByDataFilter" call.
11381// Exactly one of *BatchUpdateValuesByDataFilterResponse or error will
11382// be non-nil. Any non-2xx status code is an error. Response headers are
11383// in either
11384// *BatchUpdateValuesByDataFilterResponse.ServerResponse.Header or (if a
11385// response was returned at all) in error.(*googleapi.Error).Header. Use
11386// googleapi.IsNotModified to check whether the returned error was
11387// because http.StatusNotModified was returned.
11388func (c *SpreadsheetsValuesBatchUpdateByDataFilterCall) Do(opts ...googleapi.CallOption) (*BatchUpdateValuesByDataFilterResponse, error) {
11389	gensupport.SetOptions(c.urlParams_, opts...)
11390	res, err := c.doRequest("json")
11391	if res != nil && res.StatusCode == http.StatusNotModified {
11392		if res.Body != nil {
11393			res.Body.Close()
11394		}
11395		return nil, &googleapi.Error{
11396			Code:   res.StatusCode,
11397			Header: res.Header,
11398		}
11399	}
11400	if err != nil {
11401		return nil, err
11402	}
11403	defer googleapi.CloseBody(res)
11404	if err := googleapi.CheckResponse(res); err != nil {
11405		return nil, err
11406	}
11407	ret := &BatchUpdateValuesByDataFilterResponse{
11408		ServerResponse: googleapi.ServerResponse{
11409			Header:         res.Header,
11410			HTTPStatusCode: res.StatusCode,
11411		},
11412	}
11413	target := &ret
11414	if err := gensupport.DecodeResponse(target, res); err != nil {
11415		return nil, err
11416	}
11417	return ret, nil
11418	// {
11419	//   "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.",
11420	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter",
11421	//   "httpMethod": "POST",
11422	//   "id": "sheets.spreadsheets.values.batchUpdateByDataFilter",
11423	//   "parameterOrder": [
11424	//     "spreadsheetId"
11425	//   ],
11426	//   "parameters": {
11427	//     "spreadsheetId": {
11428	//       "description": "The ID of the spreadsheet to update.",
11429	//       "location": "path",
11430	//       "required": true,
11431	//       "type": "string"
11432	//     }
11433	//   },
11434	//   "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter",
11435	//   "request": {
11436	//     "$ref": "BatchUpdateValuesByDataFilterRequest"
11437	//   },
11438	//   "response": {
11439	//     "$ref": "BatchUpdateValuesByDataFilterResponse"
11440	//   },
11441	//   "scopes": [
11442	//     "https://www.googleapis.com/auth/drive",
11443	//     "https://www.googleapis.com/auth/drive.file",
11444	//     "https://www.googleapis.com/auth/spreadsheets"
11445	//   ]
11446	// }
11447
11448}
11449
11450// method id "sheets.spreadsheets.values.clear":
11451
11452type SpreadsheetsValuesClearCall struct {
11453	s                  *Service
11454	spreadsheetId      string
11455	range_             string
11456	clearvaluesrequest *ClearValuesRequest
11457	urlParams_         gensupport.URLParams
11458	ctx_               context.Context
11459	header_            http.Header
11460}
11461
11462// Clear: Clears values from a spreadsheet.
11463// The caller must specify the spreadsheet ID and range.
11464// Only values are cleared -- all other properties of the cell (such
11465// as
11466// formatting, data validation, etc..) are kept.
11467func (r *SpreadsheetsValuesService) Clear(spreadsheetId string, range_ string, clearvaluesrequest *ClearValuesRequest) *SpreadsheetsValuesClearCall {
11468	c := &SpreadsheetsValuesClearCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11469	c.spreadsheetId = spreadsheetId
11470	c.range_ = range_
11471	c.clearvaluesrequest = clearvaluesrequest
11472	return c
11473}
11474
11475// Fields allows partial responses to be retrieved. See
11476// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11477// for more information.
11478func (c *SpreadsheetsValuesClearCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesClearCall {
11479	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11480	return c
11481}
11482
11483// Context sets the context to be used in this call's Do method. Any
11484// pending HTTP request will be aborted if the provided context is
11485// canceled.
11486func (c *SpreadsheetsValuesClearCall) Context(ctx context.Context) *SpreadsheetsValuesClearCall {
11487	c.ctx_ = ctx
11488	return c
11489}
11490
11491// Header returns an http.Header that can be modified by the caller to
11492// add HTTP headers to the request.
11493func (c *SpreadsheetsValuesClearCall) Header() http.Header {
11494	if c.header_ == nil {
11495		c.header_ = make(http.Header)
11496	}
11497	return c.header_
11498}
11499
11500func (c *SpreadsheetsValuesClearCall) doRequest(alt string) (*http.Response, error) {
11501	reqHeaders := make(http.Header)
11502	for k, v := range c.header_ {
11503		reqHeaders[k] = v
11504	}
11505	reqHeaders.Set("User-Agent", c.s.userAgent())
11506	var body io.Reader = nil
11507	body, err := googleapi.WithoutDataWrapper.JSONReader(c.clearvaluesrequest)
11508	if err != nil {
11509		return nil, err
11510	}
11511	reqHeaders.Set("Content-Type", "application/json")
11512	c.urlParams_.Set("alt", alt)
11513	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}:clear")
11514	urls += "?" + c.urlParams_.Encode()
11515	req, _ := http.NewRequest("POST", urls, body)
11516	req.Header = reqHeaders
11517	googleapi.Expand(req.URL, map[string]string{
11518		"spreadsheetId": c.spreadsheetId,
11519		"range":         c.range_,
11520	})
11521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11522}
11523
11524// Do executes the "sheets.spreadsheets.values.clear" call.
11525// Exactly one of *ClearValuesResponse or error will be non-nil. Any
11526// non-2xx status code is an error. Response headers are in either
11527// *ClearValuesResponse.ServerResponse.Header or (if a response was
11528// returned at all) in error.(*googleapi.Error).Header. Use
11529// googleapi.IsNotModified to check whether the returned error was
11530// because http.StatusNotModified was returned.
11531func (c *SpreadsheetsValuesClearCall) Do(opts ...googleapi.CallOption) (*ClearValuesResponse, error) {
11532	gensupport.SetOptions(c.urlParams_, opts...)
11533	res, err := c.doRequest("json")
11534	if res != nil && res.StatusCode == http.StatusNotModified {
11535		if res.Body != nil {
11536			res.Body.Close()
11537		}
11538		return nil, &googleapi.Error{
11539			Code:   res.StatusCode,
11540			Header: res.Header,
11541		}
11542	}
11543	if err != nil {
11544		return nil, err
11545	}
11546	defer googleapi.CloseBody(res)
11547	if err := googleapi.CheckResponse(res); err != nil {
11548		return nil, err
11549	}
11550	ret := &ClearValuesResponse{
11551		ServerResponse: googleapi.ServerResponse{
11552			Header:         res.Header,
11553			HTTPStatusCode: res.StatusCode,
11554		},
11555	}
11556	target := &ret
11557	if err := gensupport.DecodeResponse(target, res); err != nil {
11558		return nil, err
11559	}
11560	return ret, nil
11561	// {
11562	//   "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.",
11563	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear",
11564	//   "httpMethod": "POST",
11565	//   "id": "sheets.spreadsheets.values.clear",
11566	//   "parameterOrder": [
11567	//     "spreadsheetId",
11568	//     "range"
11569	//   ],
11570	//   "parameters": {
11571	//     "range": {
11572	//       "description": "The A1 notation of the values to clear.",
11573	//       "location": "path",
11574	//       "required": true,
11575	//       "type": "string"
11576	//     },
11577	//     "spreadsheetId": {
11578	//       "description": "The ID of the spreadsheet to update.",
11579	//       "location": "path",
11580	//       "required": true,
11581	//       "type": "string"
11582	//     }
11583	//   },
11584	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear",
11585	//   "request": {
11586	//     "$ref": "ClearValuesRequest"
11587	//   },
11588	//   "response": {
11589	//     "$ref": "ClearValuesResponse"
11590	//   },
11591	//   "scopes": [
11592	//     "https://www.googleapis.com/auth/drive",
11593	//     "https://www.googleapis.com/auth/drive.file",
11594	//     "https://www.googleapis.com/auth/spreadsheets"
11595	//   ]
11596	// }
11597
11598}
11599
11600// method id "sheets.spreadsheets.values.get":
11601
11602type SpreadsheetsValuesGetCall struct {
11603	s             *Service
11604	spreadsheetId string
11605	range_        string
11606	urlParams_    gensupport.URLParams
11607	ifNoneMatch_  string
11608	ctx_          context.Context
11609	header_       http.Header
11610}
11611
11612// Get: Returns a range of values from a spreadsheet.
11613// The caller must specify the spreadsheet ID and a range.
11614func (r *SpreadsheetsValuesService) Get(spreadsheetId string, range_ string) *SpreadsheetsValuesGetCall {
11615	c := &SpreadsheetsValuesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11616	c.spreadsheetId = spreadsheetId
11617	c.range_ = range_
11618	return c
11619}
11620
11621// DateTimeRenderOption sets the optional parameter
11622// "dateTimeRenderOption": How dates, times, and durations should be
11623// represented in the output.
11624// This is ignored if value_render_option is
11625// FORMATTED_VALUE.
11626// The default dateTime render option is
11627// [DateTimeRenderOption.SERIAL_NUMBER].
11628//
11629// Possible values:
11630//   "SERIAL_NUMBER"
11631//   "FORMATTED_STRING"
11632func (c *SpreadsheetsValuesGetCall) DateTimeRenderOption(dateTimeRenderOption string) *SpreadsheetsValuesGetCall {
11633	c.urlParams_.Set("dateTimeRenderOption", dateTimeRenderOption)
11634	return c
11635}
11636
11637// MajorDimension sets the optional parameter "majorDimension": The
11638// major dimension that results should use.
11639//
11640// For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
11641// then requesting `range=A1:B2,majorDimension=ROWS` will
11642// return
11643// `[[1,2],[3,4]]`,
11644// whereas requesting `range=A1:B2,majorDimension=COLUMNS` will
11645// return
11646// `[[1,3],[2,4]]`.
11647//
11648// Possible values:
11649//   "DIMENSION_UNSPECIFIED"
11650//   "ROWS"
11651//   "COLUMNS"
11652func (c *SpreadsheetsValuesGetCall) MajorDimension(majorDimension string) *SpreadsheetsValuesGetCall {
11653	c.urlParams_.Set("majorDimension", majorDimension)
11654	return c
11655}
11656
11657// ValueRenderOption sets the optional parameter "valueRenderOption":
11658// How values should be represented in the output.
11659// The default render option is ValueRenderOption.FORMATTED_VALUE.
11660//
11661// Possible values:
11662//   "FORMATTED_VALUE"
11663//   "UNFORMATTED_VALUE"
11664//   "FORMULA"
11665func (c *SpreadsheetsValuesGetCall) ValueRenderOption(valueRenderOption string) *SpreadsheetsValuesGetCall {
11666	c.urlParams_.Set("valueRenderOption", valueRenderOption)
11667	return c
11668}
11669
11670// Fields allows partial responses to be retrieved. See
11671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11672// for more information.
11673func (c *SpreadsheetsValuesGetCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesGetCall {
11674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11675	return c
11676}
11677
11678// IfNoneMatch sets the optional parameter which makes the operation
11679// fail if the object's ETag matches the given value. This is useful for
11680// getting updates only after the object has changed since the last
11681// request. Use googleapi.IsNotModified to check whether the response
11682// error from Do is the result of In-None-Match.
11683func (c *SpreadsheetsValuesGetCall) IfNoneMatch(entityTag string) *SpreadsheetsValuesGetCall {
11684	c.ifNoneMatch_ = entityTag
11685	return c
11686}
11687
11688// Context sets the context to be used in this call's Do method. Any
11689// pending HTTP request will be aborted if the provided context is
11690// canceled.
11691func (c *SpreadsheetsValuesGetCall) Context(ctx context.Context) *SpreadsheetsValuesGetCall {
11692	c.ctx_ = ctx
11693	return c
11694}
11695
11696// Header returns an http.Header that can be modified by the caller to
11697// add HTTP headers to the request.
11698func (c *SpreadsheetsValuesGetCall) Header() http.Header {
11699	if c.header_ == nil {
11700		c.header_ = make(http.Header)
11701	}
11702	return c.header_
11703}
11704
11705func (c *SpreadsheetsValuesGetCall) doRequest(alt string) (*http.Response, error) {
11706	reqHeaders := make(http.Header)
11707	for k, v := range c.header_ {
11708		reqHeaders[k] = v
11709	}
11710	reqHeaders.Set("User-Agent", c.s.userAgent())
11711	if c.ifNoneMatch_ != "" {
11712		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11713	}
11714	var body io.Reader = nil
11715	c.urlParams_.Set("alt", alt)
11716	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}")
11717	urls += "?" + c.urlParams_.Encode()
11718	req, _ := http.NewRequest("GET", urls, body)
11719	req.Header = reqHeaders
11720	googleapi.Expand(req.URL, map[string]string{
11721		"spreadsheetId": c.spreadsheetId,
11722		"range":         c.range_,
11723	})
11724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11725}
11726
11727// Do executes the "sheets.spreadsheets.values.get" call.
11728// Exactly one of *ValueRange or error will be non-nil. Any non-2xx
11729// status code is an error. Response headers are in either
11730// *ValueRange.ServerResponse.Header or (if a response was returned at
11731// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11732// to check whether the returned error was because
11733// http.StatusNotModified was returned.
11734func (c *SpreadsheetsValuesGetCall) Do(opts ...googleapi.CallOption) (*ValueRange, error) {
11735	gensupport.SetOptions(c.urlParams_, opts...)
11736	res, err := c.doRequest("json")
11737	if res != nil && res.StatusCode == http.StatusNotModified {
11738		if res.Body != nil {
11739			res.Body.Close()
11740		}
11741		return nil, &googleapi.Error{
11742			Code:   res.StatusCode,
11743			Header: res.Header,
11744		}
11745	}
11746	if err != nil {
11747		return nil, err
11748	}
11749	defer googleapi.CloseBody(res)
11750	if err := googleapi.CheckResponse(res); err != nil {
11751		return nil, err
11752	}
11753	ret := &ValueRange{
11754		ServerResponse: googleapi.ServerResponse{
11755			Header:         res.Header,
11756			HTTPStatusCode: res.StatusCode,
11757		},
11758	}
11759	target := &ret
11760	if err := gensupport.DecodeResponse(target, res); err != nil {
11761		return nil, err
11762	}
11763	return ret, nil
11764	// {
11765	//   "description": "Returns a range of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and a range.",
11766	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}",
11767	//   "httpMethod": "GET",
11768	//   "id": "sheets.spreadsheets.values.get",
11769	//   "parameterOrder": [
11770	//     "spreadsheetId",
11771	//     "range"
11772	//   ],
11773	//   "parameters": {
11774	//     "dateTimeRenderOption": {
11775	//       "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].",
11776	//       "enum": [
11777	//         "SERIAL_NUMBER",
11778	//         "FORMATTED_STRING"
11779	//       ],
11780	//       "location": "query",
11781	//       "type": "string"
11782	//     },
11783	//     "majorDimension": {
11784	//       "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` will return\n`[[1,2],[3,4]]`,\nwhereas requesting `range=A1:B2,majorDimension=COLUMNS` will return\n`[[1,3],[2,4]]`.",
11785	//       "enum": [
11786	//         "DIMENSION_UNSPECIFIED",
11787	//         "ROWS",
11788	//         "COLUMNS"
11789	//       ],
11790	//       "location": "query",
11791	//       "type": "string"
11792	//     },
11793	//     "range": {
11794	//       "description": "The A1 notation of the values to retrieve.",
11795	//       "location": "path",
11796	//       "required": true,
11797	//       "type": "string"
11798	//     },
11799	//     "spreadsheetId": {
11800	//       "description": "The ID of the spreadsheet to retrieve data from.",
11801	//       "location": "path",
11802	//       "required": true,
11803	//       "type": "string"
11804	//     },
11805	//     "valueRenderOption": {
11806	//       "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
11807	//       "enum": [
11808	//         "FORMATTED_VALUE",
11809	//         "UNFORMATTED_VALUE",
11810	//         "FORMULA"
11811	//       ],
11812	//       "location": "query",
11813	//       "type": "string"
11814	//     }
11815	//   },
11816	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}",
11817	//   "response": {
11818	//     "$ref": "ValueRange"
11819	//   },
11820	//   "scopes": [
11821	//     "https://www.googleapis.com/auth/drive",
11822	//     "https://www.googleapis.com/auth/drive.file",
11823	//     "https://www.googleapis.com/auth/drive.readonly",
11824	//     "https://www.googleapis.com/auth/spreadsheets",
11825	//     "https://www.googleapis.com/auth/spreadsheets.readonly"
11826	//   ]
11827	// }
11828
11829}
11830
11831// method id "sheets.spreadsheets.values.update":
11832
11833type SpreadsheetsValuesUpdateCall struct {
11834	s             *Service
11835	spreadsheetId string
11836	range_        string
11837	valuerange    *ValueRange
11838	urlParams_    gensupport.URLParams
11839	ctx_          context.Context
11840	header_       http.Header
11841}
11842
11843// Update: Sets values in a range of a spreadsheet.
11844// The caller must specify the spreadsheet ID, range, and
11845// a valueInputOption.
11846func (r *SpreadsheetsValuesService) Update(spreadsheetId string, range_ string, valuerange *ValueRange) *SpreadsheetsValuesUpdateCall {
11847	c := &SpreadsheetsValuesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11848	c.spreadsheetId = spreadsheetId
11849	c.range_ = range_
11850	c.valuerange = valuerange
11851	return c
11852}
11853
11854// IncludeValuesInResponse sets the optional parameter
11855// "includeValuesInResponse": Determines if the update response should
11856// include the values
11857// of the cells that were updated. By default, responses
11858// do not include the updated values.
11859// If the range to write was larger than than the range actually
11860// written,
11861// the response will include all values in the requested range
11862// (excluding
11863// trailing empty rows and columns).
11864func (c *SpreadsheetsValuesUpdateCall) IncludeValuesInResponse(includeValuesInResponse bool) *SpreadsheetsValuesUpdateCall {
11865	c.urlParams_.Set("includeValuesInResponse", fmt.Sprint(includeValuesInResponse))
11866	return c
11867}
11868
11869// ResponseDateTimeRenderOption sets the optional parameter
11870// "responseDateTimeRenderOption": Determines how dates, times, and
11871// durations in the response should be
11872// rendered. This is ignored if response_value_render_option
11873// is
11874// FORMATTED_VALUE.
11875// The default dateTime render option is
11876// [DateTimeRenderOption.SERIAL_NUMBER].
11877//
11878// Possible values:
11879//   "SERIAL_NUMBER"
11880//   "FORMATTED_STRING"
11881func (c *SpreadsheetsValuesUpdateCall) ResponseDateTimeRenderOption(responseDateTimeRenderOption string) *SpreadsheetsValuesUpdateCall {
11882	c.urlParams_.Set("responseDateTimeRenderOption", responseDateTimeRenderOption)
11883	return c
11884}
11885
11886// ResponseValueRenderOption sets the optional parameter
11887// "responseValueRenderOption": Determines how values in the response
11888// should be rendered.
11889// The default render option is ValueRenderOption.FORMATTED_VALUE.
11890//
11891// Possible values:
11892//   "FORMATTED_VALUE"
11893//   "UNFORMATTED_VALUE"
11894//   "FORMULA"
11895func (c *SpreadsheetsValuesUpdateCall) ResponseValueRenderOption(responseValueRenderOption string) *SpreadsheetsValuesUpdateCall {
11896	c.urlParams_.Set("responseValueRenderOption", responseValueRenderOption)
11897	return c
11898}
11899
11900// ValueInputOption sets the optional parameter "valueInputOption": How
11901// the input data should be interpreted.
11902//
11903// Possible values:
11904//   "INPUT_VALUE_OPTION_UNSPECIFIED"
11905//   "RAW"
11906//   "USER_ENTERED"
11907func (c *SpreadsheetsValuesUpdateCall) ValueInputOption(valueInputOption string) *SpreadsheetsValuesUpdateCall {
11908	c.urlParams_.Set("valueInputOption", valueInputOption)
11909	return c
11910}
11911
11912// Fields allows partial responses to be retrieved. See
11913// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11914// for more information.
11915func (c *SpreadsheetsValuesUpdateCall) Fields(s ...googleapi.Field) *SpreadsheetsValuesUpdateCall {
11916	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11917	return c
11918}
11919
11920// Context sets the context to be used in this call's Do method. Any
11921// pending HTTP request will be aborted if the provided context is
11922// canceled.
11923func (c *SpreadsheetsValuesUpdateCall) Context(ctx context.Context) *SpreadsheetsValuesUpdateCall {
11924	c.ctx_ = ctx
11925	return c
11926}
11927
11928// Header returns an http.Header that can be modified by the caller to
11929// add HTTP headers to the request.
11930func (c *SpreadsheetsValuesUpdateCall) Header() http.Header {
11931	if c.header_ == nil {
11932		c.header_ = make(http.Header)
11933	}
11934	return c.header_
11935}
11936
11937func (c *SpreadsheetsValuesUpdateCall) doRequest(alt string) (*http.Response, error) {
11938	reqHeaders := make(http.Header)
11939	for k, v := range c.header_ {
11940		reqHeaders[k] = v
11941	}
11942	reqHeaders.Set("User-Agent", c.s.userAgent())
11943	var body io.Reader = nil
11944	body, err := googleapi.WithoutDataWrapper.JSONReader(c.valuerange)
11945	if err != nil {
11946		return nil, err
11947	}
11948	reqHeaders.Set("Content-Type", "application/json")
11949	c.urlParams_.Set("alt", alt)
11950	urls := googleapi.ResolveRelative(c.s.BasePath, "v4/spreadsheets/{spreadsheetId}/values/{range}")
11951	urls += "?" + c.urlParams_.Encode()
11952	req, _ := http.NewRequest("PUT", urls, body)
11953	req.Header = reqHeaders
11954	googleapi.Expand(req.URL, map[string]string{
11955		"spreadsheetId": c.spreadsheetId,
11956		"range":         c.range_,
11957	})
11958	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11959}
11960
11961// Do executes the "sheets.spreadsheets.values.update" call.
11962// Exactly one of *UpdateValuesResponse or error will be non-nil. Any
11963// non-2xx status code is an error. Response headers are in either
11964// *UpdateValuesResponse.ServerResponse.Header or (if a response was
11965// returned at all) in error.(*googleapi.Error).Header. Use
11966// googleapi.IsNotModified to check whether the returned error was
11967// because http.StatusNotModified was returned.
11968func (c *SpreadsheetsValuesUpdateCall) Do(opts ...googleapi.CallOption) (*UpdateValuesResponse, error) {
11969	gensupport.SetOptions(c.urlParams_, opts...)
11970	res, err := c.doRequest("json")
11971	if res != nil && res.StatusCode == http.StatusNotModified {
11972		if res.Body != nil {
11973			res.Body.Close()
11974		}
11975		return nil, &googleapi.Error{
11976			Code:   res.StatusCode,
11977			Header: res.Header,
11978		}
11979	}
11980	if err != nil {
11981		return nil, err
11982	}
11983	defer googleapi.CloseBody(res)
11984	if err := googleapi.CheckResponse(res); err != nil {
11985		return nil, err
11986	}
11987	ret := &UpdateValuesResponse{
11988		ServerResponse: googleapi.ServerResponse{
11989			Header:         res.Header,
11990			HTTPStatusCode: res.StatusCode,
11991		},
11992	}
11993	target := &ret
11994	if err := gensupport.DecodeResponse(target, res); err != nil {
11995		return nil, err
11996	}
11997	return ret, nil
11998	// {
11999	//   "description": "Sets values in a range of a spreadsheet.\nThe caller must specify the spreadsheet ID, range, and\na valueInputOption.",
12000	//   "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}",
12001	//   "httpMethod": "PUT",
12002	//   "id": "sheets.spreadsheets.values.update",
12003	//   "parameterOrder": [
12004	//     "spreadsheetId",
12005	//     "range"
12006	//   ],
12007	//   "parameters": {
12008	//     "includeValuesInResponse": {
12009	//       "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 than the range actually written,\nthe response will include all values in the requested range (excluding\ntrailing empty rows and columns).",
12010	//       "location": "query",
12011	//       "type": "boolean"
12012	//     },
12013	//     "range": {
12014	//       "description": "The A1 notation of the values to update.",
12015	//       "location": "path",
12016	//       "required": true,
12017	//       "type": "string"
12018	//     },
12019	//     "responseDateTimeRenderOption": {
12020	//       "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].",
12021	//       "enum": [
12022	//         "SERIAL_NUMBER",
12023	//         "FORMATTED_STRING"
12024	//       ],
12025	//       "location": "query",
12026	//       "type": "string"
12027	//     },
12028	//     "responseValueRenderOption": {
12029	//       "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.",
12030	//       "enum": [
12031	//         "FORMATTED_VALUE",
12032	//         "UNFORMATTED_VALUE",
12033	//         "FORMULA"
12034	//       ],
12035	//       "location": "query",
12036	//       "type": "string"
12037	//     },
12038	//     "spreadsheetId": {
12039	//       "description": "The ID of the spreadsheet to update.",
12040	//       "location": "path",
12041	//       "required": true,
12042	//       "type": "string"
12043	//     },
12044	//     "valueInputOption": {
12045	//       "description": "How the input data should be interpreted.",
12046	//       "enum": [
12047	//         "INPUT_VALUE_OPTION_UNSPECIFIED",
12048	//         "RAW",
12049	//         "USER_ENTERED"
12050	//       ],
12051	//       "location": "query",
12052	//       "type": "string"
12053	//     }
12054	//   },
12055	//   "path": "v4/spreadsheets/{spreadsheetId}/values/{range}",
12056	//   "request": {
12057	//     "$ref": "ValueRange"
12058	//   },
12059	//   "response": {
12060	//     "$ref": "UpdateValuesResponse"
12061	//   },
12062	//   "scopes": [
12063	//     "https://www.googleapis.com/auth/drive",
12064	//     "https://www.googleapis.com/auth/drive.file",
12065	//     "https://www.googleapis.com/auth/spreadsheets"
12066	//   ]
12067	// }
12068
12069}
12070