arcade-google-docs 3.1.1__py3-none-any.whl → 4.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,953 @@
1
+ """
2
+ Implements all resources used by the 'Document' resource.
3
+ The resources are defined at https://developers.google.com/workspace/docs/api/reference/rest/v1/documents
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from enum import Enum
9
+
10
+ from pydantic import BaseModel
11
+
12
+
13
+ class Document(BaseModel):
14
+ documentId: str | None = None
15
+ title: str | None = None
16
+ tabs: list[Tab] | None = None
17
+ revisionId: str | None = None
18
+ suggestionsViewMode: SuggestionsViewMode | None = None
19
+ body: Body | None = None
20
+ headers: dict[str, Header] | None = None
21
+ footers: dict[str, Footer] | None = None
22
+ footnotes: dict[str, Footnote] | None = None
23
+ documentStyle: DocumentStyle | None = None
24
+ suggestedDocumentStyleChanges: dict[str, SuggestedDocumentStyle] | None = None
25
+ namedStyles: NamedStyles | None = None
26
+ suggestedNamedStylesChanges: dict[str, SuggestedNamedStyles] | None = None
27
+ lists: dict[str, List] | None = None
28
+ namedRanges: dict[str, NamedRanges] | None = None
29
+ inlineObjects: dict[str, InlineObject] | None = None
30
+ positionedObjects: dict[str, PositionedObject] | None = None
31
+
32
+
33
+ class Tab(BaseModel):
34
+ tabProperties: TabProperties | None = None
35
+ childTabs: list[Tab] | None = None
36
+ documentTab: DocumentTab | None = None
37
+
38
+
39
+ class TabProperties(BaseModel):
40
+ tabId: str | None = None
41
+ title: str | None = None
42
+ parentTabId: str | None = None
43
+ index: int | None = None
44
+ nestingLevel: int | None = None
45
+
46
+
47
+ class DocumentTab(BaseModel):
48
+ body: Body | None = None
49
+ headers: dict[str, Header] | None = None
50
+ footers: dict[str, Footer] | None = None
51
+ footnotes: dict[str, Footnote] | None = None
52
+ documentStyle: DocumentStyle | None = None
53
+ suggestedDocumentStyleChanges: dict[str, SuggestedDocumentStyle] | None = None
54
+ namedStyles: NamedStyles | None = None
55
+ suggestedNamedStylesChanges: dict[str, SuggestedNamedStyles] | None = None
56
+ lists: dict[str, List] | None = None
57
+ namedRanges: dict[str, NamedRanges] | None = None
58
+ inlineObjects: dict[str, InlineObject] | None = None
59
+ positionedObjects: dict[str, PositionedObject] | None = None
60
+
61
+
62
+ class Body(BaseModel):
63
+ content: list[StructuralElement] | None = None
64
+
65
+
66
+ class StructuralElement(BaseModel):
67
+ startIndex: int | None = None
68
+ endIndex: int | None = None
69
+ paragraph: Paragraph | None = None
70
+ sectionBreak: SectionBreak | None = None
71
+ table: Table | None = None
72
+ tableOfContents: TableOfContents | None = None
73
+
74
+
75
+ class Paragraph(BaseModel):
76
+ elements: list[ParagraphElement] | None = None
77
+ paragraphStyle: ParagraphStyle | None = None
78
+ suggestedParagraphStyleChanges: dict[str, SuggestedParagraphStyle] | None = None
79
+ bullet: Bullet | None = None
80
+ suggestedBulletChanges: dict[str, SuggestedBullet] | None = None
81
+ positionedObjectIds: list[str] | None = None
82
+ suggestedPositionedObjectIds: dict[str, ObjectReferences] | None = None
83
+
84
+
85
+ class ParagraphElement(BaseModel):
86
+ startIndex: int | None = None
87
+ endIndex: int | None = None
88
+ textRun: TextRun | None = None
89
+ autoText: AutoText | None = None
90
+ pageBreak: PageBreak | None = None
91
+ columnBreak: ColumnBreak | None = None
92
+ footnoteReference: FootnoteReference | None = None
93
+ horizontalRule: HorizontalRule | None = None
94
+ equation: Equation | None = None
95
+ inlineObjectElement: InlineObjectElement | None = None
96
+ person: Person | None = None
97
+ richLink: RichLink | None = None
98
+
99
+
100
+ class TextRun(BaseModel):
101
+ content: str | None = None
102
+ suggestedInsertionIds: list[str] | None = None
103
+ suggestedDeletionIds: list[str] | None = None
104
+ textStyle: TextStyle | None = None
105
+ suggestedTextStyleChanges: dict[str, SuggestedTextStyle] | None = None
106
+
107
+
108
+ class TextStyle(BaseModel):
109
+ bold: bool | None = None
110
+ italic: bool | None = None
111
+ underline: bool | None = None
112
+ strikethrough: bool | None = None
113
+ smallCaps: bool | None = None
114
+ backgroundColor: OptionalColor | None = None
115
+ foregroundColor: OptionalColor | None = None
116
+ fontSize: Dimension | None = None
117
+ weightedFontFamily: WeightedFontFamily | None = None
118
+ baselineOffset: BaselineOffset | None = None
119
+ link: Link | None = None
120
+
121
+
122
+ class OptionalColor(BaseModel):
123
+ color: Color | None = None
124
+
125
+
126
+ class Color(BaseModel):
127
+ rgbColor: RgbColor | None = None
128
+
129
+
130
+ class RgbColor(BaseModel):
131
+ red: float | None = None
132
+ green: float | None = None
133
+ blue: float | None = None
134
+
135
+
136
+ class Dimension(BaseModel):
137
+ magnitude: float | None = None
138
+ unit: Unit | None = None
139
+
140
+
141
+ class Unit(str, Enum):
142
+ UNIT_UNSPECIFIED = "UNIT_UNSPECIFIED"
143
+ PT = "PT"
144
+
145
+
146
+ class WeightedFontFamily(BaseModel):
147
+ fontFamily: str | None = None
148
+ weight: int | None = None
149
+
150
+
151
+ class BaselineOffset(str, Enum):
152
+ BASELINE_OFFSET_UNSPECIFIED = "BASELINE_OFFSET_UNSPECIFIED"
153
+ NONE = "NONE"
154
+ SUPERSCRIPT = "SUPERSCRIPT"
155
+ SUBSCRIPT = "SUBSCRIPT"
156
+
157
+
158
+ class Link(BaseModel):
159
+ url: str | None = None
160
+ tabId: str | None = None
161
+ bookmark: BookmarkLink | None = None
162
+ heading: HeadingLink | None = None
163
+ bookmarkId: str | None = None
164
+ headingId: str | None = None
165
+
166
+
167
+ class BookmarkLink(BaseModel):
168
+ id: str | None = None
169
+ tabId: str | None = None
170
+
171
+
172
+ class HeadingLink(BaseModel):
173
+ id: str | None = None
174
+ tabId: str | None = None
175
+
176
+
177
+ class SuggestedTextStyle(BaseModel):
178
+ textStyle: TextStyle | None = None
179
+ textStyleSuggestionState: TextStyleSuggestionState | None = None
180
+
181
+
182
+ class TextStyleSuggestionState(BaseModel):
183
+ boldSuggested: bool | None = None
184
+ italicSuggested: bool | None = None
185
+ underlineSuggested: bool | None = None
186
+ strikethroughSuggested: bool | None = None
187
+ smallCapsSuggested: bool | None = None
188
+ backgroundColorSuggested: bool | None = None
189
+ foregroundColorSuggested: bool | None = None
190
+ fontSizeSuggested: bool | None = None
191
+ weightedFontFamilySuggested: bool | None = None
192
+ baselineOffsetSuggested: bool | None = None
193
+ linkSuggested: bool | None = None
194
+
195
+
196
+ class AutoText(BaseModel):
197
+ type: Type | None = None
198
+ suggestedInsertionIds: list[str] | None = None
199
+ suggestedDeletionIds: list[str] | None = None
200
+ textStyle: TextStyle | None = None
201
+ suggestedTextStyleChanges: dict[str, SuggestedTextStyle] | None = None
202
+
203
+
204
+ class Type(str, Enum):
205
+ TYPE_UNSPECIFIED = "TYPE_UNSPECIFIED"
206
+ PAGE_NUMBER = "PAGE_NUMBER"
207
+ PAGE_COUNT = "PAGE_COUNT"
208
+
209
+
210
+ class PageBreak(BaseModel):
211
+ suggestedInsertionIds: list[str] | None = None
212
+ suggestedDeletionIds: list[str] | None = None
213
+ textStyle: TextStyle | None = None
214
+ suggestedTextStyleChanges: dict[str, SuggestedTextStyle] | None = None
215
+
216
+
217
+ class ColumnBreak(BaseModel):
218
+ suggestedInsertionIds: list[str] | None = None
219
+ suggestedDeletionIds: list[str] | None = None
220
+ textStyle: TextStyle | None = None
221
+ suggestedTextStyleChanges: dict[str, SuggestedTextStyle] | None = None
222
+
223
+
224
+ class FootnoteReference(BaseModel):
225
+ footnoteId: str | None = None
226
+ footnoteNumber: str | None = None
227
+ suggestedInsertionIds: list[str] | None = None
228
+ suggestedDeletionIds: list[str] | None = None
229
+ textStyle: TextStyle | None = None
230
+ suggestedTextStyleChanges: dict[str, SuggestedTextStyle] | None = None
231
+
232
+
233
+ class HorizontalRule(BaseModel):
234
+ suggestedInsertionIds: list[str] | None = None
235
+ suggestedDeletionIds: list[str] | None = None
236
+ textStyle: TextStyle | None = None
237
+ suggestedTextStyleChanges: dict[str, SuggestedTextStyle] | None = None
238
+
239
+
240
+ class Equation(BaseModel):
241
+ suggestedInsertionIds: list[str] | None = None
242
+ suggestedDeletionIds: list[str] | None = None
243
+
244
+
245
+ class InlineObjectElement(BaseModel):
246
+ inlineObjectId: str | None = None
247
+ suggestedInsertionIds: list[str] | None = None
248
+ suggestedDeletionIds: list[str] | None = None
249
+ textStyle: TextStyle | None = None
250
+ suggestedTextStyleChanges: dict[str, SuggestedTextStyle] | None = None
251
+
252
+
253
+ class Person(BaseModel):
254
+ personId: str | None = None
255
+ suggestedInsertionIds: list[str] | None = None
256
+ suggestedDeletionIds: list[str] | None = None
257
+ textStyle: TextStyle | None = None
258
+ suggestedTextStyleChanges: dict[str, SuggestedTextStyle] | None = None
259
+ personProperties: PersonProperties | None = None
260
+
261
+
262
+ class PersonProperties(BaseModel):
263
+ name: str | None = None
264
+ email: str | None = None
265
+
266
+
267
+ class RichLink(BaseModel):
268
+ richLinkId: str | None = None
269
+ suggestedInsertionIds: list[str] | None = None
270
+ suggestedDeletionIds: list[str] | None = None
271
+ textStyle: TextStyle | None = None
272
+ suggestedTextStyleChanges: dict[str, SuggestedTextStyle] | None = None
273
+ richLinkProperties: RichLinkProperties | None = None
274
+
275
+
276
+ class RichLinkProperties(BaseModel):
277
+ title: str | None = None
278
+ uri: str | None = None
279
+ mimeType: str | None = None
280
+
281
+
282
+ class ParagraphStyle(BaseModel):
283
+ headingId: str | None = None
284
+ namedStyleType: NamedStyleType | None = None
285
+ alignment: Alignment | None = None
286
+ lineSpacing: float | None = None
287
+ direction: ContentDirection | None = None
288
+ spacingMode: SpacingMode | None = None
289
+ spaceAbove: Dimension | None = None
290
+ spaceBelow: Dimension | None = None
291
+ borderBetween: ParagraphBorder | None = None
292
+ borderTop: ParagraphBorder | None = None
293
+ borderBottom: ParagraphBorder | None = None
294
+ borderLeft: ParagraphBorder | None = None
295
+ borderRight: ParagraphBorder | None = None
296
+ indentFirstLine: Dimension | None = None
297
+ indentStart: Dimension | None = None
298
+ indentEnd: Dimension | None = None
299
+ tabStops: list[TabStop] | None = None
300
+ keepLinesTogether: bool | None = None
301
+ keepWithNext: bool | None = None
302
+ avoidWidowAndOrphan: bool | None = None
303
+ shading: Shading | None = None
304
+ pageBreakBefore: bool | None = None
305
+
306
+
307
+ class NamedStyleType(str, Enum):
308
+ NAMED_STYLE_TYPE_UNSPECIFIED = "NAMED_STYLE_TYPE_UNSPECIFIED"
309
+ NORMAL_TEXT = "NORMAL_TEXT"
310
+ TITLE = "TITLE"
311
+ SUBTITLE = "SUBTITLE"
312
+ HEADING_1 = "HEADING_1"
313
+ HEADING_2 = "HEADING_2"
314
+ HEADING_3 = "HEADING_3"
315
+ HEADING_4 = "HEADING_4"
316
+ HEADING_5 = "HEADING_5"
317
+ HEADING_6 = "HEADING_6"
318
+
319
+
320
+ class Alignment(str, Enum):
321
+ ALIGNMENT_UNSPECIFIED = "ALIGNMENT_UNSPECIFIED"
322
+ START = "START"
323
+ CENTER = "CENTER"
324
+ END = "END"
325
+ JUSTIFIED = "JUSTIFIED"
326
+
327
+
328
+ class ContentDirection(str, Enum):
329
+ CONTENT_DIRECTION_UNSPECIFIED = "CONTENT_DIRECTION_UNSPECIFIED"
330
+ LEFT_TO_RIGHT = "LEFT_TO_RIGHT"
331
+ RIGHT_TO_LEFT = "RIGHT_TO_LEFT"
332
+
333
+
334
+ class SpacingMode(str, Enum):
335
+ SPACING_MODE_UNSPECIFIED = "SPACING_MODE_UNSPECIFIED"
336
+ NEVER_COLLAPSE = "NEVER_COLLAPSE"
337
+ COLLAPSE_LISTS = "COLLAPSE_LISTS"
338
+
339
+
340
+ class ParagraphBorder(BaseModel):
341
+ color: OptionalColor | None = None
342
+ width: Dimension | None = None
343
+ padding: Dimension | None = None
344
+ dashStyle: DashStyle | None = None
345
+
346
+
347
+ class DashStyle(str, Enum):
348
+ DASH_STYLE_UNSPECIFIED = "DASH_STYLE_UNSPECIFIED"
349
+ SOLID = "SOLID"
350
+ DOT = "DOT"
351
+ DASH = "DASH"
352
+
353
+
354
+ class TabStop(BaseModel):
355
+ offset: Dimension | None = None
356
+ alignment: TabStopAlignment | None = None
357
+
358
+
359
+ class TabStopAlignment(str, Enum):
360
+ TAB_STOP_ALIGNMENT_UNSPECIFIED = "TAB_STOP_ALIGNMENT_UNSPECIFIED"
361
+ START = "START"
362
+ CENTER = "CENTER"
363
+ END = "END"
364
+
365
+
366
+ class Shading(BaseModel):
367
+ backgroundColor: OptionalColor | None = None
368
+
369
+
370
+ class SuggestedParagraphStyle(BaseModel):
371
+ paragraphStyle: ParagraphStyle | None = None
372
+ paragraphStyleSuggestionState: ParagraphStyleSuggestionState | None = None
373
+
374
+
375
+ class ParagraphStyleSuggestionState(BaseModel):
376
+ headingIdSuggested: bool | None = None
377
+ namedStyleTypeSuggested: bool | None = None
378
+ alignmentSuggested: bool | None = None
379
+ lineSpacingSuggested: bool | None = None
380
+ directionSuggested: bool | None = None
381
+ spacingModeSuggested: bool | None = None
382
+ spaceAboveSuggested: bool | None = None
383
+ spaceBelowSuggested: bool | None = None
384
+ borderBetweenSuggested: bool | None = None
385
+ borderTopSuggested: bool | None = None
386
+ borderBottomSuggested: bool | None = None
387
+ borderLeftSuggested: bool | None = None
388
+ borderRightSuggested: bool | None = None
389
+ indentFirstLineSuggested: bool | None = None
390
+ indentStartSuggested: bool | None = None
391
+ indentEndSuggested: bool | None = None
392
+ keepLinesTogetherSuggested: bool | None = None
393
+ keepWithNextSuggested: bool | None = None
394
+ avoidWidowAndOrphanSuggested: bool | None = None
395
+ shadingSuggestionState: ShadingSuggestionState | None = None
396
+ pageBreakBeforeSuggested: bool | None = None
397
+
398
+
399
+ class ShadingSuggestionState(BaseModel):
400
+ backgroundColorSuggested: bool | None = None
401
+
402
+
403
+ class Bullet(BaseModel):
404
+ listId: str | None = None
405
+ nestingLevel: int | None = None
406
+ textStyle: TextStyle | None = None
407
+
408
+
409
+ class SuggestedBullet(BaseModel):
410
+ bullet: Bullet | None = None
411
+ bulletSuggestionState: BulletSuggestionState | None = None
412
+
413
+
414
+ class BulletSuggestionState(BaseModel):
415
+ listIdSuggested: bool | None = None
416
+ nestingLevelSuggested: bool | None = None
417
+ textStyleSuggestionState: TextStyleSuggestionState | None = None
418
+
419
+
420
+ class ObjectReferences(BaseModel):
421
+ objectIds: list[str] | None = None
422
+
423
+
424
+ class SectionBreak(BaseModel):
425
+ suggestedInsertionIds: list[str] | None = None
426
+ suggestedDeletionIds: list[str] | None = None
427
+ sectionStyle: SectionStyle | None = None
428
+
429
+
430
+ class SectionStyle(BaseModel):
431
+ columnProperties: list[SectionColumnProperties] | None = None
432
+ columnSeparatorStyle: ColumnSeparatorStyle | None = None
433
+ contentDirection: ContentDirection | None = None
434
+ marginTop: Dimension | None = None
435
+ marginBottom: Dimension | None = None
436
+ marginRight: Dimension | None = None
437
+ marginLeft: Dimension | None = None
438
+ marginHeader: Dimension | None = None
439
+ marginFooter: Dimension | None = None
440
+ sectionType: SectionType | None = None
441
+ defaultHeaderId: str | None = None
442
+ defaultFooterId: str | None = None
443
+ firstPageHeaderId: str | None = None
444
+ firstPageFooterId: str | None = None
445
+ evenPageHeaderId: str | None = None
446
+ evenPageFooterId: str | None = None
447
+ useFirstPageHeaderFooter: bool | None = None
448
+ pageNumberStart: int | None = None
449
+ flipPageOrientation: bool | None = None
450
+
451
+
452
+ class SectionColumnProperties(BaseModel):
453
+ width: Dimension | None = None
454
+ paddingEnd: Dimension | None = None
455
+
456
+
457
+ class ColumnSeparatorStyle(str, Enum):
458
+ COLUMN_SEPARATOR_STYLE_UNSPECIFIED = "COLUMN_SEPARATOR_STYLE_UNSPECIFIED"
459
+ NONE = "NONE"
460
+ BETWEEN_EACH_COLUMN = "BETWEEN_EACH_COLUMN"
461
+
462
+
463
+ class SectionType(str, Enum):
464
+ SECTION_TYPE_UNSPECIFIED = "SECTION_TYPE_UNSPECIFIED"
465
+ CONTINUOUS = "CONTINUOUS"
466
+ NEXT_PAGE = "NEXT_PAGE"
467
+
468
+
469
+ class Table(BaseModel):
470
+ rows: int | None = None
471
+ columns: int | None = None
472
+ tableRows: list[TableRow] | None = None
473
+ suggestedInsertionIds: list[str] | None = None
474
+ suggestedDeletionIds: list[str] | None = None
475
+ tableStyle: TableStyle | None = None
476
+
477
+
478
+ class TableRow(BaseModel):
479
+ startIndex: int | None = None
480
+ endIndex: int | None = None
481
+ tableCells: list[TableCell] | None = None
482
+ suggestedInsertionIds: list[str] | None = None
483
+ suggestedDeletionIds: list[str] | None = None
484
+ tableRowStyle: TableRowStyle | None = None
485
+ suggestedTableRowStyleChanges: dict[str, SuggestedTableRowStyle] | None = None
486
+
487
+
488
+ class TableCell(BaseModel):
489
+ startIndex: int | None = None
490
+ endIndex: int | None = None
491
+ content: list[StructuralElement] | None = None
492
+ tableCellStyle: TableCellStyle | None = None
493
+ suggestedInsertionIds: list[str] | None = None
494
+ suggestedDeletionIds: list[str] | None = None
495
+ suggestedTableCellStyleChanges: dict[str, SuggestedTableCellStyle] | None = None
496
+
497
+
498
+ class TableCellStyle(BaseModel):
499
+ rowSpan: int | None = None
500
+ columnSpan: int | None = None
501
+ backgroundColor: OptionalColor | None = None
502
+ borderLeft: TableCellBorder | None = None
503
+ borderRight: TableCellBorder | None = None
504
+ borderTop: TableCellBorder | None = None
505
+ borderBottom: TableCellBorder | None = None
506
+ paddingLeft: Dimension | None = None
507
+ paddingRight: Dimension | None = None
508
+ paddingTop: Dimension | None = None
509
+ paddingBottom: Dimension | None = None
510
+ contentAlignment: ContentAlignment | None = None
511
+
512
+
513
+ class ContentAlignment(str, Enum):
514
+ CONTENT_ALIGNMENT_UNSPECIFIED = "CONTENT_ALIGNMENT_UNSPECIFIED"
515
+ CONTENT_ALIGNMENT_UNSUPPORTED = "CONTENT_ALIGNMENT_UNSUPPORTED"
516
+ TOP = "TOP"
517
+ MIDDLE = "MIDDLE"
518
+ BOTTOM = "BOTTOM"
519
+
520
+
521
+ class TableCellBorder(BaseModel):
522
+ color: OptionalColor | None = None
523
+ width: Dimension | None = None
524
+ dashStyle: DashStyle | None = None
525
+
526
+
527
+ class SuggestedTableCellStyle(BaseModel):
528
+ tableCellStyle: TableCellStyle | None = None
529
+ tableCellStyleSuggestionState: TableCellStyleSuggestionState | None = None
530
+
531
+
532
+ class TableCellStyleSuggestionState(BaseModel):
533
+ rowSpanSuggested: bool | None = None
534
+ columnSpanSuggested: bool | None = None
535
+ backgroundColorSuggested: bool | None = None
536
+ borderLeftSuggested: bool | None = None
537
+ borderRightSuggested: bool | None = None
538
+ borderTopSuggested: bool | None = None
539
+ borderBottomSuggested: bool | None = None
540
+ paddingLeftSuggested: bool | None = None
541
+ paddingRightSuggested: bool | None = None
542
+ paddingTopSuggested: bool | None = None
543
+ paddingBottomSuggested: bool | None = None
544
+ contentAlignmentSuggested: bool | None = None
545
+
546
+
547
+ class TableRowStyle(BaseModel):
548
+ minRowHeight: Dimension | None = None
549
+ tableHeader: bool | None = None
550
+ preventOverflow: bool | None = None
551
+
552
+
553
+ class SuggestedTableRowStyle(BaseModel):
554
+ tableRowStyle: TableRowStyle | None = None
555
+ tableRowStyleSuggestionState: TableRowStyleSuggestionState | None = None
556
+
557
+
558
+ class TableRowStyleSuggestionState(BaseModel):
559
+ minRowHeightSuggested: bool | None = None
560
+
561
+
562
+ class TableStyle(BaseModel):
563
+ tableColumnProperties: list[TableColumnProperties] | None = None
564
+
565
+
566
+ class TableColumnProperties(BaseModel):
567
+ widthType: WidthType | None = None
568
+ width: Dimension | None = None
569
+
570
+
571
+ class WidthType(str, Enum):
572
+ WIDTH_TYPE_UNSPECIFIED = "WIDTH_TYPE_UNSPECIFIED"
573
+ EVENLY_DISTRIBUTED = "EVENLY_DISTRIBUTED"
574
+ FIXED_WIDTH = "FIXED_WIDTH"
575
+
576
+
577
+ class TableOfContents(BaseModel):
578
+ content: list[StructuralElement] | None = None
579
+ suggestedInsertionIds: list[str] | None = None
580
+ suggestedDeletionIds: list[str] | None = None
581
+
582
+
583
+ class Header(BaseModel):
584
+ headerId: str | None = None
585
+ content: list[StructuralElement] | None = None
586
+
587
+
588
+ class Footer(BaseModel):
589
+ footerId: str | None = None
590
+ content: list[StructuralElement] | None = None
591
+
592
+
593
+ class Footnote(BaseModel):
594
+ footnoteId: str | None = None
595
+ content: list[StructuralElement] | None = None
596
+
597
+
598
+ class DocumentStyle(BaseModel):
599
+ background: Background | None = None
600
+ defaultHeaderId: str | None = None
601
+ defaultFooterId: str | None = None
602
+ evenPageHeaderId: str | None = None
603
+ evenPageFooterId: str | None = None
604
+ firstPageHeaderId: str | None = None
605
+ firstPageFooterId: str | None = None
606
+ useFirstPageHeaderFooter: bool | None = None
607
+ useEvenPageHeaderFooter: bool | None = None
608
+ pageNumberStart: int | None = None
609
+ marginTop: Dimension | None = None
610
+ marginBottom: Dimension | None = None
611
+ marginRight: Dimension | None = None
612
+ marginLeft: Dimension | None = None
613
+ pageSize: Size | None = None
614
+ marginHeader: Dimension | None = None
615
+ marginFooter: Dimension | None = None
616
+ useCustomHeaderFooterMargins: bool | None = None
617
+ flipPageOrientation: bool | None = None
618
+
619
+
620
+ class Background(BaseModel):
621
+ color: OptionalColor | None = None
622
+
623
+
624
+ class Size(BaseModel):
625
+ height: Dimension | None = None
626
+ width: Dimension | None = None
627
+
628
+
629
+ class SuggestedDocumentStyle(BaseModel):
630
+ documentStyle: DocumentStyle | None = None
631
+ documentStyleSuggestionState: DocumentStyleSuggestionState | None = None
632
+
633
+
634
+ class DocumentStyleSuggestionState(BaseModel):
635
+ backgroundSuggestionState: BackgroundSuggestionState | None = None
636
+ defaultHeaderIdSuggested: bool | None = None
637
+ defaultFooterIdSuggested: bool | None = None
638
+ evenPageHeaderIdSuggested: bool | None = None
639
+ evenPageFooterIdSuggested: bool | None = None
640
+ firstPageHeaderIdSuggested: bool | None = None
641
+ firstPageFooterIdSuggested: bool | None = None
642
+ useFirstPageHeaderFooterSuggested: bool | None = None
643
+ useEvenPageHeaderFooterSuggested: bool | None = None
644
+ pageNumberStartSuggested: bool | None = None
645
+ marginTopSuggested: bool | None = None
646
+ marginBottomSuggested: bool | None = None
647
+ marginRightSuggested: bool | None = None
648
+ marginLeftSuggested: bool | None = None
649
+ pageSizeSuggestionState: SizeSuggestionState | None = None
650
+ marginHeaderSuggested: bool | None = None
651
+ marginFooterSuggested: bool | None = None
652
+ useCustomHeaderFooterMarginsSuggested: bool | None = None
653
+ flipPageOrientationSuggested: bool | None = None
654
+
655
+
656
+ class BackgroundSuggestionState(BaseModel):
657
+ backgroundColorSuggested: bool | None = None
658
+
659
+
660
+ class SizeSuggestionState(BaseModel):
661
+ heightSuggested: bool | None = None
662
+ widthSuggested: bool | None = None
663
+
664
+
665
+ class NamedStyles(BaseModel):
666
+ styles: list[NamedStyle] | None = None
667
+
668
+
669
+ class NamedStyle(BaseModel):
670
+ namedStyleType: NamedStyleType | None = None
671
+ textStyle: TextStyle | None = None
672
+ paragraphStyle: ParagraphStyle | None = None
673
+
674
+
675
+ class SuggestedNamedStyles(BaseModel):
676
+ namedStyles: NamedStyles | None = None
677
+ namedStylesSuggestionState: NamedStylesSuggestionState | None = None
678
+
679
+
680
+ class NamedStylesSuggestionState(BaseModel):
681
+ stylesSuggestionStates: list[NamedStyleSuggestionState] | None = None
682
+
683
+
684
+ class NamedStyleSuggestionState(BaseModel):
685
+ namedStyleType: NamedStyleType | None = None
686
+ textStyleSuggestionState: TextStyleSuggestionState | None = None
687
+ paragraphStyleSuggestionState: ParagraphStyleSuggestionState | None = None
688
+
689
+
690
+ class List(BaseModel):
691
+ listProperties: ListProperties | None = None
692
+ suggestedListPropertiesChanges: dict[str, SuggestedListProperties] | None = None
693
+ suggestedInsertionId: str | None = None
694
+ suggestedDeletionIds: list[str] | None = None
695
+
696
+
697
+ class ListProperties(BaseModel):
698
+ nestingLevels: list[NestingLevel] | None = None
699
+
700
+
701
+ class NestingLevel(BaseModel):
702
+ bulletAlignment: BulletAlignment | None = None
703
+ glyphFormat: str | None = None
704
+ indentFirstLine: Dimension | None = None
705
+ indentStart: Dimension | None = None
706
+ textStyle: TextStyle | None = None
707
+ startNumber: int | None = None
708
+ glyphType: GlyphType | None = None
709
+ glyphSymbol: str | None = None
710
+
711
+
712
+ class BulletAlignment(str, Enum):
713
+ BULLET_ALIGNMENT_UNSPECIFIED = "BULLET_ALIGNMENT_UNSPECIFIED"
714
+ START = "START"
715
+ CENTER = "CENTER"
716
+ END = "END"
717
+
718
+
719
+ class GlyphType(str, Enum):
720
+ GLYPH_TYPE_UNSPECIFIED = "GLYPH_TYPE_UNSPECIFIED"
721
+ NONE = "NONE"
722
+ DECIMAL = "DECIMAL"
723
+ ZERO_DECIMAL = "ZERO_DECIMAL"
724
+ UPPER_ALPHA = "UPPER_ALPHA"
725
+ ALPHA = "ALPHA"
726
+ UPPER_ROMAN = "UPPER_ROMAN"
727
+ ROMAN = "ROMAN"
728
+
729
+
730
+ class SuggestedListProperties(BaseModel):
731
+ listProperties: ListProperties | None = None
732
+ listPropertiesSuggestionState: ListPropertiesSuggestionState | None = None
733
+
734
+
735
+ class ListPropertiesSuggestionState(BaseModel):
736
+ nestingLevelsSuggestionStates: list[NestingLevelSuggestionState] | None = None
737
+
738
+
739
+ class NestingLevelSuggestionState(BaseModel):
740
+ bulletAlignmentSuggested: bool | None = None
741
+ glyphTypeSuggested: bool | None = None
742
+ glyphFormatSuggested: bool | None = None
743
+ glyphSymbolSuggested: bool | None = None
744
+ indentFirstLineSuggested: bool | None = None
745
+ indentStartSuggested: bool | None = None
746
+ textStyleSuggestionState: TextStyleSuggestionState | None = None
747
+ startNumberSuggested: bool | None = None
748
+
749
+
750
+ class NamedRanges(BaseModel):
751
+ name: str | None = None
752
+ namedRanges: list[NamedRange] | None = None
753
+
754
+
755
+ class NamedRange(BaseModel):
756
+ namedRangeId: str | None = None
757
+ name: str | None = None
758
+ ranges: list[Range] | None = None
759
+
760
+
761
+ class Range(BaseModel):
762
+ segmentId: str | None = None
763
+ startIndex: int | None = None
764
+ endIndex: int | None = None
765
+ tabId: str | None = None
766
+
767
+
768
+ class InlineObject(BaseModel):
769
+ objectId: str | None = None
770
+ inlineObjectProperties: InlineObjectProperties | None = None
771
+ suggestedInlineObjectPropertiesChanges: dict[str, SuggestedInlineObjectProperties] | None = None
772
+ suggestedInsertionId: str | None = None
773
+ suggestedDeletionIds: list[str] | None = None
774
+
775
+
776
+ class InlineObjectProperties(BaseModel):
777
+ embeddedObject: EmbeddedObject | None = None
778
+
779
+
780
+ class EmbeddedObject(BaseModel):
781
+ title: str | None = None
782
+ description: str | None = None
783
+ embeddedObjectBorder: EmbeddedObjectBorder | None = None
784
+ size: Size | None = None
785
+ marginTop: Dimension | None = None
786
+ marginBottom: Dimension | None = None
787
+ marginRight: Dimension | None = None
788
+ marginLeft: Dimension | None = None
789
+ linkedContentReference: LinkedContentReference | None = None
790
+ embeddedDrawingProperties: EmbeddedDrawingProperties | None = None
791
+ imageProperties: ImageProperties | None = None
792
+
793
+
794
+ class EmbeddedDrawingProperties(BaseModel):
795
+ # No fields per spec
796
+ pass
797
+
798
+
799
+ class ImageProperties(BaseModel):
800
+ contentUri: str | None = None
801
+ sourceUri: str | None = None
802
+ brightness: float | None = None
803
+ contrast: float | None = None
804
+ transparency: float | None = None
805
+ cropProperties: CropProperties | None = None
806
+ angle: float | None = None
807
+
808
+
809
+ class CropProperties(BaseModel):
810
+ offsetLeft: float | None = None
811
+ offsetRight: float | None = None
812
+ offsetTop: float | None = None
813
+ offsetBottom: float | None = None
814
+ angle: float | None = None
815
+
816
+
817
+ class EmbeddedObjectBorder(BaseModel):
818
+ color: OptionalColor | None = None
819
+ width: Dimension | None = None
820
+ dashStyle: DashStyle | None = None
821
+ propertyState: PropertyState | None = None
822
+
823
+
824
+ class PropertyState(str, Enum):
825
+ RENDERED = "RENDERED"
826
+ NOT_RENDERED = "NOT_RENDERED"
827
+
828
+
829
+ class LinkedContentReference(BaseModel):
830
+ sheetsChartReference: SheetsChartReference | None = None
831
+
832
+
833
+ class SheetsChartReference(BaseModel):
834
+ spreadsheetId: str | None = None
835
+ chartId: int | None = None
836
+
837
+
838
+ class SuggestedInlineObjectProperties(BaseModel):
839
+ inlineObjectProperties: InlineObjectProperties | None = None
840
+ inlineObjectPropertiesSuggestionState: InlineObjectPropertiesSuggestionState | None = None
841
+
842
+
843
+ class InlineObjectPropertiesSuggestionState(BaseModel):
844
+ embeddedObjectSuggestionState: EmbeddedObjectSuggestionState | None = None
845
+
846
+
847
+ class EmbeddedObjectSuggestionState(BaseModel):
848
+ embeddedDrawingPropertiesSuggestionState: EmbeddedDrawingPropertiesSuggestionState | None = None
849
+ imagePropertiesSuggestionState: ImagePropertiesSuggestionState | None = None
850
+ titleSuggested: bool | None = None
851
+ descriptionSuggested: bool | None = None
852
+ embeddedObjectBorderSuggestionState: EmbeddedObjectBorderSuggestionState | None = None
853
+ sizeSuggestionState: SizeSuggestionState | None = None
854
+ marginLeftSuggested: bool | None = None
855
+ marginRightSuggested: bool | None = None
856
+ marginTopSuggested: bool | None = None
857
+ marginBottomSuggested: bool | None = None
858
+ linkedContentReferenceSuggestionState: LinkedContentReferenceSuggestionState | None = None
859
+
860
+
861
+ class EmbeddedDrawingPropertiesSuggestionState(BaseModel):
862
+ # No fields per spec
863
+ pass
864
+
865
+
866
+ class ImagePropertiesSuggestionState(BaseModel):
867
+ contentUriSuggested: bool | None = None
868
+ sourceUriSuggested: bool | None = None
869
+ brightnessSuggested: bool | None = None
870
+ contrastSuggested: bool | None = None
871
+ transparencySuggested: bool | None = None
872
+ cropPropertiesSuggestionState: CropPropertiesSuggestionState | None = None
873
+ angleSuggested: bool | None = None
874
+
875
+
876
+ class CropPropertiesSuggestionState(BaseModel):
877
+ offsetLeftSuggested: bool | None = None
878
+ offsetRightSuggested: bool | None = None
879
+ offsetTopSuggested: bool | None = None
880
+ offsetBottomSuggested: bool | None = None
881
+ angleSuggested: bool | None = None
882
+
883
+
884
+ class EmbeddedObjectBorderSuggestionState(BaseModel):
885
+ colorSuggested: bool | None = None
886
+ widthSuggested: bool | None = None
887
+ dashStyleSuggested: bool | None = None
888
+ propertyStateSuggested: bool | None = None
889
+
890
+
891
+ class LinkedContentReferenceSuggestionState(BaseModel):
892
+ sheetsChartReferenceSuggestionState: SheetsChartReferenceSuggestionState | None = None
893
+
894
+
895
+ class SheetsChartReferenceSuggestionState(BaseModel):
896
+ spreadsheetIdSuggested: bool | None = None
897
+ chartIdSuggested: bool | None = None
898
+
899
+
900
+ class PositionedObject(BaseModel):
901
+ objectId: str | None = None
902
+ positionedObjectProperties: PositionedObjectProperties | None = None
903
+ suggestedPositionedObjectPropertiesChanges: (
904
+ dict[str, SuggestedPositionedObjectProperties] | None
905
+ ) = None
906
+ suggestedInsertionId: str | None = None
907
+ suggestedDeletionIds: list[str] | None = None
908
+
909
+
910
+ class PositionedObjectProperties(BaseModel):
911
+ positioning: PositionedObjectPositioning | None = None
912
+ embeddedObject: EmbeddedObject | None = None
913
+
914
+
915
+ class PositionedObjectPositioning(BaseModel):
916
+ layout: PositionedObjectLayout | None = None
917
+ leftOffset: Dimension | None = None
918
+ topOffset: Dimension | None = None
919
+
920
+
921
+ class PositionedObjectLayout(str, Enum):
922
+ POSITIONED_OBJECT_LAYOUT_UNSPECIFIED = "POSITIONED_OBJECT_LAYOUT_UNSPECIFIED"
923
+ WRAP_TEXT = "WRAP_TEXT"
924
+ BREAK_LEFT = "BREAK_LEFT"
925
+ BREAK_RIGHT = "BREAK_RIGHT"
926
+ BREAK_LEFT_RIGHT = "BREAK_LEFT_RIGHT"
927
+ IN_FRONT_OF_TEXT = "IN_FRONT_OF_TEXT"
928
+ BEHIND_TEXT = "BEHIND_TEXT"
929
+
930
+
931
+ class SuggestedPositionedObjectProperties(BaseModel):
932
+ positionedObjectProperties: PositionedObjectProperties | None = None
933
+ positionedObjectPropertiesSuggestionState: PositionedObjectPropertiesSuggestionState | None = (
934
+ None
935
+ )
936
+
937
+
938
+ class PositionedObjectPropertiesSuggestionState(BaseModel):
939
+ positioningSuggestionState: PositionedObjectPositioningSuggestionState | None = None
940
+ embeddedObjectSuggestionState: EmbeddedObjectSuggestionState | None = None
941
+
942
+
943
+ class PositionedObjectPositioningSuggestionState(BaseModel):
944
+ layoutSuggested: bool | None = None
945
+ leftOffsetSuggested: bool | None = None
946
+ topOffsetSuggested: bool | None = None
947
+
948
+
949
+ class SuggestionsViewMode(str, Enum):
950
+ DEFAULT_FOR_CURRENT_ACCESS = "DEFAULT_FOR_CURRENT_ACCESS"
951
+ SUGGESTIONS_INLINE = "SUGGESTIONS_INLINE"
952
+ PREVIEW_SUGGESTIONS_ACCEPTED = "PREVIEW_SUGGESTIONS_ACCEPTED"
953
+ PREVIEW_WITHOUT_SUGGESTIONS = "PREVIEW_WITHOUT_SUGGESTIONS"