googleapis/google/cloud/bigquery/v2/table.proto
Google APIs 6d3f7d5d40 chore: amend default retry policy
feat: expose null marker and column match options within CSVOptions
feat: expose additional date/time configuration options in ExternalDataConfiguration
feat: expose additional date/time configuration options in JobConfigurationLoad
feat: expose job timeout and destination cmek options in QueryRequest
feat: expose reservation as a config option for jobs and queries
docs: update comments related to external table configurations

PiperOrigin-RevId: 742817375
2025-04-01 13:24:02 -07:00

738 lines
30 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright 2025 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/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.
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.
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.
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.
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.
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.
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 doesnt 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 will use
// BigQuery's GoogleSQL:
// https://cloud.google.com/bigquery/sql-reference/
//
// 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;
}