MCP Tools Reference: bigtable.googleapis.com

Tool: execute_sql

Executes a SQL query against a Bigtable instance. The tool returns at least 10 MiB of the proto-serialized result set (or just one row if the size of the proto-serialized representation of the row exceeds 10 MiB). The RPC may return more than 10 MiB of proto-serialized result set for performance reasons.

To support dynamic routing (which directs requests to the region where your data resides), set the x-goog-request-params header in the HTTP request to instance_name=<INSTANCE_NAME>. The instance name is the fully qualified resource name (e.g., projects/my-project/instances/my-instance). It can be provided as-is (raw string) or URL-encoded (e.g., projects%2Fmy-project%2Finstances%2Fmy-instance).

The following sample demonstrate how to use curl to invoke the execute_sql MCP tool.

Curl Request
                  
curl --location 'https://bigtable.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "execute_sql",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Input Schema

Request message for Bigtable.ExecuteSql

ExecuteSqlRequest

JSON representation
{
  "projectId": string,
  "instanceId": string,
  "appProfileId": string,
  "query": string,
  "viewParameters": {
    string: {
      object (Value)
    },
    ...
  }
}
Fields
projectId

string

Required. The project ID (e.g., "my-project"). If not known from the context, the Agent should attempt to get the current project ID from the gcloud config by running gcloud config get-value project. If the attempt fails, prompt the user for the project ID.

instanceId

string

Required. The instance ID within the project against which the query will be executed (e.g., just "myinstance" rather than "projects/myproject/instances/myinstance").

appProfileId

string

Optional. This value specifies routing for replication. If not specified, the default application profile will be used.

query

string

Required. The SQL query string.

viewParameters

map (key: string, value: object (Value))

This map provides the runtime values returned by the VIEW_PARAMETERS() function calls, typically used for user-level scoping of data based on identity.

The key is the name of the view parameter e.g. user_id, and the value is the parameter value e.g. alice@example.com.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ViewParametersEntry

JSON representation
{
  "key": string,
  "value": {
    object (Value)
  }
}
Fields
key

string

value

object (Value)

Value

JSON representation
{
  "partial": boolean,
  "type": {
    object (Type)
  },

  // Union field kind can be only one of the following:
  "rawValue": string,
  "rawTimestampMicros": string,
  "bytesValue": string,
  "stringValue": string,
  "intValue": string,
  "boolValue": boolean,
  "floatValue": number,
  "timestampValue": string,
  "dateValue": {
    object (Date)
  },
  "arrayValue": {
    object (ArrayValue)
  }
  // End of list of possible types for union field kind.
}
Fields
partial

boolean

Output only. If a value is partial, it must be merged with one or more values in the right order to construct a complete value. The last partial value will have this set to false, indicating the value is complete. A partial value will never be nested within a non-partial value. A nested partial value can only appear as the last element in a collection.

type

object (Type)

The verified Type of this Value, if it cannot be inferred.

Read results will never specify the encoding for type since the value will already have been decoded by the server. Furthermore, the type will be omitted entirely if it can be inferred from a previous response. The exact semantics for inferring type will vary, and are therefore documented separately for each read method.

When using composite types (Struct, Array, Map) only the outermost Value will specify the type. This top-level type will define the types for any nested Struct' fields,Arrayelements, orMapkey/value pairs. If a nestedValueprovides atype` on write, the request will be rejected with INVALID_ARGUMENT.

Union field kind. Options for transporting values within the protobuf type system. A given kind may support more than one type and vice versa. On write, this is roughly analogous to a GoogleSQL literal.

The value is NULL if none of the fields in kind is set. If type is also omitted on write, we will infer it based on the schema. kind can be only one of the following:

rawValue

string (bytes format)

Represents a raw byte sequence with no type information. The type field must be omitted.

A base64-encoded string.

rawTimestampMicros

string (int64 format)

Represents a raw cell timestamp with no type information. The type field must be omitted.

bytesValue

string (bytes format)

Represents a typed value transported as a byte sequence.

A base64-encoded string.

stringValue

string

Represents a typed value transported as a string.

intValue

string (int64 format)

Represents a typed value transported as an integer.

boolValue

boolean

Represents a typed value transported as a boolean.

floatValue

number

Represents a typed value transported as a floating point number. Does not support NaN or infinities.

timestampValue

