> ## Documentation Index
> Fetch the complete documentation index at: https://docs.r28.ai/charter/llms.txt
> Use this file to discover all available pages before exploring further.

# Objects

> Every object and enum the Values tools accept.

## Model tree

<div className="model-tree"><div className="model-tree-scroll"><div className="tree-node"><a href="#valuerange">ValueRange</a><div className="tree-children"><div className="tree-node"><a href="#value">Value</a><div className="tree-children"><div className="tree-node"><a href="#struct">Struct</a><div className="tree-children"><div className="tree-node"><a href="#value">Value</a> <span className="tree-note">above</span></div></div></div><div className="tree-node"><a href="#listvalue">ListValue</a><div className="tree-children"><div className="tree-node"><a href="#value">Value</a> <span className="tree-note">above</span></div></div></div></div></div></div></div><div className="tree-node"><a href="#datafilter">DataFilter</a><div className="tree-children"><div className="tree-node"><a href="#developermetadatalookup">DeveloperMetadataLookup</a><div className="tree-children"><div className="tree-node"><a href="#developermetadatalocation">DeveloperMetadataLocation</a><div className="tree-children"><div className="tree-node"><a href="#dimensionrange">DimensionRange</a></div></div></div></div></div><div className="tree-node"><a href="#gridrange">GridRange</a></div></div></div><div className="tree-node"><a href="#datafiltervaluerange">DataFilterValueRange</a><div className="tree-children"><div className="tree-node"><a href="#datafilter">DataFilter</a> <span className="tree-note">above</span></div><div className="tree-node"><a href="#value">Value</a> <span className="tree-note">above</span></div></div></div></div></div>

## ValueRange

Data within a range of the spreadsheet.

