You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
634 lines
17 KiB
634 lines
17 KiB
// Copyright 2020 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.logging.v1; |
|
|
|
import "google/iam/v1/iam_policy.proto"; |
|
import "google/iam/v1/policy.proto"; |
|
import "google/protobuf/duration.proto"; |
|
import "google/protobuf/timestamp.proto"; |
|
import "google/rpc/status.proto"; |
|
|
|
option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/logging/v1;logging"; |
|
option java_multiple_files = true; |
|
option java_outer_classname = "AuditDataProto"; |
|
option java_package = "com.google.cloud.bigquery.logging.v1"; |
|
|
|
// BigQuery request and response messages for audit log. |
|
// Note: `Table.schema` has been deprecated in favor of `Table.schemaJson`. |
|
// `Table.schema` may continue to be present in your logs during this |
|
// transition. |
|
message AuditData { |
|
// Request data for each BigQuery method. |
|
oneof request { |
|
// Table insert request. |
|
TableInsertRequest table_insert_request = 1; |
|
|
|
// Table update request. |
|
TableUpdateRequest table_update_request = 16; |
|
|
|
// Dataset list request. |
|
DatasetListRequest dataset_list_request = 2; |
|
|
|
// Dataset insert request. |
|
DatasetInsertRequest dataset_insert_request = 3; |
|
|
|
// Dataset update request. |
|
DatasetUpdateRequest dataset_update_request = 4; |
|
|
|
// Job insert request. |
|
JobInsertRequest job_insert_request = 5; |
|
|
|
// Job query request. |
|
JobQueryRequest job_query_request = 6; |
|
|
|
// Job get query results request. |
|
JobGetQueryResultsRequest job_get_query_results_request = 7; |
|
|
|
// Table data-list request. |
|
TableDataListRequest table_data_list_request = 8; |
|
|
|
// Iam policy request. |
|
google.iam.v1.SetIamPolicyRequest set_iam_policy_request = 20; |
|
} |
|
|
|
// Response data for each BigQuery method. |
|
oneof response { |
|
// Table insert response. |
|
TableInsertResponse table_insert_response = 9; |
|
|
|
// Table update response. |
|
TableUpdateResponse table_update_response = 10; |
|
|
|
// Dataset insert response. |
|
DatasetInsertResponse dataset_insert_response = 11; |
|
|
|
// Dataset update response. |
|
DatasetUpdateResponse dataset_update_response = 12; |
|
|
|
// Job insert response. |
|
JobInsertResponse job_insert_response = 18; |
|
|
|
// Job query response. |
|
JobQueryResponse job_query_response = 13; |
|
|
|
// Job get query results response. |
|
JobGetQueryResultsResponse job_get_query_results_response = 14; |
|
|
|
// Deprecated: Job query-done response. Use this information for usage |
|
// analysis. |
|
JobQueryDoneResponse job_query_done_response = 15; |
|
|
|
// Iam Policy. |
|
google.iam.v1.Policy policy_response = 21; |
|
} |
|
|
|
// A job completion event. |
|
JobCompletedEvent job_completed_event = 17; |
|
|
|
// Information about the table access events. |
|
repeated TableDataReadEvent table_data_read_events = 19; |
|
} |
|
|
|
// Table insert request. |
|
message TableInsertRequest { |
|
// The new table. |
|
Table resource = 1; |
|
} |
|
|
|
// Table update request. |
|
message TableUpdateRequest { |
|
// The table to be updated. |
|
Table resource = 1; |
|
} |
|
|
|
// Table insert response. |
|
message TableInsertResponse { |
|
// Final state of the inserted table. |
|
Table resource = 1; |
|
} |
|
|
|
// Table update response. |
|
message TableUpdateResponse { |
|
// Final state of the updated table. |
|
Table resource = 1; |
|
} |
|
|
|
// Dataset list request. |
|
message DatasetListRequest { |
|
// Whether to list all datasets, including hidden ones. |
|
bool list_all = 1; |
|
} |
|
|
|
// Dataset insert request. |
|
message DatasetInsertRequest { |
|
// The dataset to be inserted. |
|
Dataset resource = 1; |
|
} |
|
|
|
// Dataset insert response. |
|
message DatasetInsertResponse { |
|
// Final state of the inserted dataset. |
|
Dataset resource = 1; |
|
} |
|
|
|
// Dataset update request. |
|
message DatasetUpdateRequest { |
|
// The dataset to be updated. |
|
Dataset resource = 1; |
|
} |
|
|
|
// Dataset update response. |
|
message DatasetUpdateResponse { |
|
// Final state of the updated dataset. |
|
Dataset resource = 1; |
|
} |
|
|
|
// Job insert request. |
|
message JobInsertRequest { |
|
// Job insert request. |
|
Job resource = 1; |
|
} |
|
|
|
// Job insert response. |
|
message JobInsertResponse { |
|
// Job insert response. |
|
Job resource = 1; |
|
} |
|
|
|
// Job query request. |
|
message JobQueryRequest { |
|
// The query. |
|
string query = 1; |
|
|
|
// The maximum number of results. |
|
uint32 max_results = 2; |
|
|
|
// The default dataset for tables that do not have a dataset specified. |
|
DatasetName default_dataset = 3; |
|
|
|
// Project that the query should be charged to. |
|
string project_id = 4; |
|
|
|
// If true, don't actually run the job. Just check that it would run. |
|
bool dry_run = 5; |
|
} |
|
|
|
// Job query response. |
|
message JobQueryResponse { |
|
// The total number of rows in the full query result set. |
|
uint64 total_results = 1; |
|
|
|
// Information about the queried job. |
|
Job job = 2; |
|
} |
|
|
|
// Job getQueryResults request. |
|
message JobGetQueryResultsRequest { |
|
// Maximum number of results to return. |
|
uint32 max_results = 1; |
|
|
|
// Zero-based row number at which to start. |
|
uint64 start_row = 2; |
|
} |
|
|
|
// Job getQueryResults response. |
|
message JobGetQueryResultsResponse { |
|
// Total number of results in query results. |
|
uint64 total_results = 1; |
|
|
|
// The job that was created to run the query. |
|
// It completed if `job.status.state` is `DONE`. |
|
// It failed if `job.status.errorResult` is also present. |
|
Job job = 2; |
|
} |
|
|
|
// Job getQueryDone response. |
|
message JobQueryDoneResponse { |
|
// The job and status information. |
|
// The job completed if `job.status.state` is `DONE`. |
|
Job job = 1; |
|
} |
|
|
|
// Query job completed event. |
|
message JobCompletedEvent { |
|
// Name of the event. |
|
string event_name = 1; |
|
|
|
// Job information. |
|
Job job = 2; |
|
} |
|
|
|
// Table data read event. Only present for tables, not views, and is only |
|
// included in the log record for the project that owns the table. |
|
message TableDataReadEvent { |
|
// Name of the accessed table. |
|
TableName table_name = 1; |
|
|
|
// A list of referenced fields. This information is not included by default. |
|
// To enable this in the logs, please contact BigQuery support or open a bug |
|
// in the BigQuery issue tracker. |
|
repeated string referenced_fields = 2; |
|
} |
|
|
|
// Table data-list request. |
|
message TableDataListRequest { |
|
// Starting row offset. |
|
uint64 start_row = 1; |
|
|
|
// Maximum number of results to return. |
|
uint32 max_results = 2; |
|
} |
|
|
|
// Describes a BigQuery table. |
|
// See the [Table](/bigquery/docs/reference/v2/tables) API resource |
|
// for more details on individual fields. |
|
// Note: `Table.schema` has been deprecated in favor of `Table.schemaJson`. |
|
// `Table.schema` may continue to be present in your logs during this |
|
// transition. |
|
message Table { |
|
// The name of the table. |
|
TableName table_name = 1; |
|
|
|
// User-provided metadata for the table. |
|
TableInfo info = 2; |
|
|
|
// A JSON representation of the table's schema. |
|
string schema_json = 8; |
|
|
|
// If present, this is a virtual table defined by a SQL query. |
|
TableViewDefinition view = 4; |
|
|
|
// The expiration date for the table, after which the table |
|
// is deleted and the storage reclaimed. |
|
// If not present, the table persists indefinitely. |
|
google.protobuf.Timestamp expire_time = 5; |
|
|
|
// The time the table was created. |
|
google.protobuf.Timestamp create_time = 6; |
|
|
|
// The time the table was last truncated |
|
// by an operation with a `writeDisposition` of `WRITE_TRUNCATE`. |
|
google.protobuf.Timestamp truncate_time = 7; |
|
|
|
// The time the table was last modified. |
|
google.protobuf.Timestamp update_time = 9; |
|
|
|
// The table encryption information. Set when non-default encryption is used. |
|
EncryptionInfo encryption = 10; |
|
} |
|
|
|
// User-provided metadata for a table. |
|
message TableInfo { |
|
// A short name for the table, such as`"Analytics Data - Jan 2011"`. |
|
string friendly_name = 1; |
|
|
|
// A long description, perhaps several paragraphs, |
|
// describing the table contents in detail. |
|
string description = 2; |
|
|
|
// Labels provided for the table. |
|
map<string, string> labels = 3; |
|
} |
|
|
|
// Describes a virtual table defined by a SQL query. |
|
message TableViewDefinition { |
|
// SQL query defining the view. |
|
string query = 1; |
|
} |
|
|
|
// BigQuery dataset information. |
|
// See the [Dataset](/bigquery/docs/reference/v2/datasets) API resource |
|
// for more details on individual fields. |
|
message Dataset { |
|
// The name of the dataset. |
|
DatasetName dataset_name = 1; |
|
|
|
// User-provided metadata for the dataset. |
|
DatasetInfo info = 2; |
|
|
|
// The time the dataset was created. |
|
google.protobuf.Timestamp create_time = 4; |
|
|
|
// The time the dataset was last modified. |
|
google.protobuf.Timestamp update_time = 5; |
|
|
|
// The access control list for the dataset. |
|
BigQueryAcl acl = 6; |
|
|
|
// If this field is present, each table that does not specify an |
|
// expiration time is assigned an expiration time by adding this |
|
// duration to the table's `createTime`. If this field is empty, |
|
// there is no default table expiration time. |
|
google.protobuf.Duration default_table_expire_duration = 8; |
|
} |
|
|
|
// User-provided metadata for a dataset. |
|
message DatasetInfo { |
|
// A short name for the dataset, such as`"Analytics Data 2011"`. |
|
string friendly_name = 1; |
|
|
|
// A long description, perhaps several paragraphs, |
|
// describing the dataset contents in detail. |
|
string description = 2; |
|
|
|
// Labels provided for the dataset. |
|
map<string, string> labels = 3; |
|
} |
|
|
|
// An access control list. |
|
message BigQueryAcl { |
|
// Access control entry. |
|
message Entry { |
|
// The granted role, which can be `READER`, `WRITER`, or `OWNER`. |
|
string role = 1; |
|
|
|
// Grants access to a group identified by an email address. |
|
string group_email = 2; |
|
|
|
// Grants access to a user identified by an email address. |
|
string user_email = 3; |
|
|
|
// Grants access to all members of a domain. |
|
string domain = 4; |
|
|
|
// Grants access to special groups. Valid groups are `PROJECT_OWNERS`, |
|
// `PROJECT_READERS`, `PROJECT_WRITERS` and `ALL_AUTHENTICATED_USERS`. |
|
string special_group = 5; |
|
|
|
// Grants access to a BigQuery View. |
|
TableName view_name = 6; |
|
} |
|
|
|
// Access control entry list. |
|
repeated Entry entries = 1; |
|
} |
|
|
|
// Describes a job. |
|
message Job { |
|
// Job name. |
|
JobName job_name = 1; |
|
|
|
// Job configuration. |
|
JobConfiguration job_configuration = 2; |
|
|
|
// Job status. |
|
JobStatus job_status = 3; |
|
|
|
// Job statistics. |
|
JobStatistics job_statistics = 4; |
|
} |
|
|
|
// Job configuration information. |
|
// See the [Jobs](/bigquery/docs/reference/v2/jobs) API resource |
|
// for more details on individual fields. |
|
message JobConfiguration { |
|
// Describes a query job, which executes a SQL-like query. |
|
message Query { |
|
// The SQL query to run. |
|
string query = 1; |
|
|
|
// The table where results are written. |
|
TableName destination_table = 2; |
|
|
|
// Describes when a job is allowed to create a table: |
|
// `CREATE_IF_NEEDED`, `CREATE_NEVER`. |
|
string create_disposition = 3; |
|
|
|
// Describes how writes affect existing tables: |
|
// `WRITE_TRUNCATE`, `WRITE_APPEND`, `WRITE_EMPTY`. |
|
string write_disposition = 4; |
|
|
|
// If a table name is specified without a dataset in a query, |
|
// this dataset will be added to table name. |
|
DatasetName default_dataset = 5; |
|
|
|
// Describes data sources outside BigQuery, if needed. |
|
repeated TableDefinition table_definitions = 6; |
|
|
|
// Describes the priority given to the query: |
|
// `QUERY_INTERACTIVE` or `QUERY_BATCH`. |
|
string query_priority = 7; |
|
|
|
// Result table encryption information. Set when non-default encryption is |
|
// used. |
|
EncryptionInfo destination_table_encryption = 8; |
|
|
|
// Type of the statement (e.g. SELECT, INSERT, CREATE_TABLE, CREATE_MODEL..) |
|
string statement_type = 9; |
|
} |
|
|
|
// Describes a load job, which loads data from an external source via |
|
// the import pipeline. |
|
message Load { |
|
// URIs for the data to be imported. Only Google Cloud Storage URIs are |
|
// supported. |
|
repeated string source_uris = 1; |
|
|
|
// The table schema in JSON format representation of a TableSchema. |
|
string schema_json = 6; |
|
|
|
// The table where the imported data is written. |
|
TableName destination_table = 3; |
|
|
|
// Describes when a job is allowed to create a table: |
|
// `CREATE_IF_NEEDED`, `CREATE_NEVER`. |
|
string create_disposition = 4; |
|
|
|
// Describes how writes affect existing tables: |
|
// `WRITE_TRUNCATE`, `WRITE_APPEND`, `WRITE_EMPTY`. |
|
string write_disposition = 5; |
|
|
|
// Result table encryption information. Set when non-default encryption is |
|
// used. |
|
EncryptionInfo destination_table_encryption = 7; |
|
} |
|
|
|
// Describes an extract job, which exports data to an external source |
|
// via the export pipeline. |
|
message Extract { |
|
// Google Cloud Storage URIs where extracted data should be written. |
|
repeated string destination_uris = 1; |
|
|
|
// The source table. |
|
TableName source_table = 2; |
|
} |
|
|
|
// Describes a copy job, which copies an existing table to another table. |
|
message TableCopy { |
|
// Source tables. |
|
repeated TableName source_tables = 1; |
|
|
|
// Destination table. |
|
TableName destination_table = 2; |
|
|
|
// Describes when a job is allowed to create a table: |
|
// `CREATE_IF_NEEDED`, `CREATE_NEVER`. |
|
string create_disposition = 3; |
|
|
|
// Describes how writes affect existing tables: |
|
// `WRITE_TRUNCATE`, `WRITE_APPEND`, `WRITE_EMPTY`. |
|
string write_disposition = 4; |
|
|
|
// Result table encryption information. Set when non-default encryption is |
|
// used. |
|
EncryptionInfo destination_table_encryption = 5; |
|
} |
|
|
|
// Job configuration information. |
|
oneof configuration { |
|
// Query job information. |
|
Query query = 5; |
|
|
|
// Load job information. |
|
Load load = 6; |
|
|
|
// Extract job information. |
|
Extract extract = 7; |
|
|
|
// TableCopy job information. |
|
TableCopy table_copy = 8; |
|
} |
|
|
|
// If true, don't actually run the job. Just check that it would run. |
|
bool dry_run = 9; |
|
|
|
// Labels provided for the job. |
|
map<string, string> labels = 3; |
|
} |
|
|
|
// Describes an external data source used in a query. |
|
message TableDefinition { |
|
// Name of the table, used in queries. |
|
string name = 1; |
|
|
|
// Google Cloud Storage URIs for the data to be imported. |
|
repeated string source_uris = 2; |
|
} |
|
|
|
// Running state of a job. |
|
message JobStatus { |
|
// State of a job: `PENDING`, `RUNNING`, or `DONE`. |
|
string state = 1; |
|
|
|
// If the job did not complete successfully, this field describes why. |
|
google.rpc.Status error = 2; |
|
|
|
// Errors encountered during the running of the job. Do not necessarily mean |
|
// that the job has completed or was unsuccessful. |
|
repeated google.rpc.Status additional_errors = 3; |
|
} |
|
|
|
// Job statistics that may change after a job starts. |
|
message JobStatistics { |
|
// Job resource usage breakdown by reservation. |
|
message ReservationResourceUsage { |
|
// Reservation name or "unreserved" for on-demand resources usage. |
|
string name = 1; |
|
|
|
// Total slot milliseconds used by the reservation for a particular job. |
|
int64 slot_ms = 2; |
|
} |
|
|
|
// Time when the job was created. |
|
google.protobuf.Timestamp create_time = 1; |
|
|
|
// Time when the job started. |
|
google.protobuf.Timestamp start_time = 2; |
|
|
|
// Time when the job ended. |
|
google.protobuf.Timestamp end_time = 3; |
|
|
|
// Total bytes processed for a job. |
|
int64 total_processed_bytes = 4; |
|
|
|
// Processed bytes, adjusted by the job's CPU usage. |
|
int64 total_billed_bytes = 5; |
|
|
|
// The tier assigned by CPU-based billing. |
|
int32 billing_tier = 7; |
|
|
|
// The total number of slot-ms consumed by the query job. |
|
int64 total_slot_ms = 8; |
|
|
|
// Reservation usage. |
|
repeated ReservationResourceUsage reservation_usage = 14; |
|
|
|
// The first N tables accessed by the query job. Older queries that |
|
// reference a large number of tables may not have all of their |
|
// tables in this list. You can use the total_tables_processed count to |
|
// know how many total tables were read in the query. For new queries, |
|
// there is currently no limit. |
|
repeated TableName referenced_tables = 9; |
|
|
|
// Total number of unique tables referenced in the query. |
|
int32 total_tables_processed = 10; |
|
|
|
// The first N views accessed by the query job. Older queries that |
|
// reference a large number of views may not have all of their |
|
// views in this list. You can use the total_tables_processed count to |
|
// know how many total tables were read in the query. For new queries, |
|
// there is currently no limit. |
|
repeated TableName referenced_views = 11; |
|
|
|
// Total number of unique views referenced in the query. |
|
int32 total_views_processed = 12; |
|
|
|
// Number of output rows produced by the query job. |
|
int64 query_output_row_count = 15; |
|
|
|
// Total bytes loaded for an import job. |
|
int64 total_load_output_bytes = 13; |
|
} |
|
|
|
// The fully-qualified name for a dataset. |
|
message DatasetName { |
|
// The project ID. |
|
string project_id = 1; |
|
|
|
// The dataset ID within the project. |
|
string dataset_id = 2; |
|
} |
|
|
|
// The fully-qualified name for a table. |
|
message TableName { |
|
// The project ID. |
|
string project_id = 1; |
|
|
|
// The dataset ID within the project. |
|
string dataset_id = 2; |
|
|
|
// The table ID of the table within the dataset. |
|
string table_id = 3; |
|
} |
|
|
|
// The fully-qualified name for a job. |
|
message JobName { |
|
// The project ID. |
|
string project_id = 1; |
|
|
|
// The job ID within the project. |
|
string job_id = 2; |
|
|
|
// The job location. |
|
string location = 3; |
|
} |
|
|
|
// Describes encryption properties for a table or a job |
|
message EncryptionInfo { |
|
// unique identifier for cloud kms key |
|
string kms_key_name = 1; |
|
}
|
|
|