string (Timestamp format)

Represents a typed value transported as a timestamp.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

dateValue

object (Date)

Represents a typed value transported as a date.

arrayValue

object (ArrayValue)

Represents a typed value transported as a sequence of values. To differentiate between Struct, Array, and Map, the outermost Value must provide an explicit type on write. This type will apply recursively to the nested Struct fields, Array elements, or Map key/value pairs, which must not supply their own type.

Type

JSON representation
{

  // Union field kind can be only one of the following:
  "bytesType": {
    object (Bytes)
  },
  "stringType": {
    object (String)
  },
  "int64Type": {
    object (Int64)
  },
  "float32Type": {
    object (Float32)
  },
  "float64Type": {
    object (Float64)
  },
  "boolType": {
    object (Bool)
  },
  "timestampType": {
    object (Timestamp)
  },
  "dateType": {
    object (Date)
  },
  "aggregateType": {
    object (Aggregate)
  },
  "structType": {
    object (Struct)
  },
  "arrayType": {
    object (Array)
  },
  "mapType": {
    object (Map)
  },
  "protoType": {
    object (Proto)
  },
  "enumType": {
    object (Enum)
  },
  "geographyType": {
    object (Geography)
  },
  "int32Type": {
    object (Int32)
  }
  // End of list of possible types for union field kind.
}
Fields
Union field kind. The kind of type that this represents. kind can be only one of the following:
bytesType

object (Bytes)

Bytes

stringType

object (String)

String

int64Type

object (Int64)

Int64

float32Type

object (Float32)

Float32

float64Type

object (Float64)

Float64

boolType

object (Bool)

Bool

timestampType

object (Timestamp)

Timestamp

dateType

object (Date)

Date

aggregateType

object (Aggregate)

Aggregate

structType

object (Struct)

Struct

arrayType

object (Array)

Array

mapType

object (Map)

Map

protoType

object (Proto)

Proto

enumType

object (Enum)

Enum

geographyType

object (Geography)

Geography

int32Type

object (Int32)

Int32