<div className="reference-table">
  | Field            | Type                                                                                                                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
  | ---------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
  | `range`          | `string`                                                                                                                        | The range the values cover, in A1 notation. For output, this range indicates the entire requested range, even though the values will exclude trailing rows and columns. When appending values, this field represents the range to search for a table, after which values will be appended.                                                                                                                                                                                                                                     |
  | `majorDimension` | [Dimension](#dimension)                                                                                                         | The major dimension of the values. For output, if the spreadsheet data is: A1=1,B1=2,A2=3,B2=4, then requesting range=A1:B2,majorDimension=ROWS will return \[\[1,2],\[3,4]], whereas requesting range=A1:B2,majorDimension=COLUMNS will return \[\[1,3],\[2,4]]. For input, with range=A1:B2,majorDimension=ROWS then \[\[1,2],\[3,4]] will set A1=1,B1=2,A2=3,B2=4. With range=A1:B2,majorDimension=COLUMNS then \[\[1,2],\[3,4]] will set A1=1,B1=3,A2=2,B2=4. When writing, if this field is not set, it defaults to ROWS. |
  | `values`         | [Value](#value)\[]\[]<br /><span className="markers"><span className="marker" data-marker="transform">proto\_json</span></span> | The data that was read or to be written. This is an array of arrays, the outer array representing all the data and each inner array representing a major dimension. Each item in the inner array corresponds with one cell. For output, empty trailing rows and columns will not be included. For input, supported value types are: bool, string, and double. Null values will be skipped. To set a cell to an empty value, set the string value to an empty string.                                                           |
</div>

## Value

`Value` represents a dynamically typed value.

<div className="reference-table">
  | Field          | Type                    | Description                    |
  | -------------- | ----------------------- | ------------------------------ |
  | `null_value`   | `string`                | Represents a null value.       |
  | `number_value` | `number`                | Represents a double value.     |
  | `string_value` | `string`                | Represents a string value.     |
  | `bool_value`   | `boolean`               | Represents a boolean value.    |
  | `struct_value` | [Struct](#struct)       | Represents a structured value. |
  | `list_value`   | [ListValue](#listvalue) | Represents a repeated `Value`. |
</div>

## Struct

`Struct` represents structured data: fields mapping to dynamically typed values.

<div className="reference-table">
  | Field    | Type                   | Description                                |
  | -------- | ---------------------- | ------------------------------------------ |
  | `fields` | map of [Value](#value) | Unordered map of dynamically typed values. |
</div>

## ListValue

`ListValue` is a wrapper around a repeated field of values.

<div className="reference-table">
  | Field                                                          | Type               | Description                                 |
  | -------------------------------------------------------------- | ------------------ | ------------------------------------------- |
  | `values` <span className="required" title="required">\*</span> | [Value](#value)\[] | Repeated field of dynamically typed values. |
</div>

## DataFilter

Filter that describes what data should be selected or returned from a request. For more information, see [Read, write, and search metadata](https://developers.google.com/workspace/sheets/api/guides/metadata).

<div className="reference-table">
  | Field                     | Type                                                | Description                                                                                                          |
  | ------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
  | `developerMetadataLookup` | [DeveloperMetadataLookup](#developermetadatalookup) | Selects data associated with the developer metadata matching the criteria described by this DeveloperMetadataLookup. |
  | `gridRange`               | [GridRange](#gridrange)                             | Selects data that matches the range described by the GridRange.                                                      |
  | `a1Range`                 | `string`                                            | Selects data that matches the specified A1 range.                                                                    |
</div>

## DeveloperMetadataLookup

Selects DeveloperMetadata that matches all of the specified fields. For example, if only a metadata ID is specified this considers the DeveloperMetadata with that particular unique ID. If a metadata key is specified, this considers all developer metadata with that key. If a key, visibility, and location type are all specified, this considers all developer metadata with that key and visibility that are associated with a location of that type. In general, this selects all DeveloperMetadata that match the intersection of all the specified fields; any field or combination of fields may be specified.

<div className="reference-table">
  | Field                      | Type                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
  | -------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `metadataId`               | `integer`                                                                               | Limits the selected developer metadata to that which has a matching DeveloperMetadata.metadata\_id.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | `metadataValue`            | `string`                                                                                | Limits the selected developer metadata to that which has a matching DeveloperMetadata.metadata\_value.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | `visibility`               | [DeveloperMetadataVisibility](#developermetadatavisibility)                             | Limits the selected developer metadata to that which has a matching DeveloperMetadata.visibility. If left unspecified, all developer metadata visible to the requesting project is considered.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  | `metadataLocation`         | [DeveloperMetadataLocation](#developermetadatalocation)                                 | Limits the selected developer metadata to those entries associated with the specified location. This field either matches exact locations or all intersecting locations according the specified locationMatchingStrategy.                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
  | `metadataKey`              | `string`                                                                                | Limits the selected developer metadata to that which has a matching DeveloperMetadata.metadata\_key.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
  | `locationMatchingStrategy` | [DeveloperMetadataLocationMatchingStrategy](#developermetadatalocationmatchingstrategy) | Determines how this lookup matches the location. If this field is specified as EXACT, only developer metadata associated on the exact location specified is matched. If this field is specified to INTERSECTING, developer metadata associated on intersecting locations is also matched. If left unspecified, this field assumes a default value of INTERSECTING. If this field is specified, a metadataLocation must also be specified.                                                                                                                                                                                                                                       |
  | `locationType`             | [DeveloperMetadataLocationType](#developermetadatalocationtype)                         | Limits the selected developer metadata to those entries which are associated with locations of the specified type. For example, when this field is specified as ROW this lookup only considers developer metadata associated on rows. If the field is left unspecified, all location types are considered. This field cannot be specified as SPREADSHEET when the locationMatchingStrategy is specified as INTERSECTING or when the metadataLocation is specified as a non-spreadsheet location. Spreadsheet metadata cannot intersect any other developer metadata location. This field also must be left unspecified when the locationMatchingStrategy is specified as EXACT. |
</div>

## DeveloperMetadataLocation

A location where metadata may be associated in a spreadsheet.

<div className="reference-table">
  | Field            | Type                              | Description                                                                                                                                                                                             |
  | ---------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `spreadsheet`    | `boolean`                         | True when metadata is associated with an entire spreadsheet.                                                                                                                                            |
  | `dimensionRange` | [DimensionRange](#dimensionrange) | Represents the row or column when metadata is associated with a dimension. The specified DimensionRange must represent a single row or column. It cannot be unbounded or span multiple rows or columns. |
  | `sheetId`        | `integer`                         | The ID of the sheet when metadata is associated with an entire sheet.                                                                                                                                   |
</div>

## DimensionRange

A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side.

<div className="reference-table">
  | Field        | Type                    | Description                                                 |
  | ------------ | ----------------------- | ----------------------------------------------------------- |
  | `endIndex`   | `integer`               | The end (exclusive) of the span, or not set if unbounded.   |
  | `startIndex` | `integer`               | The start (inclusive) of the span, or not set if unbounded. |
  | `dimension`  | [Dimension](#dimension) | The dimension of the span.                                  |
  | `sheetId`    | `integer`               | The sheet this span is on.                                  |
</div>

## GridRange

A range on a sheet. All indexes are zero-based. Indexes are half open, i.e. the start index is inclusive and the end index is exclusive -- \[start\_index, end\_index). Missing indexes indicate the range is unbounded on that side. For example, if `"Sheet1"` is sheet ID 123456, then: `Sheet1!A1:A1 == sheet_id: 123456, start_row_index: 0, end_row_index: 1, start_column_index: 0, end_column_index: 1` `Sheet1!A3:B4 == sheet_id: 123456, start_row_index: 2, end_row_index: 4, start_column_index: 0, end_column_index: 2` `Sheet1!A:B == sheet_id: 123456, start_column_index: 0, end_column_index: 2` `Sheet1!A5:B == sheet_id: 123456, start_row_index: 4, start_column_index: 0, end_column_index: 2` `Sheet1 == sheet_id: 123456` The start index must always be less than or equal to the end index. If the start index equals the end index, then the range is empty. Empty ranges are typically not meaningful and are usually rendered in the UI as `#REF!`.

<div className="reference-table">
  | Field              | Type      | Description                                                         |
  | ------------------ | --------- | ------------------------------------------------------------------- |
  | `sheetId`          | `integer` | The sheet this range is on.                                         |
  | `startColumnIndex` | `integer` | The start column (inclusive) of the range, or not set if unbounded. |
  | `endRowIndex`      | `integer` | The end row (exclusive) of the range, or not set if unbounded.      |
  | `endColumnIndex`   | `integer` | The end column (exclusive) of the range, or not set if unbounded.   |
  | `startRowIndex`    | `integer` | The start row (inclusive) of the range, or not set if unbounded.    |
</div>

## DataFilterValueRange

A range of values whose location is specified by a DataFilter.

<div className="reference-table">
  | Field            | Type                                                                                                                            | Description                                                                                                                                                                                                                                                                        |
  | ---------------- | ------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `dataFilter`     | [DataFilter](#datafilter)                                                                                                       | The data filter describing the location of the values in the spreadsheet.                                                                                                                                                                                                          |
  | `majorDimension` | [Dimension](#dimension)                                                                                                         | The major dimension of the values.                                                                                                                                                                                                                                                 |
  | `values`         | [Value](#value)\[]\[]<br /><span className="markers"><span className="marker" data-marker="transform">proto\_json</span></span> | The data to be written. If the provided values exceed any of the ranges matched by the data filter then the request fails. If the provided values are less than the matched ranges only the specified values are written, existing values in the matched ranges remain unaffected. |
</div>

## DeveloperMetadataLocationMatchingStrategy

<div className="enum-table">
  | Value                                                       |
  | ----------------------------------------------------------- |
  | `DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED` |
  | `EXACT_LOCATION`                                            |
  | `INTERSECTING_LOCATION`                                     |
</div>

## DeveloperMetadataLocationType

<div className="enum-table">
  | Value                                          |
  | ---------------------------------------------- |
  | `DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED` |
  | `ROW`                                          |
  | `COLUMN`                                       |
  | `SHEET`                                        |
  | `SPREADSHEET`                                  |
</div>

## DeveloperMetadataVisibility

<div className="enum-table">
  | Value                                       |
  | ------------------------------------------- |
  | `DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED` |
  | `DOCUMENT`                                  |
  | `PROJECT`                                   |
</div>

## Dimension

<div className="enum-table">
  | Value                   |
  | ----------------------- |
  | `DIMENSION_UNSPECIFIED` |
  | `ROWS`                  |
  | `COLUMNS`               |
</div>

## DateTimeRenderOption

<div className="enum-table">
  | Value              |
  | ------------------ |
  | `SERIAL_NUMBER`    |
  | `FORMATTED_STRING` |
</div>

## InsertDataOption

<div className="enum-table">
  | Value         |
  | ------------- |
  | `OVERWRITE`   |
  | `INSERT_ROWS` |
</div>

## ValueInputOption

<div className="enum-table">
  | Value                            |
  | -------------------------------- |
  | `INPUT_VALUE_OPTION_UNSPECIFIED` |
  | `RAW`                            |
  | `USER_ENTERED`                   |
</div>

## ValueRenderOption

<div className="enum-table">
  | Value               |
  | ------------------- |
  | `FORMATTED_VALUE`   |
  | `UNFORMATTED_VALUE` |
  | `FORMULA`           |
</div>
