// Copyright 2024 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/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"; // This is an experimental RPC service definition for the BigQuery // Table Service. // // It should not be relied on for production use cases at this time. 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 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 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. Specifices 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. 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 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 BigLake managed table. BigLakeConfiguration biglake_configuration = 45 [(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 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; // Specifices 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 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; }