Bytes

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "raw": {
    object (Raw)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
raw

object (Raw)

Use Raw encoding.

Raw

JSON representation
{
  "escapeNulls": boolean
}
Fields
escapeNulls

boolean

If set, allows NULL values to be encoded as the empty string "".

The actual empty string, or any value which only contains the null byte 0x00, has one more null byte appended.

String

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "utf8Raw": {
    object (Utf8Raw)
  },
  "utf8Bytes": {
    object (Utf8Bytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
utf8Raw
(deprecated)

object (Utf8Raw)

Deprecated: if set, converts to an empty utf8_bytes.

utf8Bytes

object (Utf8Bytes)

Use Utf8Bytes encoding.

Utf8Bytes

JSON representation
{
  "nullEscapeChar": string
}
Fields
nullEscapeChar

string

Single-character escape sequence used to support NULL values.

If set, allows NULL values to be encoded as the empty string "".

The actual empty string, or any value where every character equals null_escape_char, has one more null_escape_char appended.

If null_escape_char is set and does not equal the ASCII null character 0x00, then the encoding will not support sorted mode.

.

Int64

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "bigEndianBytes": {
    object (BigEndianBytes)
  },
  "orderedCodeBytes": {
    object (OrderedCodeBytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
bigEndianBytes

object (BigEndianBytes)

Use BigEndianBytes encoding.

orderedCodeBytes

object (OrderedCodeBytes)

Use OrderedCodeBytes encoding.

BigEndianBytes

JSON representation
{
  "bytesType": {
    object (Bytes)
  }
}
Fields
bytesType
(deprecated)

object (Bytes)

Deprecated: ignored if set.

Float64

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "bigEndianBytes": {
    object (BigEndianBytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
bigEndianBytes

object (BigEndianBytes)

Use BigEndianBytes encoding.

Bool

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

Specifies the encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "sentinelBytes": {
    object (SentinelBytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
sentinelBytes

object (SentinelBytes)

Required. Use SentinelBytes encoding.

SentinelBytes

JSON representation
{

  // Union field _true_value can be only one of the following:
  "trueValue": string
  // End of list of possible types for union field _true_value.

  // Union field _false_value can be only one of the following:
  "falseValue": string
  // End of list of possible types for union field _false_value.
}
Fields

Union field _true_value.

_true_value can be only one of the following:

trueValue

string (bytes format)

Optional. The value to use for TRUE. If unset, TRUE values cannot be encoded.

A base64-encoded string.

Union field _false_value.

_false_value can be only one of the following:

falseValue

string (bytes format)

Optional. The value to use for FALSE. If unset, FALSE values cannot be encoded.

A base64-encoded string.

Timestamp

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "unixMicrosInt64": {
    object (Encoding)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
unixMicrosInt64

object (Encoding)

Encodes the number of microseconds since the Unix epoch using the given Int64 encoding. Values must be microsecond-aligned.

Compatible with:

  • Java Instant.truncatedTo() with ChronoUnit.MICROS

Aggregate

JSON representation
{
  "inputType": {
    object (Type)
  },
  "stateType": {
    object (Type)
  },

  // Union field aggregator can be only one of the following:
  "sum": {
    object (Sum)
  },
  "hllppUniqueCount": {
    object (HyperLogLogPlusPlusUniqueCount)
  },
  "max": {
    object (Max)
  },
  "min": {
    object (Min)
  },
  "kllQuantiles": {
    object (KllQuantiles)
  }
  // End of list of possible types for union field aggregator.
}
Fields
inputType

object (Type)

Type of the inputs that are accumulated by this Aggregate. Use AddInput mutations to accumulate new inputs.

stateType

object (Type)

Output only. Type that holds the internal accumulator state for the Aggregate. This is a function of the input_type and aggregator chosen.

Union field aggregator. Which aggregator function to use. The configured types must match. aggregator can be only one of the following:
sum

object (Sum)

Sum aggregator.

hllppUniqueCount

object (HyperLogLogPlusPlusUniqueCount)

HyperLogLogPlusPlusUniqueCount aggregator.

max

object (Max)

Max aggregator.

min

object (Min)

Min aggregator.

kllQuantiles

object (KllQuantiles)

KllQuantiles aggregator.

Struct

JSON representation
{
  "fields": [
    {
      object (Field)
    }
  ],
  "encoding": {
    object (Encoding)
  }
}
Fields
fields[]

object (Field)

The names and types of the fields in this struct.

encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Field

JSON representation
{
  "fieldName": string,
  "type": {
    object (Type)
  }
}
Fields
fieldName

string

The field name (optional). Fields without a field_name are considered anonymous and cannot be referenced by name.

type

object (Type)

The type of values in this field.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "singleton": {
    object (Singleton)
  },
  "delimitedBytes": {
    object (DelimitedBytes)
  },
  "orderedCodeBytes": {
    object (OrderedCodeBytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
singleton

object (Singleton)

Use Singleton encoding.

delimitedBytes

object (DelimitedBytes)

Use DelimitedBytes encoding.

orderedCodeBytes

object (OrderedCodeBytes)

User OrderedCodeBytes encoding.

DelimitedBytes

JSON representation
{
  "delimiter": string
}
Fields
delimiter

string (bytes format)

Byte sequence used to delimit concatenated fields. The delimiter must contain at least 1 character and at most 50 characters.

A base64-encoded string.

Array

JSON representation
{
  "elementType": {
    object (Type)
  }
}
Fields
elementType

object (Type)

The type of the elements in the array. This must not be Array.

Map

JSON representation
{
  "keyType": {
    object (Type)
  },
  "valueType": {
    object (Type)
  }
}
Fields
keyType

object (Type)

The type of a map key. Only Bytes, String, and Int64 are allowed as key types.

valueType

object (Type)

The type of the values in a map.

Proto

JSON representation
{
  "schemaBundleId": string,
  "messageName": string
}
Fields
schemaBundleId

string

The ID of the schema bundle that this proto is defined in.

messageName

string

The fully qualified name of the protobuf message, including package. In the format of "foo.bar.Message".

Enum

JSON representation
{
  "schemaBundleId": string,
  "enumName": string
}
Fields
schemaBundleId

string

The ID of the schema bundle that this enum is defined in.

enumName

string

The fully qualified name of the protobuf enum message, including package. In the format of "foo.bar.EnumMessage".

Int32

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "bigEndianBytes": {
    object (BigEndianBytes)
  },
  "orderedCodeBytes": {
    object (OrderedCodeBytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
bigEndianBytes

object (BigEndianBytes)

Use BigEndianBytes encoding.

orderedCodeBytes

object (OrderedCodeBytes)

Use OrderedCodeBytes encoding.

Timestamp

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).

nanos

integer

Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive.

Date

JSON representation
{
  "year": integer,
  "month": integer,
  "day": integer
}
Fields
year

integer

Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.

month

integer

Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.

day

integer

Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.

ArrayValue

JSON representation
{
  "values": [
    {
      object (Value)
    }
  ]
}
Fields
values[]

object (Value)

The ordered elements in the array.

Output Schema

Response message for Bigtable.ExecuteSql

ExecuteSqlResponse

JSON representation
{
  "columns": [
    {
      object (ColumnMetadata)
    }
  ],
  "rows": [
    {
      object (ArrayValue)
    }
  ],
  "truncated": boolean
}
Fields
columns[]

object (ColumnMetadata)

The columns in the result set.

rows[]

object (ArrayValue)

The rows in the result set wherein each row contains values with schema matching the columns field above.

truncated

boolean

Whether the response is truncated.

ColumnMetadata

JSON representation
{
  "name": string,
  "type": {
    object (Type)
  }
}
Fields
name

string

The name of the column.

type

object (Type)

The type of the column.

Type

JSON representation
{

  // Union field kind can be only one of the following:
  "bytesType": {
    object (Bytes)
  },
  "stringType": {
    object (String)
  },
  "int64Type": {
    object (Int64)
  },
  "float32Type": {
    object (Float32)
  },
  "float64Type": {
    object (Float64)
  },
  "boolType": {
    object (Bool)
  },
  "timestampType": {
    object (Timestamp)
  },
  "dateType": {
    object (Date)
  },
  "aggregateType": {
    object (Aggregate)
  },
  "structType": {
    object (Struct)
  },
  "arrayType": {
    object (Array)
  },
  "mapType": {
    object (Map)
  },
  "protoType": {
    object (Proto)
  },
  "enumType": {
    object (Enum)
  },
  "geographyType": {
    object (Geography)
  },
  "int32Type": {
    object (Int32)
  }
  // End of list of possible types for union field kind.
}
Fields
Union field kind. The kind of type that this represents. kind can be only one of the following:
bytesType

object (Bytes)

Bytes

stringType

object (String)

String

int64Type

object (Int64)

Int64

float32Type

object (Float32)

Float32

float64Type

object (Float64)

Float64

boolType

object (Bool)

Bool

timestampType

object (Timestamp)

Timestamp

dateType

object (Date)

Date

aggregateType

object (Aggregate)

Aggregate

structType

object (Struct)

Struct

arrayType

object (Array)

Array

mapType

object (Map)

Map

protoType

object (Proto)

Proto

enumType

object (Enum)

Enum

geographyType

object (Geography)

Geography

int32Type

object (Int32)

Int32

Bytes

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "raw": {
    object (Raw)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
raw

object (Raw)

Use Raw encoding.

Raw

JSON representation
{
  "escapeNulls": boolean
}
Fields
escapeNulls

boolean

If set, allows NULL values to be encoded as the empty string "".

The actual empty string, or any value which only contains the null byte 0x00, has one more null byte appended.

String

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "utf8Raw": {
    object (Utf8Raw)
  },
  "utf8Bytes": {
    object (Utf8Bytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
utf8Raw
(deprecated)

object (Utf8Raw)

Deprecated: if set, converts to an empty utf8_bytes.

utf8Bytes

object (Utf8Bytes)

Use Utf8Bytes encoding.

Utf8Bytes

JSON representation
{
  "nullEscapeChar": string
}
Fields
nullEscapeChar

string

Single-character escape sequence used to support NULL values.

If set, allows NULL values to be encoded as the empty string "".

The actual empty string, or any value where every character equals null_escape_char, has one more null_escape_char appended.

If null_escape_char is set and does not equal the ASCII null character 0x00, then the encoding will not support sorted mode.

.

Int64

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "bigEndianBytes": {
    object (BigEndianBytes)
  },
  "orderedCodeBytes": {
    object (OrderedCodeBytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
bigEndianBytes

object (BigEndianBytes)

Use BigEndianBytes encoding.

orderedCodeBytes

object (OrderedCodeBytes)

Use OrderedCodeBytes encoding.

BigEndianBytes

JSON representation
{
  "bytesType": {
    object (Bytes)
  }
}
Fields
bytesType
(deprecated)

object (Bytes)

Deprecated: ignored if set.

Float64

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "bigEndianBytes": {
    object (BigEndianBytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
bigEndianBytes

object (BigEndianBytes)

Use BigEndianBytes encoding.

Bool

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

Specifies the encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "sentinelBytes": {
    object (SentinelBytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
sentinelBytes

object (SentinelBytes)

Required. Use SentinelBytes encoding.

SentinelBytes

JSON representation
{

  // Union field _true_value can be only one of the following:
  "trueValue": string
  // End of list of possible types for union field _true_value.

  // Union field _false_value can be only one of the following:
  "falseValue": string
  // End of list of possible types for union field _false_value.
}
Fields

Union field _true_value.

_true_value can be only one of the following:

trueValue

string (bytes format)

Optional. The value to use for TRUE. If unset, TRUE values cannot be encoded.

A base64-encoded string.

Union field _false_value.

_false_value can be only one of the following:

falseValue

string (bytes format)

Optional. The value to use for FALSE. If unset, FALSE values cannot be encoded.

A base64-encoded string.

Timestamp

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "unixMicrosInt64": {
    object (Encoding)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
unixMicrosInt64

object (Encoding)

Encodes the number of microseconds since the Unix epoch using the given Int64 encoding. Values must be microsecond-aligned.

Compatible with:

  • Java Instant.truncatedTo() with ChronoUnit.MICROS

Aggregate

JSON representation
{
  "inputType": {
    object (Type)
  },
  "stateType": {
    object (Type)
  },

  // Union field aggregator can be only one of the following:
  "sum": {
    object (Sum)
  },
  "hllppUniqueCount": {
    object (HyperLogLogPlusPlusUniqueCount)
  },
  "max": {
    object (Max)
  },
  "min": {
    object (Min)
  },
  "kllQuantiles": {
    object (KllQuantiles)
  }
  // End of list of possible types for union field aggregator.
}
Fields
inputType

object (Type)

Type of the inputs that are accumulated by this Aggregate. Use AddInput mutations to accumulate new inputs.

stateType

object (Type)

Output only. Type that holds the internal accumulator state for the Aggregate. This is a function of the input_type and aggregator chosen.

Union field aggregator. Which aggregator function to use. The configured types must match. aggregator can be only one of the following:
sum

object (Sum)

Sum aggregator.

hllppUniqueCount

object (HyperLogLogPlusPlusUniqueCount)

HyperLogLogPlusPlusUniqueCount aggregator.

max

object (Max)

Max aggregator.

min

object (Min)

Min aggregator.

kllQuantiles

object (KllQuantiles)

KllQuantiles aggregator.

Struct

JSON representation
{
  "fields": [
    {
      object (Field)
    }
  ],
  "encoding": {
    object (Encoding)
  }
}
Fields
fields[]

object (Field)

The names and types of the fields in this struct.

encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Field

JSON representation
{
  "fieldName": string,
  "type": {
    object (Type)
  }
}
Fields
fieldName

string

The field name (optional). Fields without a field_name are considered anonymous and cannot be referenced by name.

type

object (Type)

The type of values in this field.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "singleton": {
    object (Singleton)
  },
  "delimitedBytes": {
    object (DelimitedBytes)
  },
  "orderedCodeBytes": {
    object (OrderedCodeBytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
singleton

object (Singleton)

Use Singleton encoding.

delimitedBytes

object (DelimitedBytes)

Use DelimitedBytes encoding.

orderedCodeBytes

object (OrderedCodeBytes)

User OrderedCodeBytes encoding.

DelimitedBytes

JSON representation
{
  "delimiter": string
}
Fields
delimiter

string (bytes format)

Byte sequence used to delimit concatenated fields. The delimiter must contain at least 1 character and at most 50 characters.

A base64-encoded string.

Array

JSON representation
{
  "elementType": {
    object (Type)
  }
}
Fields
elementType

object (Type)

The type of the elements in the array. This must not be Array.

Map

JSON representation
{
  "keyType": {
    object (Type)
  },
  "valueType": {
    object (Type)
  }
}
Fields
keyType

object (Type)

The type of a map key. Only Bytes, String, and Int64 are allowed as key types.

valueType

object (Type)

The type of the values in a map.

Proto

JSON representation
{
  "schemaBundleId": string,
  "messageName": string
}
Fields
schemaBundleId

string

The ID of the schema bundle that this proto is defined in.

messageName

string

The fully qualified name of the protobuf message, including package. In the format of "foo.bar.Message".

Enum

JSON representation
{
  "schemaBundleId": string,
  "enumName": string
}
Fields
schemaBundleId

string

The ID of the schema bundle that this enum is defined in.

enumName

string

The fully qualified name of the protobuf enum message, including package. In the format of "foo.bar.EnumMessage".

Int32

JSON representation
{
  "encoding": {
    object (Encoding)
  }
}
Fields
encoding

object (Encoding)

The encoding to use when converting to or from lower level types.

Encoding

JSON representation
{

  // Union field encoding can be only one of the following:
  "bigEndianBytes": {
    object (BigEndianBytes)
  },
  "orderedCodeBytes": {
    object (OrderedCodeBytes)
  }
  // End of list of possible types for union field encoding.
}
Fields
Union field encoding. Specifies which encoding to use. encoding can be only one of the following:
bigEndianBytes

object (BigEndianBytes)

Use BigEndianBytes encoding.

orderedCodeBytes

object (OrderedCodeBytes)

Use OrderedCodeBytes encoding.

ArrayValue

JSON representation
{
  "values": [
    {
      object (Value)
    }
  ]
}
Fields
values[]

object (Value)

The ordered elements in the array.

Value

JSON representation
{
  "partial": boolean,
  "type": {
    object (Type)
  },

  // Union field kind can be only one of the following:
  "rawValue": string,
  "rawTimestampMicros": string,
  "bytesValue": string,
  "stringValue": string,
  "intValue": string,
  "boolValue": boolean,
  "floatValue": number,
  "timestampValue": string,
  "dateValue": {
    object (Date)
  },
  "arrayValue": {
    object (ArrayValue)
  }
  // End of list of possible types for union field kind.
}
Fields
partial

boolean

Output only. If a value is partial, it must be merged with one or more values in the right order to construct a complete value. The last partial value will have this set to false, indicating the value is complete. A partial value will never be nested within a non-partial value. A nested partial value can only appear as the last element in a collection.

type

object (Type)

The verified Type of this Value, if it cannot be inferred.

Read results will never specify the encoding for type since the value will already have been decoded by the server. Furthermore, the type will be omitted entirely if it can be inferred from a previous response. The exact semantics for inferring type will vary, and are therefore documented separately for each read method.

When using composite types (Struct, Array, Map) only the outermost Value will specify the type. This top-level type will define the types for any nested Struct' fields,Arrayelements, orMapkey/value pairs. If a nestedValueprovides atype` on write, the request will be rejected with INVALID_ARGUMENT.

Union field kind. Options for transporting values within the protobuf type system. A given kind may support more than one type and vice versa. On write, this is roughly analogous to a GoogleSQL literal.

The value is NULL if none of the fields in kind is set. If type is also omitted on write, we will infer it based on the schema. kind can be only one of the following:

rawValue

string (bytes format)

Represents a raw byte sequence with no type information. The type field must be omitted.

A base64-encoded string.

rawTimestampMicros

string (int64 format)

Represents a raw cell timestamp with no type information. The type field must be omitted.

bytesValue

string (bytes format)

Represents a typed value transported as a byte sequence.

A base64-encoded string.

stringValue

string

Represents a typed value transported as a string.

intValue

string (int64 format)

Represents a typed value transported as an integer.

boolValue

boolean

Represents a typed value transported as a boolean.

floatValue

number

Represents a typed value transported as a floating point number. Does not support NaN or infinities.

timestampValue

string (Timestamp format)

Represents a typed value transported as a timestamp.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

dateValue

object (Date)

Represents a typed value transported as a date.

arrayValue

object (ArrayValue)

Represents a typed value transported as a sequence of values. To differentiate between Struct, Array, and Map, the outermost Value must provide an explicit type on write. This type will apply recursively to the nested Struct fields, Array elements, or Map key/value pairs, which must not supply their own type.

Timestamp

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).

nanos

integer

Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive.

Date

JSON representation
{
  "year": integer,
  "month": integer,
  "day": integer
}
Fields
year

integer

Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.

month

integer

Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.

day

integer

Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.

Tool Annotations

Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