googleapis/google/cloud/bigquery/v2/table.proto
Google APIs fc97b79340 feat: expose new arrow-related query artifacts
docs: more detailed IAM permission docs
docs: minor updates to docstrings
feat: expanded object storage statistics
feat: additional runtime controls for managed functions

PiperOrigin-RevId: 966132848
2026-08-17 12:58:04 -07:00

765 lines
30 KiB
Protocol Buffer

// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.bigquery.v2;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/cloud/bigquery/v2/biglake_config.proto";
import "google/cloud/bigquery/v2/clustering.proto";
import "google/cloud/bigquery/v2/encryption_config.proto";
import "google/cloud/bigquery/v2/error.proto";
import "google/cloud/bigquery/v2/external_catalog_table_options.proto";
import "google/cloud/bigquery/v2/external_data_config.proto";
import "google/cloud/bigquery/v2/managed_table_type.proto";
import "google/cloud/bigquery/v2/partitioning_definition.proto";
import "google/cloud/bigquery/v2/privacy_policy.proto";
import "google/cloud/bigquery/v2/range_partitioning.proto";
import "google/cloud/bigquery/v2/restriction_config.proto";
import "google/cloud/bigquery/v2/table_constraints.proto";
import "google/cloud/bigquery/v2/table_reference.proto";
import "google/cloud/bigquery/v2/table_schema.proto";
import "google/cloud/bigquery/v2/time_partitioning.proto";
import "google/cloud/bigquery/v2/udf_resource.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "cloud.google.com/go/bigquery/v2/apiv2/bigquerypb;bigquerypb";
option java_outer_classname = "TableProto";
option java_package = "com.google.cloud.bigquery.v2";
// TableService provides methods for managing BigQuery tables and table-like
// entities such as views and snapshots.
service TableService {
option (google.api.default_host) = "bigquery.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/bigquery,"
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/cloud-platform.read-only";
// Gets the specified table resource by table ID.
// This method does not return the data in the table, it only returns the
// table resource, which describes the structure of this table.
//
// # IAM Permissions
//
// Requires the `bigquery.tables.get` permission on the table.
rpc GetTable(GetTableRequest) returns (Table) {
option (google.api.http) = {
get: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}"
};
}
// Creates a new, empty table in the dataset.
//
// # IAM Permissions
//
// Requires the `bigquery.tables.create` permission on the dataset.
rpc InsertTable(InsertTableRequest) returns (Table) {
option (google.api.http) = {
post: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables"
body: "table"
};
}
// Updates information in an existing table. The update method replaces the
// entire table resource, whereas the patch method only replaces fields that
// are provided in the submitted table resource.
// This method supports RFC5789 patch semantics.
//
// # IAM Permissions
//
// Requires the following IAM permission(s) on the table:
//
// - `bigquery.tables.update`
// - `bigquery.tables.get`
rpc PatchTable(UpdateOrPatchTableRequest) returns (Table) {
option (google.api.http) = {
patch: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}"
body: "table"
};
}
// Updates information in an existing table. The update method replaces the
// entire Table resource, whereas the patch method only replaces fields that
// are provided in the submitted Table resource.
//
// # IAM Permissions
//
// Requires the `bigquery.tables.update` permission on the table.
rpc UpdateTable(UpdateOrPatchTableRequest) returns (Table) {
option (google.api.http) = {
put: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}"
body: "table"
};
}
// Deletes the table specified by tableId from the dataset.
// If the table contains data, all the data will be deleted.
//
// # IAM Permissions
//
// Requires the `bigquery.tables.delete` permission on the table.
rpc DeleteTable(DeleteTableRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}"
};
}
// Lists all tables in the specified dataset. Requires the READER dataset
// role.
//
// # IAM Permissions
//
// Requires the `bigquery.tables.list` permission on the dataset.
rpc ListTables(ListTablesRequest) returns (TableList) {
option (google.api.http) = {
get: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables"
};
}
}
// Replication info of a table created using `AS REPLICA` DDL like:
// `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv`
message TableReplicationInfo {
// Replication status of the table created using `AS REPLICA` like:
// `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv`
enum ReplicationStatus {
// Default value.
REPLICATION_STATUS_UNSPECIFIED = 0;
// Replication is Active with no errors.
ACTIVE = 1;
// Source object is deleted.
SOURCE_DELETED = 2;
// Source revoked replication permissions.
PERMISSION_DENIED = 3;
// Source configuration doesn't allow replication.
UNSUPPORTED_CONFIGURATION = 4;
}
// Required. Source table reference that is replicated.
TableReference source_table = 1 [(google.api.field_behavior) = REQUIRED];
// Optional. Specifies the interval at which the source table is polled for
// updates.
// It's Optional. If not specified, default replication interval would be
// applied.
int64 replication_interval_ms = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Output only. If source is a materialized view, this field
// signifies the last refresh time of the source.
int64 replicated_source_last_refresh_time = 3 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.field_behavior) = OPTIONAL
];
// Optional. Output only. Replication status of configured replication.
ReplicationStatus replication_status = 4 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.field_behavior) = OPTIONAL
];
// Optional. Output only. Replication error that will permanently stopped
// table replication.
ErrorProto replication_error = 5 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.field_behavior) = OPTIONAL
];
}
// Describes the definition of a logical view.
message ViewDefinition {
// Required. A query that BigQuery executes when the view is referenced.
string query = 1 [(google.api.field_behavior) = REQUIRED];
// Describes user-defined function resources used in the query.
repeated UserDefinedFunctionResource user_defined_function_resources = 2;
// Specifies whether to use BigQuery's legacy SQL for this view.
// The default value is true. If set to false, the view uses
// BigQuery's
// [GoogleSQL](https://docs.cloud.google.com/bigquery/docs/introduction-sql).
//
// Queries and views that reference this view must use the same flag value.
// A wrapper is used here because the default value is True.
google.protobuf.BoolValue use_legacy_sql = 3;
// True if the column names are explicitly specified. For example by using the
// 'CREATE VIEW v(c1, c2) AS ...' syntax.
// Can only be set for GoogleSQL views.
bool use_explicit_column_names = 4;
// Optional. Specifies the privacy policy for the view.
PrivacyPolicy privacy_policy = 5 [(google.api.field_behavior) = OPTIONAL];
// Optional. Foreign view representations.
repeated ForeignViewDefinition foreign_definitions = 6
[(google.api.field_behavior) = OPTIONAL];
}
// A view can be represented in multiple ways. Each representation has its own
// dialect. This message stores the metadata required for these representations.
message ForeignViewDefinition {
// Required. The query that defines the view.
string query = 1 [(google.api.field_behavior) = REQUIRED];
// Optional. Represents the dialect of the query.
string dialect = 7 [(google.api.field_behavior) = OPTIONAL];
}
// Definition and configuration of a materialized view.
message MaterializedViewDefinition {
// Required. A query whose results are persisted.
string query = 1 [(google.api.field_behavior) = REQUIRED];
// Output only. The time when this materialized view was last refreshed, in
// milliseconds since the epoch.
int64 last_refresh_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Enable automatic refresh of the materialized view when the base
// table is updated. The default value is "true".
google.protobuf.BoolValue enable_refresh = 3
[(google.api.field_behavior) = OPTIONAL];
// Optional. The maximum frequency at which this materialized view will be
// refreshed. The default value is "1800000" (30 minutes).
google.protobuf.UInt64Value refresh_interval_ms = 4
[(google.api.field_behavior) = OPTIONAL];
// Optional. This option declares the intention to construct a materialized
// view that isn't refreshed incrementally. Non-incremental materialized views
// support an expanded range of SQL queries. The
// `allow_non_incremental_definition` option can't be changed after the
// materialized view is created.
google.protobuf.BoolValue allow_non_incremental_definition = 6
[(google.api.field_behavior) = OPTIONAL];
}
// Status of a materialized view.
// The last refresh timestamp status is omitted here, but is present in the
// MaterializedViewDefinition message.
message MaterializedViewStatus {
// Output only. Refresh watermark of materialized view. The base tables' data
// were collected into the materialized view cache until this time.
google.protobuf.Timestamp refresh_watermark = 1
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Error result of the last automatic refresh. If present,
// indicates that the last automatic refresh was unsuccessful.
ErrorProto last_refresh_status = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Information about base table and snapshot time of the snapshot.
message SnapshotDefinition {
// Required. Reference describing the ID of the table that was snapshot.
TableReference base_table_reference = 1
[(google.api.field_behavior) = REQUIRED];
// Required. The time at which the base table was snapshot. This value is
// reported in the JSON response using RFC3339 format.
google.protobuf.Timestamp snapshot_time = 2
[(google.api.field_behavior) = REQUIRED];
}
// Information about base table and clone time of a table clone.
message CloneDefinition {
// Required. Reference describing the ID of the table that was cloned.
TableReference base_table_reference = 1
[(google.api.field_behavior) = REQUIRED];
// Required. The time at which the base table was cloned. This value is
// reported in the JSON response using RFC3339 format.
google.protobuf.Timestamp clone_time = 2
[(google.api.field_behavior) = REQUIRED];
}
message Streamingbuffer {
// Output only. A lower-bound estimate of the number of bytes currently in
// the streaming buffer.
uint64 estimated_bytes = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. A lower-bound estimate of the number of rows currently in the
// streaming buffer.
uint64 estimated_rows = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Contains the timestamp of the oldest entry in the streaming
// buffer, in milliseconds since the epoch, if the streaming buffer is
// available.
fixed64 oldest_entry_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
}
message Table {
// The type of resource ID.
string kind = 1;
// Output only. A hash of this resource.
string etag = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. An opaque ID uniquely identifying the table.
string id = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. A URL that can be used to access this resource again.
string self_link = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. Reference describing the ID of this table.
TableReference table_reference = 5 [(google.api.field_behavior) = REQUIRED];
// Optional. A descriptive name for this table.
google.protobuf.StringValue friendly_name = 6
[(google.api.field_behavior) = OPTIONAL];
// Optional. A user-friendly description of this table.
google.protobuf.StringValue description = 7
[(google.api.field_behavior) = OPTIONAL];
// The labels associated with this table. You can use these to organize and
// group your tables. Label keys and values can be no longer than 63
// characters, can only contain lowercase letters, numeric characters,
// underscores and dashes. International characters are allowed. Label values
// are optional. Label keys must start with a letter and each label in the
// list must have a different key.
map<string, string> labels = 8;
// Optional. Describes the schema of this table.
TableSchema schema = 9 [(google.api.field_behavior) = OPTIONAL];
// If specified, configures time-based partitioning for this table.
TimePartitioning time_partitioning = 10;
// If specified, configures range partitioning for this table.
RangePartitioning range_partitioning = 27;
// Clustering specification for the table. Must be specified with time-based
// partitioning, data in the table will be first partitioned and subsequently
// clustered.
Clustering clustering = 23;
// Optional. If set to true, queries over this table require
// a partition filter that can be used for partition elimination to be
// specified.
google.protobuf.BoolValue require_partition_filter = 28
[(google.api.field_behavior) = OPTIONAL];
// Optional. The partition information for all table formats, including
// managed partitioned tables, hive partitioned tables, iceberg partitioned,
// and metastore partitioned tables. This field is only populated for
// metastore partitioned tables. For other table formats, this is an output
// only field.
optional PartitioningDefinition partition_definition = 51
[(google.api.field_behavior) = OPTIONAL];
// Output only. The size of this table in logical bytes, excluding any data in
// the streaming buffer.
google.protobuf.Int64Value num_bytes = 11
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The physical size of this table in bytes. This includes
// storage used for time travel.
google.protobuf.Int64Value num_physical_bytes = 26
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The number of logical bytes in the table that are considered
// "long-term storage".
google.protobuf.Int64Value num_long_term_bytes = 12
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The number of rows of data in this table, excluding any data
// in the streaming buffer.
google.protobuf.UInt64Value num_rows = 13
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time when this table was created, in milliseconds since
// the epoch.
int64 creation_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The time when this table expires, in milliseconds since the
// epoch. If not present, the table will persist indefinitely. Expired tables
// will be deleted and their storage reclaimed. The defaultTableExpirationMs
// property of the encapsulating dataset can be used to set a default
// expirationTime on newly created tables.
google.protobuf.Int64Value expiration_time = 15
[(google.api.field_behavior) = OPTIONAL];
// Output only. The time when this table was last modified, in milliseconds
// since the epoch.
fixed64 last_modified_time = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Describes the table type. The following values are supported:
//
// * `TABLE`: A normal BigQuery table.
// * `VIEW`: A virtual table defined by a SQL query.
// * `EXTERNAL`: A table that references data stored in an external storage
// system, such as Google Cloud Storage.
// * `MATERIALIZED_VIEW`: A precomputed view defined by a SQL query.
// * `SNAPSHOT`: An immutable BigQuery table that preserves the contents of a
// base table at a particular time. See additional information on
// [table
// snapshots](https://cloud.google.com/bigquery/docs/table-snapshots-intro).
//
// The default value is `TABLE`.
string type = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The view definition.
ViewDefinition view = 18 [(google.api.field_behavior) = OPTIONAL];
// Optional. The materialized view definition.
MaterializedViewDefinition materialized_view = 25
[(google.api.field_behavior) = OPTIONAL];
// Output only. The materialized view status.
MaterializedViewStatus materialized_view_status = 42
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Describes the data format, location, and other properties of
// a table stored outside of BigQuery. By defining these properties, the data
// source can then be queried as if it were a standard BigQuery table.
ExternalDataConfiguration external_data_configuration = 19
[(google.api.field_behavior) = OPTIONAL];
// Optional. Specifies the configuration of a BigQuery table for Apache
// Iceberg.
BigLakeConfiguration biglake_configuration = 45
[(google.api.field_behavior) = OPTIONAL];
// Optional. If set, overrides the default managed table type configured in
// the dataset.
ManagedTableType managed_table_type = 55
[(google.api.field_behavior) = OPTIONAL];
// Output only. The geographic location where the table resides. This value
// is inherited from the dataset.
string location = 20 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Contains information regarding this table's streaming buffer,
// if one is present. This field will be absent if the table is not being
// streamed to or if there is no data in the streaming buffer.
Streamingbuffer streaming_buffer = 21
[(google.api.field_behavior) = OUTPUT_ONLY];
// Custom encryption configuration (e.g., Cloud KMS keys).
EncryptionConfiguration encryption_configuration = 22;
// Output only. Contains information about the snapshot. This value is set via
// snapshot creation.
SnapshotDefinition snapshot_definition = 29
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Defines the default collation specification of new STRING fields
// in the table. During table creation or update, if a STRING field is added
// to this table without explicit collation specified, then the table inherits
// the table default collation. A change to this field affects only fields
// added afterwards, and does not alter the existing fields.
// The following values are supported:
//
// * 'und:ci': undetermined locale, case insensitive.
// * '': empty string. Default to case-sensitive behavior.
google.protobuf.StringValue default_collation = 30
[(google.api.field_behavior) = OPTIONAL];
// Optional. Defines the default rounding mode specification of new decimal
// fields (NUMERIC OR BIGNUMERIC) in the table. During table creation or
// update, if a decimal field is added to this table without an explicit
// rounding mode specified, then the field inherits the table default
// rounding mode. Changing this field doesn't affect existing fields.
TableFieldSchema.RoundingMode default_rounding_mode = 44
[(google.api.field_behavior) = OPTIONAL];
// Output only. Contains information about the clone. This value is set via
// the clone operation.
CloneDefinition clone_definition = 31
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Number of physical bytes used by time travel storage (deleted
// or changed data). This data is not kept in real time, and might be delayed
// by a few seconds to a few minutes.
google.protobuf.Int64Value num_time_travel_physical_bytes = 33
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Total number of logical bytes in the table or materialized
// view.
google.protobuf.Int64Value num_total_logical_bytes = 34
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Number of logical bytes that are less than 90 days old.
google.protobuf.Int64Value num_active_logical_bytes = 35
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Number of logical bytes that are more than 90 days old.
google.protobuf.Int64Value num_long_term_logical_bytes = 36
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Number of physical bytes used by current live data storage.
// This data is not kept in real time, and might be delayed by a few seconds
// to a few minutes.
google.protobuf.Int64Value num_current_physical_bytes = 53
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The physical size of this table in bytes. This also includes
// storage used for time travel. This data is not kept in real time, and might
// be delayed by a few seconds to a few minutes.
google.protobuf.Int64Value num_total_physical_bytes = 37
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Number of physical bytes less than 90 days old. This data is
// not kept in real time, and might be delayed by a few seconds to a few
// minutes.
google.protobuf.Int64Value num_active_physical_bytes = 38
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Number of physical bytes more than 90 days old.
// This data is not kept in real time, and might be delayed by a few seconds
// to a few minutes.
google.protobuf.Int64Value num_long_term_physical_bytes = 39
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The number of partitions present in the table or materialized
// view. This data is not kept in real time, and might be delayed by a few
// seconds to a few minutes.
google.protobuf.Int64Value num_partitions = 40
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The maximum staleness of data that could be returned when the
// table (or stale MV) is queried. Staleness encoded as a string encoding
// of sql IntervalValue type.
string max_staleness = 41 [(google.api.field_behavior) = OPTIONAL];
// Optional. Output only. Restriction config for table. If set, restrict
// certain accesses on the table based on the config. See [Data
// egress](https://cloud.google.com/bigquery/docs/analytics-hub-introduction#data_egress)
// for more details.
RestrictionConfig restrictions = 46 [
(google.api.field_behavior) = OPTIONAL,
(google.api.field_behavior) = OUTPUT_ONLY
];
// Optional. Tables Primary Key and Foreign Key information
TableConstraints table_constraints = 47
[(google.api.field_behavior) = OPTIONAL];
// Optional. The [tags](https://cloud.google.com/bigquery/docs/tags) attached
// to this table. Tag keys are globally unique. Tag key is expected to be in
// the namespaced format, for example "123456789012/environment" where
// 123456789012 is the ID of the parent organization or project resource for
// this tag key. Tag value is expected to be the short name, for example
// "Production". See [Tag
// definitions](https://cloud.google.com/iam/docs/tags-access-control#definitions)
// for more details.
map<string, string> resource_tags = 48
[(google.api.field_behavior) = OPTIONAL];
// Optional. Table replication info for table created `AS REPLICA` DDL like:
// `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv`
TableReplicationInfo table_replication_info = 49
[(google.api.field_behavior) = OPTIONAL];
// Optional. Output only. Table references of all replicas currently active on
// the table.
repeated TableReference replicas = 50 [
(google.api.field_behavior) = OPTIONAL,
(google.api.field_behavior) = OUTPUT_ONLY
];
// Optional. Options defining open source compatible table.
ExternalCatalogTableOptions external_catalog_table_options = 54
[(google.api.field_behavior) = OPTIONAL];
}
// Request format for getting table metadata.
message GetTableRequest {
// TableMetadataView specifies which table information is returned.
enum TableMetadataView {
// The default value.
// Default to the STORAGE_STATS view.
TABLE_METADATA_VIEW_UNSPECIFIED = 0;
// Includes basic table information including schema and
// partitioning specification. This view does not include storage statistics
// such as numRows or numBytes. This view is significantly more efficient
// and should be used to support high query rates.
BASIC = 1;
// Includes all information in the BASIC view as well as storage statistics
// (numBytes, numLongTermBytes, numRows and lastModifiedTime).
STORAGE_STATS = 2;
// Includes all table information, including storage statistics.
// It returns same information as STORAGE_STATS view, but may contain
// additional information in the future.
FULL = 3;
}
// Required. Project ID of the requested table
string project_id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Dataset ID of the requested table
string dataset_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. Table ID of the requested table
string table_id = 3 [(google.api.field_behavior) = REQUIRED];
// List of table schema fields to return (comma-separated).
// If unspecified, all fields are returned.
// A fieldMask cannot be used here because the fields will automatically be
// converted from camelCase to snake_case and the conversion will fail if
// there are underscores. Since these are fields in BigQuery table schemas,
// underscores are allowed.
string selected_fields = 4;
// Optional. Specifies the view that determines which table information is
// returned. By default, basic table information and storage statistics
// (STORAGE_STATS) are returned.
TableMetadataView view = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Request format for inserting table metadata.
message InsertTableRequest {
// Required. Project ID of the new table
string project_id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Dataset ID of the new table
string dataset_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. A tables resource to insert
Table table = 4 [(google.api.field_behavior) = REQUIRED];
}
message UpdateOrPatchTableRequest {
// Required. Project ID of the table to update
string project_id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Dataset ID of the table to update
string dataset_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. Table ID of the table to update
string table_id = 3 [(google.api.field_behavior) = REQUIRED];
// Required. A tables resource which will replace or patch the specified table
Table table = 4 [(google.api.field_behavior) = REQUIRED];
// Optional. When true will autodetect schema, else will keep original schema.
bool autodetect_schema = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Request format for deleting a table.
message DeleteTableRequest {
// Required. Project ID of the table to delete
string project_id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Dataset ID of the table to delete
string dataset_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. Table ID of the table to delete
string table_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// Request format for enumerating tables.
message ListTablesRequest {
// Required. Project ID of the tables to list
string project_id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Dataset ID of the tables to list
string dataset_id = 2 [(google.api.field_behavior) = REQUIRED];
// The maximum number of results to return in a single response page.
// Leverage the page tokens to iterate through the entire collection.
google.protobuf.UInt32Value max_results = 3;
// Page token, returned by a previous call, to request the next page of
// results
string page_token = 4;
}
// Information about a logical view.
message ListFormatView {
// True if view is defined in legacy SQL dialect,
// false if in GoogleSQL.
google.protobuf.BoolValue use_legacy_sql = 1;
// Specifies the privacy policy for the view.
PrivacyPolicy privacy_policy = 2;
}
message ListFormatTable {
// The resource type.
string kind = 1;
// An opaque ID of the table.
string id = 2;
// A reference uniquely identifying table.
TableReference table_reference = 3;
// The user-friendly name for this table.
google.protobuf.StringValue friendly_name = 4;
// The type of table.
string type = 5;
// The time-based partitioning for this table.
TimePartitioning time_partitioning = 6;
// The range partitioning for this table.
RangePartitioning range_partitioning = 12;
// Clustering specification for this table, if configured.
Clustering clustering = 11;
// The labels associated with this table. You can use these to organize
// and group your tables.
map<string, string> labels = 7;
// Additional details for a view.
ListFormatView view = 8;
// Output only. The time when this table was created, in milliseconds since
// the epoch.
int64 creation_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// The time when this table expires, in milliseconds since the
// epoch. If not present, the table will persist indefinitely. Expired tables
// will be deleted and their storage reclaimed.
int64 expiration_time = 10;
// Optional. If set to true, queries including this table must specify a
// partition filter. This filter is used for partition elimination.
google.protobuf.BoolValue require_partition_filter = 14
[(google.api.field_behavior) = OPTIONAL];
}
// Partial projection of the metadata for a given table in a list response.
message TableList {
// The type of list.
string kind = 1;
// A hash of this page of results.
string etag = 2;
// A token to request the next page of results.
string next_page_token = 3;
// Tables in the requested dataset.
repeated ListFormatTable tables = 4;
// The total number of tables in the dataset.
google.protobuf.Int32Value total_items = 5;
}