Google Docs · Schema

Google Docs Document

A Google Docs document resource representing the full content and metadata of a document, including its body content, headers, footers, footnotes, styling, lists, named ranges, and embedded objects.

CollaborationDocumentsGoogle WorkspaceProductivityWord Processing

Properties

Name Type Description
documentId string Output only. The unique identifier of the document.
title string The title of the document.
tabs array Tabs that are part of a document. Tabs can contain child tabs, creating a nested tab structure.
revisionId string Output only. The revision ID of the document. Can be used in update requests to specify which revision of a document to apply updates to and how the request should behave if the document has been edit
suggestionsViewMode object
body object Output only. The main body of the document. This is a legacy field; when includeTabsContent is true, the body content is found in Document.tabs.documentTab.body instead.
headers object Output only. The headers in the document, keyed by header ID.
footers object Output only. The footers in the document, keyed by footer ID.
footnotes object Output only. The footnotes in the document, keyed by footnote ID.
documentStyle object Output only. The style of the document.
suggestedDocumentStyleChanges object Output only. The suggested changes to the style of the document, keyed by suggestion ID.
namedStyles object Output only. The named styles of the document.
suggestedNamedStylesChanges object Output only. The suggested changes to the named styles of the document, keyed by suggestion ID.
lists object Output only. The lists in the document, keyed by list ID.
namedRanges object Output only. The named ranges in the document, keyed by name.
inlineObjects object Output only. The inline objects in the document, keyed by object ID.
positionedObjects object Output only. The positioned objects in the document, keyed by object ID.
View JSON Schema on GitHub

JSON Schema

