1// Copyright 2020 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package docs provides access to the Google Docs API.
8//
9// For product documentation, see: https://developers.google.com/docs/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/docs/v1"
16//   ...
17//   ctx := context.Background()
18//   docsService, err := docs.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   docsService, err := docs.NewService(ctx, option.WithScopes(docs.DriveReadonlyScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   docsService, err := docs.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   docsService, err := docs.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package docs // import "google.golang.org/api/docs/v1"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "docs:v1"
79const apiName = "docs"
80const apiVersion = "v1"
81const basePath = "https://docs.googleapis.com/"
82const mtlsBasePath = "https://docs.mtls.googleapis.com/"
83
84// OAuth2 scopes used by this API.
85const (
86	// View and manage your Google Docs documents
87	DocumentsScope = "https://www.googleapis.com/auth/documents"
88
89	// View your Google Docs documents
90	DocumentsReadonlyScope = "https://www.googleapis.com/auth/documents.readonly"
91
92	// See, edit, create, and delete all of your Google Drive files
93	DriveScope = "https://www.googleapis.com/auth/drive"
94
95	// View and manage Google Drive files and folders that you have opened
96	// or created with this app
97	DriveFileScope = "https://www.googleapis.com/auth/drive.file"
98
99	// See and download all your Google Drive files
100	DriveReadonlyScope = "https://www.googleapis.com/auth/drive.readonly"
101)
102
103// NewService creates a new Service.
104func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
105	scopesOption := option.WithScopes(
106		"https://www.googleapis.com/auth/documents",
107		"https://www.googleapis.com/auth/documents.readonly",
108		"https://www.googleapis.com/auth/drive",
109		"https://www.googleapis.com/auth/drive.file",
110		"https://www.googleapis.com/auth/drive.readonly",
111	)
112	// NOTE: prepend, so we don't override user-specified scopes.
113	opts = append([]option.ClientOption{scopesOption}, opts...)
114	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
115	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
116	client, endpoint, err := htransport.NewClient(ctx, opts...)
117	if err != nil {
118		return nil, err
119	}
120	s, err := New(client)
121	if err != nil {
122		return nil, err
123	}
124	if endpoint != "" {
125		s.BasePath = endpoint
126	}
127	return s, nil
128}
129
130// New creates a new Service. It uses the provided http.Client for requests.
131//
132// Deprecated: please use NewService instead.
133// To provide a custom HTTP client, use option.WithHTTPClient.
134// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
135func New(client *http.Client) (*Service, error) {
136	if client == nil {
137		return nil, errors.New("client is nil")
138	}
139	s := &Service{client: client, BasePath: basePath}
140	s.Documents = NewDocumentsService(s)
141	return s, nil
142}
143
144type Service struct {
145	client    *http.Client
146	BasePath  string // API endpoint base URL
147	UserAgent string // optional additional User-Agent fragment
148
149	Documents *DocumentsService
150}
151
152func (s *Service) userAgent() string {
153	if s.UserAgent == "" {
154		return googleapi.UserAgent
155	}
156	return googleapi.UserAgent + " " + s.UserAgent
157}
158
159func NewDocumentsService(s *Service) *DocumentsService {
160	rs := &DocumentsService{s: s}
161	return rs
162}
163
164type DocumentsService struct {
165	s *Service
166}
167
168// AutoText: A ParagraphElement representing a
169// spot in the text that is dynamically replaced with content that can
170// change
171// over time, like a page number.
172type AutoText struct {
173	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
174	// there are no suggested deletions
175	// of this content.
176	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
177
178	// SuggestedInsertionIds: The suggested insertion IDs. An AutoText
179	// may have multiple insertion IDs if it is a nested suggested change.
180	// If
181	// empty, then this is not a suggested insertion.
182	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
183
184	// SuggestedTextStyleChanges: The suggested text style changes to this
185	// AutoText, keyed by suggestion ID.
186	SuggestedTextStyleChanges map[string]SuggestedTextStyle `json:"suggestedTextStyleChanges,omitempty"`
187
188	// TextStyle: The text style of this AutoText.
189	TextStyle *TextStyle `json:"textStyle,omitempty"`
190
191	// Type: The type of this auto text.
192	//
193	// Possible values:
194	//   "TYPE_UNSPECIFIED" - An unspecified auto text type.
195	//   "PAGE_NUMBER" - Type for auto text that represents the current page
196	// number.
197	//   "PAGE_COUNT" - Type for auto text that represents the total number
198	// of pages in the
199	// document.
200	Type string `json:"type,omitempty"`
201
202	// ForceSendFields is a list of field names (e.g.
203	// "SuggestedDeletionIds") to unconditionally include in API requests.
204	// By default, fields with empty values are omitted from API requests.
205	// However, any non-pointer, non-interface field appearing in
206	// ForceSendFields will be sent to the server regardless of whether the
207	// field is empty or not. This may be used to include empty fields in
208	// Patch requests.
209	ForceSendFields []string `json:"-"`
210
211	// NullFields is a list of field names (e.g. "SuggestedDeletionIds") to
212	// include in API requests with the JSON null value. By default, fields
213	// with empty values are omitted from API requests. However, any field
214	// with an empty value appearing in NullFields will be sent to the
215	// server as null. It is an error if a field in this list has a
216	// non-empty value. This may be used to include null fields in Patch
217	// requests.
218	NullFields []string `json:"-"`
219}
220
221func (s *AutoText) MarshalJSON() ([]byte, error) {
222	type NoMethod AutoText
223	raw := NoMethod(*s)
224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
225}
226
227// Background: Represents the background of a document.
228type Background struct {
229	// Color: The background color.
230	Color *OptionalColor `json:"color,omitempty"`
231
232	// ForceSendFields is a list of field names (e.g. "Color") to
233	// unconditionally include in API requests. By default, fields with
234	// empty values are omitted from API requests. However, any non-pointer,
235	// non-interface field appearing in ForceSendFields will be sent to the
236	// server regardless of whether the field is empty or not. This may be
237	// used to include empty fields in Patch requests.
238	ForceSendFields []string `json:"-"`
239
240	// NullFields is a list of field names (e.g. "Color") to include in API
241	// requests with the JSON null value. By default, fields with empty
242	// values are omitted from API requests. However, any field with an
243	// empty value appearing in NullFields will be sent to the server as
244	// null. It is an error if a field in this list has a non-empty value.
245	// This may be used to include null fields in Patch requests.
246	NullFields []string `json:"-"`
247}
248
249func (s *Background) MarshalJSON() ([]byte, error) {
250	type NoMethod Background
251	raw := NoMethod(*s)
252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
253}
254
255// BackgroundSuggestionState: A mask that indicates which of the fields
256// on the base Background have been changed in this suggestion.
257// For any field set to true, the Backgound has a new suggested value.
258type BackgroundSuggestionState struct {
259	// BackgroundColorSuggested: Indicates whether the current background
260	// color has been modified in this
261	// suggestion.
262	BackgroundColorSuggested bool `json:"backgroundColorSuggested,omitempty"`
263
264	// ForceSendFields is a list of field names (e.g.
265	// "BackgroundColorSuggested") to unconditionally include in API
266	// requests. By default, fields with empty values are omitted from API
267	// requests. However, any non-pointer, non-interface field appearing in
268	// ForceSendFields will be sent to the server regardless of whether the
269	// field is empty or not. This may be used to include empty fields in
270	// Patch requests.
271	ForceSendFields []string `json:"-"`
272
273	// NullFields is a list of field names (e.g. "BackgroundColorSuggested")
274	// to include in API requests with the JSON null value. By default,
275	// fields with empty values are omitted from API requests. However, any
276	// field with an empty value appearing in NullFields will be sent to the
277	// server as null. It is an error if a field in this list has a
278	// non-empty value. This may be used to include null fields in Patch
279	// requests.
280	NullFields []string `json:"-"`
281}
282
283func (s *BackgroundSuggestionState) MarshalJSON() ([]byte, error) {
284	type NoMethod BackgroundSuggestionState
285	raw := NoMethod(*s)
286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
287}
288
289// BatchUpdateDocumentRequest: Request message for BatchUpdateDocument.
290type BatchUpdateDocumentRequest struct {
291	// Requests: A list of updates to apply to the document.
292	Requests []*Request `json:"requests,omitempty"`
293
294	// WriteControl: Provides control over how write requests are executed.
295	WriteControl *WriteControl `json:"writeControl,omitempty"`
296
297	// ForceSendFields is a list of field names (e.g. "Requests") 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. "Requests") to include in
306	// API 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 *BatchUpdateDocumentRequest) MarshalJSON() ([]byte, error) {
315	type NoMethod BatchUpdateDocumentRequest
316	raw := NoMethod(*s)
317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
318}
319
320// BatchUpdateDocumentResponse: Response message from a
321// BatchUpdateDocument request.
322type BatchUpdateDocumentResponse struct {
323	// DocumentId: The ID of the document to which the updates were applied
324	// to.
325	DocumentId string `json:"documentId,omitempty"`
326
327	// Replies: The reply of the updates. This maps 1:1 with the updates,
328	// although replies
329	// to some requests may be empty.
330	Replies []*Response `json:"replies,omitempty"`
331
332	// WriteControl: The updated write control after applying the request.
333	WriteControl *WriteControl `json:"writeControl,omitempty"`
334
335	// ServerResponse contains the HTTP response code and headers from the
336	// server.
337	googleapi.ServerResponse `json:"-"`
338
339	// ForceSendFields is a list of field names (e.g. "DocumentId") to
340	// unconditionally include in API requests. By default, fields with
341	// empty values are omitted from API requests. However, any non-pointer,
342	// non-interface field appearing in ForceSendFields will be sent to the
343	// server regardless of whether the field is empty or not. This may be
344	// used to include empty fields in Patch requests.
345	ForceSendFields []string `json:"-"`
346
347	// NullFields is a list of field names (e.g. "DocumentId") to include in
348	// API requests with the JSON null value. By default, fields with empty
349	// values are omitted from API requests. However, any field with an
350	// empty value appearing in NullFields will be sent to the server as
351	// null. It is an error if a field in this list has a non-empty value.
352	// This may be used to include null fields in Patch requests.
353	NullFields []string `json:"-"`
354}
355
356func (s *BatchUpdateDocumentResponse) MarshalJSON() ([]byte, error) {
357	type NoMethod BatchUpdateDocumentResponse
358	raw := NoMethod(*s)
359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
360}
361
362// Body: The document body.
363//
364// The body typically contains the full document contents except
365// for
366// headers, footers
367// and footnotes.
368type Body struct {
369	// Content: The contents of the body.
370	//
371	// The indexes for the body's content begin at zero.
372	Content []*StructuralElement `json:"content,omitempty"`
373
374	// ForceSendFields is a list of field names (e.g. "Content") to
375	// unconditionally include in API requests. By default, fields with
376	// empty values are omitted from API requests. However, any non-pointer,
377	// non-interface field appearing in ForceSendFields will be sent to the
378	// server regardless of whether the field is empty or not. This may be
379	// used to include empty fields in Patch requests.
380	ForceSendFields []string `json:"-"`
381
382	// NullFields is a list of field names (e.g. "Content") to include in
383	// API requests with the JSON null value. By default, fields with empty
384	// values are omitted from API requests. However, any field with an
385	// empty value appearing in NullFields will be sent to the server as
386	// null. It is an error if a field in this list has a non-empty value.
387	// This may be used to include null fields in Patch requests.
388	NullFields []string `json:"-"`
389}
390
391func (s *Body) MarshalJSON() ([]byte, error) {
392	type NoMethod Body
393	raw := NoMethod(*s)
394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
395}
396
397// Bullet: Describes the bullet of a paragraph.
398type Bullet struct {
399	// ListId: The ID of the list this paragraph belongs to.
400	ListId string `json:"listId,omitempty"`
401
402	// NestingLevel: The nesting level of this paragraph in the list.
403	NestingLevel int64 `json:"nestingLevel,omitempty"`
404
405	// TextStyle: The paragraph specific text style applied to this bullet.
406	TextStyle *TextStyle `json:"textStyle,omitempty"`
407
408	// ForceSendFields is a list of field names (e.g. "ListId") to
409	// unconditionally include in API requests. By default, fields with
410	// empty values are omitted from API requests. However, any non-pointer,
411	// non-interface field appearing in ForceSendFields will be sent to the
412	// server regardless of whether the field is empty or not. This may be
413	// used to include empty fields in Patch requests.
414	ForceSendFields []string `json:"-"`
415
416	// NullFields is a list of field names (e.g. "ListId") to include in API
417	// requests with the JSON null value. By default, fields with empty
418	// values are omitted from API requests. However, any field with an
419	// empty value appearing in NullFields will be sent to the server as
420	// null. It is an error if a field in this list has a non-empty value.
421	// This may be used to include null fields in Patch requests.
422	NullFields []string `json:"-"`
423}
424
425func (s *Bullet) MarshalJSON() ([]byte, error) {
426	type NoMethod Bullet
427	raw := NoMethod(*s)
428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
429}
430
431// BulletSuggestionState: A mask that indicates which of the fields on
432// the base
433// Bullet have been changed in this suggestion.
434// For any field set to true, there is a new suggested value.
435type BulletSuggestionState struct {
436	// ListIdSuggested: Indicates if there was a suggested change to
437	// the
438	// list_id.
439	ListIdSuggested bool `json:"listIdSuggested,omitempty"`
440
441	// NestingLevelSuggested: Indicates if there was a suggested change to
442	// the
443	// nesting_level.
444	NestingLevelSuggested bool `json:"nestingLevelSuggested,omitempty"`
445
446	// TextStyleSuggestionState: A mask that indicates which of the fields
447	// in text style have been changed in this
448	// suggestion.
449	TextStyleSuggestionState *TextStyleSuggestionState `json:"textStyleSuggestionState,omitempty"`
450
451	// ForceSendFields is a list of field names (e.g. "ListIdSuggested") to
452	// unconditionally include in API requests. By default, fields with
453	// empty values are omitted from API requests. However, any non-pointer,
454	// non-interface field appearing in ForceSendFields will be sent to the
455	// server regardless of whether the field is empty or not. This may be
456	// used to include empty fields in Patch requests.
457	ForceSendFields []string `json:"-"`
458
459	// NullFields is a list of field names (e.g. "ListIdSuggested") to
460	// include in API requests with the JSON null value. By default, fields
461	// with empty values are omitted from API requests. However, any field
462	// with an empty value appearing in NullFields will be sent to the
463	// server as null. It is an error if a field in this list has a
464	// non-empty value. This may be used to include null fields in Patch
465	// requests.
466	NullFields []string `json:"-"`
467}
468
469func (s *BulletSuggestionState) MarshalJSON() ([]byte, error) {
470	type NoMethod BulletSuggestionState
471	raw := NoMethod(*s)
472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
473}
474
475// Color: A solid color.
476type Color struct {
477	// RgbColor: The RGB color value.
478	RgbColor *RgbColor `json:"rgbColor,omitempty"`
479
480	// ForceSendFields is a list of field names (e.g. "RgbColor") to
481	// unconditionally include in API requests. By default, fields with
482	// empty values are omitted from API requests. However, any non-pointer,
483	// non-interface field appearing in ForceSendFields will be sent to the
484	// server regardless of whether the field is empty or not. This may be
485	// used to include empty fields in Patch requests.
486	ForceSendFields []string `json:"-"`
487
488	// NullFields is a list of field names (e.g. "RgbColor") to include in
489	// API requests with the JSON null value. By default, fields with empty
490	// values are omitted from API requests. However, any field with an
491	// empty value appearing in NullFields will be sent to the server as
492	// null. It is an error if a field in this list has a non-empty value.
493	// This may be used to include null fields in Patch requests.
494	NullFields []string `json:"-"`
495}
496
497func (s *Color) MarshalJSON() ([]byte, error) {
498	type NoMethod Color
499	raw := NoMethod(*s)
500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
501}
502
503// ColumnBreak: A ParagraphElement representing a
504// column break. A column break makes the subsequent text start at the
505// top of
506// the next column.
507type ColumnBreak struct {
508	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
509	// there are no suggested deletions
510	// of this content.
511	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
512
513	// SuggestedInsertionIds: The suggested insertion IDs. A ColumnBreak may
514	// have multiple insertion IDs if it is
515	// a nested suggested change. If empty, then this is not a
516	// suggested
517	// insertion.
518	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
519
520	// SuggestedTextStyleChanges: The suggested text style changes to this
521	// ColumnBreak, keyed by suggestion
522	// ID.
523	SuggestedTextStyleChanges map[string]SuggestedTextStyle `json:"suggestedTextStyleChanges,omitempty"`
524
525	// TextStyle: The text style of this ColumnBreak.
526	//
527	// Similar to text content, like text runs and footnote references, the
528	// text
529	// style of a column break can affect content layout as well as the
530	// styling of
531	// text inserted adjacent to it.
532	TextStyle *TextStyle `json:"textStyle,omitempty"`
533
534	// ForceSendFields is a list of field names (e.g.
535	// "SuggestedDeletionIds") to unconditionally include in API requests.
536	// By default, fields with empty values are omitted from API requests.
537	// However, any non-pointer, non-interface field appearing in
538	// ForceSendFields will be sent to the server regardless of whether the
539	// field is empty or not. This may be used to include empty fields in
540	// Patch requests.
541	ForceSendFields []string `json:"-"`
542
543	// NullFields is a list of field names (e.g. "SuggestedDeletionIds") to
544	// include in API requests with the JSON null value. By default, fields
545	// with empty values are omitted from API requests. However, any field
546	// with an empty value appearing in NullFields will be sent to the
547	// server as null. It is an error if a field in this list has a
548	// non-empty value. This may be used to include null fields in Patch
549	// requests.
550	NullFields []string `json:"-"`
551}
552
553func (s *ColumnBreak) MarshalJSON() ([]byte, error) {
554	type NoMethod ColumnBreak
555	raw := NoMethod(*s)
556	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
557}
558
559// CreateFooterRequest: Creates a Footer. The new footer is applied
560// to
561// the SectionStyle at the location of the
562// SectionBreak if specificed, otherwise
563// it is applied to the DocumentStyle.
564//
565// If a footer of the specified type already exists, a 400 bad request
566// error
567// is returned.
568type CreateFooterRequest struct {
569	// SectionBreakLocation: The location of the SectionBreak
570	// immediately preceding the section whose SectionStyle this footer
571	// should belong to. If this is
572	// unset or refers to the first section break in the document, the
573	// footer
574	// applies to the document style.
575	SectionBreakLocation *Location `json:"sectionBreakLocation,omitempty"`
576
577	// Type: The type of footer to create.
578	//
579	// Possible values:
580	//   "HEADER_FOOTER_TYPE_UNSPECIFIED" - The header/footer type is
581	// unspecified.
582	//   "DEFAULT" - A default header/footer.
583	Type string `json:"type,omitempty"`
584
585	// ForceSendFields is a list of field names (e.g.
586	// "SectionBreakLocation") to unconditionally include in API requests.
587	// By default, fields with empty values are omitted from API requests.
588	// However, any non-pointer, non-interface field appearing in
589	// ForceSendFields will be sent to the server regardless of whether the
590	// field is empty or not. This may be used to include empty fields in
591	// Patch requests.
592	ForceSendFields []string `json:"-"`
593
594	// NullFields is a list of field names (e.g. "SectionBreakLocation") to
595	// include in API requests with the JSON null value. By default, fields
596	// with empty values are omitted from API requests. However, any field
597	// with an empty value appearing in NullFields will be sent to the
598	// server as null. It is an error if a field in this list has a
599	// non-empty value. This may be used to include null fields in Patch
600	// requests.
601	NullFields []string `json:"-"`
602}
603
604func (s *CreateFooterRequest) MarshalJSON() ([]byte, error) {
605	type NoMethod CreateFooterRequest
606	raw := NoMethod(*s)
607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
608}
609
610// CreateFooterResponse: The result of creating a footer.
611type CreateFooterResponse struct {
612	// FooterId: The ID of the created footer.
613	FooterId string `json:"footerId,omitempty"`
614
615	// ForceSendFields is a list of field names (e.g. "FooterId") to
616	// unconditionally include in API requests. By default, fields with
617	// empty values are omitted from API requests. However, any non-pointer,
618	// non-interface field appearing in ForceSendFields will be sent to the
619	// server regardless of whether the field is empty or not. This may be
620	// used to include empty fields in Patch requests.
621	ForceSendFields []string `json:"-"`
622
623	// NullFields is a list of field names (e.g. "FooterId") to include in
624	// API requests with the JSON null value. By default, fields with empty
625	// values are omitted from API requests. However, any field with an
626	// empty value appearing in NullFields will be sent to the server as
627	// null. It is an error if a field in this list has a non-empty value.
628	// This may be used to include null fields in Patch requests.
629	NullFields []string `json:"-"`
630}
631
632func (s *CreateFooterResponse) MarshalJSON() ([]byte, error) {
633	type NoMethod CreateFooterResponse
634	raw := NoMethod(*s)
635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
636}
637
638// CreateFootnoteRequest: Creates a Footnote segment
639// and inserts a new FootnoteReference
640// to it at the given location.
641//
642// The new Footnote segment will contain a
643// space followed by a newline character.
644type CreateFootnoteRequest struct {
645	// EndOfSegmentLocation: Inserts the footnote reference at the end of
646	// the document body.
647	//
648	// Footnote references cannot be inserted inside a header, footer
649	// or
650	// footnote. Since footnote references can only be inserted in the body,
651	// the
652	// segment ID field
653	// must be empty.
654	EndOfSegmentLocation *EndOfSegmentLocation `json:"endOfSegmentLocation,omitempty"`
655
656	// Location: Inserts the footnote reference at a specific index in the
657	// document.
658	//
659	// The footnote reference must be inserted inside the bounds of an
660	// existing
661	// Paragraph. For instance, it cannot be
662	// inserted at a table's start index (i.e. between the table and
663	// its
664	// preceding paragraph).
665	//
666	// Footnote references cannot be inserted inside an equation,
667	// header, footer or footnote. Since footnote references can only
668	// be
669	// inserted in the body, the segment ID field must be empty.
670	Location *Location `json:"location,omitempty"`
671
672	// ForceSendFields is a list of field names (e.g.
673	// "EndOfSegmentLocation") to unconditionally include in API requests.
674	// By default, fields with empty values are omitted from API requests.
675	// However, any non-pointer, non-interface field appearing in
676	// ForceSendFields will be sent to the server regardless of whether the
677	// field is empty or not. This may be used to include empty fields in
678	// Patch requests.
679	ForceSendFields []string `json:"-"`
680
681	// NullFields is a list of field names (e.g. "EndOfSegmentLocation") to
682	// include in API requests with the JSON null value. By default, fields
683	// with empty values are omitted from API requests. However, any field
684	// with an empty value appearing in NullFields will be sent to the
685	// server as null. It is an error if a field in this list has a
686	// non-empty value. This may be used to include null fields in Patch
687	// requests.
688	NullFields []string `json:"-"`
689}
690
691func (s *CreateFootnoteRequest) MarshalJSON() ([]byte, error) {
692	type NoMethod CreateFootnoteRequest
693	raw := NoMethod(*s)
694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
695}
696
697// CreateFootnoteResponse: The result of creating a footnote.
698type CreateFootnoteResponse struct {
699	// FootnoteId: The ID of the created footnote.
700	FootnoteId string `json:"footnoteId,omitempty"`
701
702	// ForceSendFields is a list of field names (e.g. "FootnoteId") to
703	// unconditionally include in API requests. By default, fields with
704	// empty values are omitted from API requests. However, any non-pointer,
705	// non-interface field appearing in ForceSendFields will be sent to the
706	// server regardless of whether the field is empty or not. This may be
707	// used to include empty fields in Patch requests.
708	ForceSendFields []string `json:"-"`
709
710	// NullFields is a list of field names (e.g. "FootnoteId") to include in
711	// API requests with the JSON null value. By default, fields with empty
712	// values are omitted from API requests. However, any field with an
713	// empty value appearing in NullFields will be sent to the server as
714	// null. It is an error if a field in this list has a non-empty value.
715	// This may be used to include null fields in Patch requests.
716	NullFields []string `json:"-"`
717}
718
719func (s *CreateFootnoteResponse) MarshalJSON() ([]byte, error) {
720	type NoMethod CreateFootnoteResponse
721	raw := NoMethod(*s)
722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
723}
724
725// CreateHeaderRequest: Creates a Header. The new header is applied
726// to
727// the SectionStyle at the location of the
728// SectionBreak if specificed, otherwise
729// it is applied to the DocumentStyle.
730//
731// If a header of the specified type already exists, a 400 bad request
732// error
733// is returned.
734type CreateHeaderRequest struct {
735	// SectionBreakLocation: The location of the SectionBreak
736	// which begins the section this header should belong to.
737	// If
738	// `section_break_location' is unset or if it refers to the first
739	// section
740	// break in the document body, the header applies to the
741	// DocumentStyle
742	SectionBreakLocation *Location `json:"sectionBreakLocation,omitempty"`
743
744	// Type: The type of header to create.
745	//
746	// Possible values:
747	//   "HEADER_FOOTER_TYPE_UNSPECIFIED" - The header/footer type is
748	// unspecified.
749	//   "DEFAULT" - A default header/footer.
750	Type string `json:"type,omitempty"`
751
752	// ForceSendFields is a list of field names (e.g.
753	// "SectionBreakLocation") to unconditionally include in API requests.
754	// By default, fields with empty values are omitted from API requests.
755	// However, any non-pointer, non-interface field appearing in
756	// ForceSendFields will be sent to the server regardless of whether the
757	// field is empty or not. This may be used to include empty fields in
758	// Patch requests.
759	ForceSendFields []string `json:"-"`
760
761	// NullFields is a list of field names (e.g. "SectionBreakLocation") to
762	// include in API requests with the JSON null value. By default, fields
763	// with empty values are omitted from API requests. However, any field
764	// with an empty value appearing in NullFields will be sent to the
765	// server as null. It is an error if a field in this list has a
766	// non-empty value. This may be used to include null fields in Patch
767	// requests.
768	NullFields []string `json:"-"`
769}
770
771func (s *CreateHeaderRequest) MarshalJSON() ([]byte, error) {
772	type NoMethod CreateHeaderRequest
773	raw := NoMethod(*s)
774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
775}
776
777// CreateHeaderResponse: The result of creating a header.
778type CreateHeaderResponse struct {
779	// HeaderId: The ID of the created header.
780	HeaderId string `json:"headerId,omitempty"`
781
782	// ForceSendFields is a list of field names (e.g. "HeaderId") to
783	// unconditionally include in API requests. By default, fields with
784	// empty values are omitted from API requests. However, any non-pointer,
785	// non-interface field appearing in ForceSendFields will be sent to the
786	// server regardless of whether the field is empty or not. This may be
787	// used to include empty fields in Patch requests.
788	ForceSendFields []string `json:"-"`
789
790	// NullFields is a list of field names (e.g. "HeaderId") to include in
791	// API requests with the JSON null value. By default, fields with empty
792	// values are omitted from API requests. However, any field with an
793	// empty value appearing in NullFields will be sent to the server as
794	// null. It is an error if a field in this list has a non-empty value.
795	// This may be used to include null fields in Patch requests.
796	NullFields []string `json:"-"`
797}
798
799func (s *CreateHeaderResponse) MarshalJSON() ([]byte, error) {
800	type NoMethod CreateHeaderResponse
801	raw := NoMethod(*s)
802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
803}
804
805// CreateNamedRangeRequest: Creates a NamedRange referencing the
806// given
807// range.
808type CreateNamedRangeRequest struct {
809	// Name: The name of the NamedRange. Names do not need to be
810	// unique.
811	//
812	// Names must be at least 1 character and no more than 256
813	// characters,
814	// measured in UTF-16 code units.
815	Name string `json:"name,omitempty"`
816
817	// Range: The range to apply the name to.
818	Range *Range `json:"range,omitempty"`
819
820	// ForceSendFields is a list of field names (e.g. "Name") to
821	// unconditionally include in API requests. By default, fields with
822	// empty values are omitted from API requests. However, any non-pointer,
823	// non-interface field appearing in ForceSendFields will be sent to the
824	// server regardless of whether the field is empty or not. This may be
825	// used to include empty fields in Patch requests.
826	ForceSendFields []string `json:"-"`
827
828	// NullFields is a list of field names (e.g. "Name") to include in API
829	// requests with the JSON null value. By default, fields with empty
830	// values are omitted from API requests. However, any field with an
831	// empty value appearing in NullFields will be sent to the server as
832	// null. It is an error if a field in this list has a non-empty value.
833	// This may be used to include null fields in Patch requests.
834	NullFields []string `json:"-"`
835}
836
837func (s *CreateNamedRangeRequest) MarshalJSON() ([]byte, error) {
838	type NoMethod CreateNamedRangeRequest
839	raw := NoMethod(*s)
840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
841}
842
843// CreateNamedRangeResponse: The result of creating a named range.
844type CreateNamedRangeResponse struct {
845	// NamedRangeId: The ID of the created named range.
846	NamedRangeId string `json:"namedRangeId,omitempty"`
847
848	// ForceSendFields is a list of field names (e.g. "NamedRangeId") to
849	// unconditionally include in API requests. By default, fields with
850	// empty values are omitted from API requests. However, any non-pointer,
851	// non-interface field appearing in ForceSendFields will be sent to the
852	// server regardless of whether the field is empty or not. This may be
853	// used to include empty fields in Patch requests.
854	ForceSendFields []string `json:"-"`
855
856	// NullFields is a list of field names (e.g. "NamedRangeId") to include
857	// in API requests with the JSON null value. By default, fields with
858	// empty values are omitted from API requests. However, any field with
859	// an empty value appearing in NullFields will be sent to the server as
860	// null. It is an error if a field in this list has a non-empty value.
861	// This may be used to include null fields in Patch requests.
862	NullFields []string `json:"-"`
863}
864
865func (s *CreateNamedRangeResponse) MarshalJSON() ([]byte, error) {
866	type NoMethod CreateNamedRangeResponse
867	raw := NoMethod(*s)
868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
869}
870
871// CreateParagraphBulletsRequest: Creates bullets for all of the
872// paragraphs that overlap with the given range.
873//
874// The nesting level of each paragraph will be determined by counting
875// leading
876// tabs in front of each paragraph. To avoid excess space between the
877// bullet and
878// the corresponding paragraph, these leading tabs are removed by this
879// request.
880// This may change the indices of parts of the text.
881//
882// If the paragraph immediately before paragraphs being updated is in a
883// list
884// with a matching preset, the paragraphs being updated are added to
885// that
886// preceding list.
887type CreateParagraphBulletsRequest struct {
888	// BulletPreset: The kinds of bullet glyphs to be used.
889	//
890	// Possible values:
891	//   "BULLET_GLYPH_PRESET_UNSPECIFIED" - The bullet glyph preset is
892	// unspecified.
893	//   "BULLET_DISC_CIRCLE_SQUARE" - A bulleted list with a `DISC`,
894	// `CIRCLE` and `SQUARE` bullet glyph for the
895	// first 3 list nesting levels.
896	//   "BULLET_DIAMONDX_ARROW3D_SQUARE" - A bulleted list with a
897	// `DIAMONDX`, `ARROW3D` and `SQUARE` bullet glyph for
898	// the first 3 list nesting levels.
899	//   "BULLET_CHECKBOX" - A bulleted list with `CHECKBOX` bullet glyphs
900	// for all list nesting levels.
901	//   "BULLET_ARROW_DIAMOND_DISC" - A bulleted list with a `ARROW`,
902	// `DIAMOND` and `DISC` bullet glyph for
903	// the first 3 list nesting levels.
904	//   "BULLET_STAR_CIRCLE_SQUARE" - A bulleted list with a `STAR`,
905	// `CIRCLE` and `SQUARE` bullet glyph for
906	// the first 3 list nesting levels.
907	//   "BULLET_ARROW3D_CIRCLE_SQUARE" - A bulleted list with a `ARROW3D`,
908	// `CIRCLE` and `SQUARE` bullet glyph for
909	// the first 3 list nesting levels.
910	//   "BULLET_LEFTTRIANGLE_DIAMOND_DISC" - A bulleted list with a
911	// `LEFTTRIANGLE`, `DIAMOND` and `DISC` bullet glyph
912	// for the first 3 list nesting levels.
913	//   "BULLET_DIAMONDX_HOLLOWDIAMOND_SQUARE" - A bulleted list with a
914	// `DIAMONDX`, `HOLLOWDIAMOND` and `SQUARE` bullet
915	// glyph for the first 3 list nesting levels.
916	//   "BULLET_DIAMOND_CIRCLE_SQUARE" - A bulleted list with a `DIAMOND`,
917	// `CIRCLE` and `SQUARE` bullet glyph
918	// for the first 3 list nesting levels.
919	//   "NUMBERED_DECIMAL_ALPHA_ROMAN" - A numbered list with `DECIMAL`,
920	// `ALPHA` and `ROMAN` numeric glyphs for
921	// the first 3 list nesting levels, followed by periods.
922	//   "NUMBERED_DECIMAL_ALPHA_ROMAN_PARENS" - A numbered list with
923	// `DECIMAL`, `ALPHA` and `ROMAN` numeric glyphs for
924	// the first 3 list nesting levels, followed by parenthesis.
925	//   "NUMBERED_DECIMAL_NESTED" - A numbered list with `DECIMAL` numeric
926	// glyphs separated by periods, where
927	// each nesting level uses the previous nesting level's glyph as a
928	// prefix.
929	// For example: '1.', '1.1.', '2.', '2.2.'.
930	//   "NUMBERED_UPPERALPHA_ALPHA_ROMAN" - A numbered list with
931	// `UPPERALPHA`, `ALPHA` and `ROMAN` numeric glyphs for
932	// the first 3 list nesting levels, followed by periods.
933	//   "NUMBERED_UPPERROMAN_UPPERALPHA_DECIMAL" - A numbered list with
934	// `UPPERROMAN`, `UPPERALPHA` and `DECIMAL` numeric
935	// glyphs for the first 3 list nesting levels, followed by periods.
936	//   "NUMBERED_ZERODECIMAL_ALPHA_ROMAN" - A numbered list with
937	// `ZERODECIMAL`, `ALPHA` and `ROMAN` numeric glyphs for
938	// the first 3 list nesting levels, followed by periods.
939	BulletPreset string `json:"bulletPreset,omitempty"`
940
941	// Range: The range to apply the bullet preset to.
942	Range *Range `json:"range,omitempty"`
943
944	// ForceSendFields is a list of field names (e.g. "BulletPreset") to
945	// unconditionally include in API requests. By default, fields with
946	// empty values are omitted from API requests. However, any non-pointer,
947	// non-interface field appearing in ForceSendFields will be sent to the
948	// server regardless of whether the field is empty or not. This may be
949	// used to include empty fields in Patch requests.
950	ForceSendFields []string `json:"-"`
951
952	// NullFields is a list of field names (e.g. "BulletPreset") to include
953	// in API requests with the JSON null value. By default, fields with
954	// empty values are omitted from API requests. However, any field with
955	// an empty value appearing in NullFields will be sent to the server as
956	// null. It is an error if a field in this list has a non-empty value.
957	// This may be used to include null fields in Patch requests.
958	NullFields []string `json:"-"`
959}
960
961func (s *CreateParagraphBulletsRequest) MarshalJSON() ([]byte, error) {
962	type NoMethod CreateParagraphBulletsRequest
963	raw := NoMethod(*s)
964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
965}
966
967// CropProperties: The crop properties of an image.
968//
969// The crop rectangle is represented using fractional offsets from the
970// original
971// content's four edges.
972//
973// - If the offset is in the interval (0, 1), the corresponding edge of
974// crop
975// rectangle is positioned inside of the image's original bounding
976// rectangle.
977// - If the offset is negative or greater than 1, the corresponding edge
978// of crop
979// rectangle is positioned outside of the image's original bounding
980// rectangle.
981// - If all offsets and rotation angle are 0, the image is not cropped.
982type CropProperties struct {
983	// Angle: The clockwise rotation angle of the crop rectangle around its
984	// center, in
985	// radians. Rotation is applied after the offsets.
986	Angle float64 `json:"angle,omitempty"`
987
988	// OffsetBottom: The offset specifies how far inwards the bottom edge of
989	// the crop rectangle
990	// is from the bottom edge of the original content as a fraction of
991	// the
992	// original content's height.
993	OffsetBottom float64 `json:"offsetBottom,omitempty"`
994
995	// OffsetLeft: The offset specifies how far inwards the left edge of the
996	// crop rectangle is
997	// from the left edge of the original content as a fraction of the
998	// original
999	// content's width.
1000	OffsetLeft float64 `json:"offsetLeft,omitempty"`
1001
1002	// OffsetRight: The offset specifies how far inwards the right edge of
1003	// the crop rectangle
1004	// is from the right edge of the original content as a fraction of
1005	// the
1006	// original content's width.
1007	OffsetRight float64 `json:"offsetRight,omitempty"`
1008
1009	// OffsetTop: The offset specifies how far inwards the top edge of the
1010	// crop rectangle is
1011	// from the top edge of the original content as a fraction of the
1012	// original
1013	// content's height.
1014	OffsetTop float64 `json:"offsetTop,omitempty"`
1015
1016	// ForceSendFields is a list of field names (e.g. "Angle") to
1017	// unconditionally include in API requests. By default, fields with
1018	// empty values are omitted from API requests. However, any non-pointer,
1019	// non-interface field appearing in ForceSendFields will be sent to the
1020	// server regardless of whether the field is empty or not. This may be
1021	// used to include empty fields in Patch requests.
1022	ForceSendFields []string `json:"-"`
1023
1024	// NullFields is a list of field names (e.g. "Angle") to include in API
1025	// requests with the JSON null value. By default, fields with empty
1026	// values are omitted from API requests. However, any field with an
1027	// empty value appearing in NullFields will be sent to the server as
1028	// null. It is an error if a field in this list has a non-empty value.
1029	// This may be used to include null fields in Patch requests.
1030	NullFields []string `json:"-"`
1031}
1032
1033func (s *CropProperties) MarshalJSON() ([]byte, error) {
1034	type NoMethod CropProperties
1035	raw := NoMethod(*s)
1036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1037}
1038
1039func (s *CropProperties) UnmarshalJSON(data []byte) error {
1040	type NoMethod CropProperties
1041	var s1 struct {
1042		Angle        gensupport.JSONFloat64 `json:"angle"`
1043		OffsetBottom gensupport.JSONFloat64 `json:"offsetBottom"`
1044		OffsetLeft   gensupport.JSONFloat64 `json:"offsetLeft"`
1045		OffsetRight  gensupport.JSONFloat64 `json:"offsetRight"`
1046		OffsetTop    gensupport.JSONFloat64 `json:"offsetTop"`
1047		*NoMethod
1048	}
1049	s1.NoMethod = (*NoMethod)(s)
1050	if err := json.Unmarshal(data, &s1); err != nil {
1051		return err
1052	}
1053	s.Angle = float64(s1.Angle)
1054	s.OffsetBottom = float64(s1.OffsetBottom)
1055	s.OffsetLeft = float64(s1.OffsetLeft)
1056	s.OffsetRight = float64(s1.OffsetRight)
1057	s.OffsetTop = float64(s1.OffsetTop)
1058	return nil
1059}
1060
1061// CropPropertiesSuggestionState: A mask that indicates which of the
1062// fields on the base CropProperties have been changed in this
1063// suggestion.
1064// For any field set to true, there is a new suggested value.
1065type CropPropertiesSuggestionState struct {
1066	// AngleSuggested: Indicates if there was a suggested change to angle.
1067	AngleSuggested bool `json:"angleSuggested,omitempty"`
1068
1069	// OffsetBottomSuggested: Indicates if there was a suggested change to
1070	// offset_bottom.
1071	OffsetBottomSuggested bool `json:"offsetBottomSuggested,omitempty"`
1072
1073	// OffsetLeftSuggested: Indicates if there was a suggested change to
1074	// offset_left.
1075	OffsetLeftSuggested bool `json:"offsetLeftSuggested,omitempty"`
1076
1077	// OffsetRightSuggested: Indicates if there was a suggested change to
1078	// offset_right.
1079	OffsetRightSuggested bool `json:"offsetRightSuggested,omitempty"`
1080
1081	// OffsetTopSuggested: Indicates if there was a suggested change to
1082	// offset_top.
1083	OffsetTopSuggested bool `json:"offsetTopSuggested,omitempty"`
1084
1085	// ForceSendFields is a list of field names (e.g. "AngleSuggested") to
1086	// unconditionally include in API requests. By default, fields with
1087	// empty values are omitted from API requests. However, any non-pointer,
1088	// non-interface field appearing in ForceSendFields will be sent to the
1089	// server regardless of whether the field is empty or not. This may be
1090	// used to include empty fields in Patch requests.
1091	ForceSendFields []string `json:"-"`
1092
1093	// NullFields is a list of field names (e.g. "AngleSuggested") to
1094	// include in API requests with the JSON null value. By default, fields
1095	// with empty values are omitted from API requests. However, any field
1096	// with an empty value appearing in NullFields will be sent to the
1097	// server as null. It is an error if a field in this list has a
1098	// non-empty value. This may be used to include null fields in Patch
1099	// requests.
1100	NullFields []string `json:"-"`
1101}
1102
1103func (s *CropPropertiesSuggestionState) MarshalJSON() ([]byte, error) {
1104	type NoMethod CropPropertiesSuggestionState
1105	raw := NoMethod(*s)
1106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1107}
1108
1109// DeleteContentRangeRequest: Deletes content from the document.
1110type DeleteContentRangeRequest struct {
1111	// Range: The range of content to delete.
1112	//
1113	// Deleting text that crosses a paragraph boundary may result in
1114	// changes
1115	// to paragraph styles, lists, positioned objects and bookmarks as the
1116	// two
1117	// paragraphs are merged.
1118	//
1119	// Attempting to delete certain ranges can result in an invalid
1120	// document
1121	// structure in which case a 400 bad request error is returned.
1122	//
1123	// Some examples of invalid delete requests include:
1124	//
1125	// * Deleting one code unit of a surrogate pair.
1126	// * Deleting the last newline character of a Body, Header,
1127	//   Footer, Footnote, TableCell or TableOfContents.
1128	// * Deleting the start or end of a Table,
1129	//   TableOfContents or Equation without deleting the entire element.
1130	// * Deleting the newline character before a
1131	//   Table,
1132	//   TableOfContents or
1133	//   SectionBreak without deleting the
1134	//   element.
1135	// * Deleting individual rows or cells of a table. Deleting the content
1136	// within
1137	//   a table cell is allowed.
1138	Range *Range `json:"range,omitempty"`
1139
1140	// ForceSendFields is a list of field names (e.g. "Range") to
1141	// unconditionally include in API requests. By default, fields with
1142	// empty values are omitted from API requests. However, any non-pointer,
1143	// non-interface field appearing in ForceSendFields will be sent to the
1144	// server regardless of whether the field is empty or not. This may be
1145	// used to include empty fields in Patch requests.
1146	ForceSendFields []string `json:"-"`
1147
1148	// NullFields is a list of field names (e.g. "Range") to include in API
1149	// requests with the JSON null value. By default, fields with empty
1150	// values are omitted from API requests. However, any field with an
1151	// empty value appearing in NullFields will be sent to the server as
1152	// null. It is an error if a field in this list has a non-empty value.
1153	// This may be used to include null fields in Patch requests.
1154	NullFields []string `json:"-"`
1155}
1156
1157func (s *DeleteContentRangeRequest) MarshalJSON() ([]byte, error) {
1158	type NoMethod DeleteContentRangeRequest
1159	raw := NoMethod(*s)
1160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1161}
1162
1163// DeleteFooterRequest: Deletes a Footer from the document.
1164type DeleteFooterRequest struct {
1165	// FooterId: The id of the footer to delete. If this footer is defined
1166	// on
1167	// DocumentStyle, the reference to
1168	// this footer is removed, resulting in no footer of that type for
1169	// the first section of the document. If this footer is defined on
1170	// a
1171	// SectionStyle, the reference to this
1172	// footer is removed and the footer of that type is now continued
1173	// from
1174	// the previous section.
1175	FooterId string `json:"footerId,omitempty"`
1176
1177	// ForceSendFields is a list of field names (e.g. "FooterId") to
1178	// unconditionally include in API requests. By default, fields with
1179	// empty values are omitted from API requests. However, any non-pointer,
1180	// non-interface field appearing in ForceSendFields will be sent to the
1181	// server regardless of whether the field is empty or not. This may be
1182	// used to include empty fields in Patch requests.
1183	ForceSendFields []string `json:"-"`
1184
1185	// NullFields is a list of field names (e.g. "FooterId") to include in
1186	// API requests with the JSON null value. By default, fields with empty
1187	// values are omitted from API requests. However, any field with an
1188	// empty value appearing in NullFields will be sent to the server as
1189	// null. It is an error if a field in this list has a non-empty value.
1190	// This may be used to include null fields in Patch requests.
1191	NullFields []string `json:"-"`
1192}
1193
1194func (s *DeleteFooterRequest) MarshalJSON() ([]byte, error) {
1195	type NoMethod DeleteFooterRequest
1196	raw := NoMethod(*s)
1197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1198}
1199
1200// DeleteHeaderRequest: Deletes a Header from the document.
1201type DeleteHeaderRequest struct {
1202	// HeaderId: The id of the header to delete. If this header is defined
1203	// on
1204	// DocumentStyle, the reference to
1205	// this header is removed, resulting in no header of that type for
1206	// the first section of the document. If this header is defined on
1207	// a
1208	// SectionStyle, the reference to this
1209	// header is removed and the header of that type is now continued
1210	// from
1211	// the previous section.
1212	HeaderId string `json:"headerId,omitempty"`
1213
1214	// ForceSendFields is a list of field names (e.g. "HeaderId") to
1215	// unconditionally include in API requests. By default, fields with
1216	// empty values are omitted from API requests. However, any non-pointer,
1217	// non-interface field appearing in ForceSendFields will be sent to the
1218	// server regardless of whether the field is empty or not. This may be
1219	// used to include empty fields in Patch requests.
1220	ForceSendFields []string `json:"-"`
1221
1222	// NullFields is a list of field names (e.g. "HeaderId") to include in
1223	// API requests with the JSON null value. By default, fields with empty
1224	// values are omitted from API requests. However, any field with an
1225	// empty value appearing in NullFields will be sent to the server as
1226	// null. It is an error if a field in this list has a non-empty value.
1227	// This may be used to include null fields in Patch requests.
1228	NullFields []string `json:"-"`
1229}
1230
1231func (s *DeleteHeaderRequest) MarshalJSON() ([]byte, error) {
1232	type NoMethod DeleteHeaderRequest
1233	raw := NoMethod(*s)
1234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1235}
1236
1237// DeleteNamedRangeRequest: Deletes a NamedRange.
1238type DeleteNamedRangeRequest struct {
1239	// Name: The name of the range(s) to delete. All named ranges with the
1240	// given
1241	// name will be deleted.
1242	Name string `json:"name,omitempty"`
1243
1244	// NamedRangeId: The ID of the named range to delete.
1245	NamedRangeId string `json:"namedRangeId,omitempty"`
1246
1247	// ForceSendFields is a list of field names (e.g. "Name") to
1248	// unconditionally include in API requests. By default, fields with
1249	// empty values are omitted from API requests. However, any non-pointer,
1250	// non-interface field appearing in ForceSendFields will be sent to the
1251	// server regardless of whether the field is empty or not. This may be
1252	// used to include empty fields in Patch requests.
1253	ForceSendFields []string `json:"-"`
1254
1255	// NullFields is a list of field names (e.g. "Name") to include in API
1256	// requests with the JSON null value. By default, fields with empty
1257	// values are omitted from API requests. However, any field with an
1258	// empty value appearing in NullFields will be sent to the server as
1259	// null. It is an error if a field in this list has a non-empty value.
1260	// This may be used to include null fields in Patch requests.
1261	NullFields []string `json:"-"`
1262}
1263
1264func (s *DeleteNamedRangeRequest) MarshalJSON() ([]byte, error) {
1265	type NoMethod DeleteNamedRangeRequest
1266	raw := NoMethod(*s)
1267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1268}
1269
1270// DeleteParagraphBulletsRequest: Deletes bullets from all of the
1271// paragraphs that overlap with the given range.
1272//
1273// The nesting level of each paragraph will be visually preserved by
1274// adding
1275// indent to the start of the corresponding paragraph.
1276type DeleteParagraphBulletsRequest struct {
1277	// Range: The range to delete bullets from.
1278	Range *Range `json:"range,omitempty"`
1279
1280	// ForceSendFields is a list of field names (e.g. "Range") to
1281	// unconditionally include in API requests. By default, fields with
1282	// empty values are omitted from API requests. However, any non-pointer,
1283	// non-interface field appearing in ForceSendFields will be sent to the
1284	// server regardless of whether the field is empty or not. This may be
1285	// used to include empty fields in Patch requests.
1286	ForceSendFields []string `json:"-"`
1287
1288	// NullFields is a list of field names (e.g. "Range") to include in API
1289	// requests with the JSON null value. By default, fields with empty
1290	// values are omitted from API requests. However, any field with an
1291	// empty value appearing in NullFields will be sent to the server as
1292	// null. It is an error if a field in this list has a non-empty value.
1293	// This may be used to include null fields in Patch requests.
1294	NullFields []string `json:"-"`
1295}
1296
1297func (s *DeleteParagraphBulletsRequest) MarshalJSON() ([]byte, error) {
1298	type NoMethod DeleteParagraphBulletsRequest
1299	raw := NoMethod(*s)
1300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1301}
1302
1303// DeletePositionedObjectRequest: Deletes a PositionedObject from
1304// the
1305// document.
1306type DeletePositionedObjectRequest struct {
1307	// ObjectId: The ID of the positioned object to delete.
1308	ObjectId string `json:"objectId,omitempty"`
1309
1310	// ForceSendFields is a list of field names (e.g. "ObjectId") to
1311	// unconditionally include in API requests. By default, fields with
1312	// empty values are omitted from API requests. However, any non-pointer,
1313	// non-interface field appearing in ForceSendFields will be sent to the
1314	// server regardless of whether the field is empty or not. This may be
1315	// used to include empty fields in Patch requests.
1316	ForceSendFields []string `json:"-"`
1317
1318	// NullFields is a list of field names (e.g. "ObjectId") to include in
1319	// API requests with the JSON null value. By default, fields with empty
1320	// values are omitted from API requests. However, any field with an
1321	// empty value appearing in NullFields will be sent to the server as
1322	// null. It is an error if a field in this list has a non-empty value.
1323	// This may be used to include null fields in Patch requests.
1324	NullFields []string `json:"-"`
1325}
1326
1327func (s *DeletePositionedObjectRequest) MarshalJSON() ([]byte, error) {
1328	type NoMethod DeletePositionedObjectRequest
1329	raw := NoMethod(*s)
1330	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1331}
1332
1333// DeleteTableColumnRequest: Deletes a column from a table.
1334type DeleteTableColumnRequest struct {
1335	// TableCellLocation: The reference table cell location from which the
1336	// column will be deleted.
1337	//
1338	// The column this cell spans will be deleted. If this is a merged cell
1339	// that
1340	// spans multiple columns, all columns that the cell spans will be
1341	// deleted. If
1342	// no columns remain in the table after this deletion, the whole table
1343	// is
1344	// deleted.
1345	TableCellLocation *TableCellLocation `json:"tableCellLocation,omitempty"`
1346
1347	// ForceSendFields is a list of field names (e.g. "TableCellLocation")
1348	// to unconditionally include in API requests. By default, fields with
1349	// empty values are omitted from API requests. However, any non-pointer,
1350	// non-interface field appearing in ForceSendFields will be sent to the
1351	// server regardless of whether the field is empty or not. This may be
1352	// used to include empty fields in Patch requests.
1353	ForceSendFields []string `json:"-"`
1354
1355	// NullFields is a list of field names (e.g. "TableCellLocation") to
1356	// include in API requests with the JSON null value. By default, fields
1357	// with empty values are omitted from API requests. However, any field
1358	// with an empty value appearing in NullFields will be sent to the
1359	// server as null. It is an error if a field in this list has a
1360	// non-empty value. This may be used to include null fields in Patch
1361	// requests.
1362	NullFields []string `json:"-"`
1363}
1364
1365func (s *DeleteTableColumnRequest) MarshalJSON() ([]byte, error) {
1366	type NoMethod DeleteTableColumnRequest
1367	raw := NoMethod(*s)
1368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1369}
1370
1371// DeleteTableRowRequest: Deletes a row from a table.
1372type DeleteTableRowRequest struct {
1373	// TableCellLocation: The reference table cell location from which the
1374	// row will be deleted.
1375	//
1376	// The row this cell spans will be deleted. If this is a merged cell
1377	// that
1378	// spans multiple rows, all rows that the cell spans will be deleted. If
1379	// no
1380	// rows remain in the table after this deletion, the whole table is
1381	// deleted.
1382	TableCellLocation *TableCellLocation `json:"tableCellLocation,omitempty"`
1383
1384	// ForceSendFields is a list of field names (e.g. "TableCellLocation")
1385	// to unconditionally include in API requests. By default, fields with
1386	// empty values are omitted from API requests. However, any non-pointer,
1387	// non-interface field appearing in ForceSendFields will be sent to the
1388	// server regardless of whether the field is empty or not. This may be
1389	// used to include empty fields in Patch requests.
1390	ForceSendFields []string `json:"-"`
1391
1392	// NullFields is a list of field names (e.g. "TableCellLocation") to
1393	// include in API requests with the JSON null value. By default, fields
1394	// with empty values are omitted from API requests. However, any field
1395	// with an empty value appearing in NullFields will be sent to the
1396	// server as null. It is an error if a field in this list has a
1397	// non-empty value. This may be used to include null fields in Patch
1398	// requests.
1399	NullFields []string `json:"-"`
1400}
1401
1402func (s *DeleteTableRowRequest) MarshalJSON() ([]byte, error) {
1403	type NoMethod DeleteTableRowRequest
1404	raw := NoMethod(*s)
1405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1406}
1407
1408// Dimension: A magnitude in a single direction in the specified units.
1409type Dimension struct {
1410	// Magnitude: The magnitude.
1411	Magnitude float64 `json:"magnitude,omitempty"`
1412
1413	// Unit: The units for magnitude.
1414	//
1415	// Possible values:
1416	//   "UNIT_UNSPECIFIED" - The units are unknown.
1417	//   "PT" - A point, 1/72 of an inch.
1418	Unit string `json:"unit,omitempty"`
1419
1420	// ForceSendFields is a list of field names (e.g. "Magnitude") to
1421	// unconditionally include in API requests. By default, fields with
1422	// empty values are omitted from API requests. However, any non-pointer,
1423	// non-interface field appearing in ForceSendFields will be sent to the
1424	// server regardless of whether the field is empty or not. This may be
1425	// used to include empty fields in Patch requests.
1426	ForceSendFields []string `json:"-"`
1427
1428	// NullFields is a list of field names (e.g. "Magnitude") to include in
1429	// API requests with the JSON null value. By default, fields with empty
1430	// values are omitted from API requests. However, any field with an
1431	// empty value appearing in NullFields will be sent to the server as
1432	// null. It is an error if a field in this list has a non-empty value.
1433	// This may be used to include null fields in Patch requests.
1434	NullFields []string `json:"-"`
1435}
1436
1437func (s *Dimension) MarshalJSON() ([]byte, error) {
1438	type NoMethod Dimension
1439	raw := NoMethod(*s)
1440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1441}
1442
1443func (s *Dimension) UnmarshalJSON(data []byte) error {
1444	type NoMethod Dimension
1445	var s1 struct {
1446		Magnitude gensupport.JSONFloat64 `json:"magnitude"`
1447		*NoMethod
1448	}
1449	s1.NoMethod = (*NoMethod)(s)
1450	if err := json.Unmarshal(data, &s1); err != nil {
1451		return err
1452	}
1453	s.Magnitude = float64(s1.Magnitude)
1454	return nil
1455}
1456
1457// Document: A Google Docs document.
1458type Document struct {
1459	// Body: Output only. The main body of the document.
1460	Body *Body `json:"body,omitempty"`
1461
1462	// DocumentId: Output only. The ID of the document.
1463	DocumentId string `json:"documentId,omitempty"`
1464
1465	// DocumentStyle: Output only. The style of the document.
1466	DocumentStyle *DocumentStyle `json:"documentStyle,omitempty"`
1467
1468	// Footers: Output only. The footers in the document, keyed by footer
1469	// ID.
1470	Footers map[string]Footer `json:"footers,omitempty"`
1471
1472	// Footnotes: Output only. The footnotes in the document, keyed by
1473	// footnote ID.
1474	Footnotes map[string]Footnote `json:"footnotes,omitempty"`
1475
1476	// Headers: Output only. The headers in the document, keyed by header
1477	// ID.
1478	Headers map[string]Header `json:"headers,omitempty"`
1479
1480	// InlineObjects: Output only. The inline objects in the document, keyed
1481	// by object ID.
1482	InlineObjects map[string]InlineObject `json:"inlineObjects,omitempty"`
1483
1484	// Lists: Output only. The lists in the document, keyed by list ID.
1485	Lists map[string]List `json:"lists,omitempty"`
1486
1487	// NamedRanges: Output only. The named ranges in the document, keyed by
1488	// name.
1489	NamedRanges map[string]NamedRanges `json:"namedRanges,omitempty"`
1490
1491	// NamedStyles: Output only. The named styles of the document.
1492	NamedStyles *NamedStyles `json:"namedStyles,omitempty"`
1493
1494	// PositionedObjects: Output only. The positioned objects in the
1495	// document, keyed by object ID.
1496	PositionedObjects map[string]PositionedObject `json:"positionedObjects,omitempty"`
1497
1498	// RevisionId: Output only. The revision ID of the document. Can be used
1499	// in update
1500	// requests to specify which revision of a document to apply updates to
1501	// and
1502	// how the request should behave if the document has been edited since
1503	// that
1504	// revision. Only populated if the user has edit access to the
1505	// document.
1506	//
1507	// The format of the revision ID may change over time, so it should be
1508	// treated
1509	// opaquely. A returned revision ID is only guaranteed to be valid for
1510	// 24
1511	// hours after it has been returned and cannot be shared across users.
1512	// If the
1513	// revision ID is unchanged between calls, then the document has not
1514	// changed.
1515	// Conversely, a changed ID (for the same document and user) usually
1516	// means the
1517	// document has been updated; however, a changed ID can also be due
1518	// to
1519	// internal factors such as ID format changes.
1520	RevisionId string `json:"revisionId,omitempty"`
1521
1522	// SuggestedDocumentStyleChanges: Output only. The suggested changes to
1523	// the style of the document, keyed by
1524	// suggestion ID.
1525	SuggestedDocumentStyleChanges map[string]SuggestedDocumentStyle `json:"suggestedDocumentStyleChanges,omitempty"`
1526
1527	// SuggestedNamedStylesChanges: Output only. The suggested changes to
1528	// the named styles of the document,
1529	// keyed by suggestion ID.
1530	SuggestedNamedStylesChanges map[string]SuggestedNamedStyles `json:"suggestedNamedStylesChanges,omitempty"`
1531
1532	// SuggestionsViewMode: Output only. The suggestions view mode applied
1533	// to the document.
1534	//
1535	// Note: When editing a document, changes must be based on a document
1536	// with
1537	// SUGGESTIONS_INLINE.
1538	//
1539	// Possible values:
1540	//   "DEFAULT_FOR_CURRENT_ACCESS" - The SuggestionsViewMode applied to
1541	// the returned document depends on the
1542	// user's current access level. If the user only has view
1543	// access,
1544	// PREVIEW_WITHOUT_SUGGESTIONS is
1545	// applied. Otherwise, SUGGESTIONS_INLINE is applied.
1546	// This is the default suggestions view mode.
1547	//   "SUGGESTIONS_INLINE" - The returned document has suggestions
1548	// inline. Suggested changes will be
1549	// differentiated from base content within the document.
1550	//
1551	// Requests to retrieve a document using this mode will return a 403
1552	// error if
1553	// the user does not have permission to view suggested changes.
1554	//   "PREVIEW_SUGGESTIONS_ACCEPTED" - The returned document is a preview
1555	// with all suggested changes accepted.
1556	//
1557	// Requests to retrieve a document using this mode will return a 403
1558	// error if
1559	// the user does not have permission to view suggested changes.
1560	//   "PREVIEW_WITHOUT_SUGGESTIONS" - The returned document is a preview
1561	// with all suggested changes rejected if
1562	// there are any suggestions in the document.
1563	SuggestionsViewMode string `json:"suggestionsViewMode,omitempty"`
1564
1565	// Title: The title of the document.
1566	Title string `json:"title,omitempty"`
1567
1568	// ServerResponse contains the HTTP response code and headers from the
1569	// server.
1570	googleapi.ServerResponse `json:"-"`
1571
1572	// ForceSendFields is a list of field names (e.g. "Body") to
1573	// unconditionally include in API requests. By default, fields with
1574	// empty values are omitted from API requests. However, any non-pointer,
1575	// non-interface field appearing in ForceSendFields will be sent to the
1576	// server regardless of whether the field is empty or not. This may be
1577	// used to include empty fields in Patch requests.
1578	ForceSendFields []string `json:"-"`
1579
1580	// NullFields is a list of field names (e.g. "Body") to include in API
1581	// requests with the JSON null value. By default, fields with empty
1582	// values are omitted from API requests. However, any field with an
1583	// empty value appearing in NullFields will be sent to the server as
1584	// null. It is an error if a field in this list has a non-empty value.
1585	// This may be used to include null fields in Patch requests.
1586	NullFields []string `json:"-"`
1587}
1588
1589func (s *Document) MarshalJSON() ([]byte, error) {
1590	type NoMethod Document
1591	raw := NoMethod(*s)
1592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1593}
1594
1595// DocumentStyle: The style of the document.
1596type DocumentStyle struct {
1597	// Background: The background of the document. Documents cannot have a
1598	// transparent
1599	// background color.
1600	Background *Background `json:"background,omitempty"`
1601
1602	// DefaultFooterId: The ID of the default footer. If not set, there is
1603	// no default footer.
1604	//
1605	// This property is read-only.
1606	DefaultFooterId string `json:"defaultFooterId,omitempty"`
1607
1608	// DefaultHeaderId: The ID of the default header. If not set, there is
1609	// no default header.
1610	//
1611	// This property is read-only.
1612	DefaultHeaderId string `json:"defaultHeaderId,omitempty"`
1613
1614	// EvenPageFooterId: The ID of the footer used only for even pages. The
1615	// value of
1616	// use_even_page_header_footer determines
1617	// whether to use the default_footer_id or this value for the
1618	// footer on even pages. If not set, there is no even page footer.
1619	//
1620	// This property is read-only.
1621	EvenPageFooterId string `json:"evenPageFooterId,omitempty"`
1622
1623	// EvenPageHeaderId: The ID of the header used only for even pages. The
1624	// value of
1625	// use_even_page_header_footer determines
1626	// whether to use the default_header_id or this value for the
1627	// header on even pages. If not set, there is no even page header.
1628	//
1629	// This property is read-only.
1630	EvenPageHeaderId string `json:"evenPageHeaderId,omitempty"`
1631
1632	// FirstPageFooterId: The ID of the footer used only for the first page.
1633	// If not set then
1634	// a unique footer for the first page does not exist. The value
1635	// of
1636	// use_first_page_header_footer determines
1637	// whether to use the default_footer_id or this value for the
1638	// footer on the first page. If not set, there is no first page
1639	// footer.
1640	//
1641	// This property is read-only.
1642	FirstPageFooterId string `json:"firstPageFooterId,omitempty"`
1643
1644	// FirstPageHeaderId: The ID of the header used only for the first page.
1645	// If not set then
1646	// a unique header for the first page does not exist.
1647	// The value of use_first_page_header_footer determines
1648	// whether to use the default_header_id or this value for the
1649	// header on the first page. If not set, there is no first page
1650	// header.
1651	//
1652	// This property is read-only.
1653	FirstPageHeaderId string `json:"firstPageHeaderId,omitempty"`
1654
1655	// MarginBottom: The bottom page margin.
1656	//
1657	// Updating the bottom page margin on the document style clears the
1658	// bottom
1659	// page margin on all section styles.
1660	MarginBottom *Dimension `json:"marginBottom,omitempty"`
1661
1662	// MarginFooter: The amount of space between the bottom of the page and
1663	// the contents of the
1664	// footer.
1665	MarginFooter *Dimension `json:"marginFooter,omitempty"`
1666
1667	// MarginHeader: The amount of space between the top of the page and the
1668	// contents of the
1669	// header.
1670	MarginHeader *Dimension `json:"marginHeader,omitempty"`
1671
1672	// MarginLeft: The left page margin.
1673	//
1674	// Updating the left page margin on the document style clears the left
1675	// page
1676	// margin on all section styles. It may also cause columns to resize in
1677	// all
1678	// sections.
1679	MarginLeft *Dimension `json:"marginLeft,omitempty"`
1680
1681	// MarginRight: The right page margin.
1682	//
1683	// Updating the right page margin on the document style clears the right
1684	// page
1685	// margin on all section styles. It may also cause columns to resize in
1686	// all
1687	// sections.
1688	MarginRight *Dimension `json:"marginRight,omitempty"`
1689
1690	// MarginTop: The top page margin.
1691	//
1692	// Updating the top page margin on the document style clears the top
1693	// page
1694	// margin on all section styles.
1695	MarginTop *Dimension `json:"marginTop,omitempty"`
1696
1697	// PageNumberStart: The page number from which to start counting the
1698	// number of pages.
1699	PageNumberStart int64 `json:"pageNumberStart,omitempty"`
1700
1701	// PageSize: The size of a page in the document.
1702	PageSize *Size `json:"pageSize,omitempty"`
1703
1704	// UseCustomHeaderFooterMargins: Indicates whether
1705	// DocumentStyle
1706	// margin_header,
1707	// SectionStyle
1708	// margin_header
1709	// and
1710	// DocumentStyle
1711	// margin_footer,
1712	// SectionStyle
1713	// margin_footer are
1714	// respected. When false, the default values in the Docs editor for
1715	// header and
1716	// footer margin are used.
1717	//
1718	// This property is read-only.
1719	UseCustomHeaderFooterMargins bool `json:"useCustomHeaderFooterMargins,omitempty"`
1720
1721	// UseEvenPageHeaderFooter: Indicates whether to use the even page
1722	// header / footer IDs for the even
1723	// pages.
1724	UseEvenPageHeaderFooter bool `json:"useEvenPageHeaderFooter,omitempty"`
1725
1726	// UseFirstPageHeaderFooter: Indicates whether to use the first page
1727	// header / footer IDs for the first
1728	// page.
1729	UseFirstPageHeaderFooter bool `json:"useFirstPageHeaderFooter,omitempty"`
1730
1731	// ForceSendFields is a list of field names (e.g. "Background") to
1732	// unconditionally include in API requests. By default, fields with
1733	// empty values are omitted from API requests. However, any non-pointer,
1734	// non-interface field appearing in ForceSendFields will be sent to the
1735	// server regardless of whether the field is empty or not. This may be
1736	// used to include empty fields in Patch requests.
1737	ForceSendFields []string `json:"-"`
1738
1739	// NullFields is a list of field names (e.g. "Background") to include in
1740	// API requests with the JSON null value. By default, fields with empty
1741	// values are omitted from API requests. However, any field with an
1742	// empty value appearing in NullFields will be sent to the server as
1743	// null. It is an error if a field in this list has a non-empty value.
1744	// This may be used to include null fields in Patch requests.
1745	NullFields []string `json:"-"`
1746}
1747
1748func (s *DocumentStyle) MarshalJSON() ([]byte, error) {
1749	type NoMethod DocumentStyle
1750	raw := NoMethod(*s)
1751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1752}
1753
1754// DocumentStyleSuggestionState: A mask that indicates which of the
1755// fields on the base DocumentStyle have been changed in this
1756// suggestion.
1757// For any field set to true, there is a new suggested value.
1758type DocumentStyleSuggestionState struct {
1759	// BackgroundSuggestionState: A mask that indicates which of the fields
1760	// in background have been changed in this
1761	// suggestion.
1762	BackgroundSuggestionState *BackgroundSuggestionState `json:"backgroundSuggestionState,omitempty"`
1763
1764	// DefaultFooterIdSuggested: Indicates if there was a suggested change
1765	// to default_footer_id.
1766	DefaultFooterIdSuggested bool `json:"defaultFooterIdSuggested,omitempty"`
1767
1768	// DefaultHeaderIdSuggested: Indicates if there was a suggested change
1769	// to default_header_id.
1770	DefaultHeaderIdSuggested bool `json:"defaultHeaderIdSuggested,omitempty"`
1771
1772	// EvenPageFooterIdSuggested: Indicates if there was a suggested change
1773	// to even_page_footer_id.
1774	EvenPageFooterIdSuggested bool `json:"evenPageFooterIdSuggested,omitempty"`
1775
1776	// EvenPageHeaderIdSuggested: Indicates if there was a suggested change
1777	// to even_page_header_id.
1778	EvenPageHeaderIdSuggested bool `json:"evenPageHeaderIdSuggested,omitempty"`
1779
1780	// FirstPageFooterIdSuggested: Indicates if there was a suggested change
1781	// to first_page_footer_id.
1782	FirstPageFooterIdSuggested bool `json:"firstPageFooterIdSuggested,omitempty"`
1783
1784	// FirstPageHeaderIdSuggested: Indicates if there was a suggested change
1785	// to first_page_header_id.
1786	FirstPageHeaderIdSuggested bool `json:"firstPageHeaderIdSuggested,omitempty"`
1787
1788	// MarginBottomSuggested: Indicates if there was a suggested change to
1789	// margin_bottom.
1790	MarginBottomSuggested bool `json:"marginBottomSuggested,omitempty"`
1791
1792	// MarginFooterSuggested: Indicates if there was a suggested change to
1793	// margin_footer.
1794	MarginFooterSuggested bool `json:"marginFooterSuggested,omitempty"`
1795
1796	// MarginHeaderSuggested: Indicates if there was a suggested change to
1797	// margin_header.
1798	MarginHeaderSuggested bool `json:"marginHeaderSuggested,omitempty"`
1799
1800	// MarginLeftSuggested: Indicates if there was a suggested change to
1801	// margin_left.
1802	MarginLeftSuggested bool `json:"marginLeftSuggested,omitempty"`
1803
1804	// MarginRightSuggested: Indicates if there was a suggested change to
1805	// margin_right.
1806	MarginRightSuggested bool `json:"marginRightSuggested,omitempty"`
1807
1808	// MarginTopSuggested: Indicates if there was a suggested change to
1809	// margin_top.
1810	MarginTopSuggested bool `json:"marginTopSuggested,omitempty"`
1811
1812	// PageNumberStartSuggested: Indicates if there was a suggested change
1813	// to page_number_start.
1814	PageNumberStartSuggested bool `json:"pageNumberStartSuggested,omitempty"`
1815
1816	// PageSizeSuggestionState: A mask that indicates which of the fields in
1817	// size have been changed in this
1818	// suggestion.
1819	PageSizeSuggestionState *SizeSuggestionState `json:"pageSizeSuggestionState,omitempty"`
1820
1821	// UseCustomHeaderFooterMarginsSuggested: Indicates if there was a
1822	// suggested change to
1823	// use_custom_header_footer_margins.
1824	UseCustomHeaderFooterMarginsSuggested bool `json:"useCustomHeaderFooterMarginsSuggested,omitempty"`
1825
1826	// UseEvenPageHeaderFooterSuggested: Indicates if there was a suggested
1827	// change to use_even_page_header_footer.
1828	UseEvenPageHeaderFooterSuggested bool `json:"useEvenPageHeaderFooterSuggested,omitempty"`
1829
1830	// UseFirstPageHeaderFooterSuggested: Indicates if there was a suggested
1831	// change to use_first_page_header_footer.
1832	UseFirstPageHeaderFooterSuggested bool `json:"useFirstPageHeaderFooterSuggested,omitempty"`
1833
1834	// ForceSendFields is a list of field names (e.g.
1835	// "BackgroundSuggestionState") to unconditionally include in API
1836	// requests. By default, fields with empty values are omitted from API
1837	// requests. However, any non-pointer, non-interface field appearing in
1838	// ForceSendFields will be sent to the server regardless of whether the
1839	// field is empty or not. This may be used to include empty fields in
1840	// Patch requests.
1841	ForceSendFields []string `json:"-"`
1842
1843	// NullFields is a list of field names (e.g.
1844	// "BackgroundSuggestionState") to include in API requests with the JSON
1845	// null value. By default, fields with empty values are omitted from API
1846	// requests. However, any field with an empty value appearing in
1847	// NullFields will be sent to the server as null. It is an error if a
1848	// field in this list has a non-empty value. This may be used to include
1849	// null fields in Patch requests.
1850	NullFields []string `json:"-"`
1851}
1852
1853func (s *DocumentStyleSuggestionState) MarshalJSON() ([]byte, error) {
1854	type NoMethod DocumentStyleSuggestionState
1855	raw := NoMethod(*s)
1856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1857}
1858
1859// EmbeddedDrawingProperties: The properties of an embedded drawing.
1860type EmbeddedDrawingProperties struct {
1861}
1862
1863// EmbeddedDrawingPropertiesSuggestionState: A mask that indicates which
1864// of the fields on the base
1865// EmbeddedDrawingProperties
1866// have been changed in this suggestion. For any field set to true,
1867// there is a
1868// new suggested value.
1869type EmbeddedDrawingPropertiesSuggestionState struct {
1870}
1871
1872// EmbeddedObject: An embedded object in the document.
1873type EmbeddedObject struct {
1874	// Description: The description of the embedded object. The `title` and
1875	// `description` are
1876	// both combined to display alt text.
1877	Description string `json:"description,omitempty"`
1878
1879	// EmbeddedDrawingProperties: The properties of an embedded drawing.
1880	EmbeddedDrawingProperties *EmbeddedDrawingProperties `json:"embeddedDrawingProperties,omitempty"`
1881
1882	// EmbeddedObjectBorder: The border of the embedded object.
1883	EmbeddedObjectBorder *EmbeddedObjectBorder `json:"embeddedObjectBorder,omitempty"`
1884
1885	// ImageProperties: The properties of an image.
1886	ImageProperties *ImageProperties `json:"imageProperties,omitempty"`
1887
1888	// LinkedContentReference: A reference to the external linked source
1889	// content. For example, it contains
1890	// a reference to the source Sheets chart when the embedded object is a
1891	// linked
1892	// chart.
1893	//
1894	// If unset, then the embedded object is not linked.
1895	LinkedContentReference *LinkedContentReference `json:"linkedContentReference,omitempty"`
1896
1897	// MarginBottom: The bottom margin of the embedded object.
1898	MarginBottom *Dimension `json:"marginBottom,omitempty"`
1899
1900	// MarginLeft: The left margin of the embedded object.
1901	MarginLeft *Dimension `json:"marginLeft,omitempty"`
1902
1903	// MarginRight: The right margin of the embedded object.
1904	MarginRight *Dimension `json:"marginRight,omitempty"`
1905
1906	// MarginTop: The top margin of the embedded object.
1907	MarginTop *Dimension `json:"marginTop,omitempty"`
1908
1909	// Size: The visible size of the image after cropping.
1910	Size *Size `json:"size,omitempty"`
1911
1912	// Title: The title of the embedded object. The `title` and
1913	// `description` are both
1914	// combined to display alt text.
1915	Title string `json:"title,omitempty"`
1916
1917	// ForceSendFields is a list of field names (e.g. "Description") to
1918	// unconditionally include in API requests. By default, fields with
1919	// empty values are omitted from API requests. However, any non-pointer,
1920	// non-interface field appearing in ForceSendFields will be sent to the
1921	// server regardless of whether the field is empty or not. This may be
1922	// used to include empty fields in Patch requests.
1923	ForceSendFields []string `json:"-"`
1924
1925	// NullFields is a list of field names (e.g. "Description") to include
1926	// in API requests with the JSON null value. By default, fields with
1927	// empty values are omitted from API requests. However, any field with
1928	// an empty value appearing in NullFields will be sent to the server as
1929	// null. It is an error if a field in this list has a non-empty value.
1930	// This may be used to include null fields in Patch requests.
1931	NullFields []string `json:"-"`
1932}
1933
1934func (s *EmbeddedObject) MarshalJSON() ([]byte, error) {
1935	type NoMethod EmbeddedObject
1936	raw := NoMethod(*s)
1937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1938}
1939
1940// EmbeddedObjectBorder: A border around an EmbeddedObject.
1941type EmbeddedObjectBorder struct {
1942	// Color: The color of the border.
1943	Color *OptionalColor `json:"color,omitempty"`
1944
1945	// DashStyle: The dash style of the border.
1946	//
1947	// Possible values:
1948	//   "DASH_STYLE_UNSPECIFIED" - Unspecified dash style.
1949	//   "SOLID" - Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal
1950	// value 'solid'.
1951	// This is the default dash style.
1952	//   "DOT" - Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal
1953	// value 'dot'.
1954	//   "DASH" - Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal
1955	// value 'dash'.
1956	DashStyle string `json:"dashStyle,omitempty"`
1957
1958	// PropertyState: The property state of the border property.
1959	//
1960	// Possible values:
1961	//   "RENDERED" - If a property's state is RENDERED, then the element
1962	// has the corresponding
1963	// property when rendered in the document. This is the default value.
1964	//   "NOT_RENDERED" - If a property's state is NOT_RENDERED, then the
1965	// element does not have the
1966	// corresponding property when rendered in the document.
1967	PropertyState string `json:"propertyState,omitempty"`
1968
1969	// Width: The width of the border.
1970	Width *Dimension `json:"width,omitempty"`
1971
1972	// ForceSendFields is a list of field names (e.g. "Color") to
1973	// unconditionally include in API requests. By default, fields with
1974	// empty values are omitted from API requests. However, any non-pointer,
1975	// non-interface field appearing in ForceSendFields will be sent to the
1976	// server regardless of whether the field is empty or not. This may be
1977	// used to include empty fields in Patch requests.
1978	ForceSendFields []string `json:"-"`
1979
1980	// NullFields is a list of field names (e.g. "Color") to include in API
1981	// requests with the JSON null value. By default, fields with empty
1982	// values are omitted from API requests. However, any field with an
1983	// empty value appearing in NullFields will be sent to the server as
1984	// null. It is an error if a field in this list has a non-empty value.
1985	// This may be used to include null fields in Patch requests.
1986	NullFields []string `json:"-"`
1987}
1988
1989func (s *EmbeddedObjectBorder) MarshalJSON() ([]byte, error) {
1990	type NoMethod EmbeddedObjectBorder
1991	raw := NoMethod(*s)
1992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1993}
1994
1995// EmbeddedObjectBorderSuggestionState: A mask that indicates which of
1996// the fields on the base EmbeddedObjectBorder have been changed in
1997// this
1998// suggestion. For any field set to true, there is a new suggested
1999// value.
2000type EmbeddedObjectBorderSuggestionState struct {
2001	// ColorSuggested: Indicates if there was a suggested change to color.
2002	ColorSuggested bool `json:"colorSuggested,omitempty"`
2003
2004	// DashStyleSuggested: Indicates if there was a suggested change to
2005	// dash_style.
2006	DashStyleSuggested bool `json:"dashStyleSuggested,omitempty"`
2007
2008	// PropertyStateSuggested: Indicates if there was a suggested change to
2009	// property_state.
2010	PropertyStateSuggested bool `json:"propertyStateSuggested,omitempty"`
2011
2012	// WidthSuggested: Indicates if there was a suggested change to width.
2013	WidthSuggested bool `json:"widthSuggested,omitempty"`
2014
2015	// ForceSendFields is a list of field names (e.g. "ColorSuggested") to
2016	// unconditionally include in API requests. By default, fields with
2017	// empty values are omitted from API requests. However, any non-pointer,
2018	// non-interface field appearing in ForceSendFields will be sent to the
2019	// server regardless of whether the field is empty or not. This may be
2020	// used to include empty fields in Patch requests.
2021	ForceSendFields []string `json:"-"`
2022
2023	// NullFields is a list of field names (e.g. "ColorSuggested") to
2024	// include in API requests with the JSON null value. By default, fields
2025	// with empty values are omitted from API requests. However, any field
2026	// with an empty value appearing in NullFields will be sent to the
2027	// server as null. It is an error if a field in this list has a
2028	// non-empty value. This may be used to include null fields in Patch
2029	// requests.
2030	NullFields []string `json:"-"`
2031}
2032
2033func (s *EmbeddedObjectBorderSuggestionState) MarshalJSON() ([]byte, error) {
2034	type NoMethod EmbeddedObjectBorderSuggestionState
2035	raw := NoMethod(*s)
2036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2037}
2038
2039// EmbeddedObjectSuggestionState: A mask that indicates which of the
2040// fields on the base EmbeddedObject have been changed in this
2041// suggestion.
2042// For any field set to true, there is a new suggested value.
2043type EmbeddedObjectSuggestionState struct {
2044	// DescriptionSuggested: Indicates if there was a suggested change to
2045	// description.
2046	DescriptionSuggested bool `json:"descriptionSuggested,omitempty"`
2047
2048	// EmbeddedDrawingPropertiesSuggestionState: A mask that indicates which
2049	// of the fields in embedded_drawing_properties have been
2050	// changed in this suggestion.
2051	EmbeddedDrawingPropertiesSuggestionState *EmbeddedDrawingPropertiesSuggestionState `json:"embeddedDrawingPropertiesSuggestionState,omitempty"`
2052
2053	// EmbeddedObjectBorderSuggestionState: A mask that indicates which of
2054	// the fields in embedded_object_border have been
2055	// changed in this suggestion.
2056	EmbeddedObjectBorderSuggestionState *EmbeddedObjectBorderSuggestionState `json:"embeddedObjectBorderSuggestionState,omitempty"`
2057
2058	// ImagePropertiesSuggestionState: A mask that indicates which of the
2059	// fields in image_properties have been changed in
2060	// this suggestion.
2061	ImagePropertiesSuggestionState *ImagePropertiesSuggestionState `json:"imagePropertiesSuggestionState,omitempty"`
2062
2063	// LinkedContentReferenceSuggestionState: A mask that indicates which of
2064	// the fields in linked_content_reference have been
2065	// changed in this suggestion.
2066	LinkedContentReferenceSuggestionState *LinkedContentReferenceSuggestionState `json:"linkedContentReferenceSuggestionState,omitempty"`
2067
2068	// MarginBottomSuggested: Indicates if there was a suggested change to
2069	// margin_bottom.
2070	MarginBottomSuggested bool `json:"marginBottomSuggested,omitempty"`
2071
2072	// MarginLeftSuggested: Indicates if there was a suggested change to
2073	// margin_left.
2074	MarginLeftSuggested bool `json:"marginLeftSuggested,omitempty"`
2075
2076	// MarginRightSuggested: Indicates if there was a suggested change to
2077	// margin_right.
2078	MarginRightSuggested bool `json:"marginRightSuggested,omitempty"`
2079
2080	// MarginTopSuggested: Indicates if there was a suggested change to
2081	// margin_top.
2082	MarginTopSuggested bool `json:"marginTopSuggested,omitempty"`
2083
2084	// SizeSuggestionState: A mask that indicates which of the fields in
2085	// size have been changed in this
2086	// suggestion.
2087	SizeSuggestionState *SizeSuggestionState `json:"sizeSuggestionState,omitempty"`
2088
2089	// TitleSuggested: Indicates if there was a suggested change to title.
2090	TitleSuggested bool `json:"titleSuggested,omitempty"`
2091
2092	// ForceSendFields is a list of field names (e.g.
2093	// "DescriptionSuggested") to unconditionally include in API requests.
2094	// By default, fields with empty values are omitted from API requests.
2095	// However, any non-pointer, non-interface field appearing in
2096	// ForceSendFields will be sent to the server regardless of whether the
2097	// field is empty or not. This may be used to include empty fields in
2098	// Patch requests.
2099	ForceSendFields []string `json:"-"`
2100
2101	// NullFields is a list of field names (e.g. "DescriptionSuggested") to
2102	// include in API requests with the JSON null value. By default, fields
2103	// with empty values are omitted from API requests. However, any field
2104	// with an empty value appearing in NullFields will be sent to the
2105	// server as null. It is an error if a field in this list has a
2106	// non-empty value. This may be used to include null fields in Patch
2107	// requests.
2108	NullFields []string `json:"-"`
2109}
2110
2111func (s *EmbeddedObjectSuggestionState) MarshalJSON() ([]byte, error) {
2112	type NoMethod EmbeddedObjectSuggestionState
2113	raw := NoMethod(*s)
2114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2115}
2116
2117// EndOfSegmentLocation: Location at the end of a body, header, footer
2118// or footnote. The location is
2119// immediately before the last newline in the document segment.
2120type EndOfSegmentLocation struct {
2121	// SegmentId: The ID of the header, footer or footnote the location is
2122	// in. An empty
2123	// segment ID signifies the document's body.
2124	SegmentId string `json:"segmentId,omitempty"`
2125
2126	// ForceSendFields is a list of field names (e.g. "SegmentId") to
2127	// unconditionally include in API requests. By default, fields with
2128	// empty values are omitted from API requests. However, any non-pointer,
2129	// non-interface field appearing in ForceSendFields will be sent to the
2130	// server regardless of whether the field is empty or not. This may be
2131	// used to include empty fields in Patch requests.
2132	ForceSendFields []string `json:"-"`
2133
2134	// NullFields is a list of field names (e.g. "SegmentId") to include in
2135	// API requests with the JSON null value. By default, fields with empty
2136	// values are omitted from API requests. However, any field with an
2137	// empty value appearing in NullFields will be sent to the server as
2138	// null. It is an error if a field in this list has a non-empty value.
2139	// This may be used to include null fields in Patch requests.
2140	NullFields []string `json:"-"`
2141}
2142
2143func (s *EndOfSegmentLocation) MarshalJSON() ([]byte, error) {
2144	type NoMethod EndOfSegmentLocation
2145	raw := NoMethod(*s)
2146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2147}
2148
2149// Equation: A ParagraphElement representing an
2150// equation.
2151type Equation struct {
2152	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
2153	// there are no suggested deletions
2154	// of this content.
2155	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
2156
2157	// SuggestedInsertionIds: The suggested insertion IDs. A Equation
2158	// may have multiple insertion IDs if it is a nested suggested change.
2159	// If
2160	// empty, then this is not a suggested insertion.
2161	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
2162
2163	// ForceSendFields is a list of field names (e.g.
2164	// "SuggestedDeletionIds") to unconditionally include in API requests.
2165	// By default, fields with empty values are omitted from API requests.
2166	// However, any non-pointer, non-interface field appearing in
2167	// ForceSendFields will be sent to the server regardless of whether the
2168	// field is empty or not. This may be used to include empty fields in
2169	// Patch requests.
2170	ForceSendFields []string `json:"-"`
2171
2172	// NullFields is a list of field names (e.g. "SuggestedDeletionIds") to
2173	// include in API requests with the JSON null value. By default, fields
2174	// with empty values are omitted from API requests. However, any field
2175	// with an empty value appearing in NullFields will be sent to the
2176	// server as null. It is an error if a field in this list has a
2177	// non-empty value. This may be used to include null fields in Patch
2178	// requests.
2179	NullFields []string `json:"-"`
2180}
2181
2182func (s *Equation) MarshalJSON() ([]byte, error) {
2183	type NoMethod Equation
2184	raw := NoMethod(*s)
2185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2186}
2187
2188// Footer: A document footer.
2189type Footer struct {
2190	// Content: The contents of the footer.
2191	//
2192	// The indexes for a footer's content begin at zero.
2193	Content []*StructuralElement `json:"content,omitempty"`
2194
2195	// FooterId: The ID of the footer.
2196	FooterId string `json:"footerId,omitempty"`
2197
2198	// ForceSendFields is a list of field names (e.g. "Content") to
2199	// unconditionally include in API requests. By default, fields with
2200	// empty values are omitted from API requests. However, any non-pointer,
2201	// non-interface field appearing in ForceSendFields will be sent to the
2202	// server regardless of whether the field is empty or not. This may be
2203	// used to include empty fields in Patch requests.
2204	ForceSendFields []string `json:"-"`
2205
2206	// NullFields is a list of field names (e.g. "Content") to include in
2207	// API requests with the JSON null value. By default, fields with empty
2208	// values are omitted from API requests. However, any field with an
2209	// empty value appearing in NullFields will be sent to the server as
2210	// null. It is an error if a field in this list has a non-empty value.
2211	// This may be used to include null fields in Patch requests.
2212	NullFields []string `json:"-"`
2213}
2214
2215func (s *Footer) MarshalJSON() ([]byte, error) {
2216	type NoMethod Footer
2217	raw := NoMethod(*s)
2218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2219}
2220
2221// Footnote: A document footnote.
2222type Footnote struct {
2223	// Content: The contents of the footnote.
2224	//
2225	// The indexes for a footnote's content begin at zero.
2226	Content []*StructuralElement `json:"content,omitempty"`
2227
2228	// FootnoteId: The ID of the footnote.
2229	FootnoteId string `json:"footnoteId,omitempty"`
2230
2231	// ForceSendFields is a list of field names (e.g. "Content") 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. "Content") to include in
2240	// API 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 *Footnote) MarshalJSON() ([]byte, error) {
2249	type NoMethod Footnote
2250	raw := NoMethod(*s)
2251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2252}
2253
2254// FootnoteReference: A ParagraphElement representing a
2255// footnote reference. A footnote reference is the inline content
2256// rendered with
2257// a number and is used to identify the footnote.
2258type FootnoteReference struct {
2259	// FootnoteId: The ID of the footnote that
2260	// contains the content of this footnote reference.
2261	FootnoteId string `json:"footnoteId,omitempty"`
2262
2263	// FootnoteNumber: The rendered number of this footnote.
2264	FootnoteNumber string `json:"footnoteNumber,omitempty"`
2265
2266	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
2267	// there are no suggested deletions
2268	// of this content.
2269	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
2270
2271	// SuggestedInsertionIds: The suggested insertion IDs. A
2272	// FootnoteReference may have multiple insertion IDs if
2273	// it is a nested suggested change. If empty, then this is not a
2274	// suggested
2275	// insertion.
2276	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
2277
2278	// SuggestedTextStyleChanges: The suggested text style changes to this
2279	// FootnoteReference, keyed by
2280	// suggestion ID.
2281	SuggestedTextStyleChanges map[string]SuggestedTextStyle `json:"suggestedTextStyleChanges,omitempty"`
2282
2283	// TextStyle: The text style of this FootnoteReference.
2284	TextStyle *TextStyle `json:"textStyle,omitempty"`
2285
2286	// ForceSendFields is a list of field names (e.g. "FootnoteId") to
2287	// unconditionally include in API requests. By default, fields with
2288	// empty values are omitted from API requests. However, any non-pointer,
2289	// non-interface field appearing in ForceSendFields will be sent to the
2290	// server regardless of whether the field is empty or not. This may be
2291	// used to include empty fields in Patch requests.
2292	ForceSendFields []string `json:"-"`
2293
2294	// NullFields is a list of field names (e.g. "FootnoteId") to include in
2295	// API requests with the JSON null value. By default, fields with empty
2296	// values are omitted from API requests. However, any field with an
2297	// empty value appearing in NullFields will be sent to the server as
2298	// null. It is an error if a field in this list has a non-empty value.
2299	// This may be used to include null fields in Patch requests.
2300	NullFields []string `json:"-"`
2301}
2302
2303func (s *FootnoteReference) MarshalJSON() ([]byte, error) {
2304	type NoMethod FootnoteReference
2305	raw := NoMethod(*s)
2306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2307}
2308
2309// Header: A document header.
2310type Header struct {
2311	// Content: The contents of the header.
2312	//
2313	// The indexes for a header's content begin at zero.
2314	Content []*StructuralElement `json:"content,omitempty"`
2315
2316	// HeaderId: The ID of the header.
2317	HeaderId string `json:"headerId,omitempty"`
2318
2319	// ForceSendFields is a list of field names (e.g. "Content") to
2320	// unconditionally include in API requests. By default, fields with
2321	// empty values are omitted from API requests. However, any non-pointer,
2322	// non-interface field appearing in ForceSendFields will be sent to the
2323	// server regardless of whether the field is empty or not. This may be
2324	// used to include empty fields in Patch requests.
2325	ForceSendFields []string `json:"-"`
2326
2327	// NullFields is a list of field names (e.g. "Content") to include in
2328	// API requests with the JSON null value. By default, fields with empty
2329	// values are omitted from API requests. However, any field with an
2330	// empty value appearing in NullFields will be sent to the server as
2331	// null. It is an error if a field in this list has a non-empty value.
2332	// This may be used to include null fields in Patch requests.
2333	NullFields []string `json:"-"`
2334}
2335
2336func (s *Header) MarshalJSON() ([]byte, error) {
2337	type NoMethod Header
2338	raw := NoMethod(*s)
2339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2340}
2341
2342// HorizontalRule: A ParagraphElement representing a
2343// horizontal line.
2344type HorizontalRule struct {
2345	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
2346	// there are no suggested deletions
2347	// of this content.
2348	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
2349
2350	// SuggestedInsertionIds: The suggested insertion IDs. A HorizontalRule
2351	// may have multiple insertion IDs if it
2352	// is a nested suggested change. If empty, then this is not a
2353	// suggested
2354	// insertion.
2355	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
2356
2357	// SuggestedTextStyleChanges: The suggested text style changes to this
2358	// HorizontalRule, keyed by
2359	// suggestion ID.
2360	SuggestedTextStyleChanges map[string]SuggestedTextStyle `json:"suggestedTextStyleChanges,omitempty"`
2361
2362	// TextStyle: The text style of this HorizontalRule.
2363	//
2364	// Similar to text content, like text runs and footnote references, the
2365	// text
2366	// style of a horizontal rule can affect content layout as well as the
2367	// styling
2368	// of text inserted adjacent to it.
2369	TextStyle *TextStyle `json:"textStyle,omitempty"`
2370
2371	// ForceSendFields is a list of field names (e.g.
2372	// "SuggestedDeletionIds") to unconditionally include in API requests.
2373	// By default, fields with empty values are omitted from API requests.
2374	// However, any non-pointer, non-interface field appearing in
2375	// ForceSendFields will be sent to the server regardless of whether the
2376	// field is empty or not. This may be used to include empty fields in
2377	// Patch requests.
2378	ForceSendFields []string `json:"-"`
2379
2380	// NullFields is a list of field names (e.g. "SuggestedDeletionIds") to
2381	// include in API requests with the JSON null value. By default, fields
2382	// with empty values are omitted from API requests. However, any field
2383	// with an empty value appearing in NullFields will be sent to the
2384	// server as null. It is an error if a field in this list has a
2385	// non-empty value. This may be used to include null fields in Patch
2386	// requests.
2387	NullFields []string `json:"-"`
2388}
2389
2390func (s *HorizontalRule) MarshalJSON() ([]byte, error) {
2391	type NoMethod HorizontalRule
2392	raw := NoMethod(*s)
2393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2394}
2395
2396// ImageProperties: The properties of an image.
2397type ImageProperties struct {
2398	// Angle: The clockwise rotation angle of the image, in radians.
2399	Angle float64 `json:"angle,omitempty"`
2400
2401	// Brightness: The brightness effect of the image. The value should be
2402	// in the interval
2403	// [-1.0, 1.0], where 0 means no effect.
2404	Brightness float64 `json:"brightness,omitempty"`
2405
2406	// ContentUri: A URI to the image with a default lifetime of 30
2407	// minutes.
2408	// This URI is tagged with the account of the requester. Anyone with the
2409	// URI
2410	// effectively accesses the image as the original requester. Access to
2411	// the
2412	// image may be lost if the document's sharing settings change.
2413	ContentUri string `json:"contentUri,omitempty"`
2414
2415	// Contrast: The contrast effect of the image. The value should be in
2416	// the interval
2417	// [-1.0, 1.0], where 0 means no effect.
2418	Contrast float64 `json:"contrast,omitempty"`
2419
2420	// CropProperties: The crop properties of the image.
2421	CropProperties *CropProperties `json:"cropProperties,omitempty"`
2422
2423	// SourceUri: The source URI is the URI used to insert the image. The
2424	// source URI can be
2425	// empty.
2426	SourceUri string `json:"sourceUri,omitempty"`
2427
2428	// Transparency: The transparency effect of the image. The value should
2429	// be in the interval
2430	// [0.0, 1.0], where 0 means no effect and 1 means completely
2431	// transparent.
2432	Transparency float64 `json:"transparency,omitempty"`
2433
2434	// ForceSendFields is a list of field names (e.g. "Angle") to
2435	// unconditionally include in API requests. By default, fields with
2436	// empty values are omitted from API requests. However, any non-pointer,
2437	// non-interface field appearing in ForceSendFields will be sent to the
2438	// server regardless of whether the field is empty or not. This may be
2439	// used to include empty fields in Patch requests.
2440	ForceSendFields []string `json:"-"`
2441
2442	// NullFields is a list of field names (e.g. "Angle") to include in API
2443	// requests with the JSON null value. By default, fields with empty
2444	// values are omitted from API requests. However, any field with an
2445	// empty value appearing in NullFields will be sent to the server as
2446	// null. It is an error if a field in this list has a non-empty value.
2447	// This may be used to include null fields in Patch requests.
2448	NullFields []string `json:"-"`
2449}
2450
2451func (s *ImageProperties) MarshalJSON() ([]byte, error) {
2452	type NoMethod ImageProperties
2453	raw := NoMethod(*s)
2454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2455}
2456
2457func (s *ImageProperties) UnmarshalJSON(data []byte) error {
2458	type NoMethod ImageProperties
2459	var s1 struct {
2460		Angle        gensupport.JSONFloat64 `json:"angle"`
2461		Brightness   gensupport.JSONFloat64 `json:"brightness"`
2462		Contrast     gensupport.JSONFloat64 `json:"contrast"`
2463		Transparency gensupport.JSONFloat64 `json:"transparency"`
2464		*NoMethod
2465	}
2466	s1.NoMethod = (*NoMethod)(s)
2467	if err := json.Unmarshal(data, &s1); err != nil {
2468		return err
2469	}
2470	s.Angle = float64(s1.Angle)
2471	s.Brightness = float64(s1.Brightness)
2472	s.Contrast = float64(s1.Contrast)
2473	s.Transparency = float64(s1.Transparency)
2474	return nil
2475}
2476
2477// ImagePropertiesSuggestionState: A mask that indicates which of the
2478// fields on the base ImageProperties have been changed in this
2479// suggestion.
2480// For any field set to true, there is a new suggested value.
2481type ImagePropertiesSuggestionState struct {
2482	// AngleSuggested: Indicates if there was a suggested change to angle.
2483	AngleSuggested bool `json:"angleSuggested,omitempty"`
2484
2485	// BrightnessSuggested: Indicates if there was a suggested change to
2486	// brightness.
2487	BrightnessSuggested bool `json:"brightnessSuggested,omitempty"`
2488
2489	// ContentUriSuggested: Indicates if there was a suggested change
2490	// to
2491	// content_uri.
2492	ContentUriSuggested bool `json:"contentUriSuggested,omitempty"`
2493
2494	// ContrastSuggested: Indicates if there was a suggested change to
2495	// contrast.
2496	ContrastSuggested bool `json:"contrastSuggested,omitempty"`
2497
2498	// CropPropertiesSuggestionState: A mask that indicates which of the
2499	// fields in crop_properties have been changed in
2500	// this suggestion.
2501	CropPropertiesSuggestionState *CropPropertiesSuggestionState `json:"cropPropertiesSuggestionState,omitempty"`
2502
2503	// SourceUriSuggested: Indicates if there was a suggested change to
2504	// source_uri.
2505	SourceUriSuggested bool `json:"sourceUriSuggested,omitempty"`
2506
2507	// TransparencySuggested: Indicates if there was a suggested change to
2508	// transparency.
2509	TransparencySuggested bool `json:"transparencySuggested,omitempty"`
2510
2511	// ForceSendFields is a list of field names (e.g. "AngleSuggested") to
2512	// unconditionally include in API requests. By default, fields with
2513	// empty values are omitted from API requests. However, any non-pointer,
2514	// non-interface field appearing in ForceSendFields will be sent to the
2515	// server regardless of whether the field is empty or not. This may be
2516	// used to include empty fields in Patch requests.
2517	ForceSendFields []string `json:"-"`
2518
2519	// NullFields is a list of field names (e.g. "AngleSuggested") to
2520	// include in API requests with the JSON null value. By default, fields
2521	// with empty values are omitted from API requests. However, any field
2522	// with an empty value appearing in NullFields will be sent to the
2523	// server as null. It is an error if a field in this list has a
2524	// non-empty value. This may be used to include null fields in Patch
2525	// requests.
2526	NullFields []string `json:"-"`
2527}
2528
2529func (s *ImagePropertiesSuggestionState) MarshalJSON() ([]byte, error) {
2530	type NoMethod ImagePropertiesSuggestionState
2531	raw := NoMethod(*s)
2532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2533}
2534
2535// InlineObject: An object that appears inline with text. An
2536// InlineObject contains
2537// an EmbeddedObject such as an image.
2538type InlineObject struct {
2539	// InlineObjectProperties: The properties of this inline object.
2540	InlineObjectProperties *InlineObjectProperties `json:"inlineObjectProperties,omitempty"`
2541
2542	// ObjectId: The ID of this inline object.
2543	ObjectId string `json:"objectId,omitempty"`
2544
2545	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
2546	// there are no suggested deletions
2547	// of this content.
2548	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
2549
2550	// SuggestedInlineObjectPropertiesChanges: The suggested changes to the
2551	// inline object properties, keyed by suggestion
2552	// ID.
2553	SuggestedInlineObjectPropertiesChanges map[string]SuggestedInlineObjectProperties `json:"suggestedInlineObjectPropertiesChanges,omitempty"`
2554
2555	// SuggestedInsertionId: The suggested insertion ID. If empty, then this
2556	// is not a suggested
2557	// insertion.
2558	SuggestedInsertionId string `json:"suggestedInsertionId,omitempty"`
2559
2560	// ForceSendFields is a list of field names (e.g.
2561	// "InlineObjectProperties") to unconditionally include in API requests.
2562	// By default, fields with empty values are omitted from API requests.
2563	// However, any non-pointer, non-interface field appearing in
2564	// ForceSendFields will be sent to the server regardless of whether the
2565	// field is empty or not. This may be used to include empty fields in
2566	// Patch requests.
2567	ForceSendFields []string `json:"-"`
2568
2569	// NullFields is a list of field names (e.g. "InlineObjectProperties")
2570	// to include in API requests with the JSON null value. By default,
2571	// fields with empty values are omitted from API requests. However, any
2572	// field with an empty value appearing in NullFields will be sent to the
2573	// server as null. It is an error if a field in this list has a
2574	// non-empty value. This may be used to include null fields in Patch
2575	// requests.
2576	NullFields []string `json:"-"`
2577}
2578
2579func (s *InlineObject) MarshalJSON() ([]byte, error) {
2580	type NoMethod InlineObject
2581	raw := NoMethod(*s)
2582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2583}
2584
2585// InlineObjectElement: A ParagraphElement that contains
2586// an InlineObject.
2587type InlineObjectElement struct {
2588	// InlineObjectId: The ID of the InlineObject this
2589	// element contains.
2590	InlineObjectId string `json:"inlineObjectId,omitempty"`
2591
2592	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
2593	// there are no suggested deletions
2594	// of this content.
2595	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
2596
2597	// SuggestedInsertionIds: The suggested insertion IDs. An
2598	// InlineObjectElement may have multiple insertion IDs
2599	// if it is a nested suggested change. If empty, then this is not a
2600	// suggested
2601	// insertion.
2602	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
2603
2604	// SuggestedTextStyleChanges: The suggested text style changes to this
2605	// InlineObject, keyed by suggestion
2606	// ID.
2607	SuggestedTextStyleChanges map[string]SuggestedTextStyle `json:"suggestedTextStyleChanges,omitempty"`
2608
2609	// TextStyle: The text style of this InlineObjectElement.
2610	//
2611	// Similar to text content, like text runs and footnote references, the
2612	// text
2613	// style of an inline object element can affect content layout as well
2614	// as the
2615	// styling of text inserted adjacent to it.
2616	TextStyle *TextStyle `json:"textStyle,omitempty"`
2617
2618	// ForceSendFields is a list of field names (e.g. "InlineObjectId") to
2619	// unconditionally include in API requests. By default, fields with
2620	// empty values are omitted from API requests. However, any non-pointer,
2621	// non-interface field appearing in ForceSendFields will be sent to the
2622	// server regardless of whether the field is empty or not. This may be
2623	// used to include empty fields in Patch requests.
2624	ForceSendFields []string `json:"-"`
2625
2626	// NullFields is a list of field names (e.g. "InlineObjectId") to
2627	// include in API requests with the JSON null value. By default, fields
2628	// with empty values are omitted from API requests. However, any field
2629	// with an empty value appearing in NullFields will be sent to the
2630	// server as null. It is an error if a field in this list has a
2631	// non-empty value. This may be used to include null fields in Patch
2632	// requests.
2633	NullFields []string `json:"-"`
2634}
2635
2636func (s *InlineObjectElement) MarshalJSON() ([]byte, error) {
2637	type NoMethod InlineObjectElement
2638	raw := NoMethod(*s)
2639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2640}
2641
2642// InlineObjectProperties: Properties of an InlineObject.
2643type InlineObjectProperties struct {
2644	// EmbeddedObject: The embedded object of this inline object.
2645	EmbeddedObject *EmbeddedObject `json:"embeddedObject,omitempty"`
2646
2647	// ForceSendFields is a list of field names (e.g. "EmbeddedObject") to
2648	// unconditionally include in API requests. By default, fields with
2649	// empty values are omitted from API requests. However, any non-pointer,
2650	// non-interface field appearing in ForceSendFields will be sent to the
2651	// server regardless of whether the field is empty or not. This may be
2652	// used to include empty fields in Patch requests.
2653	ForceSendFields []string `json:"-"`
2654
2655	// NullFields is a list of field names (e.g. "EmbeddedObject") to
2656	// include in API requests with the JSON null value. By default, fields
2657	// with empty values are omitted from API requests. However, any field
2658	// with an empty value appearing in NullFields will be sent to the
2659	// server as null. It is an error if a field in this list has a
2660	// non-empty value. This may be used to include null fields in Patch
2661	// requests.
2662	NullFields []string `json:"-"`
2663}
2664
2665func (s *InlineObjectProperties) MarshalJSON() ([]byte, error) {
2666	type NoMethod InlineObjectProperties
2667	raw := NoMethod(*s)
2668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2669}
2670
2671// InlineObjectPropertiesSuggestionState: A mask that indicates which of
2672// the fields on the base
2673// InlineObjectProperties have
2674// been changed in this suggestion. For any field set to true, there is
2675// a new
2676// suggested value.
2677type InlineObjectPropertiesSuggestionState struct {
2678	// EmbeddedObjectSuggestionState: A mask that indicates which of the
2679	// fields in embedded_object have been
2680	// changed in this suggestion.
2681	EmbeddedObjectSuggestionState *EmbeddedObjectSuggestionState `json:"embeddedObjectSuggestionState,omitempty"`
2682
2683	// ForceSendFields is a list of field names (e.g.
2684	// "EmbeddedObjectSuggestionState") to unconditionally include in API
2685	// requests. By default, fields with empty values are omitted from API
2686	// requests. However, any non-pointer, non-interface field appearing in
2687	// ForceSendFields will be sent to the server regardless of whether the
2688	// field is empty or not. This may be used to include empty fields in
2689	// Patch requests.
2690	ForceSendFields []string `json:"-"`
2691
2692	// NullFields is a list of field names (e.g.
2693	// "EmbeddedObjectSuggestionState") to include in API requests with the
2694	// JSON null value. By default, fields with empty values are omitted
2695	// from API requests. However, any field with an empty value appearing
2696	// in NullFields will be sent to the server as null. It is an error if a
2697	// field in this list has a non-empty value. This may be used to include
2698	// null fields in Patch requests.
2699	NullFields []string `json:"-"`
2700}
2701
2702func (s *InlineObjectPropertiesSuggestionState) MarshalJSON() ([]byte, error) {
2703	type NoMethod InlineObjectPropertiesSuggestionState
2704	raw := NoMethod(*s)
2705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2706}
2707
2708// InsertInlineImageRequest: Inserts an InlineObject containing an
2709// image at the given location.
2710type InsertInlineImageRequest struct {
2711	// EndOfSegmentLocation: Inserts the text at the end of a header, footer
2712	// or the document body.
2713	//
2714	// Inline images cannot be inserted inside a footnote.
2715	EndOfSegmentLocation *EndOfSegmentLocation `json:"endOfSegmentLocation,omitempty"`
2716
2717	// Location: Inserts the image at a specific index in the document.
2718	//
2719	// The image must be inserted inside the bounds of an
2720	// existing
2721	// Paragraph. For instance, it cannot be
2722	// inserted at a table's start index (i.e. between the table and
2723	// its
2724	// preceding paragraph).
2725	//
2726	// Inline images cannot be inserted inside a footnote or equation.
2727	Location *Location `json:"location,omitempty"`
2728
2729	// ObjectSize: The size that the image should appear as in the document.
2730	// This property is
2731	// optional and the final size of the image in the document is
2732	// determined by
2733	// the following rules:
2734	//  * If neither width nor height is specified, then a default size of
2735	// the
2736	//  image is calculated based on its resolution.
2737	//  * If one dimension is specified then the other dimension is
2738	// calculated to
2739	//  preserve the aspect ratio of the image.
2740	//  * If both width and height are specified, the image is scaled to
2741	// fit
2742	//  within the provided dimensions while maintaining its aspect ratio.
2743	ObjectSize *Size `json:"objectSize,omitempty"`
2744
2745	// Uri: The image URI.
2746	//
2747	// The image is fetched once at insertion time and a copy is stored
2748	// for
2749	// display inside the document. Images must be less than 50MB in size,
2750	// cannot
2751	// exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF
2752	// format.
2753	//
2754	// The provided URI can be at most 2 kB in length. The URI itself is
2755	// saved
2756	// with the image, and exposed via the ImageProperties.content_uri
2757	// field.
2758	Uri string `json:"uri,omitempty"`
2759
2760	// ForceSendFields is a list of field names (e.g.
2761	// "EndOfSegmentLocation") to unconditionally include in API requests.
2762	// By default, fields with empty values are omitted from API requests.
2763	// However, any non-pointer, non-interface field appearing in
2764	// ForceSendFields will be sent to the server regardless of whether the
2765	// field is empty or not. This may be used to include empty fields in
2766	// Patch requests.
2767	ForceSendFields []string `json:"-"`
2768
2769	// NullFields is a list of field names (e.g. "EndOfSegmentLocation") to
2770	// include in API requests with the JSON null value. By default, fields
2771	// with empty values are omitted from API requests. However, any field
2772	// with an empty value appearing in NullFields will be sent to the
2773	// server as null. It is an error if a field in this list has a
2774	// non-empty value. This may be used to include null fields in Patch
2775	// requests.
2776	NullFields []string `json:"-"`
2777}
2778
2779func (s *InsertInlineImageRequest) MarshalJSON() ([]byte, error) {
2780	type NoMethod InsertInlineImageRequest
2781	raw := NoMethod(*s)
2782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2783}
2784
2785// InsertInlineImageResponse: The result of inserting an inline image.
2786type InsertInlineImageResponse struct {
2787	// ObjectId: The ID of the created InlineObject.
2788	ObjectId string `json:"objectId,omitempty"`
2789
2790	// ForceSendFields is a list of field names (e.g. "ObjectId") to
2791	// unconditionally include in API requests. By default, fields with
2792	// empty values are omitted from API requests. However, any non-pointer,
2793	// non-interface field appearing in ForceSendFields will be sent to the
2794	// server regardless of whether the field is empty or not. This may be
2795	// used to include empty fields in Patch requests.
2796	ForceSendFields []string `json:"-"`
2797
2798	// NullFields is a list of field names (e.g. "ObjectId") to include in
2799	// API requests with the JSON null value. By default, fields with empty
2800	// values are omitted from API requests. However, any field with an
2801	// empty value appearing in NullFields will be sent to the server as
2802	// null. It is an error if a field in this list has a non-empty value.
2803	// This may be used to include null fields in Patch requests.
2804	NullFields []string `json:"-"`
2805}
2806
2807func (s *InsertInlineImageResponse) MarshalJSON() ([]byte, error) {
2808	type NoMethod InsertInlineImageResponse
2809	raw := NoMethod(*s)
2810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2811}
2812
2813// InsertInlineSheetsChartResponse: The result of inserting an embedded
2814// Google Sheets chart.
2815type InsertInlineSheetsChartResponse struct {
2816	// ObjectId: The object ID of the inserted chart.
2817	ObjectId string `json:"objectId,omitempty"`
2818
2819	// ForceSendFields is a list of field names (e.g. "ObjectId") to
2820	// unconditionally include in API requests. By default, fields with
2821	// empty values are omitted from API requests. However, any non-pointer,
2822	// non-interface field appearing in ForceSendFields will be sent to the
2823	// server regardless of whether the field is empty or not. This may be
2824	// used to include empty fields in Patch requests.
2825	ForceSendFields []string `json:"-"`
2826
2827	// NullFields is a list of field names (e.g. "ObjectId") to include in
2828	// API requests with the JSON null value. By default, fields with empty
2829	// values are omitted from API requests. However, any field with an
2830	// empty value appearing in NullFields will be sent to the server as
2831	// null. It is an error if a field in this list has a non-empty value.
2832	// This may be used to include null fields in Patch requests.
2833	NullFields []string `json:"-"`
2834}
2835
2836func (s *InsertInlineSheetsChartResponse) MarshalJSON() ([]byte, error) {
2837	type NoMethod InsertInlineSheetsChartResponse
2838	raw := NoMethod(*s)
2839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2840}
2841
2842// InsertPageBreakRequest: Inserts a page break followed by a newline at
2843// the specified location.
2844type InsertPageBreakRequest struct {
2845	// EndOfSegmentLocation: Inserts the page break at the end of the
2846	// document body.
2847	//
2848	// Page breaks cannot be inserted inside a footnote, header or
2849	// footer.
2850	// Since page breaks can only be inserted inside the body, the segment
2851	// ID field must be
2852	// empty.
2853	EndOfSegmentLocation *EndOfSegmentLocation `json:"endOfSegmentLocation,omitempty"`
2854
2855	// Location: Inserts the page break at a specific index in the
2856	// document.
2857	//
2858	// The page break must be inserted inside the bounds of an
2859	// existing
2860	// Paragraph. For instance, it cannot be
2861	// inserted at a table's start index (i.e. between the table and
2862	// its
2863	// preceding paragraph).
2864	//
2865	// Page breaks cannot be inserted inside a table, equation, footnote,
2866	// header
2867	// or footer. Since page breaks can only be inserted inside the body,
2868	// the
2869	// segment ID field must be
2870	// empty.
2871	Location *Location `json:"location,omitempty"`
2872
2873	// ForceSendFields is a list of field names (e.g.
2874	// "EndOfSegmentLocation") to unconditionally include in API requests.
2875	// By default, fields with empty values are omitted from API requests.
2876	// However, any non-pointer, non-interface field appearing in
2877	// ForceSendFields will be sent to the server regardless of whether the
2878	// field is empty or not. This may be used to include empty fields in
2879	// Patch requests.
2880	ForceSendFields []string `json:"-"`
2881
2882	// NullFields is a list of field names (e.g. "EndOfSegmentLocation") to
2883	// include in API requests with the JSON null value. By default, fields
2884	// with empty values are omitted from API requests. However, any field
2885	// with an empty value appearing in NullFields will be sent to the
2886	// server as null. It is an error if a field in this list has a
2887	// non-empty value. This may be used to include null fields in Patch
2888	// requests.
2889	NullFields []string `json:"-"`
2890}
2891
2892func (s *InsertPageBreakRequest) MarshalJSON() ([]byte, error) {
2893	type NoMethod InsertPageBreakRequest
2894	raw := NoMethod(*s)
2895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2896}
2897
2898// InsertSectionBreakRequest: Inserts a section break at the given
2899// location.
2900//
2901// A newline character will be inserted before the section break.
2902type InsertSectionBreakRequest struct {
2903	// EndOfSegmentLocation: Inserts a newline and a section break at the
2904	// end of the document body.
2905	//
2906	// Section breaks cannot be inserted inside a footnote, header or
2907	// footer.
2908	// Because section breaks can only be inserted inside the body, the
2909	// segment
2910	// ID field must be
2911	// empty.
2912	EndOfSegmentLocation *EndOfSegmentLocation `json:"endOfSegmentLocation,omitempty"`
2913
2914	// Location: Inserts a newline and a section break at a specific index
2915	// in the
2916	// document.
2917	//
2918	// The section break must be inserted inside the bounds of an
2919	// existing
2920	// Paragraph. For instance, it cannot be
2921	// inserted at a table's start index (i.e. between the table and
2922	// its
2923	// preceding paragraph).
2924	//
2925	// Section breaks cannot be inserted inside a table, equation,
2926	// footnote,
2927	// header, or footer. Since section breaks can only be inserted inside
2928	// the
2929	// body, the segment ID field
2930	// must be empty.
2931	Location *Location `json:"location,omitempty"`
2932
2933	// SectionType: The type of section to insert.
2934	//
2935	// Possible values:
2936	//   "SECTION_TYPE_UNSPECIFIED" - The section type is unspecified.
2937	//   "CONTINUOUS" - The section starts immediately after the last
2938	// paragraph of the previous
2939	// section.
2940	//   "NEXT_PAGE" - The section starts on the next page.
2941	SectionType string `json:"sectionType,omitempty"`
2942
2943	// ForceSendFields is a list of field names (e.g.
2944	// "EndOfSegmentLocation") to unconditionally include in API requests.
2945	// By default, fields with empty values are omitted from API requests.
2946	// However, any non-pointer, non-interface field appearing in
2947	// ForceSendFields will be sent to the server regardless of whether the
2948	// field is empty or not. This may be used to include empty fields in
2949	// Patch requests.
2950	ForceSendFields []string `json:"-"`
2951
2952	// NullFields is a list of field names (e.g. "EndOfSegmentLocation") to
2953	// include in API requests with the JSON null value. By default, fields
2954	// with empty values are omitted from API requests. However, any field
2955	// with an empty value appearing in NullFields will be sent to the
2956	// server as null. It is an error if a field in this list has a
2957	// non-empty value. This may be used to include null fields in Patch
2958	// requests.
2959	NullFields []string `json:"-"`
2960}
2961
2962func (s *InsertSectionBreakRequest) MarshalJSON() ([]byte, error) {
2963	type NoMethod InsertSectionBreakRequest
2964	raw := NoMethod(*s)
2965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2966}
2967
2968// InsertTableColumnRequest: Inserts an empty column into a table.
2969type InsertTableColumnRequest struct {
2970	// InsertRight: Whether to insert new column to the right of the
2971	// reference cell location.
2972	//
2973	// - `True`: insert to the right.
2974	// - `False`: insert to the left.
2975	InsertRight bool `json:"insertRight,omitempty"`
2976
2977	// TableCellLocation: The reference table cell location from which
2978	// columns will be inserted.
2979	//
2980	// A new column will be inserted to the left (or right) of the column
2981	// where
2982	// the reference cell is. If the reference cell is a merged cell, a
2983	// new
2984	// column will be inserted to the left (or right) of the merged cell.
2985	TableCellLocation *TableCellLocation `json:"tableCellLocation,omitempty"`
2986
2987	// ForceSendFields is a list of field names (e.g. "InsertRight") to
2988	// unconditionally include in API requests. By default, fields with
2989	// empty values are omitted from API requests. However, any non-pointer,
2990	// non-interface field appearing in ForceSendFields will be sent to the
2991	// server regardless of whether the field is empty or not. This may be
2992	// used to include empty fields in Patch requests.
2993	ForceSendFields []string `json:"-"`
2994
2995	// NullFields is a list of field names (e.g. "InsertRight") to include
2996	// in API requests with the JSON null value. By default, fields with
2997	// empty values are omitted from API requests. However, any field with
2998	// an empty value appearing in NullFields will be sent to the server as
2999	// null. It is an error if a field in this list has a non-empty value.
3000	// This may be used to include null fields in Patch requests.
3001	NullFields []string `json:"-"`
3002}
3003
3004func (s *InsertTableColumnRequest) MarshalJSON() ([]byte, error) {
3005	type NoMethod InsertTableColumnRequest
3006	raw := NoMethod(*s)
3007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3008}
3009
3010// InsertTableRequest: Inserts a table at the specified location.
3011//
3012// A newline character will be inserted before the inserted table.
3013type InsertTableRequest struct {
3014	// Columns: The number of columns in the table.
3015	Columns int64 `json:"columns,omitempty"`
3016
3017	// EndOfSegmentLocation: Inserts the table at the end of the given
3018	// header, footer or document
3019	// body. A newline character will be inserted before the inserted
3020	// table.
3021	//
3022	// Tables cannot be inserted inside a footnote.
3023	EndOfSegmentLocation *EndOfSegmentLocation `json:"endOfSegmentLocation,omitempty"`
3024
3025	// Location: Inserts the table at a specific model index.
3026	//
3027	// A newline character will be inserted before the inserted table,
3028	// therefore
3029	// the table start index will be at the specified location index +
3030	// 1.
3031	//
3032	// The table must be inserted inside the bounds of an
3033	// existing
3034	// Paragraph. For instance, it cannot be
3035	// inserted at a table's start index (i.e. between an existing table and
3036	// its
3037	// preceding paragraph).
3038	//
3039	// Tables cannot be inserted inside a footnote or equation.
3040	Location *Location `json:"location,omitempty"`
3041
3042	// Rows: The number of rows in the table.
3043	Rows int64 `json:"rows,omitempty"`
3044
3045	// ForceSendFields is a list of field names (e.g. "Columns") to
3046	// unconditionally include in API requests. By default, fields with
3047	// empty values are omitted from API requests. However, any non-pointer,
3048	// non-interface field appearing in ForceSendFields will be sent to the
3049	// server regardless of whether the field is empty or not. This may be
3050	// used to include empty fields in Patch requests.
3051	ForceSendFields []string `json:"-"`
3052
3053	// NullFields is a list of field names (e.g. "Columns") to include in
3054	// API requests with the JSON null value. By default, fields with empty
3055	// values are omitted from API requests. However, any field with an
3056	// empty value appearing in NullFields will be sent to the server as
3057	// null. It is an error if a field in this list has a non-empty value.
3058	// This may be used to include null fields in Patch requests.
3059	NullFields []string `json:"-"`
3060}
3061
3062func (s *InsertTableRequest) MarshalJSON() ([]byte, error) {
3063	type NoMethod InsertTableRequest
3064	raw := NoMethod(*s)
3065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3066}
3067
3068// InsertTableRowRequest: Inserts an empty row into a table.
3069type InsertTableRowRequest struct {
3070	// InsertBelow: Whether to insert new row below the reference cell
3071	// location.
3072	//
3073	// - `True`: insert below the cell.
3074	// - `False`: insert above the cell.
3075	InsertBelow bool `json:"insertBelow,omitempty"`
3076
3077	// TableCellLocation: The reference table cell location from which rows
3078	// will be inserted.
3079	//
3080	// A new row will be inserted above (or below) the row where the
3081	// reference
3082	// cell is. If the reference cell is a merged cell, a new row will
3083	// be
3084	// inserted above (or below) the merged cell.
3085	TableCellLocation *TableCellLocation `json:"tableCellLocation,omitempty"`
3086
3087	// ForceSendFields is a list of field names (e.g. "InsertBelow") to
3088	// unconditionally include in API requests. By default, fields with
3089	// empty values are omitted from API requests. However, any non-pointer,
3090	// non-interface field appearing in ForceSendFields will be sent to the
3091	// server regardless of whether the field is empty or not. This may be
3092	// used to include empty fields in Patch requests.
3093	ForceSendFields []string `json:"-"`
3094
3095	// NullFields is a list of field names (e.g. "InsertBelow") to include
3096	// in API requests with the JSON null value. By default, fields with
3097	// empty values are omitted from API requests. However, any field with
3098	// an empty value appearing in NullFields will be sent to the server as
3099	// null. It is an error if a field in this list has a non-empty value.
3100	// This may be used to include null fields in Patch requests.
3101	NullFields []string `json:"-"`
3102}
3103
3104func (s *InsertTableRowRequest) MarshalJSON() ([]byte, error) {
3105	type NoMethod InsertTableRowRequest
3106	raw := NoMethod(*s)
3107	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3108}
3109
3110// InsertTextRequest: Inserts text at the specified location.
3111type InsertTextRequest struct {
3112	// EndOfSegmentLocation: Inserts the text at the end of a header,
3113	// footer, footnote or
3114	// the document body.
3115	EndOfSegmentLocation *EndOfSegmentLocation `json:"endOfSegmentLocation,omitempty"`
3116
3117	// Location: Inserts the text at a specific index in the document.
3118	//
3119	// Text must be inserted inside the bounds of an existing
3120	// Paragraph. For instance, text cannot be
3121	// inserted at a table's start index (i.e. between the table and
3122	// its
3123	// preceding paragraph). The text must be inserted in the
3124	// preceding
3125	// paragraph.
3126	Location *Location `json:"location,omitempty"`
3127
3128	// Text: The text to be inserted.
3129	//
3130	// Inserting a newline character will implicitly create a new
3131	// Paragraph at that index.
3132	// The paragraph style of the new paragraph will be copied from the
3133	// paragraph
3134	// at the current insertion index, including lists and bullets.
3135	//
3136	// Text styles for inserted text will be determined automatically,
3137	// generally
3138	// preserving the styling of neighboring text. In most cases, the text
3139	// style
3140	// for the inserted text will match the text immediately before the
3141	// insertion
3142	// index.
3143	//
3144	// Some control characters (U+0000-U+0008, U+000C-U+001F) and
3145	// characters
3146	// from the Unicode Basic Multilingual Plane Private Use Area
3147	// (U+E000-U+F8FF)
3148	// will be stripped out of the inserted text.
3149	Text string `json:"text,omitempty"`
3150
3151	// ForceSendFields is a list of field names (e.g.
3152	// "EndOfSegmentLocation") to unconditionally include in API requests.
3153	// By default, fields with empty values are omitted from API requests.
3154	// However, any non-pointer, non-interface field appearing in
3155	// ForceSendFields will be sent to the server regardless of whether the
3156	// field is empty or not. This may be used to include empty fields in
3157	// Patch requests.
3158	ForceSendFields []string `json:"-"`
3159
3160	// NullFields is a list of field names (e.g. "EndOfSegmentLocation") to
3161	// include in API requests with the JSON null value. By default, fields
3162	// with empty values are omitted from API requests. However, any field
3163	// with an empty value appearing in NullFields will be sent to the
3164	// server as null. It is an error if a field in this list has a
3165	// non-empty value. This may be used to include null fields in Patch
3166	// requests.
3167	NullFields []string `json:"-"`
3168}
3169
3170func (s *InsertTextRequest) MarshalJSON() ([]byte, error) {
3171	type NoMethod InsertTextRequest
3172	raw := NoMethod(*s)
3173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3174}
3175
3176// Link: A reference to another portion of a document or an external URL
3177// resource.
3178type Link struct {
3179	// BookmarkId: The ID of a bookmark in this document.
3180	BookmarkId string `json:"bookmarkId,omitempty"`
3181
3182	// HeadingId: The ID of a heading in this document.
3183	HeadingId string `json:"headingId,omitempty"`
3184
3185	// Url: An external URL.
3186	Url string `json:"url,omitempty"`
3187
3188	// ForceSendFields is a list of field names (e.g. "BookmarkId") to
3189	// unconditionally include in API requests. By default, fields with
3190	// empty values are omitted from API requests. However, any non-pointer,
3191	// non-interface field appearing in ForceSendFields will be sent to the
3192	// server regardless of whether the field is empty or not. This may be
3193	// used to include empty fields in Patch requests.
3194	ForceSendFields []string `json:"-"`
3195
3196	// NullFields is a list of field names (e.g. "BookmarkId") to include in
3197	// API requests with the JSON null value. By default, fields with empty
3198	// values are omitted from API requests. However, any field with an
3199	// empty value appearing in NullFields will be sent to the server as
3200	// null. It is an error if a field in this list has a non-empty value.
3201	// This may be used to include null fields in Patch requests.
3202	NullFields []string `json:"-"`
3203}
3204
3205func (s *Link) MarshalJSON() ([]byte, error) {
3206	type NoMethod Link
3207	raw := NoMethod(*s)
3208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3209}
3210
3211// LinkedContentReference: A reference to the external linked source
3212// content.
3213type LinkedContentReference struct {
3214	// SheetsChartReference: A reference to the linked chart.
3215	SheetsChartReference *SheetsChartReference `json:"sheetsChartReference,omitempty"`
3216
3217	// ForceSendFields is a list of field names (e.g.
3218	// "SheetsChartReference") to unconditionally include in API requests.
3219	// By default, fields with empty values are omitted from API requests.
3220	// However, any non-pointer, non-interface field appearing in
3221	// ForceSendFields will be sent to the server regardless of whether the
3222	// field is empty or not. This may be used to include empty fields in
3223	// Patch requests.
3224	ForceSendFields []string `json:"-"`
3225
3226	// NullFields is a list of field names (e.g. "SheetsChartReference") to
3227	// include in API requests with the JSON null value. By default, fields
3228	// with empty values are omitted from API requests. However, any field
3229	// with an empty value appearing in NullFields will be sent to the
3230	// server as null. It is an error if a field in this list has a
3231	// non-empty value. This may be used to include null fields in Patch
3232	// requests.
3233	NullFields []string `json:"-"`
3234}
3235
3236func (s *LinkedContentReference) MarshalJSON() ([]byte, error) {
3237	type NoMethod LinkedContentReference
3238	raw := NoMethod(*s)
3239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3240}
3241
3242// LinkedContentReferenceSuggestionState: A mask that indicates which of
3243// the fields on the base
3244// LinkedContentReference have
3245// been changed in this suggestion. For any field set to true, there is
3246// a new
3247// suggested value.
3248type LinkedContentReferenceSuggestionState struct {
3249	// SheetsChartReferenceSuggestionState: A mask that indicates which of
3250	// the fields in sheets_chart_reference have
3251	// been changed in this suggestion.
3252	SheetsChartReferenceSuggestionState *SheetsChartReferenceSuggestionState `json:"sheetsChartReferenceSuggestionState,omitempty"`
3253
3254	// ForceSendFields is a list of field names (e.g.
3255	// "SheetsChartReferenceSuggestionState") to unconditionally include in
3256	// API requests. By default, fields with empty values are omitted from
3257	// API requests. However, any non-pointer, non-interface field appearing
3258	// in ForceSendFields will be sent to the server regardless of whether
3259	// the field is empty or not. This may be used to include empty fields
3260	// in Patch requests.
3261	ForceSendFields []string `json:"-"`
3262
3263	// NullFields is a list of field names (e.g.
3264	// "SheetsChartReferenceSuggestionState") to include in API requests
3265	// with the JSON null value. By default, fields with empty values are
3266	// omitted from API requests. However, any field with an empty value
3267	// appearing in NullFields will be sent to the server as null. It is an
3268	// error if a field in this list has a non-empty value. This may be used
3269	// to include null fields in Patch requests.
3270	NullFields []string `json:"-"`
3271}
3272
3273func (s *LinkedContentReferenceSuggestionState) MarshalJSON() ([]byte, error) {
3274	type NoMethod LinkedContentReferenceSuggestionState
3275	raw := NoMethod(*s)
3276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3277}
3278
3279// List: A List represents the list attributes for a group of paragraphs
3280// that all
3281// belong to the same list. A paragraph that is part of a list has a
3282// reference
3283// to the list's ID in its bullet.
3284type List struct {
3285	// ListProperties: The properties of the list.
3286	ListProperties *ListProperties `json:"listProperties,omitempty"`
3287
3288	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
3289	// there are no suggested deletions
3290	// of this list.
3291	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
3292
3293	// SuggestedInsertionId: The suggested insertion ID. If empty, then this
3294	// is not a suggested
3295	// insertion.
3296	SuggestedInsertionId string `json:"suggestedInsertionId,omitempty"`
3297
3298	// SuggestedListPropertiesChanges: The suggested changes to the list
3299	// properties, keyed by suggestion
3300	// ID.
3301	SuggestedListPropertiesChanges map[string]SuggestedListProperties `json:"suggestedListPropertiesChanges,omitempty"`
3302
3303	// ForceSendFields is a list of field names (e.g. "ListProperties") to
3304	// unconditionally include in API requests. By default, fields with
3305	// empty values are omitted from API requests. However, any non-pointer,
3306	// non-interface field appearing in ForceSendFields will be sent to the
3307	// server regardless of whether the field is empty or not. This may be
3308	// used to include empty fields in Patch requests.
3309	ForceSendFields []string `json:"-"`
3310
3311	// NullFields is a list of field names (e.g. "ListProperties") to
3312	// include in API requests with the JSON null value. By default, fields
3313	// with empty values are omitted from API requests. However, any field
3314	// with an empty value appearing in NullFields will be sent to the
3315	// server as null. It is an error if a field in this list has a
3316	// non-empty value. This may be used to include null fields in Patch
3317	// requests.
3318	NullFields []string `json:"-"`
3319}
3320
3321func (s *List) MarshalJSON() ([]byte, error) {
3322	type NoMethod List
3323	raw := NoMethod(*s)
3324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3325}
3326
3327// ListProperties: The properties of a list which describe the look
3328// and feel of bullets belonging to paragraphs associated with a list.
3329type ListProperties struct {
3330	// NestingLevels: Describes the properties of the bullets at the
3331	// associated level.
3332	//
3333	// A list has at most nine levels of nesting with nesting level
3334	// 0
3335	// corresponding to the top-most level and nesting level 8 corresponding
3336	// to
3337	// the most nested level. The nesting levels are returned in ascending
3338	// order
3339	// with the least nested returned first.
3340	NestingLevels []*NestingLevel `json:"nestingLevels,omitempty"`
3341
3342	// ForceSendFields is a list of field names (e.g. "NestingLevels") to
3343	// unconditionally include in API requests. By default, fields with
3344	// empty values are omitted from API requests. However, any non-pointer,
3345	// non-interface field appearing in ForceSendFields will be sent to the
3346	// server regardless of whether the field is empty or not. This may be
3347	// used to include empty fields in Patch requests.
3348	ForceSendFields []string `json:"-"`
3349
3350	// NullFields is a list of field names (e.g. "NestingLevels") to include
3351	// in API requests with the JSON null value. By default, fields with
3352	// empty values are omitted from API requests. However, any field with
3353	// an empty value appearing in NullFields will be sent to the server as
3354	// null. It is an error if a field in this list has a non-empty value.
3355	// This may be used to include null fields in Patch requests.
3356	NullFields []string `json:"-"`
3357}
3358
3359func (s *ListProperties) MarshalJSON() ([]byte, error) {
3360	type NoMethod ListProperties
3361	raw := NoMethod(*s)
3362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3363}
3364
3365// ListPropertiesSuggestionState: A mask that indicates which of the
3366// fields on the base ListProperties have been changed in this
3367// suggestion.
3368// For any field set to true, there is a new suggested value.
3369type ListPropertiesSuggestionState struct {
3370	// NestingLevelsSuggestionStates: A mask that indicates which of the
3371	// fields on the corresponding
3372	// NestingLevel in nesting_levels have been changed in
3373	// this suggestion.
3374	//
3375	// The nesting level suggestion states are returned in ascending order
3376	// of the
3377	// nesting level with the least nested returned first.
3378	NestingLevelsSuggestionStates []*NestingLevelSuggestionState `json:"nestingLevelsSuggestionStates,omitempty"`
3379
3380	// ForceSendFields is a list of field names (e.g.
3381	// "NestingLevelsSuggestionStates") to unconditionally include in API
3382	// requests. By default, fields with empty values are omitted from API
3383	// requests. However, any non-pointer, non-interface field appearing in
3384	// ForceSendFields will be sent to the server regardless of whether the
3385	// field is empty or not. This may be used to include empty fields in
3386	// Patch requests.
3387	ForceSendFields []string `json:"-"`
3388
3389	// NullFields is a list of field names (e.g.
3390	// "NestingLevelsSuggestionStates") to include in API requests with the
3391	// JSON null value. By default, fields with empty values are omitted
3392	// from API requests. However, any field with an empty value appearing
3393	// in NullFields will be sent to the server as null. It is an error if a
3394	// field in this list has a non-empty value. This may be used to include
3395	// null fields in Patch requests.
3396	NullFields []string `json:"-"`
3397}
3398
3399func (s *ListPropertiesSuggestionState) MarshalJSON() ([]byte, error) {
3400	type NoMethod ListPropertiesSuggestionState
3401	raw := NoMethod(*s)
3402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3403}
3404
3405// Location: A particular location in the document.
3406type Location struct {
3407	// Index: The zero-based index, in UTF-16 code units.
3408	//
3409	// The index is relative to the beginning of the segment specified
3410	// by
3411	// segment_id.
3412	Index int64 `json:"index,omitempty"`
3413
3414	// SegmentId: The ID of the header, footer or footnote the location is
3415	// in. An empty
3416	// segment ID signifies the document's body.
3417	SegmentId string `json:"segmentId,omitempty"`
3418
3419	// ForceSendFields is a list of field names (e.g. "Index") to
3420	// unconditionally include in API requests. By default, fields with
3421	// empty values are omitted from API requests. However, any non-pointer,
3422	// non-interface field appearing in ForceSendFields will be sent to the
3423	// server regardless of whether the field is empty or not. This may be
3424	// used to include empty fields in Patch requests.
3425	ForceSendFields []string `json:"-"`
3426
3427	// NullFields is a list of field names (e.g. "Index") to include in API
3428	// requests with the JSON null value. By default, fields with empty
3429	// values are omitted from API requests. However, any field with an
3430	// empty value appearing in NullFields will be sent to the server as
3431	// null. It is an error if a field in this list has a non-empty value.
3432	// This may be used to include null fields in Patch requests.
3433	NullFields []string `json:"-"`
3434}
3435
3436func (s *Location) MarshalJSON() ([]byte, error) {
3437	type NoMethod Location
3438	raw := NoMethod(*s)
3439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3440}
3441
3442// MergeTableCellsRequest: Merges cells in a Table.
3443type MergeTableCellsRequest struct {
3444	// TableRange: The table range specifying which cells of the table to
3445	// merge.
3446	//
3447	// Any text in the cells being merged will be concatenated and stored in
3448	// the
3449	// "head" cell of the range. This is the upper-left cell of the range
3450	// when
3451	// the content direction is left to right, and the upper-right cell of
3452	// the
3453	// range otherwise.
3454	//
3455	// If the range is non-rectangular (which can occur in some cases where
3456	// the
3457	// range covers cells that are already merged or where the table
3458	// is
3459	// non-rectangular), a 400 bad request error is returned.
3460	TableRange *TableRange `json:"tableRange,omitempty"`
3461
3462	// ForceSendFields is a list of field names (e.g. "TableRange") to
3463	// unconditionally include in API requests. By default, fields with
3464	// empty values are omitted from API requests. However, any non-pointer,
3465	// non-interface field appearing in ForceSendFields will be sent to the
3466	// server regardless of whether the field is empty or not. This may be
3467	// used to include empty fields in Patch requests.
3468	ForceSendFields []string `json:"-"`
3469
3470	// NullFields is a list of field names (e.g. "TableRange") to include in
3471	// API requests with the JSON null value. By default, fields with empty
3472	// values are omitted from API requests. However, any field with an
3473	// empty value appearing in NullFields will be sent to the server as
3474	// null. It is an error if a field in this list has a non-empty value.
3475	// This may be used to include null fields in Patch requests.
3476	NullFields []string `json:"-"`
3477}
3478
3479func (s *MergeTableCellsRequest) MarshalJSON() ([]byte, error) {
3480	type NoMethod MergeTableCellsRequest
3481	raw := NoMethod(*s)
3482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3483}
3484
3485// NamedRange: A collection of Ranges with the same named
3486// range
3487// ID.
3488//
3489// Named ranges allow developers to associate parts of a document with
3490// an
3491// arbitrary user-defined label so their contents can be
3492// programmatically read
3493// or edited at a later time. A document can contain multiple named
3494// ranges with
3495// the same name, but every named range has a unique ID.
3496//
3497// A named range is created with a single Range,
3498// and content inserted inside a named range generally expands that
3499// range.
3500// However, certain document changes can cause the range to be split
3501// into
3502// multiple ranges.
3503//
3504// Named ranges are not private. All applications and collaborators that
3505// have
3506// access to the document can see its named ranges.
3507type NamedRange struct {
3508	// Name: The name of the named range.
3509	Name string `json:"name,omitempty"`
3510
3511	// NamedRangeId: The ID of the named range.
3512	NamedRangeId string `json:"namedRangeId,omitempty"`
3513
3514	// Ranges: The ranges that belong to this named range.
3515	Ranges []*Range `json:"ranges,omitempty"`
3516
3517	// ForceSendFields is a list of field names (e.g. "Name") to
3518	// unconditionally include in API requests. By default, fields with
3519	// empty values are omitted from API requests. However, any non-pointer,
3520	// non-interface field appearing in ForceSendFields will be sent to the
3521	// server regardless of whether the field is empty or not. This may be
3522	// used to include empty fields in Patch requests.
3523	ForceSendFields []string `json:"-"`
3524
3525	// NullFields is a list of field names (e.g. "Name") to include in API
3526	// requests with the JSON null value. By default, fields with empty
3527	// values are omitted from API requests. However, any field with an
3528	// empty value appearing in NullFields will be sent to the server as
3529	// null. It is an error if a field in this list has a non-empty value.
3530	// This may be used to include null fields in Patch requests.
3531	NullFields []string `json:"-"`
3532}
3533
3534func (s *NamedRange) MarshalJSON() ([]byte, error) {
3535	type NoMethod NamedRange
3536	raw := NoMethod(*s)
3537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3538}
3539
3540// NamedRanges: A collection of all the NamedRanges in the
3541// document that share a given name.
3542type NamedRanges struct {
3543	// Name: The name that all the named ranges share.
3544	Name string `json:"name,omitempty"`
3545
3546	// NamedRanges: The NamedRanges that share the same name.
3547	NamedRanges []*NamedRange `json:"namedRanges,omitempty"`
3548
3549	// ForceSendFields is a list of field names (e.g. "Name") to
3550	// unconditionally include in API requests. By default, fields with
3551	// empty values are omitted from API requests. However, any non-pointer,
3552	// non-interface field appearing in ForceSendFields will be sent to the
3553	// server regardless of whether the field is empty or not. This may be
3554	// used to include empty fields in Patch requests.
3555	ForceSendFields []string `json:"-"`
3556
3557	// NullFields is a list of field names (e.g. "Name") to include in API
3558	// requests with the JSON null value. By default, fields with empty
3559	// values are omitted from API requests. However, any field with an
3560	// empty value appearing in NullFields will be sent to the server as
3561	// null. It is an error if a field in this list has a non-empty value.
3562	// This may be used to include null fields in Patch requests.
3563	NullFields []string `json:"-"`
3564}
3565
3566func (s *NamedRanges) MarshalJSON() ([]byte, error) {
3567	type NoMethod NamedRanges
3568	raw := NoMethod(*s)
3569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3570}
3571
3572// NamedStyle: A named style. Paragraphs in the document can inherit
3573// their
3574// TextStyle and
3575// ParagraphStyle from this named style
3576// when they have the same named style type.
3577type NamedStyle struct {
3578	// NamedStyleType: The type of this named style.
3579	//
3580	// Possible values:
3581	//   "NAMED_STYLE_TYPE_UNSPECIFIED" - The type of named style is
3582	// unspecified.
3583	//   "NORMAL_TEXT" - Normal text.
3584	//   "TITLE" - Title.
3585	//   "SUBTITLE" - Subtitle.
3586	//   "HEADING_1" - Heading 1.
3587	//   "HEADING_2" - Heading 2.
3588	//   "HEADING_3" - Heading 3.
3589	//   "HEADING_4" - Heading 4.
3590	//   "HEADING_5" - Heading 5.
3591	//   "HEADING_6" - Heading 6.
3592	NamedStyleType string `json:"namedStyleType,omitempty"`
3593
3594	// ParagraphStyle: The paragraph style of this named style.
3595	ParagraphStyle *ParagraphStyle `json:"paragraphStyle,omitempty"`
3596
3597	// TextStyle: The text style of this named style.
3598	TextStyle *TextStyle `json:"textStyle,omitempty"`
3599
3600	// ForceSendFields is a list of field names (e.g. "NamedStyleType") to
3601	// unconditionally include in API requests. By default, fields with
3602	// empty values are omitted from API requests. However, any non-pointer,
3603	// non-interface field appearing in ForceSendFields will be sent to the
3604	// server regardless of whether the field is empty or not. This may be
3605	// used to include empty fields in Patch requests.
3606	ForceSendFields []string `json:"-"`
3607
3608	// NullFields is a list of field names (e.g. "NamedStyleType") to
3609	// include in API requests with the JSON null value. By default, fields
3610	// with empty values are omitted from API requests. However, any field
3611	// with an empty value appearing in NullFields will be sent to the
3612	// server as null. It is an error if a field in this list has a
3613	// non-empty value. This may be used to include null fields in Patch
3614	// requests.
3615	NullFields []string `json:"-"`
3616}
3617
3618func (s *NamedStyle) MarshalJSON() ([]byte, error) {
3619	type NoMethod NamedStyle
3620	raw := NoMethod(*s)
3621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3622}
3623
3624// NamedStyleSuggestionState: A suggestion state of a NamedStyle
3625// message.
3626type NamedStyleSuggestionState struct {
3627	// NamedStyleType: The named style type that this suggestion state
3628	// corresponds to.
3629	//
3630	// This field is provided as a convenience for matching
3631	// the
3632	// NamedStyleSuggestionState with its corresponding NamedStyle.
3633	//
3634	// Possible values:
3635	//   "NAMED_STYLE_TYPE_UNSPECIFIED" - The type of named style is
3636	// unspecified.
3637	//   "NORMAL_TEXT" - Normal text.
3638	//   "TITLE" - Title.
3639	//   "SUBTITLE" - Subtitle.
3640	//   "HEADING_1" - Heading 1.
3641	//   "HEADING_2" - Heading 2.
3642	//   "HEADING_3" - Heading 3.
3643	//   "HEADING_4" - Heading 4.
3644	//   "HEADING_5" - Heading 5.
3645	//   "HEADING_6" - Heading 6.
3646	NamedStyleType string `json:"namedStyleType,omitempty"`
3647
3648	// ParagraphStyleSuggestionState: A mask that indicates which of the
3649	// fields in paragraph style have been changed in this
3650	// suggestion.
3651	ParagraphStyleSuggestionState *ParagraphStyleSuggestionState `json:"paragraphStyleSuggestionState,omitempty"`
3652
3653	// TextStyleSuggestionState: A mask that indicates which of the fields
3654	// in text style have been changed in this
3655	// suggestion.
3656	TextStyleSuggestionState *TextStyleSuggestionState `json:"textStyleSuggestionState,omitempty"`
3657
3658	// ForceSendFields is a list of field names (e.g. "NamedStyleType") 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. "NamedStyleType") to
3667	// include in API requests with the JSON null value. By default, fields
3668	// with empty values are omitted from API requests. However, any field
3669	// with an empty value appearing in NullFields will be sent to the
3670	// server as null. It is an error if a field in this list has a
3671	// non-empty value. This may be used to include null fields in Patch
3672	// requests.
3673	NullFields []string `json:"-"`
3674}
3675
3676func (s *NamedStyleSuggestionState) MarshalJSON() ([]byte, error) {
3677	type NoMethod NamedStyleSuggestionState
3678	raw := NoMethod(*s)
3679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3680}
3681
3682// NamedStyles: The named styles. Paragraphs in the document can inherit
3683// their
3684// TextStyle and
3685// ParagraphStyle from these named styles.
3686type NamedStyles struct {
3687	// Styles: The named styles.
3688	//
3689	// There is an entry for each of the possible named style types.
3690	Styles []*NamedStyle `json:"styles,omitempty"`
3691
3692	// ForceSendFields is a list of field names (e.g. "Styles") to
3693	// unconditionally include in API requests. By default, fields with
3694	// empty values are omitted from API requests. However, any non-pointer,
3695	// non-interface field appearing in ForceSendFields will be sent to the
3696	// server regardless of whether the field is empty or not. This may be
3697	// used to include empty fields in Patch requests.
3698	ForceSendFields []string `json:"-"`
3699
3700	// NullFields is a list of field names (e.g. "Styles") to include in API
3701	// requests with the JSON null value. By default, fields with empty
3702	// values are omitted from API requests. However, any field with an
3703	// empty value appearing in NullFields will be sent to the server as
3704	// null. It is an error if a field in this list has a non-empty value.
3705	// This may be used to include null fields in Patch requests.
3706	NullFields []string `json:"-"`
3707}
3708
3709func (s *NamedStyles) MarshalJSON() ([]byte, error) {
3710	type NoMethod NamedStyles
3711	raw := NoMethod(*s)
3712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3713}
3714
3715// NamedStylesSuggestionState: The suggestion state of a
3716// NamedStyles
3717// message.
3718type NamedStylesSuggestionState struct {
3719	// StylesSuggestionStates: A mask that indicates which of the fields on
3720	// the corresponding NamedStyle in styles have been changed in
3721	// this
3722	// suggestion.
3723	//
3724	// The order of these named style suggestion states match the order of
3725	// the
3726	// corresponding named style within the named styles suggestion.
3727	StylesSuggestionStates []*NamedStyleSuggestionState `json:"stylesSuggestionStates,omitempty"`
3728
3729	// ForceSendFields is a list of field names (e.g.
3730	// "StylesSuggestionStates") to unconditionally include in API requests.
3731	// By default, fields with empty values are omitted from API requests.
3732	// However, any non-pointer, non-interface field appearing in
3733	// ForceSendFields will be sent to the server regardless of whether the
3734	// field is empty or not. This may be used to include empty fields in
3735	// Patch requests.
3736	ForceSendFields []string `json:"-"`
3737
3738	// NullFields is a list of field names (e.g. "StylesSuggestionStates")
3739	// to include in API requests with the JSON null value. By default,
3740	// fields with empty values are omitted from API requests. However, any
3741	// field with an empty value appearing in NullFields will be sent to the
3742	// server as null. It is an error if a field in this list has a
3743	// non-empty value. This may be used to include null fields in Patch
3744	// requests.
3745	NullFields []string `json:"-"`
3746}
3747
3748func (s *NamedStylesSuggestionState) MarshalJSON() ([]byte, error) {
3749	type NoMethod NamedStylesSuggestionState
3750	raw := NoMethod(*s)
3751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3752}
3753
3754// NestingLevel: Contains properties describing the look and feel of a
3755// list bullet at a given
3756// level of nesting.
3757type NestingLevel struct {
3758	// BulletAlignment: The alignment of the bullet within the space
3759	// allotted for rendering the
3760	// bullet.
3761	//
3762	// Possible values:
3763	//   "BULLET_ALIGNMENT_UNSPECIFIED" - The bullet alignment is
3764	// unspecified.
3765	//   "START" - The bullet is aligned to the start of the space allotted
3766	// for rendering
3767	// the bullet. Left-aligned for LTR text, right-aligned otherwise.
3768	//   "CENTER" - The bullet is aligned to the center of the space
3769	// allotted for rendering
3770	// the bullet.
3771	//   "END" - The bullet is aligned to the end of the space allotted for
3772	// rendering the
3773	// bullet. Right-aligned for LTR text, left-aligned otherwise.
3774	BulletAlignment string `json:"bulletAlignment,omitempty"`
3775
3776	// GlyphFormat: The format string used by bullets at this level of
3777	// nesting.
3778	//
3779	// The glyph format contains one or more placeholders, and these
3780	// placeholder
3781	// are replaced with the appropriate values depending on the glyph_type
3782	// or glyph_symbol. The placeholders follow
3783	// the pattern `%[nesting_level]`. Furthermore, placeholders can have
3784	// prefixes
3785	// and suffixes. Thus, the glyph format follows the
3786	// pattern
3787	// `<prefix>%[nesting_level]<suffix>`. Note that the prefix and suffix
3788	// are
3789	// optional and can be arbitrary strings.
3790	//
3791	// For example, the glyph format `%0.` indicates that the rendered glyph
3792	// will
3793	// replace the placeholder with the corresponding glyph for nesting
3794	// level 0
3795	// followed by a period as the suffix. So a list with a glyph type
3796	// of
3797	// UPPER_ALPHA and
3798	// glyph format `%0.` at nesting level 0 will result in a list with
3799	// rendered
3800	// glyphs
3801	// <p>`A.`
3802	// <p>`B.`
3803	// <p>`C.`
3804	//
3805	// The glyph format can contain placeholders for the current nesting
3806	// level as
3807	// well as placeholders for parent nesting levels. For example, a
3808	// list can have a glyph format of `%0.` at nesting level 0 and a
3809	// glyph format of `%0.%1.` at nesting level 1. Assuming both nesting
3810	// levels
3811	// have DECIMAL glyph
3812	// types, this would result in a list with rendered
3813	// glyphs
3814	// <p>`1.`
3815	// <p>`2.`
3816	// <p>`  2.1.`
3817	// <p>`  2.2.`
3818	// <p>`3.`
3819	//
3820	// For nesting levels that are ordered, the string that replaces a
3821	// placeholder
3822	// in the glyph format for a particular paragraph depends on the
3823	// paragraph's
3824	// order within the list.
3825	GlyphFormat string `json:"glyphFormat,omitempty"`
3826
3827	// GlyphSymbol: A custom glyph symbol used by bullets when paragraphs at
3828	// this level of
3829	// nesting are unordered.
3830	//
3831	// The glyph symbol replaces placeholders within the glyph_format. For
3832	// example, if the
3833	// glyph_symbol is the solid circle corresponding to Unicode U+25cf
3834	// code
3835	// point and the glyph_format is `%0`, the rendered
3836	// glyph would be the solid circle.
3837	GlyphSymbol string `json:"glyphSymbol,omitempty"`
3838
3839	// GlyphType: The type of glyph used by bullets when paragraphs at this
3840	// level of
3841	// nesting are ordered.
3842	//
3843	// The glyph type determines the type of glyph used to replace
3844	// placeholders
3845	// within the glyph_format
3846	// when paragraphs at this level of nesting are ordered. For example, if
3847	// the
3848	// nesting level is 0, the glyph_format is `%0.` and the glyph
3849	// type is DECIMAL,
3850	// then the rendered glyph would replace the placeholder `%0` in the
3851	// glyph
3852	// format with a number corresponding to list item's order within the
3853	// list.
3854	//
3855	// Possible values:
3856	//   "GLYPH_TYPE_UNSPECIFIED" - The glyph type is unspecified or
3857	// unsupported.
3858	//   "NONE" - An empty string.
3859	//   "DECIMAL" - A number, like `1`, `2`, or `3`.
3860	//   "ZERO_DECIMAL" - A number where single digit numbers are prefixed
3861	// with a zero, like `01`,
3862	// `02`, or `03`. Numbers with more than one digit are not prefixed with
3863	// a
3864	// zero.
3865	//   "UPPER_ALPHA" - An uppercase letter, like `A`, `B`, or `C`.
3866	//   "ALPHA" - A lowercase letter, like `a`, `b`, or `c`.
3867	//   "UPPER_ROMAN" - An uppercase Roman numeral, like `I`, `II`, or
3868	// `III`.
3869	//   "ROMAN" - A lowercase Roman numeral, like `i`, `ii`, or `iii`.
3870	GlyphType string `json:"glyphType,omitempty"`
3871
3872	// IndentFirstLine: The amount of indentation for the first line of
3873	// paragraphs at this level of
3874	// nesting.
3875	IndentFirstLine *Dimension `json:"indentFirstLine,omitempty"`
3876
3877	// IndentStart: The amount of indentation for paragraphs at this level
3878	// of nesting. Applied
3879	// to the side that corresponds to the start of the text, based on
3880	// the
3881	// paragraph's content direction.
3882	IndentStart *Dimension `json:"indentStart,omitempty"`
3883
3884	// StartNumber: The number of the first list item at this nesting
3885	// level.
3886	//
3887	// A value of 0 is treated as a value of 1 for lettered lists and
3888	// roman
3889	// numeraled lists, i.e. for values of both 0 and 1, lettered and
3890	// roman
3891	// numeraled lists will begin at `a` and `i` respectively.
3892	//
3893	// This value is ignored for nesting levels with unordered glyphs.
3894	StartNumber int64 `json:"startNumber,omitempty"`
3895
3896	// TextStyle: The text style of bullets at this level of nesting.
3897	TextStyle *TextStyle `json:"textStyle,omitempty"`
3898
3899	// ForceSendFields is a list of field names (e.g. "BulletAlignment") to
3900	// unconditionally include in API requests. By default, fields with
3901	// empty values are omitted from API requests. However, any non-pointer,
3902	// non-interface field appearing in ForceSendFields will be sent to the
3903	// server regardless of whether the field is empty or not. This may be
3904	// used to include empty fields in Patch requests.
3905	ForceSendFields []string `json:"-"`
3906
3907	// NullFields is a list of field names (e.g. "BulletAlignment") to
3908	// include in API requests with the JSON null value. By default, fields
3909	// with empty values are omitted from API requests. However, any field
3910	// with an empty value appearing in NullFields will be sent to the
3911	// server as null. It is an error if a field in this list has a
3912	// non-empty value. This may be used to include null fields in Patch
3913	// requests.
3914	NullFields []string `json:"-"`
3915}
3916
3917func (s *NestingLevel) MarshalJSON() ([]byte, error) {
3918	type NoMethod NestingLevel
3919	raw := NoMethod(*s)
3920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3921}
3922
3923// NestingLevelSuggestionState: A mask that indicates which of the
3924// fields on the base NestingLevel have been changed in this suggestion.
3925// For
3926// any field set to true, there is a new suggested value.
3927type NestingLevelSuggestionState struct {
3928	// BulletAlignmentSuggested: Indicates if there was a suggested change
3929	// to
3930	// bullet_alignment.
3931	BulletAlignmentSuggested bool `json:"bulletAlignmentSuggested,omitempty"`
3932
3933	// GlyphFormatSuggested: Indicates if there was a suggested change
3934	// to
3935	// glyph_format.
3936	GlyphFormatSuggested bool `json:"glyphFormatSuggested,omitempty"`
3937
3938	// GlyphSymbolSuggested: Indicates if there was a suggested change
3939	// to
3940	// glyph_symbol.
3941	GlyphSymbolSuggested bool `json:"glyphSymbolSuggested,omitempty"`
3942
3943	// GlyphTypeSuggested: Indicates if there was a suggested change
3944	// to
3945	// glyph_type.
3946	GlyphTypeSuggested bool `json:"glyphTypeSuggested,omitempty"`
3947
3948	// IndentFirstLineSuggested: Indicates if there was a suggested change
3949	// to
3950	// indent_first_line.
3951	IndentFirstLineSuggested bool `json:"indentFirstLineSuggested,omitempty"`
3952
3953	// IndentStartSuggested: Indicates if there was a suggested change
3954	// to
3955	// indent_start.
3956	IndentStartSuggested bool `json:"indentStartSuggested,omitempty"`
3957
3958	// StartNumberSuggested: Indicates if there was a suggested change
3959	// to
3960	// start_number.
3961	StartNumberSuggested bool `json:"startNumberSuggested,omitempty"`
3962
3963	// TextStyleSuggestionState: A mask that indicates which of the fields
3964	// in text style have been changed in this
3965	// suggestion.
3966	TextStyleSuggestionState *TextStyleSuggestionState `json:"textStyleSuggestionState,omitempty"`
3967
3968	// ForceSendFields is a list of field names (e.g.
3969	// "BulletAlignmentSuggested") to unconditionally include in API
3970	// requests. By default, fields with empty values are omitted from API
3971	// requests. However, any non-pointer, non-interface field appearing in
3972	// ForceSendFields will be sent to the server regardless of whether the
3973	// field is empty or not. This may be used to include empty fields in
3974	// Patch requests.
3975	ForceSendFields []string `json:"-"`
3976
3977	// NullFields is a list of field names (e.g. "BulletAlignmentSuggested")
3978	// to include in API requests with the JSON null value. By default,
3979	// fields with empty values are omitted from API requests. However, any
3980	// field with an empty value appearing in NullFields will be sent to the
3981	// server as null. It is an error if a field in this list has a
3982	// non-empty value. This may be used to include null fields in Patch
3983	// requests.
3984	NullFields []string `json:"-"`
3985}
3986
3987func (s *NestingLevelSuggestionState) MarshalJSON() ([]byte, error) {
3988	type NoMethod NestingLevelSuggestionState
3989	raw := NoMethod(*s)
3990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3991}
3992
3993// ObjectReferences: A collection of object IDs.
3994type ObjectReferences struct {
3995	// ObjectIds: The object IDs.
3996	ObjectIds []string `json:"objectIds,omitempty"`
3997
3998	// ForceSendFields is a list of field names (e.g. "ObjectIds") to
3999	// unconditionally include in API requests. By default, fields with
4000	// empty values are omitted from API requests. However, any non-pointer,
4001	// non-interface field appearing in ForceSendFields will be sent to the
4002	// server regardless of whether the field is empty or not. This may be
4003	// used to include empty fields in Patch requests.
4004	ForceSendFields []string `json:"-"`
4005
4006	// NullFields is a list of field names (e.g. "ObjectIds") to include in
4007	// API requests with the JSON null value. By default, fields with empty
4008	// values are omitted from API requests. However, any field with an
4009	// empty value appearing in NullFields will be sent to the server as
4010	// null. It is an error if a field in this list has a non-empty value.
4011	// This may be used to include null fields in Patch requests.
4012	NullFields []string `json:"-"`
4013}
4014
4015func (s *ObjectReferences) MarshalJSON() ([]byte, error) {
4016	type NoMethod ObjectReferences
4017	raw := NoMethod(*s)
4018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4019}
4020
4021// OptionalColor: A color that can either be fully opaque or fully
4022// transparent.
4023type OptionalColor struct {
4024	// Color: If set, this will be used as an opaque color. If unset, this
4025	// represents
4026	// a transparent color.
4027	Color *Color `json:"color,omitempty"`
4028
4029	// ForceSendFields is a list of field names (e.g. "Color") to
4030	// unconditionally include in API requests. By default, fields with
4031	// empty values are omitted from API requests. However, any non-pointer,
4032	// non-interface field appearing in ForceSendFields will be sent to the
4033	// server regardless of whether the field is empty or not. This may be
4034	// used to include empty fields in Patch requests.
4035	ForceSendFields []string `json:"-"`
4036
4037	// NullFields is a list of field names (e.g. "Color") to include in API
4038	// requests with the JSON null value. By default, fields with empty
4039	// values are omitted from API requests. However, any field with an
4040	// empty value appearing in NullFields will be sent to the server as
4041	// null. It is an error if a field in this list has a non-empty value.
4042	// This may be used to include null fields in Patch requests.
4043	NullFields []string `json:"-"`
4044}
4045
4046func (s *OptionalColor) MarshalJSON() ([]byte, error) {
4047	type NoMethod OptionalColor
4048	raw := NoMethod(*s)
4049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4050}
4051
4052// PageBreak: A ParagraphElement representing a
4053// page break. A page break makes the subsequent text start at the top
4054// of the
4055// next page.
4056type PageBreak struct {
4057	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
4058	// there are no suggested deletions
4059	// of this content.
4060	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
4061
4062	// SuggestedInsertionIds: The suggested insertion IDs. A PageBreak
4063	// may have multiple insertion IDs if it is a nested suggested change.
4064	// If
4065	// empty, then this is not a suggested insertion.
4066	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
4067
4068	// SuggestedTextStyleChanges: The suggested text style changes to this
4069	// PageBreak, keyed by suggestion ID.
4070	SuggestedTextStyleChanges map[string]SuggestedTextStyle `json:"suggestedTextStyleChanges,omitempty"`
4071
4072	// TextStyle: The text style of this PageBreak.
4073	//
4074	// Similar to text content, like text runs and footnote references, the
4075	// text
4076	// style of a page break can affect content layout as well as the
4077	// styling of
4078	// text inserted adjacent to it.
4079	TextStyle *TextStyle `json:"textStyle,omitempty"`
4080
4081	// ForceSendFields is a list of field names (e.g.
4082	// "SuggestedDeletionIds") to unconditionally include in API requests.
4083	// By default, fields with empty values are omitted from API requests.
4084	// However, any non-pointer, non-interface field appearing in
4085	// ForceSendFields will be sent to the server regardless of whether the
4086	// field is empty or not. This may be used to include empty fields in
4087	// Patch requests.
4088	ForceSendFields []string `json:"-"`
4089
4090	// NullFields is a list of field names (e.g. "SuggestedDeletionIds") to
4091	// include in API requests with the JSON null value. By default, fields
4092	// with empty values are omitted from API requests. However, any field
4093	// with an empty value appearing in NullFields will be sent to the
4094	// server as null. It is an error if a field in this list has a
4095	// non-empty value. This may be used to include null fields in Patch
4096	// requests.
4097	NullFields []string `json:"-"`
4098}
4099
4100func (s *PageBreak) MarshalJSON() ([]byte, error) {
4101	type NoMethod PageBreak
4102	raw := NoMethod(*s)
4103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4104}
4105
4106// Paragraph: A StructuralElement representing a
4107// paragraph. A paragraph is a range of content that is terminated with
4108// a
4109// newline character.
4110type Paragraph struct {
4111	// Bullet: The bullet for this paragraph. If not present, the paragraph
4112	// does not
4113	// belong to a list.
4114	Bullet *Bullet `json:"bullet,omitempty"`
4115
4116	// Elements: The content of the paragraph broken down into its component
4117	// parts.
4118	Elements []*ParagraphElement `json:"elements,omitempty"`
4119
4120	// ParagraphStyle: The style of this paragraph.
4121	ParagraphStyle *ParagraphStyle `json:"paragraphStyle,omitempty"`
4122
4123	// PositionedObjectIds: The IDs of the positioned objects tethered to
4124	// this paragraph.
4125	PositionedObjectIds []string `json:"positionedObjectIds,omitempty"`
4126
4127	// SuggestedBulletChanges: The suggested changes to this paragraph's
4128	// bullet.
4129	SuggestedBulletChanges map[string]SuggestedBullet `json:"suggestedBulletChanges,omitempty"`
4130
4131	// SuggestedParagraphStyleChanges: The suggested paragraph style changes
4132	// to this paragraph, keyed by
4133	// suggestion ID.
4134	SuggestedParagraphStyleChanges map[string]SuggestedParagraphStyle `json:"suggestedParagraphStyleChanges,omitempty"`
4135
4136	// SuggestedPositionedObjectIds: The IDs of the positioned objects that
4137	// are suggested to be attached to this
4138	// paragraph, keyed by suggestion ID.
4139	SuggestedPositionedObjectIds map[string]ObjectReferences `json:"suggestedPositionedObjectIds,omitempty"`
4140
4141	// ForceSendFields is a list of field names (e.g. "Bullet") to
4142	// unconditionally include in API requests. By default, fields with
4143	// empty values are omitted from API requests. However, any non-pointer,
4144	// non-interface field appearing in ForceSendFields will be sent to the
4145	// server regardless of whether the field is empty or not. This may be
4146	// used to include empty fields in Patch requests.
4147	ForceSendFields []string `json:"-"`
4148
4149	// NullFields is a list of field names (e.g. "Bullet") to include in API
4150	// requests with the JSON null value. By default, fields with empty
4151	// values are omitted from API requests. However, any field with an
4152	// empty value appearing in NullFields will be sent to the server as
4153	// null. It is an error if a field in this list has a non-empty value.
4154	// This may be used to include null fields in Patch requests.
4155	NullFields []string `json:"-"`
4156}
4157
4158func (s *Paragraph) MarshalJSON() ([]byte, error) {
4159	type NoMethod Paragraph
4160	raw := NoMethod(*s)
4161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4162}
4163
4164// ParagraphBorder: A border around a paragraph.
4165type ParagraphBorder struct {
4166	// Color: The color of the border.
4167	Color *OptionalColor `json:"color,omitempty"`
4168
4169	// DashStyle: The dash style of the border.
4170	//
4171	// Possible values:
4172	//   "DASH_STYLE_UNSPECIFIED" - Unspecified dash style.
4173	//   "SOLID" - Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal
4174	// value 'solid'.
4175	// This is the default dash style.
4176	//   "DOT" - Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal
4177	// value 'dot'.
4178	//   "DASH" - Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal
4179	// value 'dash'.
4180	DashStyle string `json:"dashStyle,omitempty"`
4181
4182	// Padding: The padding of the border.
4183	Padding *Dimension `json:"padding,omitempty"`
4184
4185	// Width: The width of the border.
4186	Width *Dimension `json:"width,omitempty"`
4187
4188	// ForceSendFields is a list of field names (e.g. "Color") to
4189	// unconditionally include in API requests. By default, fields with
4190	// empty values are omitted from API requests. However, any non-pointer,
4191	// non-interface field appearing in ForceSendFields will be sent to the
4192	// server regardless of whether the field is empty or not. This may be
4193	// used to include empty fields in Patch requests.
4194	ForceSendFields []string `json:"-"`
4195
4196	// NullFields is a list of field names (e.g. "Color") to include in API
4197	// requests with the JSON null value. By default, fields with empty
4198	// values are omitted from API requests. However, any field with an
4199	// empty value appearing in NullFields will be sent to the server as
4200	// null. It is an error if a field in this list has a non-empty value.
4201	// This may be used to include null fields in Patch requests.
4202	NullFields []string `json:"-"`
4203}
4204
4205func (s *ParagraphBorder) MarshalJSON() ([]byte, error) {
4206	type NoMethod ParagraphBorder
4207	raw := NoMethod(*s)
4208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4209}
4210
4211// ParagraphElement: A ParagraphElement describes content within
4212// a
4213// Paragraph.
4214type ParagraphElement struct {
4215	// AutoText: An auto text paragraph element.
4216	AutoText *AutoText `json:"autoText,omitempty"`
4217
4218	// ColumnBreak: A column break paragraph element.
4219	ColumnBreak *ColumnBreak `json:"columnBreak,omitempty"`
4220
4221	// EndIndex: The zero-base end index of this paragraph element,
4222	// exclusive, in UTF-16
4223	// code units.
4224	EndIndex int64 `json:"endIndex,omitempty"`
4225
4226	// Equation: An equation paragraph element.
4227	Equation *Equation `json:"equation,omitempty"`
4228
4229	// FootnoteReference: A footnote reference paragraph element.
4230	FootnoteReference *FootnoteReference `json:"footnoteReference,omitempty"`
4231
4232	// HorizontalRule: A horizontal rule paragraph element.
4233	HorizontalRule *HorizontalRule `json:"horizontalRule,omitempty"`
4234
4235	// InlineObjectElement: An inline object paragraph element.
4236	InlineObjectElement *InlineObjectElement `json:"inlineObjectElement,omitempty"`
4237
4238	// PageBreak: A page break paragraph element.
4239	PageBreak *PageBreak `json:"pageBreak,omitempty"`
4240
4241	// StartIndex: The zero-based start index of this paragraph element, in
4242	// UTF-16 code units.
4243	StartIndex int64 `json:"startIndex,omitempty"`
4244
4245	// TextRun: A text run paragraph element.
4246	TextRun *TextRun `json:"textRun,omitempty"`
4247
4248	// ForceSendFields is a list of field names (e.g. "AutoText") to
4249	// unconditionally include in API requests. By default, fields with
4250	// empty values are omitted from API requests. However, any non-pointer,
4251	// non-interface field appearing in ForceSendFields will be sent to the
4252	// server regardless of whether the field is empty or not. This may be
4253	// used to include empty fields in Patch requests.
4254	ForceSendFields []string `json:"-"`
4255
4256	// NullFields is a list of field names (e.g. "AutoText") to include in
4257	// API requests with the JSON null value. By default, fields with empty
4258	// values are omitted from API requests. However, any field with an
4259	// empty value appearing in NullFields will be sent to the server as
4260	// null. It is an error if a field in this list has a non-empty value.
4261	// This may be used to include null fields in Patch requests.
4262	NullFields []string `json:"-"`
4263}
4264
4265func (s *ParagraphElement) MarshalJSON() ([]byte, error) {
4266	type NoMethod ParagraphElement
4267	raw := NoMethod(*s)
4268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4269}
4270
4271// ParagraphStyle: Styles that apply to a whole paragraph.
4272//
4273// Inherited paragraph styles are represented as unset fields in this
4274// message.
4275// A paragraph style's parent depends on where the paragraph style is
4276// defined:
4277//
4278//   * The ParagraphStyle on a Paragraph
4279//     inherits from the paragraph's corresponding named style type.
4280//   * The ParagraphStyle on a named style
4281//     inherits from the normal text named style.
4282//   * The ParagraphStyle of the normal text named style inherits
4283//     from the default paragraph style in the Docs editor.
4284//   * The ParagraphStyle on a Paragraph
4285//     element that is contained in a table may inherit its paragraph
4286// style from
4287//     the table style.
4288//
4289// If the paragraph style does not inherit from a parent, unsetting
4290// fields will
4291// revert the style to a value matching the defaults in the Docs editor.
4292type ParagraphStyle struct {
4293	// Alignment: The text alignment for this paragraph.
4294	//
4295	// Possible values:
4296	//   "ALIGNMENT_UNSPECIFIED" - The paragraph alignment is inherited from
4297	// the parent.
4298	//   "START" - The paragraph is aligned to the start of the line.
4299	// Left-aligned for LTR
4300	// text, right-aligned otherwise.
4301	//   "CENTER" - The paragraph is centered.
4302	//   "END" - The paragraph is aligned to the end of the line.
4303	// Right-aligned for LTR
4304	// text, left-aligned otherwise.
4305	//   "JUSTIFIED" - The paragraph is justified.
4306	Alignment string `json:"alignment,omitempty"`
4307
4308	// AvoidWidowAndOrphan: Whether to avoid widows and orphans for the
4309	// paragraph. If unset, the value
4310	// is inherited from the parent.
4311	AvoidWidowAndOrphan bool `json:"avoidWidowAndOrphan,omitempty"`
4312
4313	// BorderBetween: The border between this paragraph and the next and
4314	// previous paragraphs.
4315	// If unset, the value is inherited from the parent.
4316	//
4317	// The between border is rendered when the adjacent paragraph has the
4318	// same
4319	// border and indent properties.
4320	//
4321	// Paragraph borders cannot be partially updated. When making
4322	// changes to a paragraph border the new border must be specified in
4323	// its entirety.
4324	BorderBetween *ParagraphBorder `json:"borderBetween,omitempty"`
4325
4326	// BorderBottom: The border at the bottom of this paragraph. If unset,
4327	// the value is
4328	// inherited from the parent.
4329	//
4330	// The bottom border is rendered when the paragraph below has different
4331	// border
4332	// and indent properties.
4333	//
4334	// Paragraph borders cannot be partially updated. When making
4335	// changes to a paragraph border the new border must be specified in
4336	// its entirety.
4337	BorderBottom *ParagraphBorder `json:"borderBottom,omitempty"`
4338
4339	// BorderLeft: The border to the left of this paragraph. If unset, the
4340	// value is inherited
4341	// from the parent.
4342	//
4343	// Paragraph borders cannot be partially updated. When making
4344	// changes to a paragraph border the new border must be specified in
4345	// its entirety.
4346	BorderLeft *ParagraphBorder `json:"borderLeft,omitempty"`
4347
4348	// BorderRight: The border to the right of this paragraph. If unset, the
4349	// value is inherited
4350	// from the parent.
4351	//
4352	// Paragraph borders cannot be partially updated. When making
4353	// changes to a paragraph border the new border must be specified in
4354	// its entirety.
4355	BorderRight *ParagraphBorder `json:"borderRight,omitempty"`
4356
4357	// BorderTop: The border at the top of this paragraph. If unset, the
4358	// value is inherited
4359	// from the parent.
4360	//
4361	// The top border is rendered when the paragraph above has different
4362	// border
4363	// and indent properties.
4364	//
4365	// Paragraph borders cannot be partially updated. When making
4366	// changes to a paragraph border the new border must be specified in
4367	// its entirety.
4368	BorderTop *ParagraphBorder `json:"borderTop,omitempty"`
4369
4370	// Direction: The text direction of this paragraph. If unset, the value
4371	// defaults to
4372	// LEFT_TO_RIGHT since
4373	// paragraph direction is not inherited.
4374	//
4375	// Possible values:
4376	//   "CONTENT_DIRECTION_UNSPECIFIED" - The content direction is
4377	// unspecified.
4378	//   "LEFT_TO_RIGHT" - The content goes from left to right.
4379	//   "RIGHT_TO_LEFT" - The content goes from right to left.
4380	Direction string `json:"direction,omitempty"`
4381
4382	// HeadingId: The heading ID of the paragraph. If empty, then this
4383	// paragraph is not a
4384	// heading.
4385	//
4386	// This property is read-only.
4387	HeadingId string `json:"headingId,omitempty"`
4388
4389	// IndentEnd: The amount of indentation for the paragraph on the side
4390	// that corresponds to
4391	// the end of the text, based on the current paragraph direction. If
4392	// unset,
4393	// the value is inherited from the parent.
4394	IndentEnd *Dimension `json:"indentEnd,omitempty"`
4395
4396	// IndentFirstLine: The amount of indentation for the first line of the
4397	// paragraph. If unset,
4398	// the value is inherited from the parent.
4399	IndentFirstLine *Dimension `json:"indentFirstLine,omitempty"`
4400
4401	// IndentStart: The amount of indentation for the paragraph on the side
4402	// that corresponds to
4403	// the start of the text, based on the current paragraph direction. If
4404	// unset,
4405	// the value is inherited from the parent.
4406	IndentStart *Dimension `json:"indentStart,omitempty"`
4407
4408	// KeepLinesTogether: Whether all lines of the paragraph should be laid
4409	// out on the same page or
4410	// column if possible. If unset, the value is inherited from the parent.
4411	KeepLinesTogether bool `json:"keepLinesTogether,omitempty"`
4412
4413	// KeepWithNext: Whether at least a part of this paragraph should be
4414	// laid out on the same
4415	// page or column as the next paragraph if possible. If unset, the value
4416	// is
4417	// inherited from the parent.
4418	KeepWithNext bool `json:"keepWithNext,omitempty"`
4419
4420	// LineSpacing: The amount of space between lines, as a percentage of
4421	// normal, where normal
4422	// is represented as 100.0. If unset, the value is inherited from the
4423	// parent.
4424	LineSpacing float64 `json:"lineSpacing,omitempty"`
4425
4426	// NamedStyleType: The named style type of the paragraph.
4427	//
4428	// Since updating the named style type affects other properties
4429	// within
4430	// ParagraphStyle, the named style type is applied before the other
4431	// properties
4432	// are updated.
4433	//
4434	// Possible values:
4435	//   "NAMED_STYLE_TYPE_UNSPECIFIED" - The type of named style is
4436	// unspecified.
4437	//   "NORMAL_TEXT" - Normal text.
4438	//   "TITLE" - Title.
4439	//   "SUBTITLE" - Subtitle.
4440	//   "HEADING_1" - Heading 1.
4441	//   "HEADING_2" - Heading 2.
4442	//   "HEADING_3" - Heading 3.
4443	//   "HEADING_4" - Heading 4.
4444	//   "HEADING_5" - Heading 5.
4445	//   "HEADING_6" - Heading 6.
4446	NamedStyleType string `json:"namedStyleType,omitempty"`
4447
4448	// Shading: The shading of the paragraph. If unset, the value is
4449	// inherited from the
4450	// parent.
4451	Shading *Shading `json:"shading,omitempty"`
4452
4453	// SpaceAbove: The amount of extra space above the paragraph. If unset,
4454	// the value is
4455	// inherited from the parent.
4456	SpaceAbove *Dimension `json:"spaceAbove,omitempty"`
4457
4458	// SpaceBelow: The amount of extra space below the paragraph. If unset,
4459	// the value is
4460	// inherited from the parent.
4461	SpaceBelow *Dimension `json:"spaceBelow,omitempty"`
4462
4463	// SpacingMode: The spacing mode for the paragraph.
4464	//
4465	// Possible values:
4466	//   "SPACING_MODE_UNSPECIFIED" - The spacing mode is inherited from the
4467	// parent.
4468	//   "NEVER_COLLAPSE" - Paragraph spacing is always rendered.
4469	//   "COLLAPSE_LISTS" - Paragraph spacing is skipped between list
4470	// elements.
4471	SpacingMode string `json:"spacingMode,omitempty"`
4472
4473	// TabStops: A list of the tab stops for this paragraph. The list of tab
4474	// stops is not
4475	// inherited.
4476	//
4477	// This property is read-only.
4478	TabStops []*TabStop `json:"tabStops,omitempty"`
4479
4480	// ForceSendFields is a list of field names (e.g. "Alignment") to
4481	// unconditionally include in API requests. By default, fields with
4482	// empty values are omitted from API requests. However, any non-pointer,
4483	// non-interface field appearing in ForceSendFields will be sent to the
4484	// server regardless of whether the field is empty or not. This may be
4485	// used to include empty fields in Patch requests.
4486	ForceSendFields []string `json:"-"`
4487
4488	// NullFields is a list of field names (e.g. "Alignment") to include in
4489	// API requests with the JSON null value. By default, fields with empty
4490	// values are omitted from API requests. However, any field with an
4491	// empty value appearing in NullFields will be sent to the server as
4492	// null. It is an error if a field in this list has a non-empty value.
4493	// This may be used to include null fields in Patch requests.
4494	NullFields []string `json:"-"`
4495}
4496
4497func (s *ParagraphStyle) MarshalJSON() ([]byte, error) {
4498	type NoMethod ParagraphStyle
4499	raw := NoMethod(*s)
4500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4501}
4502
4503func (s *ParagraphStyle) UnmarshalJSON(data []byte) error {
4504	type NoMethod ParagraphStyle
4505	var s1 struct {
4506		LineSpacing gensupport.JSONFloat64 `json:"lineSpacing"`
4507		*NoMethod
4508	}
4509	s1.NoMethod = (*NoMethod)(s)
4510	if err := json.Unmarshal(data, &s1); err != nil {
4511		return err
4512	}
4513	s.LineSpacing = float64(s1.LineSpacing)
4514	return nil
4515}
4516
4517// ParagraphStyleSuggestionState: A mask that indicates which of the
4518// fields on the base ParagraphStyle have been changed in this
4519// suggestion.
4520// For any field set to true, there is a new suggested value.
4521type ParagraphStyleSuggestionState struct {
4522	// AlignmentSuggested: Indicates if there was a suggested change to
4523	// alignment.
4524	AlignmentSuggested bool `json:"alignmentSuggested,omitempty"`
4525
4526	// AvoidWidowAndOrphanSuggested: Indicates if there was a suggested
4527	// change to avoid_widow_and_orphan.
4528	AvoidWidowAndOrphanSuggested bool `json:"avoidWidowAndOrphanSuggested,omitempty"`
4529
4530	// BorderBetweenSuggested: Indicates if there was a suggested change to
4531	// border_between.
4532	BorderBetweenSuggested bool `json:"borderBetweenSuggested,omitempty"`
4533
4534	// BorderBottomSuggested: Indicates if there was a suggested change to
4535	// border_bottom.
4536	BorderBottomSuggested bool `json:"borderBottomSuggested,omitempty"`
4537
4538	// BorderLeftSuggested: Indicates if there was a suggested change to
4539	// border_left.
4540	BorderLeftSuggested bool `json:"borderLeftSuggested,omitempty"`
4541
4542	// BorderRightSuggested: Indicates if there was a suggested change to
4543	// border_right.
4544	BorderRightSuggested bool `json:"borderRightSuggested,omitempty"`
4545
4546	// BorderTopSuggested: Indicates if there was a suggested change to
4547	// border_top.
4548	BorderTopSuggested bool `json:"borderTopSuggested,omitempty"`
4549
4550	// DirectionSuggested: Indicates if there was a suggested change to
4551	// direction.
4552	DirectionSuggested bool `json:"directionSuggested,omitempty"`
4553
4554	// HeadingIdSuggested: Indicates if there was a suggested change to
4555	// heading_id.
4556	HeadingIdSuggested bool `json:"headingIdSuggested,omitempty"`
4557
4558	// IndentEndSuggested: Indicates if there was a suggested change to
4559	// indent_end.
4560	IndentEndSuggested bool `json:"indentEndSuggested,omitempty"`
4561
4562	// IndentFirstLineSuggested: Indicates if there was a suggested change
4563	// to indent_first_line.
4564	IndentFirstLineSuggested bool `json:"indentFirstLineSuggested,omitempty"`
4565
4566	// IndentStartSuggested: Indicates if there was a suggested change to
4567	// indent_start.
4568	IndentStartSuggested bool `json:"indentStartSuggested,omitempty"`
4569
4570	// KeepLinesTogetherSuggested: Indicates if there was a suggested change
4571	// to keep_lines_together.
4572	KeepLinesTogetherSuggested bool `json:"keepLinesTogetherSuggested,omitempty"`
4573
4574	// KeepWithNextSuggested: Indicates if there was a suggested change to
4575	// keep_with_next.
4576	KeepWithNextSuggested bool `json:"keepWithNextSuggested,omitempty"`
4577
4578	// LineSpacingSuggested: Indicates if there was a suggested change to
4579	// line_spacing.
4580	LineSpacingSuggested bool `json:"lineSpacingSuggested,omitempty"`
4581
4582	// NamedStyleTypeSuggested: Indicates if there was a suggested change to
4583	// named_style_type.
4584	NamedStyleTypeSuggested bool `json:"namedStyleTypeSuggested,omitempty"`
4585
4586	// ShadingSuggestionState: A mask that indicates which of the fields in
4587	// shading have been changed in
4588	// this suggestion.
4589	ShadingSuggestionState *ShadingSuggestionState `json:"shadingSuggestionState,omitempty"`
4590
4591	// SpaceAboveSuggested: Indicates if there was a suggested change to
4592	// space_above.
4593	SpaceAboveSuggested bool `json:"spaceAboveSuggested,omitempty"`
4594
4595	// SpaceBelowSuggested: Indicates if there was a suggested change to
4596	// space_below.
4597	SpaceBelowSuggested bool `json:"spaceBelowSuggested,omitempty"`
4598
4599	// SpacingModeSuggested: Indicates if there was a suggested change to
4600	// spacing_mode.
4601	SpacingModeSuggested bool `json:"spacingModeSuggested,omitempty"`
4602
4603	// ForceSendFields is a list of field names (e.g. "AlignmentSuggested")
4604	// to unconditionally include in API requests. By default, fields with
4605	// empty values are omitted from API requests. However, any non-pointer,
4606	// non-interface field appearing in ForceSendFields will be sent to the
4607	// server regardless of whether the field is empty or not. This may be
4608	// used to include empty fields in Patch requests.
4609	ForceSendFields []string `json:"-"`
4610
4611	// NullFields is a list of field names (e.g. "AlignmentSuggested") to
4612	// include in API requests with the JSON null value. By default, fields
4613	// with empty values are omitted from API requests. However, any field
4614	// with an empty value appearing in NullFields will be sent to the
4615	// server as null. It is an error if a field in this list has a
4616	// non-empty value. This may be used to include null fields in Patch
4617	// requests.
4618	NullFields []string `json:"-"`
4619}
4620
4621func (s *ParagraphStyleSuggestionState) MarshalJSON() ([]byte, error) {
4622	type NoMethod ParagraphStyleSuggestionState
4623	raw := NoMethod(*s)
4624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4625}
4626
4627// PositionedObject: An object that is tethered to a Paragraph
4628// and positioned relative to the beginning of the paragraph. A
4629// PositionedObject
4630// contains an EmbeddedObject such as an
4631// image.
4632type PositionedObject struct {
4633	// ObjectId: The ID of this positioned object.
4634	ObjectId string `json:"objectId,omitempty"`
4635
4636	// PositionedObjectProperties: The properties of this positioned object.
4637	PositionedObjectProperties *PositionedObjectProperties `json:"positionedObjectProperties,omitempty"`
4638
4639	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
4640	// there are no suggested deletions
4641	// of this content.
4642	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
4643
4644	// SuggestedInsertionId: The suggested insertion ID. If empty, then this
4645	// is not a suggested
4646	// insertion.
4647	SuggestedInsertionId string `json:"suggestedInsertionId,omitempty"`
4648
4649	// SuggestedPositionedObjectPropertiesChanges: The suggested changes to
4650	// the positioned object properties, keyed by
4651	// suggestion ID.
4652	SuggestedPositionedObjectPropertiesChanges map[string]SuggestedPositionedObjectProperties `json:"suggestedPositionedObjectPropertiesChanges,omitempty"`
4653
4654	// ForceSendFields is a list of field names (e.g. "ObjectId") to
4655	// unconditionally include in API requests. By default, fields with
4656	// empty values are omitted from API requests. However, any non-pointer,
4657	// non-interface field appearing in ForceSendFields will be sent to the
4658	// server regardless of whether the field is empty or not. This may be
4659	// used to include empty fields in Patch requests.
4660	ForceSendFields []string `json:"-"`
4661
4662	// NullFields is a list of field names (e.g. "ObjectId") to include in
4663	// API requests with the JSON null value. By default, fields with empty
4664	// values are omitted from API requests. However, any field with an
4665	// empty value appearing in NullFields will be sent to the server as
4666	// null. It is an error if a field in this list has a non-empty value.
4667	// This may be used to include null fields in Patch requests.
4668	NullFields []string `json:"-"`
4669}
4670
4671func (s *PositionedObject) MarshalJSON() ([]byte, error) {
4672	type NoMethod PositionedObject
4673	raw := NoMethod(*s)
4674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4675}
4676
4677// PositionedObjectPositioning: The positioning of a PositionedObject.
4678// The positioned object is positioned
4679// relative to the beginning of the Paragraph
4680// it is tethered to.
4681type PositionedObjectPositioning struct {
4682	// Layout: The layout of this positioned object.
4683	//
4684	// Possible values:
4685	//   "POSITIONED_OBJECT_LAYOUT_UNSPECIFIED" - The layout is unspecified.
4686	//   "WRAP_TEXT" - The text wraps around the positioned object.
4687	//   "BREAK_LEFT" - Breaks text such that the positioned object is on
4688	// the left and text is on
4689	// the right.
4690	//   "BREAK_RIGHT" - Breaks text such that the positioned object is on
4691	// the right and text is on
4692	// the left.
4693	//   "BREAK_LEFT_RIGHT" - Breaks text such that there is no text on the
4694	// left or right of the
4695	// positioned object.
4696	//   "IN_FRONT_OF_TEXT" - The positioned object is in front of the text.
4697	Layout string `json:"layout,omitempty"`
4698
4699	// LeftOffset: The offset of the left edge of the positioned object
4700	// relative to the
4701	// beginning of the Paragraph it is tethered
4702	// to. The exact positioning of the object can depend on other content
4703	// in the
4704	// document and the document's styling.
4705	LeftOffset *Dimension `json:"leftOffset,omitempty"`
4706
4707	// TopOffset: The offset of the top edge of the positioned object
4708	// relative to the
4709	// beginning of the Paragraph it is tethered
4710	// to. The exact positioning of the object can depend on other content
4711	// in the
4712	// document and the document's styling.
4713	TopOffset *Dimension `json:"topOffset,omitempty"`
4714
4715	// ForceSendFields is a list of field names (e.g. "Layout") to
4716	// unconditionally include in API requests. By default, fields with
4717	// empty values are omitted from API requests. However, any non-pointer,
4718	// non-interface field appearing in ForceSendFields will be sent to the
4719	// server regardless of whether the field is empty or not. This may be
4720	// used to include empty fields in Patch requests.
4721	ForceSendFields []string `json:"-"`
4722
4723	// NullFields is a list of field names (e.g. "Layout") to include in API
4724	// requests with the JSON null value. By default, fields with empty
4725	// values are omitted from API requests. However, any field with an
4726	// empty value appearing in NullFields will be sent to the server as
4727	// null. It is an error if a field in this list has a non-empty value.
4728	// This may be used to include null fields in Patch requests.
4729	NullFields []string `json:"-"`
4730}
4731
4732func (s *PositionedObjectPositioning) MarshalJSON() ([]byte, error) {
4733	type NoMethod PositionedObjectPositioning
4734	raw := NoMethod(*s)
4735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4736}
4737
4738// PositionedObjectPositioningSuggestionState: A mask that indicates
4739// which of the fields on the base
4740// PositionedObjectPositioning have been changed in this
4741// suggestion. For any field set to true, there is a new suggested
4742// value.
4743type PositionedObjectPositioningSuggestionState struct {
4744	// LayoutSuggested: Indicates if there was a suggested change to layout.
4745	LayoutSuggested bool `json:"layoutSuggested,omitempty"`
4746
4747	// LeftOffsetSuggested: Indicates if there was a suggested change to
4748	// left_offset.
4749	LeftOffsetSuggested bool `json:"leftOffsetSuggested,omitempty"`
4750
4751	// TopOffsetSuggested: Indicates if there was a suggested change to
4752	// top_offset.
4753	TopOffsetSuggested bool `json:"topOffsetSuggested,omitempty"`
4754
4755	// ForceSendFields is a list of field names (e.g. "LayoutSuggested") to
4756	// unconditionally include in API requests. By default, fields with
4757	// empty values are omitted from API requests. However, any non-pointer,
4758	// non-interface field appearing in ForceSendFields will be sent to the
4759	// server regardless of whether the field is empty or not. This may be
4760	// used to include empty fields in Patch requests.
4761	ForceSendFields []string `json:"-"`
4762
4763	// NullFields is a list of field names (e.g. "LayoutSuggested") to
4764	// include in API requests with the JSON null value. By default, fields
4765	// with empty values are omitted from API requests. However, any field
4766	// with an empty value appearing in NullFields will be sent to the
4767	// server as null. It is an error if a field in this list has a
4768	// non-empty value. This may be used to include null fields in Patch
4769	// requests.
4770	NullFields []string `json:"-"`
4771}
4772
4773func (s *PositionedObjectPositioningSuggestionState) MarshalJSON() ([]byte, error) {
4774	type NoMethod PositionedObjectPositioningSuggestionState
4775	raw := NoMethod(*s)
4776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4777}
4778
4779// PositionedObjectProperties: Properties of a PositionedObject.
4780type PositionedObjectProperties struct {
4781	// EmbeddedObject: The embedded object of this positioned object.
4782	EmbeddedObject *EmbeddedObject `json:"embeddedObject,omitempty"`
4783
4784	// Positioning: The positioning of this positioned object relative to
4785	// the newline of the
4786	// Paragraph that references this positioned
4787	// object.
4788	Positioning *PositionedObjectPositioning `json:"positioning,omitempty"`
4789
4790	// ForceSendFields is a list of field names (e.g. "EmbeddedObject") to
4791	// unconditionally include in API requests. By default, fields with
4792	// empty values are omitted from API requests. However, any non-pointer,
4793	// non-interface field appearing in ForceSendFields will be sent to the
4794	// server regardless of whether the field is empty or not. This may be
4795	// used to include empty fields in Patch requests.
4796	ForceSendFields []string `json:"-"`
4797
4798	// NullFields is a list of field names (e.g. "EmbeddedObject") to
4799	// include in API requests with the JSON null value. By default, fields
4800	// with empty values are omitted from API requests. However, any field
4801	// with an empty value appearing in NullFields will be sent to the
4802	// server as null. It is an error if a field in this list has a
4803	// non-empty value. This may be used to include null fields in Patch
4804	// requests.
4805	NullFields []string `json:"-"`
4806}
4807
4808func (s *PositionedObjectProperties) MarshalJSON() ([]byte, error) {
4809	type NoMethod PositionedObjectProperties
4810	raw := NoMethod(*s)
4811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4812}
4813
4814// PositionedObjectPropertiesSuggestionState: A mask that indicates
4815// which of the fields on the base
4816// PositionedObjectProperties
4817// have been changed in this suggestion. For any field set to true,
4818// there is a
4819// new suggested value.
4820type PositionedObjectPropertiesSuggestionState struct {
4821	// EmbeddedObjectSuggestionState: A mask that indicates which of the
4822	// fields in embedded_object have been
4823	// changed in this suggestion.
4824	EmbeddedObjectSuggestionState *EmbeddedObjectSuggestionState `json:"embeddedObjectSuggestionState,omitempty"`
4825
4826	// PositioningSuggestionState: A mask that indicates which of the fields
4827	// in positioning have been
4828	// changed in this suggestion.
4829	PositioningSuggestionState *PositionedObjectPositioningSuggestionState `json:"positioningSuggestionState,omitempty"`
4830
4831	// ForceSendFields is a list of field names (e.g.
4832	// "EmbeddedObjectSuggestionState") to unconditionally include in API
4833	// requests. By default, fields with empty values are omitted from API
4834	// requests. However, any non-pointer, non-interface field appearing in
4835	// ForceSendFields will be sent to the server regardless of whether the
4836	// field is empty or not. This may be used to include empty fields in
4837	// Patch requests.
4838	ForceSendFields []string `json:"-"`
4839
4840	// NullFields is a list of field names (e.g.
4841	// "EmbeddedObjectSuggestionState") to include in API requests with the
4842	// JSON null value. By default, fields with empty values are omitted
4843	// from API requests. However, any field with an empty value appearing
4844	// in NullFields will be sent to the server as null. It is an error if a
4845	// field in this list has a non-empty value. This may be used to include
4846	// null fields in Patch requests.
4847	NullFields []string `json:"-"`
4848}
4849
4850func (s *PositionedObjectPropertiesSuggestionState) MarshalJSON() ([]byte, error) {
4851	type NoMethod PositionedObjectPropertiesSuggestionState
4852	raw := NoMethod(*s)
4853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4854}
4855
4856// Range: Specifies a contiguous range of text.
4857type Range struct {
4858	// EndIndex: The zero-based end index of this range, exclusive, in
4859	// UTF-16 code units.
4860	//
4861	// In all current uses, an end index must be provided. This field is
4862	// an
4863	// Int32Value in order to accommodate future use cases with open-ended
4864	// ranges.
4865	EndIndex int64 `json:"endIndex,omitempty"`
4866
4867	// SegmentId: The ID of the header, footer or footnote that this range
4868	// is contained in.
4869	// An empty segment ID signifies the document's body.
4870	SegmentId string `json:"segmentId,omitempty"`
4871
4872	// StartIndex: The zero-based start index of this range, in UTF-16 code
4873	// units.
4874	//
4875	// In all current uses, a start index must be provided. This field is
4876	// an
4877	// Int32Value in order to accommodate future use cases with open-ended
4878	// ranges.
4879	StartIndex int64 `json:"startIndex,omitempty"`
4880
4881	// ForceSendFields is a list of field names (e.g. "EndIndex") to
4882	// unconditionally include in API requests. By default, fields with
4883	// empty values are omitted from API requests. However, any non-pointer,
4884	// non-interface field appearing in ForceSendFields will be sent to the
4885	// server regardless of whether the field is empty or not. This may be
4886	// used to include empty fields in Patch requests.
4887	ForceSendFields []string `json:"-"`
4888
4889	// NullFields is a list of field names (e.g. "EndIndex") to include in
4890	// API requests with the JSON null value. By default, fields with empty
4891	// values are omitted from API requests. However, any field with an
4892	// empty value appearing in NullFields will be sent to the server as
4893	// null. It is an error if a field in this list has a non-empty value.
4894	// This may be used to include null fields in Patch requests.
4895	NullFields []string `json:"-"`
4896}
4897
4898func (s *Range) MarshalJSON() ([]byte, error) {
4899	type NoMethod Range
4900	raw := NoMethod(*s)
4901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4902}
4903
4904// ReplaceAllTextRequest: Replaces all instances of text matching a
4905// criteria with replace text.
4906type ReplaceAllTextRequest struct {
4907	// ContainsText: Finds text in the document matching this substring.
4908	ContainsText *SubstringMatchCriteria `json:"containsText,omitempty"`
4909
4910	// ReplaceText: The text that will replace the matched text.
4911	ReplaceText string `json:"replaceText,omitempty"`
4912
4913	// ForceSendFields is a list of field names (e.g. "ContainsText") to
4914	// unconditionally include in API requests. By default, fields with
4915	// empty values are omitted from API requests. However, any non-pointer,
4916	// non-interface field appearing in ForceSendFields will be sent to the
4917	// server regardless of whether the field is empty or not. This may be
4918	// used to include empty fields in Patch requests.
4919	ForceSendFields []string `json:"-"`
4920
4921	// NullFields is a list of field names (e.g. "ContainsText") to include
4922	// in API requests with the JSON null value. By default, fields with
4923	// empty values are omitted from API requests. However, any field with
4924	// an empty value appearing in NullFields will be sent to the server as
4925	// null. It is an error if a field in this list has a non-empty value.
4926	// This may be used to include null fields in Patch requests.
4927	NullFields []string `json:"-"`
4928}
4929
4930func (s *ReplaceAllTextRequest) MarshalJSON() ([]byte, error) {
4931	type NoMethod ReplaceAllTextRequest
4932	raw := NoMethod(*s)
4933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4934}
4935
4936// ReplaceAllTextResponse: The result of replacing text.
4937type ReplaceAllTextResponse struct {
4938	// OccurrencesChanged: The number of occurrences changed by replacing
4939	// all text.
4940	OccurrencesChanged int64 `json:"occurrencesChanged,omitempty"`
4941
4942	// ForceSendFields is a list of field names (e.g. "OccurrencesChanged")
4943	// to unconditionally include in API requests. By default, fields with
4944	// empty values are omitted from API requests. However, any non-pointer,
4945	// non-interface field appearing in ForceSendFields will be sent to the
4946	// server regardless of whether the field is empty or not. This may be
4947	// used to include empty fields in Patch requests.
4948	ForceSendFields []string `json:"-"`
4949
4950	// NullFields is a list of field names (e.g. "OccurrencesChanged") to
4951	// include in API requests with the JSON null value. By default, fields
4952	// with empty values are omitted from API requests. However, any field
4953	// with an empty value appearing in NullFields will be sent to the
4954	// server as null. It is an error if a field in this list has a
4955	// non-empty value. This may be used to include null fields in Patch
4956	// requests.
4957	NullFields []string `json:"-"`
4958}
4959
4960func (s *ReplaceAllTextResponse) MarshalJSON() ([]byte, error) {
4961	type NoMethod ReplaceAllTextResponse
4962	raw := NoMethod(*s)
4963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4964}
4965
4966// ReplaceImageRequest: Replaces an existing image with a new
4967// image.
4968//
4969// Replacing an image removes some image effects from the existing image
4970// in order to
4971// mirror the behavior of the Docs editor.
4972type ReplaceImageRequest struct {
4973	// ImageObjectId: The ID of the existing image that will be replaced.
4974	ImageObjectId string `json:"imageObjectId,omitempty"`
4975
4976	// ImageReplaceMethod: The replacement method.
4977	//
4978	// Possible values:
4979	//   "IMAGE_REPLACE_METHOD_UNSPECIFIED" - Unspecified image replace
4980	// method. This value must not be used.
4981	//   "CENTER_CROP" - Scales and centers the image to fill the bounds of
4982	// the original image.
4983	// The image may be cropped in order to fill the original image's
4984	// bounds. The
4985	// rendered size of the image will be the same as that of the original
4986	// image.
4987	ImageReplaceMethod string `json:"imageReplaceMethod,omitempty"`
4988
4989	// Uri: The URI of the new image.
4990	//
4991	// The image is fetched once at insertion time and a copy is stored
4992	// for
4993	// display inside the document. Images must be less than 50MB in size,
4994	// cannot
4995	// exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF
4996	// format.
4997	//
4998	// The provided URI can be at most 2 kB in length. The URI itself is
4999	// saved
5000	// with the image, and exposed via the ImageProperties.source_uri field.
5001	Uri string `json:"uri,omitempty"`
5002
5003	// ForceSendFields is a list of field names (e.g. "ImageObjectId") to
5004	// unconditionally include in API requests. By default, fields with
5005	// empty values are omitted from API requests. However, any non-pointer,
5006	// non-interface field appearing in ForceSendFields will be sent to the
5007	// server regardless of whether the field is empty or not. This may be
5008	// used to include empty fields in Patch requests.
5009	ForceSendFields []string `json:"-"`
5010
5011	// NullFields is a list of field names (e.g. "ImageObjectId") to include
5012	// in API requests with the JSON null value. By default, fields with
5013	// empty values are omitted from API requests. However, any field with
5014	// an empty value appearing in NullFields will be sent to the server as
5015	// null. It is an error if a field in this list has a non-empty value.
5016	// This may be used to include null fields in Patch requests.
5017	NullFields []string `json:"-"`
5018}
5019
5020func (s *ReplaceImageRequest) MarshalJSON() ([]byte, error) {
5021	type NoMethod ReplaceImageRequest
5022	raw := NoMethod(*s)
5023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5024}
5025
5026// ReplaceNamedRangeContentRequest: Replaces the contents of the
5027// specified
5028// NamedRange or
5029// NamedRanges with the given replacement
5030// content.
5031//
5032// Note that an individual NamedRange may
5033// consist of multiple discontinuous
5034// ranges. In this case, only the
5035// content in the first range will be replaced. The other ranges and
5036// their
5037// content will be deleted.
5038//
5039// In cases where replacing or deleting any ranges would result in an
5040// invalid
5041// document structure, a 400 bad request error is returned.
5042type ReplaceNamedRangeContentRequest struct {
5043	// NamedRangeId: The ID of the named range whose content will be
5044	// replaced.
5045	//
5046	// If there is no named range with the given ID a 400 bad request error
5047	// is
5048	// returned.
5049	NamedRangeId string `json:"namedRangeId,omitempty"`
5050
5051	// NamedRangeName: The name of the NamedRanges whose
5052	// content will be replaced.
5053	//
5054	// If there are multiple named ranges with the given name, then
5055	// the content of each one will be replaced. If there are no named
5056	// ranges
5057	// with the given name, then the request will be a no-op.
5058	NamedRangeName string `json:"namedRangeName,omitempty"`
5059
5060	// Text: Replaces the content of the specified named range(s) with the
5061	// given text.
5062	Text string `json:"text,omitempty"`
5063
5064	// ForceSendFields is a list of field names (e.g. "NamedRangeId") to
5065	// unconditionally include in API requests. By default, fields with
5066	// empty values are omitted from API requests. However, any non-pointer,
5067	// non-interface field appearing in ForceSendFields will be sent to the
5068	// server regardless of whether the field is empty or not. This may be
5069	// used to include empty fields in Patch requests.
5070	ForceSendFields []string `json:"-"`
5071
5072	// NullFields is a list of field names (e.g. "NamedRangeId") to include
5073	// in API requests with the JSON null value. By default, fields with
5074	// empty values are omitted from API requests. However, any field with
5075	// an empty value appearing in NullFields will be sent to the server as
5076	// null. It is an error if a field in this list has a non-empty value.
5077	// This may be used to include null fields in Patch requests.
5078	NullFields []string `json:"-"`
5079}
5080
5081func (s *ReplaceNamedRangeContentRequest) MarshalJSON() ([]byte, error) {
5082	type NoMethod ReplaceNamedRangeContentRequest
5083	raw := NoMethod(*s)
5084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5085}
5086
5087// Request: A single update to apply to a document.
5088type Request struct {
5089	// CreateFooter: Creates a footer.
5090	CreateFooter *CreateFooterRequest `json:"createFooter,omitempty"`
5091
5092	// CreateFootnote: Creates a footnote.
5093	CreateFootnote *CreateFootnoteRequest `json:"createFootnote,omitempty"`
5094
5095	// CreateHeader: Creates a header.
5096	CreateHeader *CreateHeaderRequest `json:"createHeader,omitempty"`
5097
5098	// CreateNamedRange: Creates a named range.
5099	CreateNamedRange *CreateNamedRangeRequest `json:"createNamedRange,omitempty"`
5100
5101	// CreateParagraphBullets: Creates bullets for paragraphs.
5102	CreateParagraphBullets *CreateParagraphBulletsRequest `json:"createParagraphBullets,omitempty"`
5103
5104	// DeleteContentRange: Deletes content from the document.
5105	DeleteContentRange *DeleteContentRangeRequest `json:"deleteContentRange,omitempty"`
5106
5107	// DeleteFooter: Deletes a footer from the document.
5108	DeleteFooter *DeleteFooterRequest `json:"deleteFooter,omitempty"`
5109
5110	// DeleteHeader: Deletes a header from the document.
5111	DeleteHeader *DeleteHeaderRequest `json:"deleteHeader,omitempty"`
5112
5113	// DeleteNamedRange: Deletes a named range.
5114	DeleteNamedRange *DeleteNamedRangeRequest `json:"deleteNamedRange,omitempty"`
5115
5116	// DeleteParagraphBullets: Deletes bullets from paragraphs.
5117	DeleteParagraphBullets *DeleteParagraphBulletsRequest `json:"deleteParagraphBullets,omitempty"`
5118
5119	// DeletePositionedObject: Deletes a positioned object from the
5120	// document.
5121	DeletePositionedObject *DeletePositionedObjectRequest `json:"deletePositionedObject,omitempty"`
5122
5123	// DeleteTableColumn: Deletes a column from a table.
5124	DeleteTableColumn *DeleteTableColumnRequest `json:"deleteTableColumn,omitempty"`
5125
5126	// DeleteTableRow: Deletes a row from a table.
5127	DeleteTableRow *DeleteTableRowRequest `json:"deleteTableRow,omitempty"`
5128
5129	// InsertInlineImage: Inserts an inline image at the specified location.
5130	InsertInlineImage *InsertInlineImageRequest `json:"insertInlineImage,omitempty"`
5131
5132	// InsertPageBreak: Inserts a page break at the specified location.
5133	InsertPageBreak *InsertPageBreakRequest `json:"insertPageBreak,omitempty"`
5134
5135	// InsertSectionBreak: Inserts a section break at the specified
5136	// location.
5137	InsertSectionBreak *InsertSectionBreakRequest `json:"insertSectionBreak,omitempty"`
5138
5139	// InsertTable: Inserts a table at the specified location.
5140	InsertTable *InsertTableRequest `json:"insertTable,omitempty"`
5141
5142	// InsertTableColumn: Inserts an empty column into a table.
5143	InsertTableColumn *InsertTableColumnRequest `json:"insertTableColumn,omitempty"`
5144
5145	// InsertTableRow: Inserts an empty row into a table.
5146	InsertTableRow *InsertTableRowRequest `json:"insertTableRow,omitempty"`
5147
5148	// InsertText: Inserts text at the specified location.
5149	InsertText *InsertTextRequest `json:"insertText,omitempty"`
5150
5151	// MergeTableCells: Merges cells in a table.
5152	MergeTableCells *MergeTableCellsRequest `json:"mergeTableCells,omitempty"`
5153
5154	// ReplaceAllText: Replaces all instances of the specified text.
5155	ReplaceAllText *ReplaceAllTextRequest `json:"replaceAllText,omitempty"`
5156
5157	// ReplaceImage: Replaces an image in the document.
5158	ReplaceImage *ReplaceImageRequest `json:"replaceImage,omitempty"`
5159
5160	// ReplaceNamedRangeContent: Replaces the content in a named range.
5161	ReplaceNamedRangeContent *ReplaceNamedRangeContentRequest `json:"replaceNamedRangeContent,omitempty"`
5162
5163	// UnmergeTableCells: Unmerges cells in a table.
5164	UnmergeTableCells *UnmergeTableCellsRequest `json:"unmergeTableCells,omitempty"`
5165
5166	// UpdateDocumentStyle: Updates the style of the document.
5167	UpdateDocumentStyle *UpdateDocumentStyleRequest `json:"updateDocumentStyle,omitempty"`
5168
5169	// UpdateParagraphStyle: Updates the paragraph style at the specified
5170	// range.
5171	UpdateParagraphStyle *UpdateParagraphStyleRequest `json:"updateParagraphStyle,omitempty"`
5172
5173	// UpdateSectionStyle: Updates the section style of the specified range.
5174	UpdateSectionStyle *UpdateSectionStyleRequest `json:"updateSectionStyle,omitempty"`
5175
5176	// UpdateTableCellStyle: Updates the style of table cells.
5177	UpdateTableCellStyle *UpdateTableCellStyleRequest `json:"updateTableCellStyle,omitempty"`
5178
5179	// UpdateTableColumnProperties: Updates the properties of columns in a
5180	// table.
5181	UpdateTableColumnProperties *UpdateTableColumnPropertiesRequest `json:"updateTableColumnProperties,omitempty"`
5182
5183	// UpdateTableRowStyle: Updates the row style in a table.
5184	UpdateTableRowStyle *UpdateTableRowStyleRequest `json:"updateTableRowStyle,omitempty"`
5185
5186	// UpdateTextStyle: Updates the text style at the specified range.
5187	UpdateTextStyle *UpdateTextStyleRequest `json:"updateTextStyle,omitempty"`
5188
5189	// ForceSendFields is a list of field names (e.g. "CreateFooter") to
5190	// unconditionally include in API requests. By default, fields with
5191	// empty values are omitted from API requests. However, any non-pointer,
5192	// non-interface field appearing in ForceSendFields will be sent to the
5193	// server regardless of whether the field is empty or not. This may be
5194	// used to include empty fields in Patch requests.
5195	ForceSendFields []string `json:"-"`
5196
5197	// NullFields is a list of field names (e.g. "CreateFooter") to include
5198	// in API requests with the JSON null value. By default, fields with
5199	// empty values are omitted from API requests. However, any field with
5200	// an empty value appearing in NullFields will be sent to the server as
5201	// null. It is an error if a field in this list has a non-empty value.
5202	// This may be used to include null fields in Patch requests.
5203	NullFields []string `json:"-"`
5204}
5205
5206func (s *Request) MarshalJSON() ([]byte, error) {
5207	type NoMethod Request
5208	raw := NoMethod(*s)
5209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5210}
5211
5212// Response: A single response from an update.
5213type Response struct {
5214	// CreateFooter: The result of creating a footer.
5215	CreateFooter *CreateFooterResponse `json:"createFooter,omitempty"`
5216
5217	// CreateFootnote: The result of creating a footnote.
5218	CreateFootnote *CreateFootnoteResponse `json:"createFootnote,omitempty"`
5219
5220	// CreateHeader: The result of creating a header.
5221	CreateHeader *CreateHeaderResponse `json:"createHeader,omitempty"`
5222
5223	// CreateNamedRange: The result of creating a named range.
5224	CreateNamedRange *CreateNamedRangeResponse `json:"createNamedRange,omitempty"`
5225
5226	// InsertInlineImage: The result of inserting an inline image.
5227	InsertInlineImage *InsertInlineImageResponse `json:"insertInlineImage,omitempty"`
5228
5229	// InsertInlineSheetsChart: The result of inserting an inline Google
5230	// Sheets chart.
5231	InsertInlineSheetsChart *InsertInlineSheetsChartResponse `json:"insertInlineSheetsChart,omitempty"`
5232
5233	// ReplaceAllText: The result of replacing text.
5234	ReplaceAllText *ReplaceAllTextResponse `json:"replaceAllText,omitempty"`
5235
5236	// ForceSendFields is a list of field names (e.g. "CreateFooter") to
5237	// unconditionally include in API requests. By default, fields with
5238	// empty values are omitted from API requests. However, any non-pointer,
5239	// non-interface field appearing in ForceSendFields will be sent to the
5240	// server regardless of whether the field is empty or not. This may be
5241	// used to include empty fields in Patch requests.
5242	ForceSendFields []string `json:"-"`
5243
5244	// NullFields is a list of field names (e.g. "CreateFooter") to include
5245	// in API requests with the JSON null value. By default, fields with
5246	// empty values are omitted from API requests. However, any field with
5247	// an empty value appearing in NullFields will be sent to the server as
5248	// null. It is an error if a field in this list has a non-empty value.
5249	// This may be used to include null fields in Patch requests.
5250	NullFields []string `json:"-"`
5251}
5252
5253func (s *Response) MarshalJSON() ([]byte, error) {
5254	type NoMethod Response
5255	raw := NoMethod(*s)
5256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5257}
5258
5259// RgbColor: An RGB color.
5260type RgbColor struct {
5261	// Blue: The blue component of the color, from 0.0 to 1.0.
5262	Blue float64 `json:"blue,omitempty"`
5263
5264	// Green: The green component of the color, from 0.0 to 1.0.
5265	Green float64 `json:"green,omitempty"`
5266
5267	// Red: The red component of the color, from 0.0 to 1.0.
5268	Red float64 `json:"red,omitempty"`
5269
5270	// ForceSendFields is a list of field names (e.g. "Blue") to
5271	// unconditionally include in API requests. By default, fields with
5272	// empty values are omitted from API requests. However, any non-pointer,
5273	// non-interface field appearing in ForceSendFields will be sent to the
5274	// server regardless of whether the field is empty or not. This may be
5275	// used to include empty fields in Patch requests.
5276	ForceSendFields []string `json:"-"`
5277
5278	// NullFields is a list of field names (e.g. "Blue") to include in API
5279	// requests with the JSON null value. By default, fields with empty
5280	// values are omitted from API requests. However, any field with an
5281	// empty value appearing in NullFields will be sent to the server as
5282	// null. It is an error if a field in this list has a non-empty value.
5283	// This may be used to include null fields in Patch requests.
5284	NullFields []string `json:"-"`
5285}
5286
5287func (s *RgbColor) MarshalJSON() ([]byte, error) {
5288	type NoMethod RgbColor
5289	raw := NoMethod(*s)
5290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5291}
5292
5293func (s *RgbColor) UnmarshalJSON(data []byte) error {
5294	type NoMethod RgbColor
5295	var s1 struct {
5296		Blue  gensupport.JSONFloat64 `json:"blue"`
5297		Green gensupport.JSONFloat64 `json:"green"`
5298		Red   gensupport.JSONFloat64 `json:"red"`
5299		*NoMethod
5300	}
5301	s1.NoMethod = (*NoMethod)(s)
5302	if err := json.Unmarshal(data, &s1); err != nil {
5303		return err
5304	}
5305	s.Blue = float64(s1.Blue)
5306	s.Green = float64(s1.Green)
5307	s.Red = float64(s1.Red)
5308	return nil
5309}
5310
5311// SectionBreak: A StructuralElement representing a
5312// section break. A section is a range of content which has the
5313// same
5314// SectionStyle. A section break represents
5315// the start of a new section, and the section style applies to the
5316// section
5317// after the section break.
5318//
5319// The document body always begins with a section break.
5320type SectionBreak struct {
5321	// SectionStyle: The style of the section after this section break.
5322	SectionStyle *SectionStyle `json:"sectionStyle,omitempty"`
5323
5324	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
5325	// there are no suggested deletions
5326	// of this content.
5327	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
5328
5329	// SuggestedInsertionIds: The suggested insertion IDs. A SectionBreak
5330	// may have multiple insertion IDs if it is
5331	// a nested suggested change. If empty, then this is not a
5332	// suggested
5333	// insertion.
5334	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
5335
5336	// ForceSendFields is a list of field names (e.g. "SectionStyle") to
5337	// unconditionally include in API requests. By default, fields with
5338	// empty values are omitted from API requests. However, any non-pointer,
5339	// non-interface field appearing in ForceSendFields will be sent to the
5340	// server regardless of whether the field is empty or not. This may be
5341	// used to include empty fields in Patch requests.
5342	ForceSendFields []string `json:"-"`
5343
5344	// NullFields is a list of field names (e.g. "SectionStyle") to include
5345	// in API requests with the JSON null value. By default, fields with
5346	// empty values are omitted from API requests. However, any field with
5347	// an empty value appearing in NullFields will be sent to the server as
5348	// null. It is an error if a field in this list has a non-empty value.
5349	// This may be used to include null fields in Patch requests.
5350	NullFields []string `json:"-"`
5351}
5352
5353func (s *SectionBreak) MarshalJSON() ([]byte, error) {
5354	type NoMethod SectionBreak
5355	raw := NoMethod(*s)
5356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5357}
5358
5359// SectionColumnProperties: Properties that apply to a section's column.
5360type SectionColumnProperties struct {
5361	// PaddingEnd: The padding at the end of the column.
5362	PaddingEnd *Dimension `json:"paddingEnd,omitempty"`
5363
5364	// Width: Output only. The width of the column.
5365	Width *Dimension `json:"width,omitempty"`
5366
5367	// ForceSendFields is a list of field names (e.g. "PaddingEnd") to
5368	// unconditionally include in API requests. By default, fields with
5369	// empty values are omitted from API requests. However, any non-pointer,
5370	// non-interface field appearing in ForceSendFields will be sent to the
5371	// server regardless of whether the field is empty or not. This may be
5372	// used to include empty fields in Patch requests.
5373	ForceSendFields []string `json:"-"`
5374
5375	// NullFields is a list of field names (e.g. "PaddingEnd") to include in
5376	// API requests with the JSON null value. By default, fields with empty
5377	// values are omitted from API requests. However, any field with an
5378	// empty value appearing in NullFields will be sent to the server as
5379	// null. It is an error if a field in this list has a non-empty value.
5380	// This may be used to include null fields in Patch requests.
5381	NullFields []string `json:"-"`
5382}
5383
5384func (s *SectionColumnProperties) MarshalJSON() ([]byte, error) {
5385	type NoMethod SectionColumnProperties
5386	raw := NoMethod(*s)
5387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5388}
5389
5390// SectionStyle: The styling that applies to a section.
5391type SectionStyle struct {
5392	// ColumnProperties: The section's columns properties.
5393	//
5394	// If empty, the section contains one column with the default properties
5395	// in
5396	// the Docs editor.
5397	// A section can be updated to have no more than three columns.
5398	//
5399	// When updating this property, setting a concrete value is
5400	// required.
5401	// Unsetting this property will result in a 400 bad request error.
5402	ColumnProperties []*SectionColumnProperties `json:"columnProperties,omitempty"`
5403
5404	// ColumnSeparatorStyle: The style of column separators.
5405	//
5406	// This style can be set even when there is one column in the
5407	// section.
5408	//
5409	// When updating this property, setting a concrete value is
5410	// required.
5411	// Unsetting this property results in a 400 bad request error.
5412	//
5413	// Possible values:
5414	//   "COLUMN_SEPARATOR_STYLE_UNSPECIFIED" - An unspecified column
5415	// separator style.
5416	//   "NONE" - No column separator lines between columns.
5417	//   "BETWEEN_EACH_COLUMN" - Renders a column separator line between
5418	// each column.
5419	ColumnSeparatorStyle string `json:"columnSeparatorStyle,omitempty"`
5420
5421	// ContentDirection: The content direction of this section. If unset,
5422	// the value defaults to
5423	// LEFT_TO_RIGHT.
5424	//
5425	// When updating this property, setting a concrete value is
5426	// required.
5427	// Unsetting this property results in a 400 bad request error.
5428	//
5429	// Possible values:
5430	//   "CONTENT_DIRECTION_UNSPECIFIED" - The content direction is
5431	// unspecified.
5432	//   "LEFT_TO_RIGHT" - The content goes from left to right.
5433	//   "RIGHT_TO_LEFT" - The content goes from right to left.
5434	ContentDirection string `json:"contentDirection,omitempty"`
5435
5436	// DefaultFooterId: The ID of the default footer. If unset, the value
5437	// inherits from the
5438	// previous SectionBreak's SectionStyle.
5439	// If the value is unset in the first SectionBreak, it inherits
5440	// from
5441	// DocumentStyle's default_footer_id.
5442	//
5443	// This property is read-only.
5444	DefaultFooterId string `json:"defaultFooterId,omitempty"`
5445
5446	// DefaultHeaderId: The ID of the default header. If unset, the value
5447	// inherits from the
5448	// previous SectionBreak's SectionStyle.
5449	// If the value is unset in the first SectionBreak, it inherits
5450	// from
5451	// DocumentStyle's default_header_id.
5452	//
5453	// This property is read-only.
5454	DefaultHeaderId string `json:"defaultHeaderId,omitempty"`
5455
5456	// EvenPageFooterId: The ID of the footer used only for even pages. If
5457	// the value of
5458	// DocumentStyle's use_even_page_header_footer is true,
5459	// this value is used for the footers on even pages in the section. If
5460	// it
5461	// is false, the footers on even pages uses the default_footer_id. If
5462	// unset, the value
5463	// inherits from the previous SectionBreak's SectionStyle. If the value
5464	// is unset in
5465	// the first SectionBreak, it inherits from
5466	// DocumentStyle's
5467	// even_page_footer_id.
5468	//
5469	// This property is read-only.
5470	EvenPageFooterId string `json:"evenPageFooterId,omitempty"`
5471
5472	// EvenPageHeaderId: The ID of the header used only for even pages. If
5473	// the value of
5474	// DocumentStyle's use_even_page_header_footer is true,
5475	// this value is used for the headers on even pages in the section. If
5476	// it
5477	// is false, the headers on even pages uses the default_header_id. If
5478	// unset, the value
5479	// inherits from the previous SectionBreak's SectionStyle. If the value
5480	// is unset in
5481	// the first SectionBreak, it inherits from
5482	// DocumentStyle's
5483	// even_page_header_id.
5484	//
5485	// This property is read-only.
5486	EvenPageHeaderId string `json:"evenPageHeaderId,omitempty"`
5487
5488	// FirstPageFooterId: The ID of the footer used only for the first page
5489	// of the section.
5490	// If use_first_page_header_footer is true,
5491	// this value is used for the footer on the first page of the section.
5492	// If
5493	// it is false, the footer on the first page of the section uses
5494	// the
5495	// default_footer_id.
5496	// If unset, the value inherits from the previous SectionBreak's
5497	// SectionStyle. If the value is unset in
5498	// the first SectionBreak, it inherits from
5499	// DocumentStyle's
5500	// first_page_footer_id.
5501	//
5502	// This property is read-only.
5503	FirstPageFooterId string `json:"firstPageFooterId,omitempty"`
5504
5505	// FirstPageHeaderId: The ID of the header used only for the first page
5506	// of the section.
5507	// If use_first_page_header_footer is true,
5508	// this value is used for the header on the first page of the section.
5509	// If
5510	// it is false, the header on the first page of the section uses
5511	// the
5512	// default_header_id.
5513	// If unset, the value inherits from the previous SectionBreak's
5514	// SectionStyle. If the value is unset in
5515	// the first SectionBreak, it inherits from
5516	// DocumentStyle's
5517	// first_page_header_id.
5518	//
5519	// This property is read-only.
5520	FirstPageHeaderId string `json:"firstPageHeaderId,omitempty"`
5521
5522	// MarginBottom: The bottom page margin of the section. If unset, uses
5523	// margin_bottom from DocumentStyle.
5524	//
5525	// When updating this property, setting a concrete value is
5526	// required.
5527	// Unsetting this property results in a 400 bad request error.
5528	MarginBottom *Dimension `json:"marginBottom,omitempty"`
5529
5530	// MarginFooter: The footer margin of the section. If unset, uses
5531	// margin_footer from DocumentStyle. If
5532	// updated, use_custom_header_footer_margins is set
5533	// to true on DocumentStyle. The value of
5534	// use_custom_header_footer_margins on
5535	// DocumentStyle indicates if a footer margin is being respected for
5536	// this
5537	// section
5538	//
5539	// When updating this property, setting a concrete value is
5540	// required.
5541	// Unsetting this property results in a 400 bad request error.
5542	MarginFooter *Dimension `json:"marginFooter,omitempty"`
5543
5544	// MarginHeader: The header margin of the section. If unset, uses
5545	// margin_header from DocumentStyle. If
5546	// updated, use_custom_header_footer_margins is set
5547	// to true on DocumentStyle. The value of
5548	// use_custom_header_footer_margins on
5549	// DocumentStyle indicates if a header margin is being respected for
5550	// this
5551	// section.
5552	//
5553	// When updating this property, setting a concrete value is
5554	// required.
5555	// Unsetting this property results in a 400 bad request error.
5556	MarginHeader *Dimension `json:"marginHeader,omitempty"`
5557
5558	// MarginLeft: The left page margin of the section. If unset, uses
5559	// margin_left from DocumentStyle.
5560	// Updating left margin causes columns in this section to resize.
5561	// Since
5562	// the margin affects column width, it is applied before column
5563	// properties.
5564	//
5565	// When updating this property, setting a concrete value is
5566	// required.
5567	// Unsetting this property results in a 400 bad request error.
5568	MarginLeft *Dimension `json:"marginLeft,omitempty"`
5569
5570	// MarginRight: The right page margin of the section. If unset, uses
5571	// margin_right from DocumentStyle.
5572	// Updating right margin causes columns in this section to resize.
5573	// Since
5574	// the margin affects column width, it is applied before column
5575	// properties.
5576	//
5577	// When updating this property, setting a concrete value is
5578	// required.
5579	// Unsetting this property results in a 400 bad request error.
5580	MarginRight *Dimension `json:"marginRight,omitempty"`
5581
5582	// MarginTop: The top page margin of the section. If unset, uses
5583	// margin_top from DocumentStyle.
5584	//
5585	// When updating this property, setting a concrete value is
5586	// required.
5587	// Unsetting this property results in a 400 bad request error.
5588	MarginTop *Dimension `json:"marginTop,omitempty"`
5589
5590	// PageNumberStart: The page number from which to start counting the
5591	// number of pages for this
5592	// section. If unset, page numbering continues from the previous
5593	// section.
5594	// If the value is unset in the first
5595	// SectionBreak, refer to DocumentStyle's
5596	// page_number_start.
5597	//
5598	// When updating this property, setting a concrete value is
5599	// required.
5600	// Unsetting this property results in a 400 bad request error.
5601	PageNumberStart int64 `json:"pageNumberStart,omitempty"`
5602
5603	// SectionType: Output only. The type of section.
5604	//
5605	// Possible values:
5606	//   "SECTION_TYPE_UNSPECIFIED" - The section type is unspecified.
5607	//   "CONTINUOUS" - The section starts immediately after the last
5608	// paragraph of the previous
5609	// section.
5610	//   "NEXT_PAGE" - The section starts on the next page.
5611	SectionType string `json:"sectionType,omitempty"`
5612
5613	// UseFirstPageHeaderFooter: Indicates whether to use the first page
5614	// header / footer IDs for the first
5615	// page of the section. If unset, it inherits from
5616	// DocumentStyle's
5617	// use_first_page_header_footer for the
5618	// first section. If the value is unset for subsequent sectors, it
5619	// should be
5620	// interpreted as false.
5621	//
5622	// When updating this property, setting a concrete value is
5623	// required.
5624	// Unsetting this property results in a 400 bad request error.
5625	UseFirstPageHeaderFooter bool `json:"useFirstPageHeaderFooter,omitempty"`
5626
5627	// ForceSendFields is a list of field names (e.g. "ColumnProperties") to
5628	// unconditionally include in API requests. By default, fields with
5629	// empty values are omitted from API requests. However, any non-pointer,
5630	// non-interface field appearing in ForceSendFields will be sent to the
5631	// server regardless of whether the field is empty or not. This may be
5632	// used to include empty fields in Patch requests.
5633	ForceSendFields []string `json:"-"`
5634
5635	// NullFields is a list of field names (e.g. "ColumnProperties") to
5636	// include in API requests with the JSON null value. By default, fields
5637	// with empty values are omitted from API requests. However, any field
5638	// with an empty value appearing in NullFields will be sent to the
5639	// server as null. It is an error if a field in this list has a
5640	// non-empty value. This may be used to include null fields in Patch
5641	// requests.
5642	NullFields []string `json:"-"`
5643}
5644
5645func (s *SectionStyle) MarshalJSON() ([]byte, error) {
5646	type NoMethod SectionStyle
5647	raw := NoMethod(*s)
5648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5649}
5650
5651// Shading: The shading of a paragraph.
5652type Shading struct {
5653	// BackgroundColor: The background color of this paragraph shading.
5654	BackgroundColor *OptionalColor `json:"backgroundColor,omitempty"`
5655
5656	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
5657	// unconditionally include in API requests. By default, fields with
5658	// empty values are omitted from API requests. However, any non-pointer,
5659	// non-interface field appearing in ForceSendFields will be sent to the
5660	// server regardless of whether the field is empty or not. This may be
5661	// used to include empty fields in Patch requests.
5662	ForceSendFields []string `json:"-"`
5663
5664	// NullFields is a list of field names (e.g. "BackgroundColor") to
5665	// include in API requests with the JSON null value. By default, fields
5666	// with empty values are omitted from API requests. However, any field
5667	// with an empty value appearing in NullFields will be sent to the
5668	// server as null. It is an error if a field in this list has a
5669	// non-empty value. This may be used to include null fields in Patch
5670	// requests.
5671	NullFields []string `json:"-"`
5672}
5673
5674func (s *Shading) MarshalJSON() ([]byte, error) {
5675	type NoMethod Shading
5676	raw := NoMethod(*s)
5677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5678}
5679
5680// ShadingSuggestionState: A mask that indicates which of the fields on
5681// the base Shading have been changed in this
5682// suggested change. For any field set to true, there is a new suggested
5683// value.
5684type ShadingSuggestionState struct {
5685	// BackgroundColorSuggested: Indicates if there was a suggested change
5686	// to the Shading.
5687	BackgroundColorSuggested bool `json:"backgroundColorSuggested,omitempty"`
5688
5689	// ForceSendFields is a list of field names (e.g.
5690	// "BackgroundColorSuggested") to unconditionally include in API
5691	// requests. By default, fields with empty values are omitted from API
5692	// requests. However, any non-pointer, non-interface field appearing in
5693	// ForceSendFields will be sent to the server regardless of whether the
5694	// field is empty or not. This may be used to include empty fields in
5695	// Patch requests.
5696	ForceSendFields []string `json:"-"`
5697
5698	// NullFields is a list of field names (e.g. "BackgroundColorSuggested")
5699	// to include in API requests with the JSON null value. By default,
5700	// fields with empty values are omitted from API requests. However, any
5701	// field with an empty value appearing in NullFields will be sent to the
5702	// server as null. It is an error if a field in this list has a
5703	// non-empty value. This may be used to include null fields in Patch
5704	// requests.
5705	NullFields []string `json:"-"`
5706}
5707
5708func (s *ShadingSuggestionState) MarshalJSON() ([]byte, error) {
5709	type NoMethod ShadingSuggestionState
5710	raw := NoMethod(*s)
5711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5712}
5713
5714// SheetsChartReference: A reference to a linked chart embedded from
5715// Google Sheets.
5716type SheetsChartReference struct {
5717	// ChartId: The ID of the specific chart in the Google Sheets
5718	// spreadsheet that is
5719	// embedded.
5720	ChartId int64 `json:"chartId,omitempty"`
5721
5722	// SpreadsheetId: The ID of the Google Sheets spreadsheet that contains
5723	// the source chart.
5724	SpreadsheetId string `json:"spreadsheetId,omitempty"`
5725
5726	// ForceSendFields is a list of field names (e.g. "ChartId") to
5727	// unconditionally include in API requests. By default, fields with
5728	// empty values are omitted from API requests. However, any non-pointer,
5729	// non-interface field appearing in ForceSendFields will be sent to the
5730	// server regardless of whether the field is empty or not. This may be
5731	// used to include empty fields in Patch requests.
5732	ForceSendFields []string `json:"-"`
5733
5734	// NullFields is a list of field names (e.g. "ChartId") to include in
5735	// API requests with the JSON null value. By default, fields with empty
5736	// values are omitted from API requests. However, any field with an
5737	// empty value appearing in NullFields will be sent to the server as
5738	// null. It is an error if a field in this list has a non-empty value.
5739	// This may be used to include null fields in Patch requests.
5740	NullFields []string `json:"-"`
5741}
5742
5743func (s *SheetsChartReference) MarshalJSON() ([]byte, error) {
5744	type NoMethod SheetsChartReference
5745	raw := NoMethod(*s)
5746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5747}
5748
5749// SheetsChartReferenceSuggestionState: A mask that indicates which of
5750// the fields on the base SheetsChartReference have been changed in
5751// this
5752// suggestion. For any field set to true, there is a new suggested
5753// value.
5754type SheetsChartReferenceSuggestionState struct {
5755	// ChartIdSuggested: Indicates if there was a suggested change to
5756	// chart_id.
5757	ChartIdSuggested bool `json:"chartIdSuggested,omitempty"`
5758
5759	// SpreadsheetIdSuggested: Indicates if there was a suggested change to
5760	// spreadsheet_id.
5761	SpreadsheetIdSuggested bool `json:"spreadsheetIdSuggested,omitempty"`
5762
5763	// ForceSendFields is a list of field names (e.g. "ChartIdSuggested") to
5764	// unconditionally include in API requests. By default, fields with
5765	// empty values are omitted from API requests. However, any non-pointer,
5766	// non-interface field appearing in ForceSendFields will be sent to the
5767	// server regardless of whether the field is empty or not. This may be
5768	// used to include empty fields in Patch requests.
5769	ForceSendFields []string `json:"-"`
5770
5771	// NullFields is a list of field names (e.g. "ChartIdSuggested") to
5772	// include in API requests with the JSON null value. By default, fields
5773	// with empty values are omitted from API requests. However, any field
5774	// with an empty value appearing in NullFields will be sent to the
5775	// server as null. It is an error if a field in this list has a
5776	// non-empty value. This may be used to include null fields in Patch
5777	// requests.
5778	NullFields []string `json:"-"`
5779}
5780
5781func (s *SheetsChartReferenceSuggestionState) MarshalJSON() ([]byte, error) {
5782	type NoMethod SheetsChartReferenceSuggestionState
5783	raw := NoMethod(*s)
5784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5785}
5786
5787// Size: A width and height.
5788type Size struct {
5789	// Height: The height of the object.
5790	Height *Dimension `json:"height,omitempty"`
5791
5792	// Width: The width of the object.
5793	Width *Dimension `json:"width,omitempty"`
5794
5795	// ForceSendFields is a list of field names (e.g. "Height") to
5796	// unconditionally include in API requests. By default, fields with
5797	// empty values are omitted from API requests. However, any non-pointer,
5798	// non-interface field appearing in ForceSendFields will be sent to the
5799	// server regardless of whether the field is empty or not. This may be
5800	// used to include empty fields in Patch requests.
5801	ForceSendFields []string `json:"-"`
5802
5803	// NullFields is a list of field names (e.g. "Height") to include in API
5804	// requests with the JSON null value. By default, fields with empty
5805	// values are omitted from API requests. However, any field with an
5806	// empty value appearing in NullFields will be sent to the server as
5807	// null. It is an error if a field in this list has a non-empty value.
5808	// This may be used to include null fields in Patch requests.
5809	NullFields []string `json:"-"`
5810}
5811
5812func (s *Size) MarshalJSON() ([]byte, error) {
5813	type NoMethod Size
5814	raw := NoMethod(*s)
5815	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5816}
5817
5818// SizeSuggestionState: A mask that indicates which of the fields on the
5819// base Size have been changed in this suggestion.
5820// For any field set to true, the Size has
5821// a new suggested value.
5822type SizeSuggestionState struct {
5823	// HeightSuggested: Indicates if there was a suggested change to height.
5824	HeightSuggested bool `json:"heightSuggested,omitempty"`
5825
5826	// WidthSuggested: Indicates if there was a suggested change to width.
5827	WidthSuggested bool `json:"widthSuggested,omitempty"`
5828
5829	// ForceSendFields is a list of field names (e.g. "HeightSuggested") to
5830	// unconditionally include in API requests. By default, fields with
5831	// empty values are omitted from API requests. However, any non-pointer,
5832	// non-interface field appearing in ForceSendFields will be sent to the
5833	// server regardless of whether the field is empty or not. This may be
5834	// used to include empty fields in Patch requests.
5835	ForceSendFields []string `json:"-"`
5836
5837	// NullFields is a list of field names (e.g. "HeightSuggested") to
5838	// include in API requests with the JSON null value. By default, fields
5839	// with empty values are omitted from API requests. However, any field
5840	// with an empty value appearing in NullFields will be sent to the
5841	// server as null. It is an error if a field in this list has a
5842	// non-empty value. This may be used to include null fields in Patch
5843	// requests.
5844	NullFields []string `json:"-"`
5845}
5846
5847func (s *SizeSuggestionState) MarshalJSON() ([]byte, error) {
5848	type NoMethod SizeSuggestionState
5849	raw := NoMethod(*s)
5850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5851}
5852
5853// StructuralElement: A StructuralElement describes content that
5854// provides structure to the
5855// document.
5856type StructuralElement struct {
5857	// EndIndex: The zero-based end index of this structural element,
5858	// exclusive, in UTF-16
5859	// code units.
5860	EndIndex int64 `json:"endIndex,omitempty"`
5861
5862	// Paragraph: A paragraph type of structural element.
5863	Paragraph *Paragraph `json:"paragraph,omitempty"`
5864
5865	// SectionBreak: A section break type of structural element.
5866	SectionBreak *SectionBreak `json:"sectionBreak,omitempty"`
5867
5868	// StartIndex: The zero-based start index of this structural element, in
5869	// UTF-16 code
5870	// units.
5871	StartIndex int64 `json:"startIndex,omitempty"`
5872
5873	// Table: A table type of structural element.
5874	Table *Table `json:"table,omitempty"`
5875
5876	// TableOfContents: A table of contents type of structural element.
5877	TableOfContents *TableOfContents `json:"tableOfContents,omitempty"`
5878
5879	// ForceSendFields is a list of field names (e.g. "EndIndex") to
5880	// unconditionally include in API requests. By default, fields with
5881	// empty values are omitted from API requests. However, any non-pointer,
5882	// non-interface field appearing in ForceSendFields will be sent to the
5883	// server regardless of whether the field is empty or not. This may be
5884	// used to include empty fields in Patch requests.
5885	ForceSendFields []string `json:"-"`
5886
5887	// NullFields is a list of field names (e.g. "EndIndex") to include in
5888	// API requests with the JSON null value. By default, fields with empty
5889	// values are omitted from API requests. However, any field with an
5890	// empty value appearing in NullFields will be sent to the server as
5891	// null. It is an error if a field in this list has a non-empty value.
5892	// This may be used to include null fields in Patch requests.
5893	NullFields []string `json:"-"`
5894}
5895
5896func (s *StructuralElement) MarshalJSON() ([]byte, error) {
5897	type NoMethod StructuralElement
5898	raw := NoMethod(*s)
5899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5900}
5901
5902// SubstringMatchCriteria: A criteria that matches a specific string of
5903// text in the document.
5904type SubstringMatchCriteria struct {
5905	// MatchCase: Indicates whether the search should respect case:
5906	//
5907	// - `True`: the search is case sensitive.
5908	// - `False`: the search is case insensitive.
5909	MatchCase bool `json:"matchCase,omitempty"`
5910
5911	// Text: The text to search for in the document.
5912	Text string `json:"text,omitempty"`
5913
5914	// ForceSendFields is a list of field names (e.g. "MatchCase") to
5915	// unconditionally include in API requests. By default, fields with
5916	// empty values are omitted from API requests. However, any non-pointer,
5917	// non-interface field appearing in ForceSendFields will be sent to the
5918	// server regardless of whether the field is empty or not. This may be
5919	// used to include empty fields in Patch requests.
5920	ForceSendFields []string `json:"-"`
5921
5922	// NullFields is a list of field names (e.g. "MatchCase") to include in
5923	// API requests with the JSON null value. By default, fields with empty
5924	// values are omitted from API requests. However, any field with an
5925	// empty value appearing in NullFields will be sent to the server as
5926	// null. It is an error if a field in this list has a non-empty value.
5927	// This may be used to include null fields in Patch requests.
5928	NullFields []string `json:"-"`
5929}
5930
5931func (s *SubstringMatchCriteria) MarshalJSON() ([]byte, error) {
5932	type NoMethod SubstringMatchCriteria
5933	raw := NoMethod(*s)
5934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5935}
5936
5937// SuggestedBullet: A suggested change to a Bullet.
5938type SuggestedBullet struct {
5939	// Bullet: A Bullet that only includes the changes made
5940	// in this suggestion. This can be used along with
5941	// the
5942	// bullet_suggestion_state to see which
5943	// fields have changed and their new values.
5944	Bullet *Bullet `json:"bullet,omitempty"`
5945
5946	// BulletSuggestionState: A mask that indicates which of the fields on
5947	// the base
5948	// Bullet have been changed in this suggestion.
5949	BulletSuggestionState *BulletSuggestionState `json:"bulletSuggestionState,omitempty"`
5950
5951	// ForceSendFields is a list of field names (e.g. "Bullet") to
5952	// unconditionally include in API requests. By default, fields with
5953	// empty values are omitted from API requests. However, any non-pointer,
5954	// non-interface field appearing in ForceSendFields will be sent to the
5955	// server regardless of whether the field is empty or not. This may be
5956	// used to include empty fields in Patch requests.
5957	ForceSendFields []string `json:"-"`
5958
5959	// NullFields is a list of field names (e.g. "Bullet") to include in API
5960	// requests with the JSON null value. By default, fields with empty
5961	// values are omitted from API requests. However, any field with an
5962	// empty value appearing in NullFields will be sent to the server as
5963	// null. It is an error if a field in this list has a non-empty value.
5964	// This may be used to include null fields in Patch requests.
5965	NullFields []string `json:"-"`
5966}
5967
5968func (s *SuggestedBullet) MarshalJSON() ([]byte, error) {
5969	type NoMethod SuggestedBullet
5970	raw := NoMethod(*s)
5971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5972}
5973
5974// SuggestedDocumentStyle: A suggested change to the DocumentStyle.
5975type SuggestedDocumentStyle struct {
5976	// DocumentStyle: A DocumentStyle that only includes
5977	// the changes made in this suggestion. This can be used along with
5978	// the
5979	// document_style_suggestion_state
5980	// to see which fields have changed and their new values.
5981	DocumentStyle *DocumentStyle `json:"documentStyle,omitempty"`
5982
5983	// DocumentStyleSuggestionState: A mask that indicates which of the
5984	// fields on the base DocumentStyle have been changed in this
5985	// suggestion.
5986	DocumentStyleSuggestionState *DocumentStyleSuggestionState `json:"documentStyleSuggestionState,omitempty"`
5987
5988	// ForceSendFields is a list of field names (e.g. "DocumentStyle") to
5989	// unconditionally include in API requests. By default, fields with
5990	// empty values are omitted from API requests. However, any non-pointer,
5991	// non-interface field appearing in ForceSendFields will be sent to the
5992	// server regardless of whether the field is empty or not. This may be
5993	// used to include empty fields in Patch requests.
5994	ForceSendFields []string `json:"-"`
5995
5996	// NullFields is a list of field names (e.g. "DocumentStyle") to include
5997	// in API requests with the JSON null value. By default, fields with
5998	// empty values are omitted from API requests. However, any field with
5999	// an empty value appearing in NullFields will be sent to the server as
6000	// null. It is an error if a field in this list has a non-empty value.
6001	// This may be used to include null fields in Patch requests.
6002	NullFields []string `json:"-"`
6003}
6004
6005func (s *SuggestedDocumentStyle) MarshalJSON() ([]byte, error) {
6006	type NoMethod SuggestedDocumentStyle
6007	raw := NoMethod(*s)
6008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6009}
6010
6011// SuggestedInlineObjectProperties: A suggested change to
6012// InlineObjectProperties.
6013type SuggestedInlineObjectProperties struct {
6014	// InlineObjectProperties: An InlineObjectProperties
6015	// that only includes the changes made in this suggestion. This can be
6016	// used
6017	// along with the inline_object_properties_suggestion_state
6018	// to see which fields have changed and their new values.
6019	InlineObjectProperties *InlineObjectProperties `json:"inlineObjectProperties,omitempty"`
6020
6021	// InlineObjectPropertiesSuggestionState: A mask that indicates which of
6022	// the fields on the base
6023	// InlineObjectProperties have
6024	// been changed in this suggestion.
6025	InlineObjectPropertiesSuggestionState *InlineObjectPropertiesSuggestionState `json:"inlineObjectPropertiesSuggestionState,omitempty"`
6026
6027	// ForceSendFields is a list of field names (e.g.
6028	// "InlineObjectProperties") to unconditionally include in API requests.
6029	// By default, fields with empty values are omitted from API requests.
6030	// However, any non-pointer, non-interface field appearing in
6031	// ForceSendFields will be sent to the server regardless of whether the
6032	// field is empty or not. This may be used to include empty fields in
6033	// Patch requests.
6034	ForceSendFields []string `json:"-"`
6035
6036	// NullFields is a list of field names (e.g. "InlineObjectProperties")
6037	// to include in API requests with the JSON null value. By default,
6038	// fields with empty values are omitted from API requests. However, any
6039	// field with an empty value appearing in NullFields will be sent to the
6040	// server as null. It is an error if a field in this list has a
6041	// non-empty value. This may be used to include null fields in Patch
6042	// requests.
6043	NullFields []string `json:"-"`
6044}
6045
6046func (s *SuggestedInlineObjectProperties) MarshalJSON() ([]byte, error) {
6047	type NoMethod SuggestedInlineObjectProperties
6048	raw := NoMethod(*s)
6049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6050}
6051
6052// SuggestedListProperties: A suggested change to ListProperties.
6053type SuggestedListProperties struct {
6054	// ListProperties: A ListProperties that only includes
6055	// the changes made in this suggestion. This can be used along with
6056	// the
6057	// list_properties_suggestion_state
6058	// to see which fields have changed and their new values.
6059	ListProperties *ListProperties `json:"listProperties,omitempty"`
6060
6061	// ListPropertiesSuggestionState: A mask that indicates which of the
6062	// fields on the base ListProperties have been changed in this
6063	// suggestion.
6064	ListPropertiesSuggestionState *ListPropertiesSuggestionState `json:"listPropertiesSuggestionState,omitempty"`
6065
6066	// ForceSendFields is a list of field names (e.g. "ListProperties") to
6067	// unconditionally include in API requests. By default, fields with
6068	// empty values are omitted from API requests. However, any non-pointer,
6069	// non-interface field appearing in ForceSendFields will be sent to the
6070	// server regardless of whether the field is empty or not. This may be
6071	// used to include empty fields in Patch requests.
6072	ForceSendFields []string `json:"-"`
6073
6074	// NullFields is a list of field names (e.g. "ListProperties") to
6075	// include in API requests with the JSON null value. By default, fields
6076	// with empty values are omitted from API requests. However, any field
6077	// with an empty value appearing in NullFields will be sent to the
6078	// server as null. It is an error if a field in this list has a
6079	// non-empty value. This may be used to include null fields in Patch
6080	// requests.
6081	NullFields []string `json:"-"`
6082}
6083
6084func (s *SuggestedListProperties) MarshalJSON() ([]byte, error) {
6085	type NoMethod SuggestedListProperties
6086	raw := NoMethod(*s)
6087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6088}
6089
6090// SuggestedNamedStyles: A suggested change to the NamedStyles.
6091type SuggestedNamedStyles struct {
6092	// NamedStyles: A NamedStyles that only includes the
6093	// changes made in this suggestion. This can be used along with
6094	// the
6095	// named_styles_suggestion_state to
6096	// see which fields have changed and their new values.
6097	NamedStyles *NamedStyles `json:"namedStyles,omitempty"`
6098
6099	// NamedStylesSuggestionState: A mask that indicates which of the fields
6100	// on the base NamedStyles have been changed in this suggestion.
6101	NamedStylesSuggestionState *NamedStylesSuggestionState `json:"namedStylesSuggestionState,omitempty"`
6102
6103	// ForceSendFields is a list of field names (e.g. "NamedStyles") to
6104	// unconditionally include in API requests. By default, fields with
6105	// empty values are omitted from API requests. However, any non-pointer,
6106	// non-interface field appearing in ForceSendFields will be sent to the
6107	// server regardless of whether the field is empty or not. This may be
6108	// used to include empty fields in Patch requests.
6109	ForceSendFields []string `json:"-"`
6110
6111	// NullFields is a list of field names (e.g. "NamedStyles") to include
6112	// in API requests with the JSON null value. By default, fields with
6113	// empty values are omitted from API requests. However, any field with
6114	// an empty value appearing in NullFields will be sent to the server as
6115	// null. It is an error if a field in this list has a non-empty value.
6116	// This may be used to include null fields in Patch requests.
6117	NullFields []string `json:"-"`
6118}
6119
6120func (s *SuggestedNamedStyles) MarshalJSON() ([]byte, error) {
6121	type NoMethod SuggestedNamedStyles
6122	raw := NoMethod(*s)
6123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6124}
6125
6126// SuggestedParagraphStyle: A suggested change to a
6127// ParagraphStyle.
6128type SuggestedParagraphStyle struct {
6129	// ParagraphStyle: A ParagraphStyle that only includes
6130	// the changes made in this suggestion. This can be used along with
6131	// the
6132	// paragraph_suggestion_state
6133	// to see which fields have changed and their new values.
6134	ParagraphStyle *ParagraphStyle `json:"paragraphStyle,omitempty"`
6135
6136	// ParagraphStyleSuggestionState: A mask that indicates which of the
6137	// fields on the base ParagraphStyle have been changed in this
6138	// suggestion.
6139	ParagraphStyleSuggestionState *ParagraphStyleSuggestionState `json:"paragraphStyleSuggestionState,omitempty"`
6140
6141	// ForceSendFields is a list of field names (e.g. "ParagraphStyle") to
6142	// unconditionally include in API requests. By default, fields with
6143	// empty values are omitted from API requests. However, any non-pointer,
6144	// non-interface field appearing in ForceSendFields will be sent to the
6145	// server regardless of whether the field is empty or not. This may be
6146	// used to include empty fields in Patch requests.
6147	ForceSendFields []string `json:"-"`
6148
6149	// NullFields is a list of field names (e.g. "ParagraphStyle") to
6150	// include in API requests with the JSON null value. By default, fields
6151	// with empty values are omitted from API requests. However, any field
6152	// with an empty value appearing in NullFields will be sent to the
6153	// server as null. It is an error if a field in this list has a
6154	// non-empty value. This may be used to include null fields in Patch
6155	// requests.
6156	NullFields []string `json:"-"`
6157}
6158
6159func (s *SuggestedParagraphStyle) MarshalJSON() ([]byte, error) {
6160	type NoMethod SuggestedParagraphStyle
6161	raw := NoMethod(*s)
6162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6163}
6164
6165// SuggestedPositionedObjectProperties: A suggested change to
6166// PositionedObjectProperties.
6167type SuggestedPositionedObjectProperties struct {
6168	// PositionedObjectProperties: A PositionedObjectProperties that only
6169	// includes the
6170	// changes made in this suggestion. This can be used along with
6171	// the
6172	// positioned_object_properties_suggestion_state
6173	// to see which fields have changed and their new values.
6174	PositionedObjectProperties *PositionedObjectProperties `json:"positionedObjectProperties,omitempty"`
6175
6176	// PositionedObjectPropertiesSuggestionState: A mask that indicates
6177	// which of the fields on the base
6178	// PositionedObjectProperties have been changed in this
6179	// suggestion.
6180	PositionedObjectPropertiesSuggestionState *PositionedObjectPropertiesSuggestionState `json:"positionedObjectPropertiesSuggestionState,omitempty"`
6181
6182	// ForceSendFields is a list of field names (e.g.
6183	// "PositionedObjectProperties") to unconditionally include in API
6184	// requests. By default, fields with empty values are omitted from API
6185	// requests. However, any non-pointer, non-interface field appearing in
6186	// ForceSendFields will be sent to the server regardless of whether the
6187	// field is empty or not. This may be used to include empty fields in
6188	// Patch requests.
6189	ForceSendFields []string `json:"-"`
6190
6191	// NullFields is a list of field names (e.g.
6192	// "PositionedObjectProperties") to include in API requests with the
6193	// JSON null value. By default, fields with empty values are omitted
6194	// from API requests. However, any field with an empty value appearing
6195	// in NullFields will be sent to the server as null. It is an error if a
6196	// field in this list has a non-empty value. This may be used to include
6197	// null fields in Patch requests.
6198	NullFields []string `json:"-"`
6199}
6200
6201func (s *SuggestedPositionedObjectProperties) MarshalJSON() ([]byte, error) {
6202	type NoMethod SuggestedPositionedObjectProperties
6203	raw := NoMethod(*s)
6204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6205}
6206
6207// SuggestedTableCellStyle: A suggested change to a TableCellStyle.
6208type SuggestedTableCellStyle struct {
6209	// TableCellStyle: A TableCellStyle that only includes
6210	// the changes made in this suggestion. This can be used along with
6211	// the
6212	// table_cell_style_suggestion_state
6213	// to see which fields have changed and their new values.
6214	TableCellStyle *TableCellStyle `json:"tableCellStyle,omitempty"`
6215
6216	// TableCellStyleSuggestionState: A mask that indicates which of the
6217	// fields on the base TableCellStyle have been changed in this
6218	// suggestion.
6219	TableCellStyleSuggestionState *TableCellStyleSuggestionState `json:"tableCellStyleSuggestionState,omitempty"`
6220
6221	// ForceSendFields is a list of field names (e.g. "TableCellStyle") to
6222	// unconditionally include in API requests. By default, fields with
6223	// empty values are omitted from API requests. However, any non-pointer,
6224	// non-interface field appearing in ForceSendFields will be sent to the
6225	// server regardless of whether the field is empty or not. This may be
6226	// used to include empty fields in Patch requests.
6227	ForceSendFields []string `json:"-"`
6228
6229	// NullFields is a list of field names (e.g. "TableCellStyle") to
6230	// include in API requests with the JSON null value. By default, fields
6231	// with empty values are omitted from API requests. However, any field
6232	// with an empty value appearing in NullFields will be sent to the
6233	// server as null. It is an error if a field in this list has a
6234	// non-empty value. This may be used to include null fields in Patch
6235	// requests.
6236	NullFields []string `json:"-"`
6237}
6238
6239func (s *SuggestedTableCellStyle) MarshalJSON() ([]byte, error) {
6240	type NoMethod SuggestedTableCellStyle
6241	raw := NoMethod(*s)
6242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6243}
6244
6245// SuggestedTableRowStyle: A suggested change to a
6246// TableRowStyle.
6247type SuggestedTableRowStyle struct {
6248	// TableRowStyle: A TableRowStyle that only includes
6249	// the changes made in this suggestion. This can be used along with
6250	// the
6251	// table_row_style_suggestion_state
6252	// to see which fields have changed and their new values.
6253	TableRowStyle *TableRowStyle `json:"tableRowStyle,omitempty"`
6254
6255	// TableRowStyleSuggestionState: A mask that indicates which of the
6256	// fields on the base TableRowStyle have been changed in this
6257	// suggestion.
6258	TableRowStyleSuggestionState *TableRowStyleSuggestionState `json:"tableRowStyleSuggestionState,omitempty"`
6259
6260	// ForceSendFields is a list of field names (e.g. "TableRowStyle") to
6261	// unconditionally include in API requests. By default, fields with
6262	// empty values are omitted from API requests. However, any non-pointer,
6263	// non-interface field appearing in ForceSendFields will be sent to the
6264	// server regardless of whether the field is empty or not. This may be
6265	// used to include empty fields in Patch requests.
6266	ForceSendFields []string `json:"-"`
6267
6268	// NullFields is a list of field names (e.g. "TableRowStyle") to include
6269	// in API requests with the JSON null value. By default, fields with
6270	// empty values are omitted from API requests. However, any field with
6271	// an empty value appearing in NullFields will be sent to the server as
6272	// null. It is an error if a field in this list has a non-empty value.
6273	// This may be used to include null fields in Patch requests.
6274	NullFields []string `json:"-"`
6275}
6276
6277func (s *SuggestedTableRowStyle) MarshalJSON() ([]byte, error) {
6278	type NoMethod SuggestedTableRowStyle
6279	raw := NoMethod(*s)
6280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6281}
6282
6283// SuggestedTextStyle: A suggested change to a TextStyle.
6284type SuggestedTextStyle struct {
6285	// TextStyle: A TextStyle that only includes
6286	// the changes made in this suggestion. This can be used along with
6287	// the
6288	// text_style_suggestion_state
6289	// to see which fields have changed and their new values.
6290	TextStyle *TextStyle `json:"textStyle,omitempty"`
6291
6292	// TextStyleSuggestionState: A mask that indicates which of the fields
6293	// on the base TextStyle have been changed in this suggestion.
6294	TextStyleSuggestionState *TextStyleSuggestionState `json:"textStyleSuggestionState,omitempty"`
6295
6296	// ForceSendFields is a list of field names (e.g. "TextStyle") to
6297	// unconditionally include in API requests. By default, fields with
6298	// empty values are omitted from API requests. However, any non-pointer,
6299	// non-interface field appearing in ForceSendFields will be sent to the
6300	// server regardless of whether the field is empty or not. This may be
6301	// used to include empty fields in Patch requests.
6302	ForceSendFields []string `json:"-"`
6303
6304	// NullFields is a list of field names (e.g. "TextStyle") to include in
6305	// API requests with the JSON null value. By default, fields with empty
6306	// values are omitted from API requests. However, any field with an
6307	// empty value appearing in NullFields will be sent to the server as
6308	// null. It is an error if a field in this list has a non-empty value.
6309	// This may be used to include null fields in Patch requests.
6310	NullFields []string `json:"-"`
6311}
6312
6313func (s *SuggestedTextStyle) MarshalJSON() ([]byte, error) {
6314	type NoMethod SuggestedTextStyle
6315	raw := NoMethod(*s)
6316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6317}
6318
6319// TabStop: A tab stop within a paragraph.
6320type TabStop struct {
6321	// Alignment: The alignment of this tab stop. If unset, the value
6322	// defaults to START.
6323	//
6324	// Possible values:
6325	//   "TAB_STOP_ALIGNMENT_UNSPECIFIED" - The tab stop alignment is
6326	// unspecified.
6327	//   "START" - The tab stop is aligned to the start of the line. This is
6328	// the default.
6329	//   "CENTER" - The tab stop is aligned to the center of the line.
6330	//   "END" - The tab stop is aligned to the end of the line.
6331	Alignment string `json:"alignment,omitempty"`
6332
6333	// Offset: The offset between this tab stop and the start margin.
6334	Offset *Dimension `json:"offset,omitempty"`
6335
6336	// ForceSendFields is a list of field names (e.g. "Alignment") to
6337	// unconditionally include in API requests. By default, fields with
6338	// empty values are omitted from API requests. However, any non-pointer,
6339	// non-interface field appearing in ForceSendFields will be sent to the
6340	// server regardless of whether the field is empty or not. This may be
6341	// used to include empty fields in Patch requests.
6342	ForceSendFields []string `json:"-"`
6343
6344	// NullFields is a list of field names (e.g. "Alignment") to include in
6345	// API requests with the JSON null value. By default, fields with empty
6346	// values are omitted from API requests. However, any field with an
6347	// empty value appearing in NullFields will be sent to the server as
6348	// null. It is an error if a field in this list has a non-empty value.
6349	// This may be used to include null fields in Patch requests.
6350	NullFields []string `json:"-"`
6351}
6352
6353func (s *TabStop) MarshalJSON() ([]byte, error) {
6354	type NoMethod TabStop
6355	raw := NoMethod(*s)
6356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6357}
6358
6359// Table: A StructuralElement representing a
6360// table.
6361type Table struct {
6362	// Columns: Number of columns in the table.
6363	//
6364	// It is possible for a table to be non-rectangular, so some rows may
6365	// have a
6366	// different number of cells.
6367	Columns int64 `json:"columns,omitempty"`
6368
6369	// Rows: Number of rows in the table.
6370	Rows int64 `json:"rows,omitempty"`
6371
6372	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
6373	// there are no suggested deletions
6374	// of this content.
6375	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
6376
6377	// SuggestedInsertionIds: The suggested insertion IDs. A Table may
6378	// have
6379	// multiple insertion IDs if it is a nested suggested change. If empty,
6380	// then
6381	// this is not a suggested insertion.
6382	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
6383
6384	// TableRows: The contents and style of each row.
6385	TableRows []*TableRow `json:"tableRows,omitempty"`
6386
6387	// TableStyle: The style of the table.
6388	TableStyle *TableStyle `json:"tableStyle,omitempty"`
6389
6390	// ForceSendFields is a list of field names (e.g. "Columns") to
6391	// unconditionally include in API requests. By default, fields with
6392	// empty values are omitted from API requests. However, any non-pointer,
6393	// non-interface field appearing in ForceSendFields will be sent to the
6394	// server regardless of whether the field is empty or not. This may be
6395	// used to include empty fields in Patch requests.
6396	ForceSendFields []string `json:"-"`
6397
6398	// NullFields is a list of field names (e.g. "Columns") to include in
6399	// API requests with the JSON null value. By default, fields with empty
6400	// values are omitted from API requests. However, any field with an
6401	// empty value appearing in NullFields will be sent to the server as
6402	// null. It is an error if a field in this list has a non-empty value.
6403	// This may be used to include null fields in Patch requests.
6404	NullFields []string `json:"-"`
6405}
6406
6407func (s *Table) MarshalJSON() ([]byte, error) {
6408	type NoMethod Table
6409	raw := NoMethod(*s)
6410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6411}
6412
6413// TableCell: The contents and style of a cell in a Table.
6414type TableCell struct {
6415	// Content: The content of the cell.
6416	Content []*StructuralElement `json:"content,omitempty"`
6417
6418	// EndIndex: The zero-based end index of this cell, exclusive, in UTF-16
6419	// code units.
6420	EndIndex int64 `json:"endIndex,omitempty"`
6421
6422	// StartIndex: The zero-based start index of this cell, in UTF-16 code
6423	// units.
6424	StartIndex int64 `json:"startIndex,omitempty"`
6425
6426	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
6427	// there are no suggested deletions
6428	// of this content.
6429	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
6430
6431	// SuggestedInsertionIds: The suggested insertion IDs. A TableCell
6432	// may have multiple insertion IDs if it is a nested suggested change.
6433	// If
6434	// empty, then this is not a suggested insertion.
6435	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
6436
6437	// SuggestedTableCellStyleChanges: The suggested changes to the table
6438	// cell style, keyed by suggestion ID.
6439	SuggestedTableCellStyleChanges map[string]SuggestedTableCellStyle `json:"suggestedTableCellStyleChanges,omitempty"`
6440
6441	// TableCellStyle: The style of the cell.
6442	TableCellStyle *TableCellStyle `json:"tableCellStyle,omitempty"`
6443
6444	// ForceSendFields is a list of field names (e.g. "Content") to
6445	// unconditionally include in API requests. By default, fields with
6446	// empty values are omitted from API requests. However, any non-pointer,
6447	// non-interface field appearing in ForceSendFields will be sent to the
6448	// server regardless of whether the field is empty or not. This may be
6449	// used to include empty fields in Patch requests.
6450	ForceSendFields []string `json:"-"`
6451
6452	// NullFields is a list of field names (e.g. "Content") to include in
6453	// API requests with the JSON null value. By default, fields with empty
6454	// values are omitted from API requests. However, any field with an
6455	// empty value appearing in NullFields will be sent to the server as
6456	// null. It is an error if a field in this list has a non-empty value.
6457	// This may be used to include null fields in Patch requests.
6458	NullFields []string `json:"-"`
6459}
6460
6461func (s *TableCell) MarshalJSON() ([]byte, error) {
6462	type NoMethod TableCell
6463	raw := NoMethod(*s)
6464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6465}
6466
6467// TableCellBorder: A border around a table cell.
6468//
6469// Table cell borders cannot be transparent. To hide a table cell
6470// border, make
6471// its width 0.
6472type TableCellBorder struct {
6473	// Color: The color of the border.
6474	//
6475	// This color cannot be transparent.
6476	Color *OptionalColor `json:"color,omitempty"`
6477
6478	// DashStyle: The dash style of the border.
6479	//
6480	// Possible values:
6481	//   "DASH_STYLE_UNSPECIFIED" - Unspecified dash style.
6482	//   "SOLID" - Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal
6483	// value 'solid'.
6484	// This is the default dash style.
6485	//   "DOT" - Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal
6486	// value 'dot'.
6487	//   "DASH" - Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal
6488	// value 'dash'.
6489	DashStyle string `json:"dashStyle,omitempty"`
6490
6491	// Width: The width of the border.
6492	Width *Dimension `json:"width,omitempty"`
6493
6494	// ForceSendFields is a list of field names (e.g. "Color") to
6495	// unconditionally include in API requests. By default, fields with
6496	// empty values are omitted from API requests. However, any non-pointer,
6497	// non-interface field appearing in ForceSendFields will be sent to the
6498	// server regardless of whether the field is empty or not. This may be
6499	// used to include empty fields in Patch requests.
6500	ForceSendFields []string `json:"-"`
6501
6502	// NullFields is a list of field names (e.g. "Color") to include in API
6503	// requests with the JSON null value. By default, fields with empty
6504	// values are omitted from API requests. However, any field with an
6505	// empty value appearing in NullFields will be sent to the server as
6506	// null. It is an error if a field in this list has a non-empty value.
6507	// This may be used to include null fields in Patch requests.
6508	NullFields []string `json:"-"`
6509}
6510
6511func (s *TableCellBorder) MarshalJSON() ([]byte, error) {
6512	type NoMethod TableCellBorder
6513	raw := NoMethod(*s)
6514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6515}
6516
6517// TableCellLocation: Location of a single cell within a table.
6518type TableCellLocation struct {
6519	// ColumnIndex: The zero-based column index. For example, the second
6520	// column in the table
6521	// has a column index of 1.
6522	ColumnIndex int64 `json:"columnIndex,omitempty"`
6523
6524	// RowIndex: The zero-based row index. For example, the second row in
6525	// the table has a
6526	// row index of 1.
6527	RowIndex int64 `json:"rowIndex,omitempty"`
6528
6529	// TableStartLocation: The location where the table starts in the
6530	// document.
6531	TableStartLocation *Location `json:"tableStartLocation,omitempty"`
6532
6533	// ForceSendFields is a list of field names (e.g. "ColumnIndex") to
6534	// unconditionally include in API requests. By default, fields with
6535	// empty values are omitted from API requests. However, any non-pointer,
6536	// non-interface field appearing in ForceSendFields will be sent to the
6537	// server regardless of whether the field is empty or not. This may be
6538	// used to include empty fields in Patch requests.
6539	ForceSendFields []string `json:"-"`
6540
6541	// NullFields is a list of field names (e.g. "ColumnIndex") to include
6542	// in API requests with the JSON null value. By default, fields with
6543	// empty values are omitted from API requests. However, any field with
6544	// an empty value appearing in NullFields will be sent to the server as
6545	// null. It is an error if a field in this list has a non-empty value.
6546	// This may be used to include null fields in Patch requests.
6547	NullFields []string `json:"-"`
6548}
6549
6550func (s *TableCellLocation) MarshalJSON() ([]byte, error) {
6551	type NoMethod TableCellLocation
6552	raw := NoMethod(*s)
6553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6554}
6555
6556// TableCellStyle: The style of a TableCell.
6557//
6558// Inherited table cell styles are represented as unset fields in this
6559// message.
6560// A table cell style can inherit from the table's style.
6561type TableCellStyle struct {
6562	// BackgroundColor: The background color of the cell.
6563	BackgroundColor *OptionalColor `json:"backgroundColor,omitempty"`
6564
6565	// BorderBottom: The bottom border of the cell.
6566	BorderBottom *TableCellBorder `json:"borderBottom,omitempty"`
6567
6568	// BorderLeft: The left border of the cell.
6569	BorderLeft *TableCellBorder `json:"borderLeft,omitempty"`
6570
6571	// BorderRight: The right border of the cell.
6572	BorderRight *TableCellBorder `json:"borderRight,omitempty"`
6573
6574	// BorderTop: The top border of the cell.
6575	BorderTop *TableCellBorder `json:"borderTop,omitempty"`
6576
6577	// ColumnSpan: The column span of the cell.
6578	//
6579	// This property is read-only.
6580	ColumnSpan int64 `json:"columnSpan,omitempty"`
6581
6582	// ContentAlignment: The alignment of the content in the table cell. The
6583	// default alignment
6584	// matches the alignment for newly created table cells in the Docs
6585	// editor.
6586	//
6587	// Possible values:
6588	//   "CONTENT_ALIGNMENT_UNSPECIFIED" - An unspecified content alignment.
6589	// The content alignment is inherited from
6590	// the parent if one exists.
6591	//   "CONTENT_ALIGNMENT_UNSUPPORTED" - An unsupported content alignment.
6592	//   "TOP" - An alignment that aligns the content to the top of the
6593	// content holder.
6594	// Corresponds to ECMA-376 ST_TextAnchoringType 't'.
6595	//   "MIDDLE" - An alignment that aligns the content to the middle of
6596	// the content holder.
6597	// Corresponds to ECMA-376 ST_TextAnchoringType 'ctr'.
6598	//   "BOTTOM" - An alignment that aligns the content to the bottom of
6599	// the content holder.
6600	// Corresponds to ECMA-376 ST_TextAnchoringType 'b'.
6601	ContentAlignment string `json:"contentAlignment,omitempty"`
6602
6603	// PaddingBottom: The bottom padding of the cell.
6604	PaddingBottom *Dimension `json:"paddingBottom,omitempty"`
6605
6606	// PaddingLeft: The left padding of the cell.
6607	PaddingLeft *Dimension `json:"paddingLeft,omitempty"`
6608
6609	// PaddingRight: The right padding of the cell.
6610	PaddingRight *Dimension `json:"paddingRight,omitempty"`
6611
6612	// PaddingTop: The top padding of the cell.
6613	PaddingTop *Dimension `json:"paddingTop,omitempty"`
6614
6615	// RowSpan: The row span of the cell.
6616	//
6617	// This property is read-only.
6618	RowSpan int64 `json:"rowSpan,omitempty"`
6619
6620	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
6621	// unconditionally include in API requests. By default, fields with
6622	// empty values are omitted from API requests. However, any non-pointer,
6623	// non-interface field appearing in ForceSendFields will be sent to the
6624	// server regardless of whether the field is empty or not. This may be
6625	// used to include empty fields in Patch requests.
6626	ForceSendFields []string `json:"-"`
6627
6628	// NullFields is a list of field names (e.g. "BackgroundColor") to
6629	// include in API requests with the JSON null value. By default, fields
6630	// with empty values are omitted from API requests. However, any field
6631	// with an empty value appearing in NullFields will be sent to the
6632	// server as null. It is an error if a field in this list has a
6633	// non-empty value. This may be used to include null fields in Patch
6634	// requests.
6635	NullFields []string `json:"-"`
6636}
6637
6638func (s *TableCellStyle) MarshalJSON() ([]byte, error) {
6639	type NoMethod TableCellStyle
6640	raw := NoMethod(*s)
6641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6642}
6643
6644// TableCellStyleSuggestionState: A mask that indicates which of the
6645// fields on the base TableCellStyle have been changed in this
6646// suggestion.
6647// For any field set to true, there is a new suggested value.
6648type TableCellStyleSuggestionState struct {
6649	// BackgroundColorSuggested: Indicates if there was a suggested change
6650	// to background_color.
6651	BackgroundColorSuggested bool `json:"backgroundColorSuggested,omitempty"`
6652
6653	// BorderBottomSuggested: Indicates if there was a suggested change to
6654	// border_bottom.
6655	BorderBottomSuggested bool `json:"borderBottomSuggested,omitempty"`
6656
6657	// BorderLeftSuggested: Indicates if there was a suggested change to
6658	// border_left.
6659	BorderLeftSuggested bool `json:"borderLeftSuggested,omitempty"`
6660
6661	// BorderRightSuggested: Indicates if there was a suggested change to
6662	// border_right.
6663	BorderRightSuggested bool `json:"borderRightSuggested,omitempty"`
6664
6665	// BorderTopSuggested: Indicates if there was a suggested change to
6666	// border_top.
6667	BorderTopSuggested bool `json:"borderTopSuggested,omitempty"`
6668
6669	// ColumnSpanSuggested: Indicates if there was a suggested change to
6670	// column_span.
6671	ColumnSpanSuggested bool `json:"columnSpanSuggested,omitempty"`
6672
6673	// ContentAlignmentSuggested: Indicates if there was a suggested change
6674	// to content_alignment.
6675	ContentAlignmentSuggested bool `json:"contentAlignmentSuggested,omitempty"`
6676
6677	// PaddingBottomSuggested: Indicates if there was a suggested change to
6678	// padding_bottom.
6679	PaddingBottomSuggested bool `json:"paddingBottomSuggested,omitempty"`
6680
6681	// PaddingLeftSuggested: Indicates if there was a suggested change to
6682	// padding_left.
6683	PaddingLeftSuggested bool `json:"paddingLeftSuggested,omitempty"`
6684
6685	// PaddingRightSuggested: Indicates if there was a suggested change to
6686	// padding_right.
6687	PaddingRightSuggested bool `json:"paddingRightSuggested,omitempty"`
6688
6689	// PaddingTopSuggested: Indicates if there was a suggested change to
6690	// padding_top.
6691	PaddingTopSuggested bool `json:"paddingTopSuggested,omitempty"`
6692
6693	// RowSpanSuggested: Indicates if there was a suggested change to
6694	// row_span.
6695	RowSpanSuggested bool `json:"rowSpanSuggested,omitempty"`
6696
6697	// ForceSendFields is a list of field names (e.g.
6698	// "BackgroundColorSuggested") to unconditionally include in API
6699	// requests. By default, fields with empty values are omitted from API
6700	// requests. However, any non-pointer, non-interface field appearing in
6701	// ForceSendFields will be sent to the server regardless of whether the
6702	// field is empty or not. This may be used to include empty fields in
6703	// Patch requests.
6704	ForceSendFields []string `json:"-"`
6705
6706	// NullFields is a list of field names (e.g. "BackgroundColorSuggested")
6707	// to include in API requests with the JSON null value. By default,
6708	// fields with empty values are omitted from API requests. However, any
6709	// field with an empty value appearing in NullFields will be sent to the
6710	// server as null. It is an error if a field in this list has a
6711	// non-empty value. This may be used to include null fields in Patch
6712	// requests.
6713	NullFields []string `json:"-"`
6714}
6715
6716func (s *TableCellStyleSuggestionState) MarshalJSON() ([]byte, error) {
6717	type NoMethod TableCellStyleSuggestionState
6718	raw := NoMethod(*s)
6719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6720}
6721
6722// TableColumnProperties: The properties of a column in a table.
6723type TableColumnProperties struct {
6724	// Width: The width of the column. Set when the column's `width_type`
6725	// is
6726	// FIXED_WIDTH.
6727	Width *Dimension `json:"width,omitempty"`
6728
6729	// WidthType: The width type of the column.
6730	//
6731	// Possible values:
6732	//   "WIDTH_TYPE_UNSPECIFIED" - The column width type is unspecified.
6733	//   "EVENLY_DISTRIBUTED" - The column width is evenly distributed among
6734	// the other evenly distrubted
6735	// columns.
6736	//
6737	// The width of the column is automatically determined and will
6738	// have an equal portion of the width remaining for the table
6739	// after
6740	// accounting for all columns with specified widths.
6741	//   "FIXED_WIDTH" - A fixed column width. The
6742	// width property
6743	// contains the column's width.
6744	WidthType string `json:"widthType,omitempty"`
6745
6746	// ForceSendFields is a list of field names (e.g. "Width") to
6747	// unconditionally include in API requests. By default, fields with
6748	// empty values are omitted from API requests. However, any non-pointer,
6749	// non-interface field appearing in ForceSendFields will be sent to the
6750	// server regardless of whether the field is empty or not. This may be
6751	// used to include empty fields in Patch requests.
6752	ForceSendFields []string `json:"-"`
6753
6754	// NullFields is a list of field names (e.g. "Width") to include in API
6755	// requests with the JSON null value. By default, fields with empty
6756	// values are omitted from API requests. However, any field with an
6757	// empty value appearing in NullFields will be sent to the server as
6758	// null. It is an error if a field in this list has a non-empty value.
6759	// This may be used to include null fields in Patch requests.
6760	NullFields []string `json:"-"`
6761}
6762
6763func (s *TableColumnProperties) MarshalJSON() ([]byte, error) {
6764	type NoMethod TableColumnProperties
6765	raw := NoMethod(*s)
6766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6767}
6768
6769// TableOfContents: A StructuralElement representing
6770// a table of contents.
6771type TableOfContents struct {
6772	// Content: The content of the table of contents.
6773	Content []*StructuralElement `json:"content,omitempty"`
6774
6775	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
6776	// there are no suggested deletions
6777	// of this content.
6778	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
6779
6780	// SuggestedInsertionIds: The suggested insertion IDs. A TableOfContents
6781	// may have multiple insertion IDs if it
6782	// is a nested suggested change. If empty, then this is not a
6783	// suggested
6784	// insertion.
6785	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
6786
6787	// ForceSendFields is a list of field names (e.g. "Content") 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. "Content") to include in
6796	// API 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 *TableOfContents) MarshalJSON() ([]byte, error) {
6805	type NoMethod TableOfContents
6806	raw := NoMethod(*s)
6807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6808}
6809
6810// TableRange: A table range represents a reference to a subset of a
6811// table.
6812//
6813// It's important to note that the cells specified by a table range do
6814// not
6815// necessarily form a rectangle. For example, let's say we have a 3 x 3
6816// table
6817// where all the cells of the last row are merged together. The table
6818// looks
6819// like this:
6820//
6821//
6822//      [             ]
6823//
6824// A table range with table cell location = (table_start_location, row =
6825// 0,
6826// column = 0), row span = 3 and column span = 2 specifies the following
6827// cells:
6828//
6829//       x     x
6830//      [ x    x    x ]
6831type TableRange struct {
6832	// ColumnSpan: The column span of the table range.
6833	ColumnSpan int64 `json:"columnSpan,omitempty"`
6834
6835	// RowSpan: The row span of the table range.
6836	RowSpan int64 `json:"rowSpan,omitempty"`
6837
6838	// TableCellLocation: The cell location where the table range starts.
6839	TableCellLocation *TableCellLocation `json:"tableCellLocation,omitempty"`
6840
6841	// ForceSendFields is a list of field names (e.g. "ColumnSpan") 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. "ColumnSpan") to include in
6850	// API 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 *TableRange) MarshalJSON() ([]byte, error) {
6859	type NoMethod TableRange
6860	raw := NoMethod(*s)
6861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6862}
6863
6864// TableRow: The contents and style of a row in a Table.
6865type TableRow struct {
6866	// EndIndex: The zero-based end index of this row, exclusive, in UTF-16
6867	// code units.
6868	EndIndex int64 `json:"endIndex,omitempty"`
6869
6870	// StartIndex: The zero-based start index of this row, in UTF-16 code
6871	// units.
6872	StartIndex int64 `json:"startIndex,omitempty"`
6873
6874	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
6875	// there are no suggested deletions
6876	// of this content.
6877	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
6878
6879	// SuggestedInsertionIds: The suggested insertion IDs. A TableRow
6880	// may have multiple insertion IDs if it is a nested suggested change.
6881	// If
6882	// empty, then this is not a suggested insertion.
6883	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
6884
6885	// SuggestedTableRowStyleChanges: The suggested style changes to this
6886	// row, keyed by suggestion ID.
6887	SuggestedTableRowStyleChanges map[string]SuggestedTableRowStyle `json:"suggestedTableRowStyleChanges,omitempty"`
6888
6889	// TableCells: The contents and style of each cell in this row.
6890	//
6891	// It is possible for a table to be non-rectangular, so some rows may
6892	// have a
6893	// different number of cells than other rows in the same table.
6894	TableCells []*TableCell `json:"tableCells,omitempty"`
6895
6896	// TableRowStyle: The style of the table row.
6897	TableRowStyle *TableRowStyle `json:"tableRowStyle,omitempty"`
6898
6899	// ForceSendFields is a list of field names (e.g. "EndIndex") to
6900	// unconditionally include in API requests. By default, fields with
6901	// empty values are omitted from API requests. However, any non-pointer,
6902	// non-interface field appearing in ForceSendFields will be sent to the
6903	// server regardless of whether the field is empty or not. This may be
6904	// used to include empty fields in Patch requests.
6905	ForceSendFields []string `json:"-"`
6906
6907	// NullFields is a list of field names (e.g. "EndIndex") to include in
6908	// API requests with the JSON null value. By default, fields with empty
6909	// values are omitted from API requests. However, any field with an
6910	// empty value appearing in NullFields will be sent to the server as
6911	// null. It is an error if a field in this list has a non-empty value.
6912	// This may be used to include null fields in Patch requests.
6913	NullFields []string `json:"-"`
6914}
6915
6916func (s *TableRow) MarshalJSON() ([]byte, error) {
6917	type NoMethod TableRow
6918	raw := NoMethod(*s)
6919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6920}
6921
6922// TableRowStyle: Styles that apply to a table row.
6923type TableRowStyle struct {
6924	// MinRowHeight: The minimum height of the row. The row will be rendered
6925	// in the Docs editor
6926	// at a height equal to or greater than this value in order to show all
6927	// the
6928	// content in the row's cells.
6929	MinRowHeight *Dimension `json:"minRowHeight,omitempty"`
6930
6931	// ForceSendFields is a list of field names (e.g. "MinRowHeight") to
6932	// unconditionally include in API requests. By default, fields with
6933	// empty values are omitted from API requests. However, any non-pointer,
6934	// non-interface field appearing in ForceSendFields will be sent to the
6935	// server regardless of whether the field is empty or not. This may be
6936	// used to include empty fields in Patch requests.
6937	ForceSendFields []string `json:"-"`
6938
6939	// NullFields is a list of field names (e.g. "MinRowHeight") to include
6940	// in API requests with the JSON null value. By default, fields with
6941	// empty values are omitted from API requests. However, any field with
6942	// an empty value appearing in NullFields will be sent to the server as
6943	// null. It is an error if a field in this list has a non-empty value.
6944	// This may be used to include null fields in Patch requests.
6945	NullFields []string `json:"-"`
6946}
6947
6948func (s *TableRowStyle) MarshalJSON() ([]byte, error) {
6949	type NoMethod TableRowStyle
6950	raw := NoMethod(*s)
6951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6952}
6953
6954// TableRowStyleSuggestionState: A mask that indicates which of the
6955// fields on the base TableRowStyle have been changed in this
6956// suggestion.
6957// For any field set to true, there is a new suggested value.
6958type TableRowStyleSuggestionState struct {
6959	// MinRowHeightSuggested: Indicates if there was a suggested change to
6960	// min_row_height.
6961	MinRowHeightSuggested bool `json:"minRowHeightSuggested,omitempty"`
6962
6963	// ForceSendFields is a list of field names (e.g.
6964	// "MinRowHeightSuggested") to unconditionally include in API requests.
6965	// By default, fields with empty values are omitted from API requests.
6966	// However, any non-pointer, non-interface field appearing in
6967	// ForceSendFields will be sent to the server regardless of whether the
6968	// field is empty or not. This may be used to include empty fields in
6969	// Patch requests.
6970	ForceSendFields []string `json:"-"`
6971
6972	// NullFields is a list of field names (e.g. "MinRowHeightSuggested") to
6973	// include in API requests with the JSON null value. By default, fields
6974	// with empty values are omitted from API requests. However, any field
6975	// with an empty value appearing in NullFields will be sent to the
6976	// server as null. It is an error if a field in this list has a
6977	// non-empty value. This may be used to include null fields in Patch
6978	// requests.
6979	NullFields []string `json:"-"`
6980}
6981
6982func (s *TableRowStyleSuggestionState) MarshalJSON() ([]byte, error) {
6983	type NoMethod TableRowStyleSuggestionState
6984	raw := NoMethod(*s)
6985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6986}
6987
6988// TableStyle: Styles that apply to a table.
6989type TableStyle struct {
6990	// TableColumnProperties: The properties of each column.
6991	//
6992	// Note that in Docs, tables contain rows and rows contain cells,
6993	// similar to
6994	// HTML. So the properties for a row can be found on the
6995	// row's
6996	// table_row_style.
6997	TableColumnProperties []*TableColumnProperties `json:"tableColumnProperties,omitempty"`
6998
6999	// ForceSendFields is a list of field names (e.g.
7000	// "TableColumnProperties") to unconditionally include in API requests.
7001	// By default, fields with empty values are omitted from API requests.
7002	// However, any non-pointer, non-interface field appearing in
7003	// ForceSendFields will be sent to the server regardless of whether the
7004	// field is empty or not. This may be used to include empty fields in
7005	// Patch requests.
7006	ForceSendFields []string `json:"-"`
7007
7008	// NullFields is a list of field names (e.g. "TableColumnProperties") to
7009	// include in API requests with the JSON null value. By default, fields
7010	// with empty values are omitted from API requests. However, any field
7011	// with an empty value appearing in NullFields will be sent to the
7012	// server as null. It is an error if a field in this list has a
7013	// non-empty value. This may be used to include null fields in Patch
7014	// requests.
7015	NullFields []string `json:"-"`
7016}
7017
7018func (s *TableStyle) MarshalJSON() ([]byte, error) {
7019	type NoMethod TableStyle
7020	raw := NoMethod(*s)
7021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7022}
7023
7024// TextRun: A ParagraphElement that represents a
7025// run of text that all has the same styling.
7026type TextRun struct {
7027	// Content: The text of this run.
7028	//
7029	// Any non-text elements in the run are replaced with the Unicode
7030	// character
7031	// U+E907.
7032	Content string `json:"content,omitempty"`
7033
7034	// SuggestedDeletionIds: The suggested deletion IDs. If empty, then
7035	// there are no suggested deletions
7036	// of this content.
7037	SuggestedDeletionIds []string `json:"suggestedDeletionIds,omitempty"`
7038
7039	// SuggestedInsertionIds: The suggested insertion IDs. A TextRun
7040	// may
7041	// have multiple insertion IDs if it is a nested suggested change. If
7042	// empty,
7043	// then this is not a suggested insertion.
7044	SuggestedInsertionIds []string `json:"suggestedInsertionIds,omitempty"`
7045
7046	// SuggestedTextStyleChanges: The suggested text style changes to this
7047	// run, keyed by suggestion ID.
7048	SuggestedTextStyleChanges map[string]SuggestedTextStyle `json:"suggestedTextStyleChanges,omitempty"`
7049
7050	// TextStyle: The text style of this run.
7051	TextStyle *TextStyle `json:"textStyle,omitempty"`
7052
7053	// ForceSendFields is a list of field names (e.g. "Content") to
7054	// unconditionally include in API requests. By default, fields with
7055	// empty values are omitted from API requests. However, any non-pointer,
7056	// non-interface field appearing in ForceSendFields will be sent to the
7057	// server regardless of whether the field is empty or not. This may be
7058	// used to include empty fields in Patch requests.
7059	ForceSendFields []string `json:"-"`
7060
7061	// NullFields is a list of field names (e.g. "Content") to include in
7062	// API requests with the JSON null value. By default, fields with empty
7063	// values are omitted from API requests. However, any field with an
7064	// empty value appearing in NullFields will be sent to the server as
7065	// null. It is an error if a field in this list has a non-empty value.
7066	// This may be used to include null fields in Patch requests.
7067	NullFields []string `json:"-"`
7068}
7069
7070func (s *TextRun) MarshalJSON() ([]byte, error) {
7071	type NoMethod TextRun
7072	raw := NoMethod(*s)
7073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7074}
7075
7076// TextStyle: Represents the styling that can be applied to
7077// text.
7078//
7079// Inherited text styles are represented as unset fields in this
7080// message. A
7081// text style's parent depends on where the text style is defined:
7082//
7083//   * The TextStyle of text in a Paragraph
7084//     inherits from the paragraph's corresponding named style type.
7085//   * The TextStyle on a named style
7086//     inherits from the normal text named style.
7087//   * The TextStyle of the normal text named style inherits
7088//     from the default text style in the Docs editor.
7089//   * The TextStyle on a Paragraph element
7090//     that is contained in a table may inherit its text style from the
7091// table
7092//     style.
7093//
7094// If the text style does not inherit from a parent, unsetting fields
7095// will
7096// revert the style to a value matching the defaults in the Docs editor.
7097type TextStyle struct {
7098	// BackgroundColor: The background color of the text. If set, the color
7099	// is either an RGB color
7100	// or transparent, depending on the `color` field.
7101	BackgroundColor *OptionalColor `json:"backgroundColor,omitempty"`
7102
7103	// BaselineOffset: The text's vertical offset from its normal
7104	// position.
7105	//
7106	// Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is
7107	// automatically
7108	// rendered in a smaller font size, computed based on the `font_size`
7109	// field.
7110	// The `font_size` itself is not affected by changes in this field.
7111	//
7112	// Possible values:
7113	//   "BASELINE_OFFSET_UNSPECIFIED" - The text's baseline offset is
7114	// inherited from the parent.
7115	//   "NONE" - The text is not vertically offset.
7116	//   "SUPERSCRIPT" - The text is vertically offset upwards
7117	// (superscript).
7118	//   "SUBSCRIPT" - The text is vertically offset downwards (subscript).
7119	BaselineOffset string `json:"baselineOffset,omitempty"`
7120
7121	// Bold: Whether or not the text is rendered as bold.
7122	Bold bool `json:"bold,omitempty"`
7123
7124	// FontSize: The size of the text's font.
7125	FontSize *Dimension `json:"fontSize,omitempty"`
7126
7127	// ForegroundColor: The foreground color of the text. If set, the color
7128	// is either an RGB color
7129	// or transparent, depending on the `color` field.
7130	ForegroundColor *OptionalColor `json:"foregroundColor,omitempty"`
7131
7132	// Italic: Whether or not the text is italicized.
7133	Italic bool `json:"italic,omitempty"`
7134
7135	// Link: The hyperlink destination of the text. If unset, there is no
7136	// link. Links
7137	// are not inherited from parent text.
7138	//
7139	// Changing the link in an update request causes some other changes to
7140	// the
7141	// text style of the range:
7142	//
7143	// * When setting a link, the text foreground color will be updated to
7144	// the
7145	//   default link color and the text will be underlined. If these fields
7146	// are
7147	//   modified in the same request, those values will be used instead of
7148	// the
7149	//   link defaults.
7150	// * Setting a link on a text range that overlaps with an existing link
7151	// will
7152	//   also update the existing link to point to the new URL.
7153	// * Links are not settable on newline characters. As a result, setting
7154	// a link
7155	//   on a text range that crosses a paragraph boundary, such as
7156	// "ABC\n123",
7157	//   will separate the newline character(s) into their own text runs.
7158	// The
7159	//   link will be applied separately to the runs before and after the
7160	// newline.
7161	// * Removing a link will update the text style of the range to match
7162	// the
7163	//   style of the preceding text (or the default text styles if the
7164	// preceding
7165	//   text is another link) unless different styles are being set in the
7166	// same
7167	//   request.
7168	Link *Link `json:"link,omitempty"`
7169
7170	// SmallCaps: Whether or not the text is in small capital letters.
7171	SmallCaps bool `json:"smallCaps,omitempty"`
7172
7173	// Strikethrough: Whether or not the text is struck through.
7174	Strikethrough bool `json:"strikethrough,omitempty"`
7175
7176	// Underline: Whether or not the text is underlined.
7177	Underline bool `json:"underline,omitempty"`
7178
7179	// WeightedFontFamily: The font family and rendered weight of the
7180	// text.
7181	//
7182	// If an update request specifies values for both `weighted_font_family`
7183	// and
7184	// `bold`, the `weighted_font_family` is applied first, then `bold`.
7185	//
7186	// If `weighted_font_family#weight` is not set, it defaults to
7187	// `400`.
7188	//
7189	// If `weighted_font_family` is set, then
7190	// `weighted_font_family#font_family`
7191	// must also be set with a non-empty value. Otherwise, a 400 bad request
7192	// error
7193	// is returned.
7194	WeightedFontFamily *WeightedFontFamily `json:"weightedFontFamily,omitempty"`
7195
7196	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
7197	// unconditionally include in API requests. By default, fields with
7198	// empty values are omitted from API requests. However, any non-pointer,
7199	// non-interface field appearing in ForceSendFields will be sent to the
7200	// server regardless of whether the field is empty or not. This may be
7201	// used to include empty fields in Patch requests.
7202	ForceSendFields []string `json:"-"`
7203
7204	// NullFields is a list of field names (e.g. "BackgroundColor") to
7205	// include in API requests with the JSON null value. By default, fields
7206	// with empty values are omitted from API requests. However, any field
7207	// with an empty value appearing in NullFields will be sent to the
7208	// server as null. It is an error if a field in this list has a
7209	// non-empty value. This may be used to include null fields in Patch
7210	// requests.
7211	NullFields []string `json:"-"`
7212}
7213
7214func (s *TextStyle) MarshalJSON() ([]byte, error) {
7215	type NoMethod TextStyle
7216	raw := NoMethod(*s)
7217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7218}
7219
7220// TextStyleSuggestionState: A mask that indicates which of the fields
7221// on the base TextStyle have been changed in this suggestion.
7222// For any field set to true, there is a new suggested value.
7223type TextStyleSuggestionState struct {
7224	// BackgroundColorSuggested: Indicates if there was a suggested change
7225	// to background_color.
7226	BackgroundColorSuggested bool `json:"backgroundColorSuggested,omitempty"`
7227
7228	// BaselineOffsetSuggested: Indicates if there was a suggested change to
7229	// baseline_offset.
7230	BaselineOffsetSuggested bool `json:"baselineOffsetSuggested,omitempty"`
7231
7232	// BoldSuggested: Indicates if there was a suggested change to bold.
7233	BoldSuggested bool `json:"boldSuggested,omitempty"`
7234
7235	// FontSizeSuggested: Indicates if there was a suggested change to
7236	// font_size.
7237	FontSizeSuggested bool `json:"fontSizeSuggested,omitempty"`
7238
7239	// ForegroundColorSuggested: Indicates if there was a suggested change
7240	// to foreground_color.
7241	ForegroundColorSuggested bool `json:"foregroundColorSuggested,omitempty"`
7242
7243	// ItalicSuggested: Indicates if there was a suggested change to italic.
7244	ItalicSuggested bool `json:"italicSuggested,omitempty"`
7245
7246	// LinkSuggested: Indicates if there was a suggested change to link.
7247	LinkSuggested bool `json:"linkSuggested,omitempty"`
7248
7249	// SmallCapsSuggested: Indicates if there was a suggested change to
7250	// small_caps.
7251	SmallCapsSuggested bool `json:"smallCapsSuggested,omitempty"`
7252
7253	// StrikethroughSuggested: Indicates if there was a suggested change to
7254	// strikethrough.
7255	StrikethroughSuggested bool `json:"strikethroughSuggested,omitempty"`
7256
7257	// UnderlineSuggested: Indicates if there was a suggested change to
7258	// underline.
7259	UnderlineSuggested bool `json:"underlineSuggested,omitempty"`
7260
7261	// WeightedFontFamilySuggested: Indicates if there was a suggested
7262	// change to weighted_font_family.
7263	WeightedFontFamilySuggested bool `json:"weightedFontFamilySuggested,omitempty"`
7264
7265	// ForceSendFields is a list of field names (e.g.
7266	// "BackgroundColorSuggested") to unconditionally include in API
7267	// requests. By default, fields with empty values are omitted from API
7268	// requests. However, any non-pointer, non-interface field appearing in
7269	// ForceSendFields will be sent to the server regardless of whether the
7270	// field is empty or not. This may be used to include empty fields in
7271	// Patch requests.
7272	ForceSendFields []string `json:"-"`
7273
7274	// NullFields is a list of field names (e.g. "BackgroundColorSuggested")
7275	// to include in API requests with the JSON null value. By default,
7276	// fields with empty values are omitted from API requests. However, any
7277	// field with an empty value appearing in NullFields will be sent to the
7278	// server as null. It is an error if a field in this list has a
7279	// non-empty value. This may be used to include null fields in Patch
7280	// requests.
7281	NullFields []string `json:"-"`
7282}
7283
7284func (s *TextStyleSuggestionState) MarshalJSON() ([]byte, error) {
7285	type NoMethod TextStyleSuggestionState
7286	raw := NoMethod(*s)
7287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7288}
7289
7290// UnmergeTableCellsRequest: Unmerges cells in a Table.
7291type UnmergeTableCellsRequest struct {
7292	// TableRange: The table range specifying which cells of the table to
7293	// unmerge.
7294	//
7295	// All merged cells in this range will be unmerged, and cells that are
7296	// already
7297	// unmerged will not be affected. If the range has no merged cells,
7298	// the
7299	// request will do nothing.
7300	//
7301	// If there is text in any of the merged cells, the text will remain in
7302	// the
7303	// "head" cell of the resulting block of unmerged cells. The "head" cell
7304	// is
7305	// the upper-left cell when the content direction is from left to right,
7306	// and
7307	// the upper-right otherwise.
7308	TableRange *TableRange `json:"tableRange,omitempty"`
7309
7310	// ForceSendFields is a list of field names (e.g. "TableRange") to
7311	// unconditionally include in API requests. By default, fields with
7312	// empty values are omitted from API requests. However, any non-pointer,
7313	// non-interface field appearing in ForceSendFields will be sent to the
7314	// server regardless of whether the field is empty or not. This may be
7315	// used to include empty fields in Patch requests.
7316	ForceSendFields []string `json:"-"`
7317
7318	// NullFields is a list of field names (e.g. "TableRange") to include in
7319	// API requests with the JSON null value. By default, fields with empty
7320	// values are omitted from API requests. However, any field with an
7321	// empty value appearing in NullFields will be sent to the server as
7322	// null. It is an error if a field in this list has a non-empty value.
7323	// This may be used to include null fields in Patch requests.
7324	NullFields []string `json:"-"`
7325}
7326
7327func (s *UnmergeTableCellsRequest) MarshalJSON() ([]byte, error) {
7328	type NoMethod UnmergeTableCellsRequest
7329	raw := NoMethod(*s)
7330	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7331}
7332
7333// UpdateDocumentStyleRequest: Updates the DocumentStyle.
7334type UpdateDocumentStyleRequest struct {
7335	// DocumentStyle: The styles to set on the document.
7336	//
7337	// Certain document style changes may cause other changes in order to
7338	// mirror
7339	// the behavior of the Docs editor. See the documentation of
7340	// DocumentStyle for more information.
7341	DocumentStyle *DocumentStyle `json:"documentStyle,omitempty"`
7342
7343	// Fields: The fields that should be updated.
7344	//
7345	// At least one field must be specified. The root `document_style`
7346	// is
7347	// implied and should not be specified. A single "*" can be used
7348	// as
7349	// short-hand for listing every field.
7350	//
7351	// For example to update the background, set `fields` to "background".
7352	Fields string `json:"fields,omitempty"`
7353
7354	// ForceSendFields is a list of field names (e.g. "DocumentStyle") to
7355	// unconditionally include in API requests. By default, fields with
7356	// empty values are omitted from API requests. However, any non-pointer,
7357	// non-interface field appearing in ForceSendFields will be sent to the
7358	// server regardless of whether the field is empty or not. This may be
7359	// used to include empty fields in Patch requests.
7360	ForceSendFields []string `json:"-"`
7361
7362	// NullFields is a list of field names (e.g. "DocumentStyle") to include
7363	// in API requests with the JSON null value. By default, fields with
7364	// empty values are omitted from API requests. However, any field with
7365	// an empty value appearing in NullFields will be sent to the server as
7366	// null. It is an error if a field in this list has a non-empty value.
7367	// This may be used to include null fields in Patch requests.
7368	NullFields []string `json:"-"`
7369}
7370
7371func (s *UpdateDocumentStyleRequest) MarshalJSON() ([]byte, error) {
7372	type NoMethod UpdateDocumentStyleRequest
7373	raw := NoMethod(*s)
7374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7375}
7376
7377// UpdateParagraphStyleRequest: Update the styling of all paragraphs
7378// that overlap with the given range.
7379type UpdateParagraphStyleRequest struct {
7380	// Fields: The fields that should be updated.
7381	//
7382	// At least one field must be specified. The root `paragraph_style` is
7383	// implied
7384	// and should not be specified.
7385	//
7386	// For example, to update the paragraph style's alignment property,
7387	// set
7388	// `fields` to "alignment".
7389	//
7390	// To reset a property to its default value, include its field name in
7391	// the
7392	// field mask but leave the field itself unset.
7393	Fields string `json:"fields,omitempty"`
7394
7395	// ParagraphStyle: The styles to set on the paragraphs.
7396	//
7397	// Certain paragraph style changes may cause other changes in order to
7398	// mirror
7399	// the behavior of the Docs editor. See the documentation of
7400	// ParagraphStyle for more information.
7401	ParagraphStyle *ParagraphStyle `json:"paragraphStyle,omitempty"`
7402
7403	// Range: The range overlapping the paragraphs to style.
7404	Range *Range `json:"range,omitempty"`
7405
7406	// ForceSendFields is a list of field names (e.g. "Fields") to
7407	// unconditionally include in API requests. By default, fields with
7408	// empty values are omitted from API requests. However, any non-pointer,
7409	// non-interface field appearing in ForceSendFields will be sent to the
7410	// server regardless of whether the field is empty or not. This may be
7411	// used to include empty fields in Patch requests.
7412	ForceSendFields []string `json:"-"`
7413
7414	// NullFields is a list of field names (e.g. "Fields") to include in API
7415	// requests with the JSON null value. By default, fields with empty
7416	// values are omitted from API requests. However, any field with an
7417	// empty value appearing in NullFields will be sent to the server as
7418	// null. It is an error if a field in this list has a non-empty value.
7419	// This may be used to include null fields in Patch requests.
7420	NullFields []string `json:"-"`
7421}
7422
7423func (s *UpdateParagraphStyleRequest) MarshalJSON() ([]byte, error) {
7424	type NoMethod UpdateParagraphStyleRequest
7425	raw := NoMethod(*s)
7426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7427}
7428
7429// UpdateSectionStyleRequest: Updates the SectionStyle.
7430type UpdateSectionStyleRequest struct {
7431	// Fields: The fields that should be updated.
7432	//
7433	// At least one field must be specified. The root `section_style`
7434	// is
7435	// implied and must not be specified. A single "*" can be used
7436	// as
7437	// short-hand for listing every field.
7438	//
7439	// For example to update the left margin, set `fields` to
7440	// "margin_left".
7441	Fields string `json:"fields,omitempty"`
7442
7443	// Range: The range overlapping the sections to style.
7444	//
7445	// Because section breaks can only be inserted inside the body, the
7446	// segment
7447	// ID field must be empty.
7448	Range *Range `json:"range,omitempty"`
7449
7450	// SectionStyle: The styles to  be set on the section.
7451	//
7452	// Certain section style changes may cause other changes in order to
7453	// mirror
7454	// the behavior of the Docs editor. See the documentation of
7455	// SectionStyle for more information.
7456	SectionStyle *SectionStyle `json:"sectionStyle,omitempty"`
7457
7458	// ForceSendFields is a list of field names (e.g. "Fields") to
7459	// unconditionally include in API requests. By default, fields with
7460	// empty values are omitted from API requests. However, any non-pointer,
7461	// non-interface field appearing in ForceSendFields will be sent to the
7462	// server regardless of whether the field is empty or not. This may be
7463	// used to include empty fields in Patch requests.
7464	ForceSendFields []string `json:"-"`
7465
7466	// NullFields is a list of field names (e.g. "Fields") to include in API
7467	// requests with the JSON null value. By default, fields with empty
7468	// values are omitted from API requests. However, any field with an
7469	// empty value appearing in NullFields will be sent to the server as
7470	// null. It is an error if a field in this list has a non-empty value.
7471	// This may be used to include null fields in Patch requests.
7472	NullFields []string `json:"-"`
7473}
7474
7475func (s *UpdateSectionStyleRequest) MarshalJSON() ([]byte, error) {
7476	type NoMethod UpdateSectionStyleRequest
7477	raw := NoMethod(*s)
7478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7479}
7480
7481// UpdateTableCellStyleRequest: Updates the style of a range of table
7482// cells.
7483type UpdateTableCellStyleRequest struct {
7484	// Fields: The fields that should be updated.
7485	//
7486	// At least one field must be specified. The root `tableCellStyle` is
7487	// implied
7488	// and should not be specified. A single "*" can be used as short-hand
7489	// for
7490	// listing every field.
7491	//
7492	// For example to update the table cell background color, set `fields`
7493	// to
7494	// "backgroundColor".
7495	//
7496	// To reset a property to its default value, include its field name in
7497	// the
7498	// field mask but leave the field itself unset.
7499	Fields string `json:"fields,omitempty"`
7500
7501	// TableCellStyle: The style to set on the table cells.
7502	//
7503	// When updating borders, if a cell shares a border with an adjacent
7504	// cell, the
7505	// corresponding border property of the adjacent cell is updated as
7506	// well.
7507	// Borders that are merged and invisible are not updated.
7508	//
7509	// Since updating a border shared by adjacent cells in the same request
7510	// can
7511	// cause conflicting border updates, border updates are applied in
7512	// the
7513	// following order:
7514	//
7515	// - `border_right`
7516	// - `border_left`
7517	// - `border_bottom`
7518	// - `border_top`
7519	TableCellStyle *TableCellStyle `json:"tableCellStyle,omitempty"`
7520
7521	// TableRange: The table range representing the subset of the table to
7522	// which the updates
7523	// are applied.
7524	TableRange *TableRange `json:"tableRange,omitempty"`
7525
7526	// TableStartLocation: The location where the table starts in the
7527	// document. When specified, the
7528	// updates are applied to all the cells in the table.
7529	TableStartLocation *Location `json:"tableStartLocation,omitempty"`
7530
7531	// ForceSendFields is a list of field names (e.g. "Fields") to
7532	// unconditionally include in API requests. By default, fields with
7533	// empty values are omitted from API requests. However, any non-pointer,
7534	// non-interface field appearing in ForceSendFields will be sent to the
7535	// server regardless of whether the field is empty or not. This may be
7536	// used to include empty fields in Patch requests.
7537	ForceSendFields []string `json:"-"`
7538
7539	// NullFields is a list of field names (e.g. "Fields") to include in API
7540	// requests with the JSON null value. By default, fields with empty
7541	// values are omitted from API requests. However, any field with an
7542	// empty value appearing in NullFields will be sent to the server as
7543	// null. It is an error if a field in this list has a non-empty value.
7544	// This may be used to include null fields in Patch requests.
7545	NullFields []string `json:"-"`
7546}
7547
7548func (s *UpdateTableCellStyleRequest) MarshalJSON() ([]byte, error) {
7549	type NoMethod UpdateTableCellStyleRequest
7550	raw := NoMethod(*s)
7551	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7552}
7553
7554// UpdateTableColumnPropertiesRequest: Updates the
7555// TableColumnProperties of columns
7556// in a table.
7557type UpdateTableColumnPropertiesRequest struct {
7558	// ColumnIndices: The list of zero-based column indices whose property
7559	// should be updated. If
7560	// no indices are specified, all columns will be updated.
7561	ColumnIndices []int64 `json:"columnIndices,omitempty"`
7562
7563	// Fields: The fields that should be updated.
7564	//
7565	// At least one field must be specified. The root
7566	// `tableColumnProperties` is
7567	// implied and should not be specified. A single "*" can be used
7568	// as
7569	// short-hand for listing every field.
7570	//
7571	// For example to update the column width, set `fields` to "width".
7572	Fields string `json:"fields,omitempty"`
7573
7574	// TableColumnProperties: The table column properties to update.
7575	//
7576	// If the value of `table_column_properties#width` is less than 5
7577	// points
7578	// (5/72 inch), a 400 bad request error is returned.
7579	TableColumnProperties *TableColumnProperties `json:"tableColumnProperties,omitempty"`
7580
7581	// TableStartLocation: The location where the table starts in the
7582	// document.
7583	TableStartLocation *Location `json:"tableStartLocation,omitempty"`
7584
7585	// ForceSendFields is a list of field names (e.g. "ColumnIndices") to
7586	// unconditionally include in API requests. By default, fields with
7587	// empty values are omitted from API requests. However, any non-pointer,
7588	// non-interface field appearing in ForceSendFields will be sent to the
7589	// server regardless of whether the field is empty or not. This may be
7590	// used to include empty fields in Patch requests.
7591	ForceSendFields []string `json:"-"`
7592
7593	// NullFields is a list of field names (e.g. "ColumnIndices") to include
7594	// in API requests with the JSON null value. By default, fields with
7595	// empty values are omitted from API requests. However, any field with
7596	// an empty value appearing in NullFields will be sent to the server as
7597	// null. It is an error if a field in this list has a non-empty value.
7598	// This may be used to include null fields in Patch requests.
7599	NullFields []string `json:"-"`
7600}
7601
7602func (s *UpdateTableColumnPropertiesRequest) MarshalJSON() ([]byte, error) {
7603	type NoMethod UpdateTableColumnPropertiesRequest
7604	raw := NoMethod(*s)
7605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7606}
7607
7608// UpdateTableRowStyleRequest: Updates the TableRowStyle of rows in
7609// a
7610// table.
7611type UpdateTableRowStyleRequest struct {
7612	// Fields: The fields that should be updated.
7613	//
7614	// At least one field must be specified. The root `tableRowStyle` is
7615	// implied
7616	// and should not be specified. A single "*" can be used as short-hand
7617	// for
7618	// listing every field.
7619	//
7620	// For example to update the minimum row height, set `fields`
7621	// to
7622	// "min_row_height".
7623	Fields string `json:"fields,omitempty"`
7624
7625	// RowIndices: The list of zero-based row indices whose style should be
7626	// updated. If no
7627	// indices are specified, all rows will be updated.
7628	RowIndices []int64 `json:"rowIndices,omitempty"`
7629
7630	// TableRowStyle: The styles to be set on the rows.
7631	TableRowStyle *TableRowStyle `json:"tableRowStyle,omitempty"`
7632
7633	// TableStartLocation: The location where the table starts in the
7634	// document.
7635	TableStartLocation *Location `json:"tableStartLocation,omitempty"`
7636
7637	// ForceSendFields is a list of field names (e.g. "Fields") to
7638	// unconditionally include in API requests. By default, fields with
7639	// empty values are omitted from API requests. However, any non-pointer,
7640	// non-interface field appearing in ForceSendFields will be sent to the
7641	// server regardless of whether the field is empty or not. This may be
7642	// used to include empty fields in Patch requests.
7643	ForceSendFields []string `json:"-"`
7644
7645	// NullFields is a list of field names (e.g. "Fields") to include in API
7646	// requests with the JSON null value. By default, fields with empty
7647	// values are omitted from API requests. However, any field with an
7648	// empty value appearing in NullFields will be sent to the server as
7649	// null. It is an error if a field in this list has a non-empty value.
7650	// This may be used to include null fields in Patch requests.
7651	NullFields []string `json:"-"`
7652}
7653
7654func (s *UpdateTableRowStyleRequest) MarshalJSON() ([]byte, error) {
7655	type NoMethod UpdateTableRowStyleRequest
7656	raw := NoMethod(*s)
7657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7658}
7659
7660// UpdateTextStyleRequest: Update the styling of text.
7661type UpdateTextStyleRequest struct {
7662	// Fields: The fields that should be updated.
7663	//
7664	// At least one field must be specified. The root `text_style` is
7665	// implied and
7666	// should not be specified. A single "*" can be used as short-hand
7667	// for
7668	// listing every field.
7669	//
7670	// For example, to update the text style to bold, set `fields` to
7671	// "bold".
7672	//
7673	// To reset a property to its default value, include its field name in
7674	// the
7675	// field mask but leave the field itself unset.
7676	Fields string `json:"fields,omitempty"`
7677
7678	// Range: The range of text to style.
7679	//
7680	// The range may be extended to include adjacent newlines.
7681	//
7682	// If the range fully contains a paragraph belonging to a list,
7683	// the
7684	// paragraph's bullet is also updated with the matching text
7685	// style.
7686	//
7687	// Ranges cannot be inserted inside a relative UpdateTextStyleRequest.
7688	Range *Range `json:"range,omitempty"`
7689
7690	// TextStyle: The styles to set on the text.
7691	//
7692	// If the value for a particular style matches that of the parent, that
7693	// style
7694	// will be set to inherit.
7695	//
7696	// Certain text style changes may cause other changes in order to to
7697	// mirror
7698	// the behavior of the Docs editor. See the documentation of
7699	// TextStyle for more information.
7700	TextStyle *TextStyle `json:"textStyle,omitempty"`
7701
7702	// ForceSendFields is a list of field names (e.g. "Fields") to
7703	// unconditionally include in API requests. By default, fields with
7704	// empty values are omitted from API requests. However, any non-pointer,
7705	// non-interface field appearing in ForceSendFields will be sent to the
7706	// server regardless of whether the field is empty or not. This may be
7707	// used to include empty fields in Patch requests.
7708	ForceSendFields []string `json:"-"`
7709
7710	// NullFields is a list of field names (e.g. "Fields") to include in API
7711	// requests with the JSON null value. By default, fields with empty
7712	// values are omitted from API requests. However, any field with an
7713	// empty value appearing in NullFields will be sent to the server as
7714	// null. It is an error if a field in this list has a non-empty value.
7715	// This may be used to include null fields in Patch requests.
7716	NullFields []string `json:"-"`
7717}
7718
7719func (s *UpdateTextStyleRequest) MarshalJSON() ([]byte, error) {
7720	type NoMethod UpdateTextStyleRequest
7721	raw := NoMethod(*s)
7722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7723}
7724
7725// WeightedFontFamily: Represents a font family and weight of text.
7726type WeightedFontFamily struct {
7727	// FontFamily: The font family of the text.
7728	//
7729	// The font family can be any font from the Font menu in Docs or
7730	// from
7731	// [Google Fonts] (https://fonts.google.com/). If the font name
7732	// is
7733	// unrecognized, the text is rendered in `Arial`.
7734	FontFamily string `json:"fontFamily,omitempty"`
7735
7736	// Weight: The weight of the font. This field can have any value that is
7737	// a multiple of
7738	// `100` between `100` and `900`, inclusive. This range corresponds to
7739	// the
7740	// numerical values described in the CSS 2.1 Specification,
7741	// [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
7742	// with
7743	// non-numerical values disallowed.
7744	//
7745	// The default value is `400` ("normal").
7746	//
7747	// The font weight makes up just one component of the rendered font
7748	// weight.
7749	// The rendered weight is determined by a combination of the `weight`
7750	// and the
7751	// text style's resolved `bold` value, after accounting for
7752	// inheritance:
7753	//
7754	// * If the text is bold and the weight is less than `400`, the
7755	// rendered
7756	//   weight is 400.
7757	// * If the text is bold and the weight is greater than or equal to
7758	// `400` but
7759	//   is less than `700`, the rendered weight is `700`.
7760	// * If the weight is greater than or equal to `700`, the rendered
7761	// weight is
7762	//   equal to the weight.
7763	// * If the text is not bold, the rendered weight is equal to the
7764	// weight.
7765	Weight int64 `json:"weight,omitempty"`
7766
7767	// ForceSendFields is a list of field names (e.g. "FontFamily") to
7768	// unconditionally include in API requests. By default, fields with
7769	// empty values are omitted from API requests. However, any non-pointer,
7770	// non-interface field appearing in ForceSendFields will be sent to the
7771	// server regardless of whether the field is empty or not. This may be
7772	// used to include empty fields in Patch requests.
7773	ForceSendFields []string `json:"-"`
7774
7775	// NullFields is a list of field names (e.g. "FontFamily") to include in
7776	// API requests with the JSON null value. By default, fields with empty
7777	// values are omitted from API requests. However, any field with an
7778	// empty value appearing in NullFields will be sent to the server as
7779	// null. It is an error if a field in this list has a non-empty value.
7780	// This may be used to include null fields in Patch requests.
7781	NullFields []string `json:"-"`
7782}
7783
7784func (s *WeightedFontFamily) MarshalJSON() ([]byte, error) {
7785	type NoMethod WeightedFontFamily
7786	raw := NoMethod(*s)
7787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7788}
7789
7790// WriteControl: Provides control over how write requests are executed.
7791type WriteControl struct {
7792	// RequiredRevisionId: The revision ID of the
7793	// document that the write request will be applied to. If this is not
7794	// the
7795	// latest revision of the document, the request will not be processed
7796	// and
7797	// will return a 400 bad request error.
7798	//
7799	// When a required revision ID is returned in a response, it indicates
7800	// the
7801	// revision ID of the document after the request was applied.
7802	RequiredRevisionId string `json:"requiredRevisionId,omitempty"`
7803
7804	// TargetRevisionId: The target revision ID of the
7805	// document that the write request will be applied to.
7806	//
7807	// If collaborator changes have occurred after the document was read
7808	// using
7809	// the API, the changes produced by this write request will be
7810	// transformed
7811	// against the collaborator changes. This results in a new revision of
7812	// the
7813	// document which incorporates both the changes in the request and
7814	// the
7815	// collaborator changes, and the Docs server will resolve
7816	// conflicting
7817	// changes. When using `target_revision_id`, the API client can be
7818	// thought
7819	// of as another collaborator of the document.
7820	//
7821	// The target revision ID may only be used to write to recent versions
7822	// of a
7823	// document. If the target revision is too far behind the latest
7824	// revision,
7825	// the request will not be processed and will return a 400 bad request
7826	// error
7827	// and the request should be retried after reading the latest version of
7828	// the
7829	// document. In most cases a `revision_id` will remain valid for use as
7830	// a
7831	// target revision for several minutes after it is read, but
7832	// for
7833	// frequently-edited documents this window may be shorter.
7834	TargetRevisionId string `json:"targetRevisionId,omitempty"`
7835
7836	// ForceSendFields is a list of field names (e.g. "RequiredRevisionId")
7837	// to unconditionally include in API requests. By default, fields with
7838	// empty values are omitted from API requests. However, any non-pointer,
7839	// non-interface field appearing in ForceSendFields will be sent to the
7840	// server regardless of whether the field is empty or not. This may be
7841	// used to include empty fields in Patch requests.
7842	ForceSendFields []string `json:"-"`
7843
7844	// NullFields is a list of field names (e.g. "RequiredRevisionId") to
7845	// include in API requests with the JSON null value. By default, fields
7846	// with empty values are omitted from API requests. However, any field
7847	// with an empty value appearing in NullFields will be sent to the
7848	// server as null. It is an error if a field in this list has a
7849	// non-empty value. This may be used to include null fields in Patch
7850	// requests.
7851	NullFields []string `json:"-"`
7852}
7853
7854func (s *WriteControl) MarshalJSON() ([]byte, error) {
7855	type NoMethod WriteControl
7856	raw := NoMethod(*s)
7857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7858}
7859
7860// method id "docs.documents.batchUpdate":
7861
7862type DocumentsBatchUpdateCall struct {
7863	s                          *Service
7864	documentId                 string
7865	batchupdatedocumentrequest *BatchUpdateDocumentRequest
7866	urlParams_                 gensupport.URLParams
7867	ctx_                       context.Context
7868	header_                    http.Header
7869}
7870
7871// BatchUpdate: Applies one or more updates to the document.
7872//
7873// Each request is validated before
7874// being applied. If any request is not valid, then the entire request
7875// will
7876// fail and nothing will be applied.
7877//
7878// Some requests have replies to
7879// give you some information about how they are applied. Other requests
7880// do
7881// not need to return information; these each return an empty reply.
7882// The order of replies matches that of the requests.
7883//
7884// For example, suppose you call batchUpdate with four updates, and only
7885// the
7886// third one returns information. The response would have two empty
7887// replies,
7888// the reply to the third request, and another empty reply, in that
7889// order.
7890//
7891// Because other users may be editing the document, the document
7892// might not exactly reflect your changes: your changes may
7893// be altered with respect to collaborator changes. If there are
7894// no
7895// collaborators, the document should reflect your changes. In any
7896// case,
7897// the updates in your request are guaranteed to be applied
7898// together
7899// atomically.
7900func (r *DocumentsService) BatchUpdate(documentId string, batchupdatedocumentrequest *BatchUpdateDocumentRequest) *DocumentsBatchUpdateCall {
7901	c := &DocumentsBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7902	c.documentId = documentId
7903	c.batchupdatedocumentrequest = batchupdatedocumentrequest
7904	return c
7905}
7906
7907// Fields allows partial responses to be retrieved. See
7908// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7909// for more information.
7910func (c *DocumentsBatchUpdateCall) Fields(s ...googleapi.Field) *DocumentsBatchUpdateCall {
7911	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7912	return c
7913}
7914
7915// Context sets the context to be used in this call's Do method. Any
7916// pending HTTP request will be aborted if the provided context is
7917// canceled.
7918func (c *DocumentsBatchUpdateCall) Context(ctx context.Context) *DocumentsBatchUpdateCall {
7919	c.ctx_ = ctx
7920	return c
7921}
7922
7923// Header returns an http.Header that can be modified by the caller to
7924// add HTTP headers to the request.
7925func (c *DocumentsBatchUpdateCall) Header() http.Header {
7926	if c.header_ == nil {
7927		c.header_ = make(http.Header)
7928	}
7929	return c.header_
7930}
7931
7932func (c *DocumentsBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
7933	reqHeaders := make(http.Header)
7934	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
7935	for k, v := range c.header_ {
7936		reqHeaders[k] = v
7937	}
7938	reqHeaders.Set("User-Agent", c.s.userAgent())
7939	var body io.Reader = nil
7940	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchupdatedocumentrequest)
7941	if err != nil {
7942		return nil, err
7943	}
7944	reqHeaders.Set("Content-Type", "application/json")
7945	c.urlParams_.Set("alt", alt)
7946	c.urlParams_.Set("prettyPrint", "false")
7947	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/documents/{documentId}:batchUpdate")
7948	urls += "?" + c.urlParams_.Encode()
7949	req, err := http.NewRequest("POST", urls, body)
7950	if err != nil {
7951		return nil, err
7952	}
7953	req.Header = reqHeaders
7954	googleapi.Expand(req.URL, map[string]string{
7955		"documentId": c.documentId,
7956	})
7957	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7958}
7959
7960// Do executes the "docs.documents.batchUpdate" call.
7961// Exactly one of *BatchUpdateDocumentResponse or error will be non-nil.
7962// Any non-2xx status code is an error. Response headers are in either
7963// *BatchUpdateDocumentResponse.ServerResponse.Header or (if a response
7964// was returned at all) in error.(*googleapi.Error).Header. Use
7965// googleapi.IsNotModified to check whether the returned error was
7966// because http.StatusNotModified was returned.
7967func (c *DocumentsBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdateDocumentResponse, error) {
7968	gensupport.SetOptions(c.urlParams_, opts...)
7969	res, err := c.doRequest("json")
7970	if res != nil && res.StatusCode == http.StatusNotModified {
7971		if res.Body != nil {
7972			res.Body.Close()
7973		}
7974		return nil, &googleapi.Error{
7975			Code:   res.StatusCode,
7976			Header: res.Header,
7977		}
7978	}
7979	if err != nil {
7980		return nil, err
7981	}
7982	defer googleapi.CloseBody(res)
7983	if err := googleapi.CheckResponse(res); err != nil {
7984		return nil, err
7985	}
7986	ret := &BatchUpdateDocumentResponse{
7987		ServerResponse: googleapi.ServerResponse{
7988			Header:         res.Header,
7989			HTTPStatusCode: res.StatusCode,
7990		},
7991	}
7992	target := &ret
7993	if err := gensupport.DecodeResponse(target, res); err != nil {
7994		return nil, err
7995	}
7996	return ret, nil
7997	// {
7998	//   "description": "Applies one or more updates to the document.\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 they are applied. Other requests do\nnot need to return information; these each return an empty reply.\nThe order of replies matches that of the requests.\n\nFor example, suppose you call batchUpdate with four updates, and only the\nthird one returns information. The response would have two empty replies,\nthe reply to the third request, and another empty reply, in that order.\n\nBecause other users may be editing the document, the document\nmight not exactly reflect your changes: your changes may\nbe altered with respect to collaborator changes. If there are no\ncollaborators, the document should reflect your changes. In any case,\nthe updates in your request are guaranteed to be applied together\natomically.",
7999	//   "flatPath": "v1/documents/{documentId}:batchUpdate",
8000	//   "httpMethod": "POST",
8001	//   "id": "docs.documents.batchUpdate",
8002	//   "parameterOrder": [
8003	//     "documentId"
8004	//   ],
8005	//   "parameters": {
8006	//     "documentId": {
8007	//       "description": "The ID of the document to update.",
8008	//       "location": "path",
8009	//       "required": true,
8010	//       "type": "string"
8011	//     }
8012	//   },
8013	//   "path": "v1/documents/{documentId}:batchUpdate",
8014	//   "request": {
8015	//     "$ref": "BatchUpdateDocumentRequest"
8016	//   },
8017	//   "response": {
8018	//     "$ref": "BatchUpdateDocumentResponse"
8019	//   },
8020	//   "scopes": [
8021	//     "https://www.googleapis.com/auth/documents",
8022	//     "https://www.googleapis.com/auth/drive",
8023	//     "https://www.googleapis.com/auth/drive.file"
8024	//   ]
8025	// }
8026
8027}
8028
8029// method id "docs.documents.create":
8030
8031type DocumentsCreateCall struct {
8032	s          *Service
8033	document   *Document
8034	urlParams_ gensupport.URLParams
8035	ctx_       context.Context
8036	header_    http.Header
8037}
8038
8039// Create: Creates a blank document using the title given in the
8040// request. Other fields
8041// in the request, including any provided content, are ignored.
8042//
8043// Returns the created document.
8044func (r *DocumentsService) Create(document *Document) *DocumentsCreateCall {
8045	c := &DocumentsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8046	c.document = document
8047	return c
8048}
8049
8050// Fields allows partial responses to be retrieved. See
8051// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8052// for more information.
8053func (c *DocumentsCreateCall) Fields(s ...googleapi.Field) *DocumentsCreateCall {
8054	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8055	return c
8056}
8057
8058// Context sets the context to be used in this call's Do method. Any
8059// pending HTTP request will be aborted if the provided context is
8060// canceled.
8061func (c *DocumentsCreateCall) Context(ctx context.Context) *DocumentsCreateCall {
8062	c.ctx_ = ctx
8063	return c
8064}
8065
8066// Header returns an http.Header that can be modified by the caller to
8067// add HTTP headers to the request.
8068func (c *DocumentsCreateCall) Header() http.Header {
8069	if c.header_ == nil {
8070		c.header_ = make(http.Header)
8071	}
8072	return c.header_
8073}
8074
8075func (c *DocumentsCreateCall) doRequest(alt string) (*http.Response, error) {
8076	reqHeaders := make(http.Header)
8077	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
8078	for k, v := range c.header_ {
8079		reqHeaders[k] = v
8080	}
8081	reqHeaders.Set("User-Agent", c.s.userAgent())
8082	var body io.Reader = nil
8083	body, err := googleapi.WithoutDataWrapper.JSONReader(c.document)
8084	if err != nil {
8085		return nil, err
8086	}
8087	reqHeaders.Set("Content-Type", "application/json")
8088	c.urlParams_.Set("alt", alt)
8089	c.urlParams_.Set("prettyPrint", "false")
8090	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/documents")
8091	urls += "?" + c.urlParams_.Encode()
8092	req, err := http.NewRequest("POST", urls, body)
8093	if err != nil {
8094		return nil, err
8095	}
8096	req.Header = reqHeaders
8097	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8098}
8099
8100// Do executes the "docs.documents.create" call.
8101// Exactly one of *Document or error will be non-nil. Any non-2xx status
8102// code is an error. Response headers are in either
8103// *Document.ServerResponse.Header or (if a response was returned at
8104// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8105// to check whether the returned error was because
8106// http.StatusNotModified was returned.
8107func (c *DocumentsCreateCall) Do(opts ...googleapi.CallOption) (*Document, error) {
8108	gensupport.SetOptions(c.urlParams_, opts...)
8109	res, err := c.doRequest("json")
8110	if res != nil && res.StatusCode == http.StatusNotModified {
8111		if res.Body != nil {
8112			res.Body.Close()
8113		}
8114		return nil, &googleapi.Error{
8115			Code:   res.StatusCode,
8116			Header: res.Header,
8117		}
8118	}
8119	if err != nil {
8120		return nil, err
8121	}
8122	defer googleapi.CloseBody(res)
8123	if err := googleapi.CheckResponse(res); err != nil {
8124		return nil, err
8125	}
8126	ret := &Document{
8127		ServerResponse: googleapi.ServerResponse{
8128			Header:         res.Header,
8129			HTTPStatusCode: res.StatusCode,
8130		},
8131	}
8132	target := &ret
8133	if err := gensupport.DecodeResponse(target, res); err != nil {
8134		return nil, err
8135	}
8136	return ret, nil
8137	// {
8138	//   "description": "Creates a blank document using the title given in the request. Other fields\nin the request, including any provided content, are ignored.\n\nReturns the created document.",
8139	//   "flatPath": "v1/documents",
8140	//   "httpMethod": "POST",
8141	//   "id": "docs.documents.create",
8142	//   "parameterOrder": [],
8143	//   "parameters": {},
8144	//   "path": "v1/documents",
8145	//   "request": {
8146	//     "$ref": "Document"
8147	//   },
8148	//   "response": {
8149	//     "$ref": "Document"
8150	//   },
8151	//   "scopes": [
8152	//     "https://www.googleapis.com/auth/documents",
8153	//     "https://www.googleapis.com/auth/drive",
8154	//     "https://www.googleapis.com/auth/drive.file"
8155	//   ]
8156	// }
8157
8158}
8159
8160// method id "docs.documents.get":
8161
8162type DocumentsGetCall struct {
8163	s            *Service
8164	documentId   string
8165	urlParams_   gensupport.URLParams
8166	ifNoneMatch_ string
8167	ctx_         context.Context
8168	header_      http.Header
8169}
8170
8171// Get: Gets the latest version of the specified document.
8172func (r *DocumentsService) Get(documentId string) *DocumentsGetCall {
8173	c := &DocumentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8174	c.documentId = documentId
8175	return c
8176}
8177
8178// SuggestionsViewMode sets the optional parameter
8179// "suggestionsViewMode": The suggestions view mode to apply to the
8180// document. This allows viewing the
8181// document with all suggestions inline, accepted or rejected. If one is
8182// not
8183// specified, DEFAULT_FOR_CURRENT_ACCESS is
8184// used.
8185//
8186// Possible values:
8187//   "DEFAULT_FOR_CURRENT_ACCESS"
8188//   "SUGGESTIONS_INLINE"
8189//   "PREVIEW_SUGGESTIONS_ACCEPTED"
8190//   "PREVIEW_WITHOUT_SUGGESTIONS"
8191func (c *DocumentsGetCall) SuggestionsViewMode(suggestionsViewMode string) *DocumentsGetCall {
8192	c.urlParams_.Set("suggestionsViewMode", suggestionsViewMode)
8193	return c
8194}
8195
8196// Fields allows partial responses to be retrieved. See
8197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8198// for more information.
8199func (c *DocumentsGetCall) Fields(s ...googleapi.Field) *DocumentsGetCall {
8200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8201	return c
8202}
8203
8204// IfNoneMatch sets the optional parameter which makes the operation
8205// fail if the object's ETag matches the given value. This is useful for
8206// getting updates only after the object has changed since the last
8207// request. Use googleapi.IsNotModified to check whether the response
8208// error from Do is the result of In-None-Match.
8209func (c *DocumentsGetCall) IfNoneMatch(entityTag string) *DocumentsGetCall {
8210	c.ifNoneMatch_ = entityTag
8211	return c
8212}
8213
8214// Context sets the context to be used in this call's Do method. Any
8215// pending HTTP request will be aborted if the provided context is
8216// canceled.
8217func (c *DocumentsGetCall) Context(ctx context.Context) *DocumentsGetCall {
8218	c.ctx_ = ctx
8219	return c
8220}
8221
8222// Header returns an http.Header that can be modified by the caller to
8223// add HTTP headers to the request.
8224func (c *DocumentsGetCall) Header() http.Header {
8225	if c.header_ == nil {
8226		c.header_ = make(http.Header)
8227	}
8228	return c.header_
8229}
8230
8231func (c *DocumentsGetCall) doRequest(alt string) (*http.Response, error) {
8232	reqHeaders := make(http.Header)
8233	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
8234	for k, v := range c.header_ {
8235		reqHeaders[k] = v
8236	}
8237	reqHeaders.Set("User-Agent", c.s.userAgent())
8238	if c.ifNoneMatch_ != "" {
8239		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8240	}
8241	var body io.Reader = nil
8242	c.urlParams_.Set("alt", alt)
8243	c.urlParams_.Set("prettyPrint", "false")
8244	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/documents/{documentId}")
8245	urls += "?" + c.urlParams_.Encode()
8246	req, err := http.NewRequest("GET", urls, body)
8247	if err != nil {
8248		return nil, err
8249	}
8250	req.Header = reqHeaders
8251	googleapi.Expand(req.URL, map[string]string{
8252		"documentId": c.documentId,
8253	})
8254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8255}
8256
8257// Do executes the "docs.documents.get" call.
8258// Exactly one of *Document or error will be non-nil. Any non-2xx status
8259// code is an error. Response headers are in either
8260// *Document.ServerResponse.Header or (if a response was returned at
8261// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8262// to check whether the returned error was because
8263// http.StatusNotModified was returned.
8264func (c *DocumentsGetCall) Do(opts ...googleapi.CallOption) (*Document, error) {
8265	gensupport.SetOptions(c.urlParams_, opts...)
8266	res, err := c.doRequest("json")
8267	if res != nil && res.StatusCode == http.StatusNotModified {
8268		if res.Body != nil {
8269			res.Body.Close()
8270		}
8271		return nil, &googleapi.Error{
8272			Code:   res.StatusCode,
8273			Header: res.Header,
8274		}
8275	}
8276	if err != nil {
8277		return nil, err
8278	}
8279	defer googleapi.CloseBody(res)
8280	if err := googleapi.CheckResponse(res); err != nil {
8281		return nil, err
8282	}
8283	ret := &Document{
8284		ServerResponse: googleapi.ServerResponse{
8285			Header:         res.Header,
8286			HTTPStatusCode: res.StatusCode,
8287		},
8288	}
8289	target := &ret
8290	if err := gensupport.DecodeResponse(target, res); err != nil {
8291		return nil, err
8292	}
8293	return ret, nil
8294	// {
8295	//   "description": "Gets the latest version of the specified document.",
8296	//   "flatPath": "v1/documents/{documentId}",
8297	//   "httpMethod": "GET",
8298	//   "id": "docs.documents.get",
8299	//   "parameterOrder": [
8300	//     "documentId"
8301	//   ],
8302	//   "parameters": {
8303	//     "documentId": {
8304	//       "description": "The ID of the document to retrieve.",
8305	//       "location": "path",
8306	//       "required": true,
8307	//       "type": "string"
8308	//     },
8309	//     "suggestionsViewMode": {
8310	//       "description": "The suggestions view mode to apply to the document. This allows viewing the\ndocument with all suggestions inline, accepted or rejected. If one is not\nspecified, DEFAULT_FOR_CURRENT_ACCESS is\nused.",
8311	//       "enum": [
8312	//         "DEFAULT_FOR_CURRENT_ACCESS",
8313	//         "SUGGESTIONS_INLINE",
8314	//         "PREVIEW_SUGGESTIONS_ACCEPTED",
8315	//         "PREVIEW_WITHOUT_SUGGESTIONS"
8316	//       ],
8317	//       "location": "query",
8318	//       "type": "string"
8319	//     }
8320	//   },
8321	//   "path": "v1/documents/{documentId}",
8322	//   "response": {
8323	//     "$ref": "Document"
8324	//   },
8325	//   "scopes": [
8326	//     "https://www.googleapis.com/auth/documents",
8327	//     "https://www.googleapis.com/auth/documents.readonly",
8328	//     "https://www.googleapis.com/auth/drive",
8329	//     "https://www.googleapis.com/auth/drive.file",
8330	//     "https://www.googleapis.com/auth/drive.readonly"
8331	//   ]
8332	// }
8333
8334}
8335