google-docs-document-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://developers.google.com/docs/api/reference/rest/v1/documents#Document",
  "title": "Google Docs Document",
  "description": "A Google Docs document resource representing the full content and metadata of a document, including its body content, headers, footers, footnotes, styling, lists, named ranges, and embedded objects.",
  "type": "object",
  "properties": {
    "documentId": {
      "type": "string",
      "description": "Output only. The unique identifier of the document.",
      "readOnly": true
    },
    "title": {
      "type": "string",
      "description": "The title of the document."
    },
    "tabs": {
      "type": "array",
      "description": "Tabs that are part of a document. Tabs can contain child tabs, creating a nested tab structure.",
      "items": {
        "$ref": "#/$defs/Tab"
      }
    },
    "revisionId": {
      "type": "string",
      "description": "Output only. The revision ID of the document. Can be used in update requests to specify which revision of a document to apply updates to and how the request should behave if the document has been edited since that revision.",
      "readOnly": true
    },
    "suggestionsViewMode": {
      "$ref": "#/$defs/SuggestionsViewMode"
    },
    "body": {
      "$ref": "#/$defs/Body",
      "description": "Output only. The main body of the document. This is a legacy field; when includeTabsContent is true, the body content is found in Document.tabs.documentTab.body instead.",
      "readOnly": true
    },
    "headers": {
      "type": "object",
      "description": "Output only. The headers in the document, keyed by header ID.",
      "additionalProperties": {
        "$ref": "#/$defs/Header"
      },
      "readOnly": true
    },
    "footers": {
      "type": "object",
      "description": "Output only. The footers in the document, keyed by footer ID.",
      "additionalProperties": {
        "$ref": "#/$defs/Footer"
      },
      "readOnly": true
    },
    "footnotes": {
      "type": "object",
      "description": "Output only. The footnotes in the document, keyed by footnote ID.",
      "additionalProperties": {
        "$ref": "#/$defs/Footnote"
      },
      "readOnly": true
    },
    "documentStyle": {
      "$ref": "#/$defs/DocumentStyle",
      "description": "Output only. The style of the document.",
      "readOnly": true
    },
    "suggestedDocumentStyleChanges": {
      "type": "object",
      "description": "Output only. The suggested changes to the style of the document, keyed by suggestion ID.",
      "additionalProperties": {
        "type": "object"
      },
      "readOnly": true
    },
    "namedStyles": {
      "$ref": "#/$defs/NamedStyles",
      "description": "Output only. The named styles of the document.",
      "readOnly": true
    },
    "suggestedNamedStylesChanges": {
      "type": "object",
      "description": "Output only. The suggested changes to the named styles of the document, keyed by suggestion ID.",
      "additionalProperties": {
        "type": "object"
      },
      "readOnly": true
    },
    "lists": {
      "type": "object",
      "description": "Output only. The lists in the document, keyed by list ID.",
      "additionalProperties": {
        "$ref": "#/$defs/List"
      },
      "readOnly": true
    },
    "namedRanges": {
      "type": "object",
      "description": "Output only. The named ranges in the document, keyed by name.",
      "additionalProperties": {
        "$ref": "#/$defs/NamedRanges"
      },
      "readOnly": true
    },
    "inlineObjects": {
      "type": "object",
      "description": "Output only. The inline objects in the document, keyed by object ID.",
      "additionalProperties": {
        "$ref": "#/$defs/InlineObject"
      },
      "readOnly": true
    },
    "positionedObjects": {
      "type": "object",
      "description": "Output only. The positioned objects in the document, keyed by object ID.",
      "additionalProperties": {
        "$ref": "#/$defs/PositionedObject"
      },
      "readOnly": true
    }
  },
  "required": [
    "documentId",
    "title"
  ],
  "$defs": {
    "Tab": {
      "type": "object",
      "description": "A tab within a document. Tabs can contain content and can be nested with child tabs.",
      "properties": {
        "tabProperties": {
          "$ref": "#/$defs/TabProperties"
        },
        "childTabs": {
          "type": "array",
          "description": "The child tabs nested within this tab.",
          "items": {
            "$ref": "#/$defs/Tab"
          }
        },
        "documentTab": {
          "$ref": "#/$defs/DocumentTab"
        }
      }
    },
    "TabProperties": {
      "type": "object",
      "description": "Properties of a tab.",
      "properties": {
        "tabId": {
          "type": "string",
          "description": "Output only. The ID of the tab.",
          "readOnly": true
        },
        "title": {
          "type": "string",
          "description": "The title of the tab."
        },
        "parentTabId": {
          "type": "string",
          "description": "Output only. The ID of the parent tab. Empty if this is a root-level tab.",
          "readOnly": true
        },
        "index": {
          "type": "integer",
          "description": "The zero-based index of the tab amongst its siblings."
        }
      }
    },
    "DocumentTab": {
      "type": "object",
      "description": "The content of a tab in a document, containing the body and associated document-level properties.",
      "properties": {
        "body": {
          "$ref": "#/$defs/Body"
        },
        "headers": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/Header"
          }
        },
        "footers": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/Footer"
          }
        },
        "footnotes": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/Footnote"
          }
        },
        "documentStyle": {
          "$ref": "#/$defs/DocumentStyle"
        },
        "namedStyles": {
          "$ref": "#/$defs/NamedStyles"
        },
        "lists": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/List"
          }
        },
        "namedRanges": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/NamedRanges"
          }
        },
        "inlineObjects": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/InlineObject"
          }
        },
        "positionedObjects": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/PositionedObject"
          }
        }
      }
    },
    "Body": {
      "type": "object",
      "description": "The document body containing the full content of the document.",
      "properties": {
        "content": {
          "type": "array",
          "description": "The contents of the body. Elements in the body are ordered by their start index.",
          "items": {
            "$ref": "#/$defs/StructuralElement"
          }
        }
      }
    },
    "StructuralElement": {
      "type": "object",
      "description": "A StructuralElement describes content that provides structure to the document. Exactly one of paragraph, sectionBreak, table, or tableOfContents will be set.",
      "properties": {
        "startIndex": {
          "type": "integer",
          "description": "The zero-based start index of this structural element, in UTF-16 code units."
        },
        "endIndex": {
          "type": "integer",
          "description": "The zero-based end index of this structural element, exclusive, in UTF-16 code units."
        },
        "paragraph": {
          "$ref": "#/$defs/Paragraph"
        },
        "sectionBreak": {
          "$ref": "#/$defs/SectionBreak"
        },
        "table": {
          "$ref": "#/$defs/Table"
        },
        "tableOfContents": {
          "$ref": "#/$defs/TableOfContents"
        }
      }
    },
    "Paragraph": {
      "type": "object",
      "description": "A StructuralElement representing a paragraph. A paragraph is a range of content that is terminated with a newline character.",
      "properties": {
        "elements": {
          "type": "array",
          "description": "The content of the paragraph, broken into its component parts.",
          "items": {
            "$ref": "#/$defs/ParagraphElement"
          }
        },
        "paragraphStyle": {
          "$ref": "#/$defs/ParagraphStyle"
        },
        "bullet": {
          "$ref": "#/$defs/Bullet"
        },
        "suggestedParagraphStyleChanges": {
          "type": "object",
          "additionalProperties": {
            "type": "object"
          }
        },
        "suggestedBulletChanges": {
          "type": "object",
          "additionalProperties": {
            "type": "object"
          }
        },
        "positionedObjectIds": {
          "type": "array",
          "description": "The IDs of the positioned objects tethered to this paragraph.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ParagraphElement": {
      "type": "object",
      "description": "A ParagraphElement describes content within a paragraph. Exactly one content field will be set.",
      "properties": {
        "startIndex": {
          "type": "integer",
          "description": "The zero-based start index of this paragraph element."
        },
        "endIndex": {
          "type": "integer",
          "description": "The zero-based end index of this paragraph element, exclusive."
        },
        "textRun": {
          "$ref": "#/$defs/TextRun"
        },
        "autoText": {
          "$ref": "#/$defs/AutoText"
        },
        "pageBreak": {
          "$ref": "#/$defs/PageBreak"
        },
        "columnBreak": {
          "$ref": "#/$defs/ColumnBreak"
        },
        "footnoteReference": {
          "$ref": "#/$defs/FootnoteReference"
        },
        "horizontalRule": {
          "$ref": "#/$defs/HorizontalRule"
        },
        "equation": {
          "$ref": "#/$defs/Equation"
        },
        "inlineObjectElement": {
          "$ref": "#/$defs/InlineObjectElement"
        },
        "person": {
          "$ref": "#/$defs/Person"
        },
        "richLink": {
          "$ref": "#/$defs/RichLink"
        }
      }
    },
    "TextRun": {
      "type": "object",
      "description": "A ParagraphElement that represents a run of text that all has the same styling.",
      "properties": {
        "content": {
          "type": "string",
          "description": "The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907."
        },
        "textStyle": {
          "$ref": "#/$defs/TextStyle"
        },
        "suggestedInsertionIds": {
          "type": "array",
          "items": { "type": "string" }
        },
        "suggestedDeletionIds": {
          "type": "array",
          "items": { "type": "string" }
        },
        "suggestedTextStyleChanges": {
          "type": "object",
          "additionalProperties": { "type": "object" }
        }
      }
    },
    "TextStyle": {
      "type": "object",
      "description": "Represents the styling that can be applied to text. Inherited text styles are represented as unset fields.",
      "properties": {
        "bold": {
          "type": "boolean",
          "description": "Whether the text is bold."
        },
        "italic": {
          "type": "boolean",
          "description": "Whether the text is italicized."
        },
        "underline": {
          "type": "boolean",
          "description": "Whether the text is underlined."
        },
        "strikethrough": {
          "type": "boolean",
          "description": "Whether the text is struck through."
        },
        "smallCaps": {
          "type": "boolean",
          "description": "Whether the text is in small capital letters."
        },
        "backgroundColor": {
          "$ref": "#/$defs/OptionalColor"
        },
        "foregroundColor": {
          "$ref": "#/$defs/OptionalColor"
        },
        "fontSize": {
          "$ref": "#/$defs/Dimension"
        },
        "weightedFontFamily": {
          "$ref": "#/$defs/WeightedFontFamily"
        },
        "baselineOffset": {
          "type": "string",
          "description": "The text's vertical offset from its normal position.",
          "enum": ["BASELINE_OFFSET_UNSPECIFIED", "NONE", "SUPERSCRIPT", "SUBSCRIPT"]
        },
        "link": {
          "$ref": "#/$defs/Link"
        }
      }
    },
    "ParagraphStyle": {
      "type": "object",
      "description": "Styles that apply to a whole paragraph. Inherited paragraph styles are represented as unset fields.",
      "properties": {
        "headingId": {
          "type": "string",
          "description": "The heading ID of the paragraph."
        },
        "namedStyleType": {
          "type": "string",
          "description": "The named style type of the paragraph.",
          "enum": [
            "NAMED_STYLE_TYPE_UNSPECIFIED", "NORMAL_TEXT", "TITLE", "SUBTITLE",
            "HEADING_1", "HEADING_2", "HEADING_3", "HEADING_4", "HEADING_5", "HEADING_6"
          ]
        },
        "alignment": {
          "type": "string",
          "description": "The text alignment for this paragraph.",
          "enum": ["ALIGNMENT_UNSPECIFIED", "START", "CENTER", "END", "JUSTIFIED"]
        },
        "lineSpacing": {
          "type": "number",
          "description": "The amount of space between lines as a percentage of normal, where normal is represented as 100.0."
        },
        "direction": {
          "type": "string",
          "description": "The text direction of this paragraph.",
          "enum": ["CONTENT_DIRECTION_UNSPECIFIED", "LEFT_TO_RIGHT", "RIGHT_TO_LEFT"]
        },
        "spacingMode": {
          "type": "string",
          "enum": ["SPACING_MODE_UNSPECIFIED", "NEVER_COLLAPSE", "COLLAPSE_LISTS"]
        },
        "spaceAbove": {
          "$ref": "#/$defs/Dimension"
        },
        "spaceBelow": {
          "$ref": "#/$defs/Dimension"
        },
        "borderBetween": {
          "$ref": "#/$defs/ParagraphBorder"
        },
        "borderTop": {
          "$ref": "#/$defs/ParagraphBorder"
        },
        "borderBottom": {
          "$ref": "#/$defs/ParagraphBorder"
        },
        "borderLeft": {
          "$ref": "#/$defs/ParagraphBorder"
        },
        "borderRight": {
          "$ref": "#/$defs/ParagraphBorder"
        },
        "indentFirstLine": {
          "$ref": "#/$defs/Dimension"
        },
        "indentStart": {
          "$ref": "#/$defs/Dimension"
        },
        "indentEnd": {
          "$ref": "#/$defs/Dimension"
        },
        "tabStops": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TabStop"
          }
        },
        "keepLinesTogether": {
          "type": "boolean"
        },
        "keepWithNext": {
          "type": "boolean"
        },
        "avoidWidowAndOrphan": {
          "type": "boolean"
        },
        "shading": {
          "$ref": "#/$defs/Shading"
        },
        "pageBreakBefore": {
          "type": "boolean"
        }
      }
    },
    "DocumentStyle": {
      "type": "object",
      "description": "The style of the document, influencing the look of the document and any defaults for new content.",
      "properties": {
        "background": {
          "$ref": "#/$defs/Background"
        },
        "defaultHeaderId": {
          "type": "string"
        },
        "defaultFooterId": {
          "type": "string"
        },
        "evenPageHeaderId": {
          "type": "string"
        },
        "evenPageFooterId": {
          "type": "string"
        },
        "firstPageHeaderId": {
          "type": "string"
        },
        "firstPageFooterId": {
          "type": "string"
        },
        "useFirstPageHeaderFooter": {
          "type": "boolean"
        },
        "useEvenPageHeaderFooter": {
          "type": "boolean"
        },
        "pageNumberStart": {
          "type": "integer"
        },
        "marginTop": {
          "$ref": "#/$defs/Dimension"
        },
        "marginBottom": {
          "$ref": "#/$defs/Dimension"
        },
        "marginRight": {
          "$ref": "#/$defs/Dimension"
        },
        "marginLeft": {
          "$ref": "#/$defs/Dimension"
        },
        "pageSize": {
          "$ref": "#/$defs/Size"
        },
        "marginHeader": {
          "$ref": "#/$defs/Dimension"
        },
        "marginFooter": {
          "$ref": "#/$defs/Dimension"
        },
        "useCustomHeaderFooterMargins": {
          "type": "boolean"
        },
        "flipPageOrientation": {
          "type": "boolean"
        }
      }
    },
    "NamedStyles": {
      "type": "object",
      "description": "The named styles defined in the document. Paragraphs can inherit their text and paragraph styles from these named styles.",
      "properties": {
        "styles": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/NamedStyle"
          }
        }
      }
    },
    "NamedStyle": {
      "type": "object",
      "description": "A named style that can be applied to paragraphs.",
      "properties": {
        "namedStyleType": {
          "type": "string",
          "enum": [
            "NAMED_STYLE_TYPE_UNSPECIFIED", "NORMAL_TEXT", "TITLE", "SUBTITLE",
            "HEADING_1", "HEADING_2", "HEADING_3", "HEADING_4", "HEADING_5", "HEADING_6"
          ]
        },
        "textStyle": {
          "$ref": "#/$defs/TextStyle"
        },
        "paragraphStyle": {
          "$ref": "#/$defs/ParagraphStyle"
        }
      }
    },
    "Header": {
      "type": "object",
      "description": "A document header.",
      "properties": {
        "headerId": {
          "type": "string",
          "readOnly": true
        },
        "content": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/StructuralElement"
          }
        }
      }
    },
    "Footer": {
      "type": "object",
      "description": "A document footer.",
      "properties": {
        "footerId": {
          "type": "string",
          "readOnly": true
        },
        "content": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/StructuralElement"
          }
        }
      }
    },
    "Footnote": {
      "type": "object",
      "description": "A document footnote.",
      "properties": {
        "footnoteId": {
          "type": "string",
          "readOnly": true
        },
        "content": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/StructuralElement"
          }
        }
      }
    },
    "SectionBreak": {
      "type": "object",
      "description": "A StructuralElement representing a section break.",
      "properties": {
        "sectionStyle": {
          "$ref": "#/$defs/SectionStyle"
        },
        "suggestedInsertionIds": {
          "type": "array",
          "items": { "type": "string" }
        },
        "suggestedDeletionIds": {
          "type": "array",
          "items": { "type": "string" }
        }
      }
    },
    "SectionStyle": {
      "type": "object",
      "description": "The style of a section.",
      "properties": {
        "columnProperties": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SectionColumnProperties"
          }
        },
        "columnSeparatorStyle": {
          "type": "string",
          "enum": ["COLUMN_SEPARATOR_STYLE_UNSPECIFIED", "NONE", "BETWEEN_EACH_COLUMN"]
        },
        "contentDirection": {
          "type": "string",
          "enum": ["CONTENT_DIRECTION_UNSPECIFIED", "LEFT_TO_RIGHT", "RIGHT_TO_LEFT"]
        },
        "sectionType": {
          "type": "string",
          "enum": ["SECTION_TYPE_UNSPECIFIED", "CONTINUOUS", "NEXT_PAGE"]
        },
        "defaultHeaderId": { "type": "string" },
        "defaultFooterId": { "type": "string" },
        "evenPageHeaderId": { "type": "string" },
        "evenPageFooterId": { "type": "string" },
        "firstPageHeaderId": { "type": "string" },
        "firstPageFooterId": { "type": "string" },
        "useFirstPageHeaderFooter": { "type": "boolean" },
        "marginTop": { "$ref": "#/$defs/Dimension" },
        "marginBottom": { "$ref": "#/$defs/Dimension" },
        "marginRight": { "$ref": "#/$defs/Dimension" },
        "marginLeft": { "$ref": "#/$defs/Dimension" },
        "marginHeader": { "$ref": "#/$defs/Dimension" },
        "marginFooter": { "$ref": "#/$defs/Dimension" },
        "pageNumberStart": { "type": "integer" },
        "flipPageOrientation": { "type": "boolean" }
      }
    },
    "SectionColumnProperties": {
      "type": "object",
      "properties": {
        "width": { "$ref": "#/$defs/Dimension" },
        "paddingEnd": { "$ref": "#/$defs/Dimension" }
      }
    },
    "Table": {
      "type": "object",
      "description": "A StructuralElement representing a table.",
      "properties": {
        "rows": {
          "type": "integer",
          "description": "Number of rows in the table."
        },
        "columns": {
          "type": "integer",
          "description": "Number of columns in the table."
        },
        "tableRows": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TableRow"
          }
        },
        "tableStyle": {
          "$ref": "#/$defs/TableStyle"
        },
        "suggestedInsertionIds": {
          "type": "array",
          "items": { "type": "string" }
        },
        "suggestedDeletionIds": {
          "type": "array",
          "items": { "type": "string" }
        }
      }
    },
    "TableRow": {
      "type": "object",
      "description": "The contents and style of a row in a table.",
      "properties": {
        "startIndex": { "type": "integer" },
        "endIndex": { "type": "integer" },
        "tableCells": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TableCell"
          }
        },
        "tableRowStyle": {
          "$ref": "#/$defs/TableRowStyle"
        },
        "suggestedInsertionIds": {
          "type": "array",
          "items": { "type": "string" }
        },
        "suggestedDeletionIds": {
          "type": "array",
          "items": { "type": "string" }
        },
        "suggestedTableRowStyleChanges": {
          "type": "object",
          "additionalProperties": { "type": "object" }
        }
      }
    },
    "TableCell": {
      "type": "object",
      "description": "The contents and style of a cell in a table.",
      "properties": {
        "startIndex": { "type": "integer" },
        "endIndex": { "type": "integer" },
        "content": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/StructuralElement"
          }
        },
        "tableCellStyle": {
          "$ref": "#/$defs/TableCellStyle"
        },
        "suggestedInsertionIds": {
          "type": "array",
          "items": { "type": "string" }
        },
        "suggestedDeletionIds": {
          "type": "array",
          "items": { "type": "string" }
        },
        "suggestedTableCellStyleChanges": {
          "type": "object",
          "additionalProperties": { "type": "object" }
        }
      }
    },
    "TableCellStyle": {
      "type": "object",
      "description": "The style of a table cell.",
      "properties": {
        "rowSpan": { "type": "integer" },
        "columnSpan": { "type": "integer" },
        "backgroundColor": { "$ref": "#/$defs/OptionalColor" },
        "borderLeft": { "$ref": "#/$defs/TableCellBorder" },
        "borderRight": { "$ref": "#/$defs/TableCellBorder" },
        "borderTop": { "$ref": "#/$defs/TableCellBorder" },
        "borderBottom": { "$ref": "#/$defs/TableCellBorder" },
        "paddingLeft": { "$ref": "#/$defs/Dimension" },
        "paddingRight": { "$ref": "#/$defs/Dimension" },
        "paddingTop": { "$ref": "#/$defs/Dimension" },
        "paddingBottom": { "$ref": "#/$defs/Dimension" },
        "contentAlignment": {
          "type": "string",
          "enum": ["CONTENT_ALIGNMENT_UNSPECIFIED", "CONTENT_ALIGNMENT_UNSUPPORTED", "TOP", "MIDDLE", "BOTTOM"]
        }
      }
    },
    "TableCellBorder": {
      "type": "object",
      "properties": {
        "color": { "$ref": "#/$defs/OptionalColor" },
        "width": { "$ref": "#/$defs/Dimension" },
        "dashStyle": {
          "type": "string",
          "enum": ["DASH_STYLE_UNSPECIFIED", "SOLID", "DOT", "DASH"]
        }
      }
    },
    "TableRowStyle": {
      "type": "object",
      "properties": {
        "minRowHeight": { "$ref": "#/$defs/Dimension" },
        "tableHeader": { "type": "boolean" },
        "preventOverflow": { "type": "boolean" }
      }
    },
    "TableStyle": {
      "type": "object",
      "properties": {
        "tableColumnProperties": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TableColumnProperties"
          }
        }
      }
    },
    "TableColumnProperties": {
      "type": "object",
      "properties": {
        "widthType": {
          "type": "string",
          "enum": ["WIDTH_TYPE_UNSPECIFIED", "EVENLY_DISTRIBUTED", "FIXED_WIDTH"]
        },
        "width": { "$ref": "#/$defs/Dimension" }
      }
    },
    "TableOfContents": {
      "type": "object",
      "description": "A StructuralElement representing a table of contents.",
      "properties": {
        "content": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/StructuralElement"
          }
        },
        "suggestedInsertionIds": {
          "type": "array",
          "items": { "type": "string" }
        },
        "suggestedDeletionIds": {
          "type": "array",
          "items": { "type": "string" }
        }
      }
    },
    "AutoText": {
      "type": "object",
      "description": "A ParagraphElement representing dynamic content like page numbers.",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["TYPE_UNSPECIFIED", "PAGE_NUMBER", "PAGE_COUNT"]
        },
        "suggestedInsertionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedDeletionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedTextStyleChanges": { "type": "object", "additionalProperties": { "type": "object" } },
        "textStyle": { "$ref": "#/$defs/TextStyle" }
      }
    },
    "PageBreak": {
      "type": "object",
      "description": "A ParagraphElement representing a page break.",
      "properties": {
        "suggestedInsertionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedDeletionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedTextStyleChanges": { "type": "object", "additionalProperties": { "type": "object" } },
        "textStyle": { "$ref": "#/$defs/TextStyle" }
      }
    },
    "ColumnBreak": {
      "type": "object",
      "description": "A ParagraphElement representing a column break.",
      "properties": {
        "suggestedInsertionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedDeletionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedTextStyleChanges": { "type": "object", "additionalProperties": { "type": "object" } },
        "textStyle": { "$ref": "#/$defs/TextStyle" }
      }
    },
    "FootnoteReference": {
      "type": "object",
      "description": "A ParagraphElement representing a footnote reference.",
      "properties": {
        "footnoteId": { "type": "string" },
        "footnoteNumber": { "type": "string", "readOnly": true },
        "suggestedInsertionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedDeletionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedTextStyleChanges": { "type": "object", "additionalProperties": { "type": "object" } },
        "textStyle": { "$ref": "#/$defs/TextStyle" }
      }
    },
    "HorizontalRule": {
      "type": "object",
      "description": "A ParagraphElement representing a horizontal line.",
      "properties": {
        "suggestedInsertionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedDeletionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedTextStyleChanges": { "type": "object", "additionalProperties": { "type": "object" } },
        "textStyle": { "$ref": "#/$defs/TextStyle" }
      }
    },
    "Equation": {
      "type": "object",
      "description": "A ParagraphElement representing an equation.",
      "properties": {
        "suggestedInsertionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedDeletionIds": { "type": "array", "items": { "type": "string" } }
      }
    },
    "InlineObjectElement": {
      "type": "object",
      "description": "A ParagraphElement that contains an InlineObject.",
      "properties": {
        "inlineObjectId": { "type": "string" },
        "suggestedInsertionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedDeletionIds": { "type": "array", "items": { "type": "string" } },
        "suggestedTextStyleChanges": { "type": "object", "additionalProperties": { "type": "object" } },
        "textStyle": { "$ref": "#/$defs/TextStyle" }
      }
    },
    "InlineObject": {
      "type": "object",
      "description": "An object that appears inline with text, such as an image.",
      "properties": {
        "objectId": { "type": "string" },
        "inlineObjectProperties": {
          "$ref": "#/$defs/InlineObjectProperties"
        },
        "suggestedInlineObjectPropertiesChanges": {
          "type": "object",
          "additionalProperties": { "type": "object" }
        },
        "suggestedInsertionId": { "type": "string" },
        "suggestedDeletionIds": { "type": "array", "items": { "type": "string" } }
      }
    },
    "InlineObjectProperties": {
      "type": "object",
      "properties": {
        "embeddedObject": { "$ref": "#/$defs/EmbeddedObject" }
      }
    },
    "PositionedObject": {
      "type": "object",
      "description": "An object tethered to a paragraph and positioned relative to the beginning of the paragraph.",
      "properties": {
        "objectId": { "type": "string" },
        "positionedObjectProperties": {
          "$ref": "#/$defs/PositionedObjectProperties"
        },
        "suggestedPositionedObjectPropertiesChanges": {
          "type": "object",
          "additionalProperties": { "type": "object" }
        },
        "suggestedInsertionId": { "type": "string" },
        "suggestedDeletionIds": { "type": "array", "items": { "type": "string" } }
      }
    },
    "PositionedObjectProperties": {
      "type": "object",
      "properties": {
        "positioning": { "$ref": "#/$defs/PositionedObjectPositioning" },
        "embeddedObject": { "$ref": "#/$defs/EmbeddedObject" }
      }
    },
    "PositionedObjectPositioning": {
      "type": "object",
      "properties": {
        "layout": {
          "type": "string",
          "enum": [
            "POSITIONED_OBJECT_LAYOUT_UNSPECIFIED", "WRAP_TEXT", "BREAK_LEFT",
            "BREAK_RIGHT", "BREAK_LEFT_RIGHT", "IN_FRONT_OF_TEXT", "BEHIND_TEXT"
          ]
        },
        "leftOffset": { "$ref": "#/$defs/Dimension" },
        "topOffset": { "$ref": "#/$defs/Dimension" }
      }
    },
    "EmbeddedObject": {
      "type": "object",
      "description": "An embedded object such as an image.",
      "properties": {
        "title": { "type": "string" },
        "description": { "type": "string" },
        "embeddedObjectBorder": { "$ref": "#/$defs/EmbeddedObjectBorder" },
        "size": { "$ref": "#/$defs/Size" },
        "marginTop": { "$ref": "#/$defs/Dimension" },
        "marginBottom": { "$ref": "#/$defs/Dimension" },
        "marginRight": { "$ref": "#/$defs/Dimension" },
        "marginLeft": { "$ref": "#/$defs/Dimension" },
        "linkedContentReference": { "$ref": "#/$defs/LinkedContentReference" },
        "imageProperties": { "$ref": "#/$defs/ImageProperties" },
        "embeddedDrawingProperties": { "type": "object" }
      }
    },
    "EmbeddedObjectBorder": {
      "type": "object",
      "properties": {
        "color": { "$ref": "#/$def

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/google-docs/refs/heads/main/json-schema/google-docs-document-schema.json