/// Common audit log format for Google Cloud Platform API operations. #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuditLog { /// The name of the API service performing the operation. For example, /// `"compute.googleapis.com"`. #[prost(string, tag = "7")] pub service_name: ::prost::alloc::string::String, /// The name of the service method or operation. /// For API calls, this should be the name of the API method. /// For example, /// /// "google.cloud.bigquery.v2.TableService.InsertTable" /// "google.logging.v2.ConfigServiceV2.CreateSink" #[prost(string, tag = "8")] pub method_name: ::prost::alloc::string::String, /// The resource or collection that is the target of the operation. /// The name is a scheme-less URI, not including the API service name. /// For example: /// /// "projects/PROJECT_ID/zones/us-central1-a/instances" /// "projects/PROJECT_ID/datasets/DATASET_ID" #[prost(string, tag = "11")] pub resource_name: ::prost::alloc::string::String, /// The resource location information. #[prost(message, optional, tag = "20")] pub resource_location: ::core::option::Option, /// The resource's original state before mutation. Present only for /// operations which have successfully modified the targeted resource(s). /// In general, this field should contain all changed fields, except those /// that are already been included in `request`, `response`, `metadata` or /// `service_data` fields. /// When the JSON object represented here has a proto equivalent, /// the proto name will be indicated in the `@type` property. #[prost(message, optional, tag = "19")] pub resource_original_state: ::core::option::Option<::prost_types::Struct>, /// The number of items returned from a List or Query API method, /// if applicable. #[prost(int64, tag = "12")] pub num_response_items: i64, /// The status of the overall operation. #[prost(message, optional, tag = "2")] pub status: ::core::option::Option, /// Authentication information. #[prost(message, optional, tag = "3")] pub authentication_info: ::core::option::Option, /// Authorization information. If there are multiple /// resources or permissions involved, then there is /// one AuthorizationInfo element for each {resource, permission} tuple. #[prost(message, repeated, tag = "9")] pub authorization_info: ::prost::alloc::vec::Vec, /// Metadata about the operation. #[prost(message, optional, tag = "4")] pub request_metadata: ::core::option::Option, /// The operation request. This may not include all request parameters, /// such as those that are too large, privacy-sensitive, or duplicated /// elsewhere in the log record. /// It should never include user-generated data, such as file contents. /// When the JSON object represented here has a proto equivalent, the proto /// name will be indicated in the `@type` property. #[prost(message, optional, tag = "16")] pub request: ::core::option::Option<::prost_types::Struct>, /// The operation response. This may not include all response elements, /// such as those that are too large, privacy-sensitive, or duplicated /// elsewhere in the log record. /// It should never include user-generated data, such as file contents. /// When the JSON object represented here has a proto equivalent, the proto /// name will be indicated in the `@type` property. #[prost(message, optional, tag = "17")] pub response: ::core::option::Option<::prost_types::Struct>, /// Other service-specific data about the request, response, and other /// information associated with the current audited event. #[prost(message, optional, tag = "18")] pub metadata: ::core::option::Option<::prost_types::Struct>, /// Deprecated. Use the `metadata` field instead. /// Other service-specific data about the request, response, and other /// activities. #[deprecated] #[prost(message, optional, tag = "15")] pub service_data: ::core::option::Option<::prost_types::Any>, } /// Authentication information for the operation. #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthenticationInfo { /// The email address of the authenticated user (or service account on behalf /// of third party principal) making the request. For third party identity /// callers, the `principal_subject` field is populated instead of this field. /// For privacy reasons, the principal email address is sometimes redacted. /// For more information, see /// #[prost(string, tag = "1")] pub principal_email: ::prost::alloc::string::String, /// The authority selector specified by the requestor, if any. /// It is not guaranteed that the principal was allowed to use this authority. #[prost(string, tag = "2")] pub authority_selector: ::prost::alloc::string::String, /// The third party identification (if any) of the authenticated user making /// the request. /// When the JSON object represented here has a proto equivalent, the proto /// name will be indicated in the `@type` property. #[prost(message, optional, tag = "4")] pub third_party_principal: ::core::option::Option<::prost_types::Struct>, /// The name of the service account key used to create or exchange /// credentials for authenticating the service account making the request. /// This is a scheme-less URI full resource name. For example: /// /// "//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}" #[prost(string, tag = "5")] pub service_account_key_name: ::prost::alloc::string::String, /// Identity delegation history of an authenticated service account that makes /// the request. It contains information on the real authorities that try to /// access GCP resources by delegating on a service account. When multiple /// authorities present, they are guaranteed to be sorted based on the original /// ordering of the identity delegation events. #[prost(message, repeated, tag = "6")] pub service_account_delegation_info: ::prost::alloc::vec::Vec, /// String representation of identity of requesting party. /// Populated for both first and third party identities. #[prost(string, tag = "8")] pub principal_subject: ::prost::alloc::string::String, } /// Authorization information for the operation. #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizationInfo { /// The resource being accessed, as a REST-style or cloud resource string. /// For example: /// /// bigquery.googleapis.com/projects/PROJECTID/datasets/DATASETID /// or /// projects/PROJECTID/datasets/DATASETID #[prost(string, tag = "1")] pub resource: ::prost::alloc::string::String, /// The required IAM permission. #[prost(string, tag = "2")] pub permission: ::prost::alloc::string::String, /// Whether or not authorization for `resource` and `permission` /// was granted. #[prost(bool, tag = "3")] pub granted: bool, /// Resource attributes used in IAM condition evaluation. This field contains /// resource attributes like resource type and resource name. /// /// To get the whole view of the attributes used in IAM /// condition evaluation, the user must also look into /// `AuditLog.request_metadata.request_attributes`. #[prost(message, optional, tag = "5")] pub resource_attributes: ::core::option::Option, } /// Metadata about the request. #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestMetadata { /// The IP address of the caller. /// For caller from internet, this will be public IPv4 or IPv6 address. /// For caller from a Compute Engine VM with external IP address, this /// will be the VM's external IP address. For caller from a Compute /// Engine VM without external IP address, if the VM is in the same /// organization (or project) as the accessed resource, `caller_ip` will /// be the VM's internal IPv4 address, otherwise the `caller_ip` will be /// redacted to "gce-internal-ip". /// See for more information. #[prost(string, tag = "1")] pub caller_ip: ::prost::alloc::string::String, /// The user agent of the caller. /// This information is not authenticated and should be treated accordingly. /// For example: /// /// + `google-api-python-client/1.4.0`: /// The request was made by the Google API client for Python. /// + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: /// The request was made by the Google Cloud SDK CLI (gcloud). /// + `AppEngine-Google; (+ appid: /// s~my-project`: /// The request was made from the `my-project` App Engine app. #[prost(string, tag = "2")] pub caller_supplied_user_agent: ::prost::alloc::string::String, /// The network of the caller. /// Set only if the network host project is part of the same GCP organization /// (or project) as the accessed resource. /// See for more information. /// This is a scheme-less URI full resource name. For example: /// /// "//compute.googleapis.com/projects/PROJECT_ID/global/networks/NETWORK_ID" #[prost(string, tag = "3")] pub caller_network: ::prost::alloc::string::String, /// Request attributes used in IAM condition evaluation. This field contains /// request attributes like request time and access levels associated with /// the request. /// /// /// To get the whole view of the attributes used in IAM /// condition evaluation, the user must also look into /// `AuditLog.authentication_info.resource_attributes`. #[prost(message, optional, tag = "7")] pub request_attributes: ::core::option::Option, /// The destination of a network activity, such as accepting a TCP connection. /// In a multi hop network activity, the destination represents the receiver of /// the last hop. Only two fields are used in this message, Peer.port and /// Peer.ip. These fields are optionally populated by those services utilizing /// the IAM condition feature. #[prost(message, optional, tag = "8")] pub destination_attributes: ::core::option::Option, } /// Location information about a resource. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResourceLocation { /// The locations of a resource after the execution of the operation. /// Requests to create or delete a location based resource must populate /// the 'current_locations' field and not the 'original_locations' field. /// For example: /// /// "europe-west1-a" /// "us-east1" /// "nam3" #[prost(string, repeated, tag = "1")] pub current_locations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// The locations of a resource prior to the execution of the operation. /// Requests that mutate the resource's location must populate both the /// 'original_locations' as well as the 'current_locations' fields. /// For example: /// /// "europe-west1-a" /// "us-east1" /// "nam3" #[prost(string, repeated, tag = "2")] pub original_locations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// Identity delegation history of an authenticated service account. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ServiceAccountDelegationInfo { /// A string representing the principal_subject associated with the identity. /// For most identities, the format will be /// `principal://iam.googleapis.com/{identity pool name}/subject/{subject)` /// except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) /// that are still in the legacy format `serviceAccount:{identity pool /// name}\[{subject}\]` #[prost(string, tag = "3")] pub principal_subject: ::prost::alloc::string::String, /// Entity that creates credentials for service account and assumes its /// identity for authentication. #[prost(oneof = "service_account_delegation_info::Authority", tags = "1, 2")] pub authority: ::core::option::Option, } /// Nested message and enum types in `ServiceAccountDelegationInfo`. pub mod service_account_delegation_info { /// First party identity principal. #[derive(Clone, PartialEq, ::prost::Message)] pub struct FirstPartyPrincipal { /// The email address of a Google account. #[prost(string, tag = "1")] pub principal_email: ::prost::alloc::string::String, /// Metadata about the service that uses the service account. #[prost(message, optional, tag = "2")] pub service_metadata: ::core::option::Option<::prost_types::Struct>, } /// Third party identity principal. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ThirdPartyPrincipal { /// Metadata about third party identity. #[prost(message, optional, tag = "1")] pub third_party_claims: ::core::option::Option<::prost_types::Struct>, } /// Entity that creates credentials for service account and assumes its /// identity for authentication. #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Authority { /// First party (Google) identity as the real authority. #[prost(message, tag = "1")] FirstPartyPrincipal(FirstPartyPrincipal), /// Third party identity as the real authority. #[prost(message, tag = "2")] ThirdPartyPrincipal(ThirdPartyPrincipal), } } /// Audit log format for BigQuery cloud audit logs metadata. /// #[derive(Clone, PartialEq, ::prost::Message)] pub struct BigQueryAuditMetadata { /// BigQuery event information. #[prost( oneof = "big_query_audit_metadata::Event", tags = "1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 19, 16, 17, 18" )] pub event: ::core::option::Option, } /// Nested message and enum types in `BigQueryAuditMetadata`. pub mod big_query_audit_metadata { /// Job insertion event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct JobInsertion { /// Job metadata. #[prost(message, optional, tag = "1")] pub job: ::core::option::Option, /// Describes how the job was inserted. #[prost(enumeration = "job_insertion::Reason", tag = "2")] pub reason: i32, } /// Nested message and enum types in `JobInsertion`. pub mod job_insertion { /// Describes how the job was inserted. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Job was inserted using the jobs.insert API. JobInsertRequest = 1, /// Job was inserted using the jobs.query RPC. QueryRequest = 2, } } /// Job state change event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct JobChange { /// Job state before the job state change. #[prost(enumeration = "JobState", tag = "1")] pub before: i32, /// Job state after the job state change. #[prost(enumeration = "JobState", tag = "2")] pub after: i32, /// Job metadata. #[prost(message, optional, tag = "3")] pub job: ::core::option::Option, } /// Dataset creation event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DatasetCreation { /// Dataset metadata. #[prost(message, optional, tag = "1")] pub dataset: ::core::option::Option, /// Describes how the dataset was created. #[prost(enumeration = "dataset_creation::Reason", tag = "2")] pub reason: i32, /// The URI of the job that created the dataset. /// Present if the reason is QUERY. /// /// Format: `projects//jobs/`. #[prost(string, tag = "3")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `DatasetCreation`. pub mod dataset_creation { /// Describes how the dataset was created. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Dataset was created using the datasets.create API. Create = 1, /// Dataset was created using a query job, e.g., CREATE SCHEMA statement. Query = 2, } } /// Dataset change event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DatasetChange { /// Dataset metadata after the change. #[prost(message, optional, tag = "1")] pub dataset: ::core::option::Option, /// Describes how the dataset was changed. #[prost(enumeration = "dataset_change::Reason", tag = "2")] pub reason: i32, /// The URI of the job that updated the dataset. /// Present if the reason is QUERY. /// /// Format: `projects//jobs/`. #[prost(string, tag = "3")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `DatasetChange`. pub mod dataset_change { /// Describes how the dataset was changed. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Dataset was changed using the datasets.update or datasets.patch API. Update = 1, /// Dataset was changed using the SetIamPolicy API. SetIamPolicy = 2, /// Dataset was changed using a query job, e.g., ALTER SCHEMA statement. Query = 3, } } /// Dataset deletion event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DatasetDeletion { /// Describes how the dataset was deleted. #[prost(enumeration = "dataset_deletion::Reason", tag = "1")] pub reason: i32, /// The URI of the job that deleted the dataset. /// Present if the reason is QUERY. /// /// Format: `projects//jobs/`. #[prost(string, tag = "2")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `DatasetDeletion`. pub mod dataset_deletion { /// Describes how the dataset was deleted. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Dataset was deleted using the datasets.delete API. Delete = 1, /// Dataset was deleted using a query job, e.g., DROP SCHEMA statement. Query = 2, } } /// Table creation event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct TableCreation { /// Table metadata. #[prost(message, optional, tag = "1")] pub table: ::core::option::Option, /// Describes how the table was created. #[prost(enumeration = "table_creation::Reason", tag = "3")] pub reason: i32, /// The URI of the job that created a table. /// Present if the reason is JOB or QUERY. /// /// Format: `projects//jobs/`. #[prost(string, tag = "4")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `TableCreation`. pub mod table_creation { /// Describes how the table was created. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Table was created as a destination table during a query, load or copy /// job. Job = 1, /// Table was created using a DDL query. Query = 2, /// Table was created using the tables.create API. TableInsertRequest = 3, } } /// Model creation event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ModelCreation { /// Model metadata. #[prost(message, optional, tag = "1")] pub model: ::core::option::Option, /// Describes how the model was created. #[prost(enumeration = "model_creation::Reason", tag = "3")] pub reason: i32, /// The URI of the job that created the model. /// /// Format: `projects//jobs/`. #[prost(string, tag = "4")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `ModelCreation`. pub mod model_creation { /// Describes how the model was created. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Model was created using a DDL query. Query = 2, } } /// Routine creation event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct RoutineCreation { /// Created routine. #[prost(message, optional, tag = "1")] pub routine: ::core::option::Option, /// Describes how the routine was created. #[prost(enumeration = "routine_creation::Reason", tag = "3")] pub reason: i32, /// The URI of the job that created the routine. /// /// Format: `projects//jobs/`. #[prost(string, tag = "4")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `RoutineCreation`. pub mod routine_creation { /// Describes how the routine was created. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Routine was created using a DDL query. Query = 1, /// Routine was created using the routines.create API. RoutineInsertRequest = 2, } } /// Table data read event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct TableDataRead { /// List of the accessed fields. Entire list is truncated if the record size /// exceeds 100K. #[prost(string, repeated, tag = "2")] pub fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// True if the fields list was truncated. #[prost(bool, tag = "8")] pub fields_truncated: bool, /// List of the referenced policy tags. That is, policy tags attached to the /// accessed fields or their ancestors. /// Policy tag resource name is a string of the format: /// `projects//locations//taxonomies//policyTags/` #[prost(string, repeated, tag = "9")] pub policy_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// True if the policy tag list was truncated. At most 100 policy tags can be /// saved. #[prost(bool, tag = "10")] pub policy_tags_truncated: bool, /// Describes how the table data was read. #[prost(enumeration = "table_data_read::Reason", tag = "3")] pub reason: i32, /// The URI of the job that read a table. /// Present if the reason is JOB but can be redacted for privacy reasons. /// /// Format: `projects//jobs/`. #[prost(string, tag = "4")] pub job_name: ::prost::alloc::string::String, /// The URI of the read session that read a table. /// Present if the reason is CREATE_READ_SESSION. /// /// Format: /// `projects//locations//sessions/`. #[prost(string, tag = "5")] pub session_name: ::prost::alloc::string::String, } /// Nested message and enum types in `TableDataRead`. pub mod table_data_read { /// Describes how the table data was read. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Table was used as a source table during a BigQuery job. Job = 1, /// Table data was accessed using the tabledata.list API. TabledataListRequest = 2, /// Table data was accessed using the jobs.getQueryResults API. GetQueryResultsRequest = 3, /// Table data was accessed using the jobs.query RPC. QueryRequest = 4, /// Table data was accessed using storage.CreateReadSession API. CreateReadSession = 5, /// Table data was accessed during a materialized view refresh. MaterializedViewRefresh = 6, } } /// Table metadata change event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct TableChange { /// Updated table metadata. #[prost(message, optional, tag = "1")] pub table: ::core::option::Option
, /// True if the table was truncated. #[prost(bool, tag = "4")] pub truncated: bool, /// Describes how the table metadata was changed. #[prost(enumeration = "table_change::Reason", tag = "5")] pub reason: i32, /// The URI of the job that changed a table. /// Present if the reason is JOB or QUERY. /// /// Format: `projects//jobs/`. #[prost(string, tag = "6")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `TableChange`. pub mod table_change { /// Describes how the table metadata was changed. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Table metadata was updated using the tables.update or tables.patch API. TableUpdateRequest = 1, /// Table was used as a job destination table. Job = 2, /// Table metadata was updated using a DML or DDL query. Query = 3, } } /// Model metadata change event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ModelMetadataChange { /// Updated model. #[prost(message, optional, tag = "1")] pub model: ::core::option::Option, /// Describes how the model metadata was changed. #[prost(enumeration = "model_metadata_change::Reason", tag = "2")] pub reason: i32, /// The URI of the job that changed the model metadata. /// Present if and only if the reason is QUERY. /// /// Format: `projects//jobs/`. #[prost(string, tag = "3")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `ModelMetadataChange`. pub mod model_metadata_change { /// Describes how the model metadata was changed. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Model metadata was updated using the models.patch API. ModelPatchRequest = 1, /// Model metadata was updated using a DDL query. Query = 2, } } /// Routine change event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct RoutineChange { /// Updated routine. #[prost(message, optional, tag = "1")] pub routine: ::core::option::Option, /// Describes how the routine was updated. #[prost(enumeration = "routine_change::Reason", tag = "3")] pub reason: i32, /// The URI of the job that updated the routine. /// /// Format: `projects//jobs/`. #[prost(string, tag = "4")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `RoutineChange`. pub mod routine_change { /// Describes how the routine was updated. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Routine was updated using a DDL query. Query = 1, /// Routine was updated using the routines.update or routines.patch API. RoutineUpdateRequest = 2, } } /// Table data change event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct TableDataChange { /// Number of deleted rows. #[prost(int64, tag = "1")] pub deleted_rows_count: i64, /// Number of inserted rows. #[prost(int64, tag = "2")] pub inserted_rows_count: i64, /// True if the table was truncated. #[prost(bool, tag = "3")] pub truncated: bool, /// Describes how the table data was changed. #[prost(enumeration = "table_data_change::Reason", tag = "4")] pub reason: i32, /// The URI of the job that changed a table. /// /// Format: `projects//jobs/`. #[prost(string, tag = "5")] pub job_name: ::prost::alloc::string::String, /// If written from WRITE_API, the name of the stream. /// /// Format: /// `projects//datasets//tables//streams/` #[prost(string, tag = "6")] pub stream_name: ::prost::alloc::string::String, } /// Nested message and enum types in `TableDataChange`. pub mod table_data_change { /// Describes how the table data was changed. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Table was used as a job destination table. Job = 1, /// Table data was updated using a DML or DDL query. Query = 2, /// Table data was updated during a materialized view refresh. MaterializedViewRefresh = 3, /// Table data was added using the Write API. WriteApi = 4, } } /// Model data change event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ModelDataChange { /// Describes how the model data was changed. #[prost(enumeration = "model_data_change::Reason", tag = "1")] pub reason: i32, /// The URI of the job that changed the model data. /// /// Format: `projects//jobs/`. #[prost(string, tag = "2")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `ModelDataChange`. pub mod model_data_change { /// Describes how the model data was changed. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Model data was changed using a DDL query. Query = 1, } } /// Model data read event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ModelDataRead { /// Describes how the model data was read. #[prost(enumeration = "model_data_read::Reason", tag = "1")] pub reason: i32, /// The URI of the job that read the model data. /// /// Format: `projects//jobs/`. #[prost(string, tag = "2")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `ModelDataRead`. pub mod model_data_read { /// Describes how the model data was read. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Model was used as a source model during a BigQuery job. Job = 1, } } /// BigQuery dataset. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Dataset { /// Dataset URI. /// /// Format: `projects//datasets/`. #[prost(string, tag = "1")] pub dataset_name: ::prost::alloc::string::String, /// Dataset creation time. #[prost(message, optional, tag = "3")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// Dataset metadata last update time. #[prost(message, optional, tag = "4")] pub update_time: ::core::option::Option<::prost_types::Timestamp>, /// The access control list for the dataset. #[prost(message, optional, tag = "5")] pub acl: ::core::option::Option, /// Default expiration time for tables in the dataset. #[prost(message, optional, tag = "6")] pub default_table_expire_duration: ::core::option::Option<::prost_types::Duration>, /// User-provided metadata for the dataset. #[prost(message, optional, tag = "7")] pub dataset_info: ::core::option::Option, /// Default encryption for tables in the dataset. #[prost(message, optional, tag = "8")] pub default_encryption: ::core::option::Option, } /// Table deletion event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct TableDeletion { /// Describes how the table was deleted. #[prost(enumeration = "table_deletion::Reason", tag = "1")] pub reason: i32, /// The URI of the job that deleted a table. /// Present if the reason is QUERY. /// /// Format: `projects//jobs/`. #[prost(string, tag = "2")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `TableDeletion`. pub mod table_deletion { /// Describes how the table was deleted. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Table was deleted using the tables.delete API. TableDeleteRequest = 2, /// Table expired. Expired = 3, /// Table deleted using a DDL query. Query = 4, } } /// Model deletion event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ModelDeletion { /// Describes how the model was deleted. #[prost(enumeration = "model_deletion::Reason", tag = "1")] pub reason: i32, /// The URI of the job that deleted a model. /// Present if the reason is QUERY. /// /// Format: `projects//jobs/`. #[prost(string, tag = "2")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `ModelDeletion`. pub mod model_deletion { /// Describes how the model was deleted. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Model was deleted using the models.delete API. ModelDeleteRequest = 1, /// Model expired. Expired = 2, /// Model was deleted using DDL query. Query = 3, } } /// Trained BigQuery ML model. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Model { /// Model URI. /// /// Format: `projects//datasets//models/`. #[prost(string, tag = "1")] pub model_name: ::prost::alloc::string::String, /// User-provided metadata for the model. #[prost(message, optional, tag = "2")] pub model_info: ::core::option::Option, /// Model expiration time. #[prost(message, optional, tag = "5")] pub expire_time: ::core::option::Option<::prost_types::Timestamp>, /// Model creation time. #[prost(message, optional, tag = "6")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// Model last update time. #[prost(message, optional, tag = "7")] pub update_time: ::core::option::Option<::prost_types::Timestamp>, /// Model encryption information. Set when non-default encryption is used. #[prost(message, optional, tag = "8")] pub encryption: ::core::option::Option, } /// Routine deletion event. #[derive(Clone, PartialEq, ::prost::Message)] pub struct RoutineDeletion { /// Deleted routine. #[prost(message, optional, tag = "1")] pub routine: ::core::option::Option, /// Describes how the routine was deleted. #[prost(enumeration = "routine_deletion::Reason", tag = "3")] pub reason: i32, /// The URI of the job that deleted the routine. /// Present if the reason is QUERY. /// /// Format: `projects//jobs/`. #[prost(string, tag = "4")] pub job_name: ::prost::alloc::string::String, } /// Nested message and enum types in `RoutineDeletion`. pub mod routine_deletion { /// Describes how the routine was deleted. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Reason { /// Unknown. Unspecified = 0, /// Routine was deleted using DDL query. Query = 1, /// Routine was deleted using the API. RoutineDeleteRequest = 2, } } /// BigQuery job. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Job { /// Job URI. /// /// Format: `projects//jobs/`. #[prost(string, tag = "1")] pub job_name: ::prost::alloc::string::String, /// Job configuration. #[prost(message, optional, tag = "2")] pub job_config: ::core::option::Option, /// Job status. #[prost(message, optional, tag = "3")] pub job_status: ::core::option::Option, /// Job statistics. #[prost(message, optional, tag = "4")] pub job_stats: ::core::option::Option, } /// Job configuration. /// See the \[Jobs\]() /// API resource for more details on individual fields. #[derive(Clone, PartialEq, ::prost::Message)] pub struct JobConfig { /// Job type. #[prost(enumeration = "job_config::Type", tag = "1")] pub r#type: i32, /// Labels provided for the job. #[prost(map = "string, string", tag = "6")] pub labels: ::std::collections::HashMap< ::prost::alloc::string::String, ::prost::alloc::string::String, >, /// Job configuration information. #[prost(oneof = "job_config::Config", tags = "2, 3, 4, 5")] pub config: ::core::option::Option, } /// Nested message and enum types in `JobConfig`. pub mod job_config { /// Query job configuration. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Query { /// The SQL query to run. Truncated if exceeds 50K. #[prost(string, tag = "1")] pub query: ::prost::alloc::string::String, /// True if the query field was truncated. #[prost(bool, tag = "10")] pub query_truncated: bool, /// The destination table for the query results. #[prost(string, tag = "2")] pub destination_table: ::prost::alloc::string::String, /// Destination table create disposition. #[prost(enumeration = "super::CreateDisposition", tag = "3")] pub create_disposition: i32, /// Destination table write disposition. #[prost(enumeration = "super::WriteDisposition", tag = "4")] pub write_disposition: i32, /// Default dataset for the query. #[prost(string, tag = "5")] pub default_dataset: ::prost::alloc::string::String, /// External data sources used in the query. #[prost(message, repeated, tag = "6")] pub table_definitions: ::prost::alloc::vec::Vec, /// Priority given to the query. #[prost(enumeration = "query::Priority", tag = "7")] pub priority: i32, /// Result table encryption information. Set when non-default encryption is /// used. #[prost(message, optional, tag = "8")] pub destination_table_encryption: ::core::option::Option, /// Type of the query. #[prost(enumeration = "super::QueryStatementType", tag = "9")] pub statement_type: i32, } /// Nested message and enum types in `Query`. pub mod query { /// Priority given to the query. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Priority { /// Unknown. Unspecified = 0, /// Interactive query. QueryInteractive = 1, /// Batch query. QueryBatch = 2, } } /// Load job configuration. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Load { /// URIs for the data to be imported. Entire list is truncated if exceeds /// 40K. #[prost(string, repeated, tag = "1")] pub source_uris: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// True if the source_URIs field was truncated. #[prost(bool, tag = "7")] pub source_uris_truncated: bool, /// The table schema in JSON format. Entire field is truncated if exceeds /// 40K. #[prost(string, tag = "2")] pub schema_json: ::prost::alloc::string::String, /// True if the schema_json field was truncated. #[prost(bool, tag = "8")] pub schema_json_truncated: bool, /// The destination table for the import. #[prost(string, tag = "3")] pub destination_table: ::prost::alloc::string::String, /// Destination table create disposition. #[prost(enumeration = "super::CreateDisposition", tag = "4")] pub create_disposition: i32, /// Destination table write disposition. #[prost(enumeration = "super::WriteDisposition", tag = "5")] pub write_disposition: i32, /// Result table encryption information. Set when non-default encryption is /// used. #[prost(message, optional, tag = "6")] pub destination_table_encryption: ::core::option::Option, } /// Extract job configuration. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Extract { /// URIs where extracted data should be written. Entire list is truncated /// if exceeds 50K. #[prost(string, repeated, tag = "1")] pub destination_uris: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// True if the destination_URIs field was truncated. #[prost(bool, tag = "3")] pub destination_uris_truncated: bool, #[prost(oneof = "extract::Source", tags = "2, 4")] pub source: ::core::option::Option, } /// Nested message and enum types in `Extract`. pub mod extract { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Source { /// The source table. #[prost(string, tag = "2")] SourceTable(::prost::alloc::string::String), /// The source model. #[prost(string, tag = "4")] SourceModel(::prost::alloc::string::String), } } /// Table copy job configuration. #[derive(Clone, PartialEq, ::prost::Message)] pub struct TableCopy { /// Source tables. Entire list is truncated if exceeds 50K. #[prost(string, repeated, tag = "1")] pub source_tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// True if the source_tables field was truncated. #[prost(bool, tag = "6")] pub source_tables_truncated: bool, /// Destination table. #[prost(string, tag = "2")] pub destination_table: ::prost::alloc::string::String, /// Destination table create disposition. #[prost(enumeration = "super::CreateDisposition", tag = "3")] pub create_disposition: i32, /// Destination table write disposition. #[prost(enumeration = "super::WriteDisposition", tag = "4")] pub write_disposition: i32, /// Result table encryption information. Set when non-default encryption is /// used. #[prost(message, optional, tag = "5")] pub destination_table_encryption: ::core::option::Option, /// Supported operation types in the table copy job. #[prost(enumeration = "super::OperationType", tag = "7")] pub operation_type: i32, /// Expiration time set on the destination table. Expired tables will be /// deleted and their storage reclaimed. #[prost(message, optional, tag = "8")] pub destination_expiration_time: ::core::option::Option<::prost_types::Timestamp>, } /// Job type. #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration, )] #[repr(i32)] pub enum Type { /// Unknown. Unspecified = 0, /// Query job. Query = 1, /// Table copy job. Copy = 2, /// Export (extract) job. Export = 3, /// Import (load) job. Import = 4, } /// Job configuration information. #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Config { /// Query job information. #[prost(message, tag = "2")] QueryConfig(Query), /// Load job information. #[prost(message, tag = "3")] LoadConfig(Load), /// Extract job information. #[prost(message, tag = "4")] ExtractConfig(Extract), /// TableCopy job information. #[prost(message, tag = "5")] TableCopyConfig(TableCopy), } } /// Definition of an external data source used in a query. #[derive(Clone, PartialEq, ::prost::Message)] pub struct TableDefinition { /// Name of the table, used in queries. #[prost(string, tag = "1")] pub name: ::prost::alloc::string::String, /// URIs for the data. #[prost(string, repeated, tag = "2")] pub source_uris: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// Status of a job. #[derive(Clone, PartialEq, ::prost::Message)] pub struct JobStatus { /// State of the job. #[prost(enumeration = "JobState", tag = "1")] pub job_state: i32, /// Job error, if the job failed. #[prost(message, optional, tag = "2")] pub error_result: ::core::option::Option, /// Errors encountered during the running of the job. Does not necessarily /// mean that the job has completed or was unsuccessful. #[prost(message, repeated, tag = "3")] pub errors: ::prost::alloc::vec::Vec, } /// Job statistics. #[derive(Clone, PartialEq, ::prost::Message)] pub struct JobStats { /// Job creation time. #[prost(message, optional, tag = "1")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// Job execution start time. #[prost(message, optional, tag = "2")] pub start_time: ::core::option::Option<::prost_types::Timestamp>, /// Job completion time. #[prost(message, optional, tag = "3")] pub end_time: ::core::option::Option<::prost_types::Timestamp>, /// The total number of slot-ms consumed by the query job. #[prost(int64, tag = "10")] pub total_slot_ms: i64, /// Reservation usage attributed from each tier of a reservation hierarchy. #[prost(message, repeated, tag = "11")] pub reservation_usage: ::prost::alloc::vec::Vec, /// Parent job name. Only present for child jobs. #[prost(string, tag = "12")] pub parent_job_name: ::prost::alloc::string::String, /// Statistics specific to the job type. #[prost(oneof = "job_stats::Extended", tags = "8, 9, 13")] pub extended: ::core::option::Option, } /// Nested message and enum types in `JobStats`. pub mod job_stats { /// Query job statistics. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Query { /// Total bytes processed by the query job. #[prost(int64, tag = "1")] pub total_processed_bytes: i64, /// Total bytes billed by the query job. #[prost(int64, tag = "2")] pub total_billed_bytes: i64, /// The tier assigned by the CPU-based billing. #[prost(int32, tag = "3")] pub billing_tier: i32, /// Tables accessed by the query job. #[prost(string, repeated, tag = "6")] pub referenced_tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// Views accessed by the query job. #[prost(string, repeated, tag = "7")] pub referenced_views: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// Routines accessed by the query job. #[prost(string, repeated, tag = "10")] pub referenced_routines: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// Number of output rows produced by the query job. #[prost(int64, tag = "8")] pub output_row_count: i64, /// True if the query job results were read from the query cache. #[prost(bool, tag = "9")] pub cache_hit: bool, } /// Load job statistics. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Load { /// Total bytes loaded by the import job. #[prost(int64, tag = "1")] pub total_output_bytes: i64, } /// Extract job statistics. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Extract { /// Total bytes exported by the extract job. #[prost(int64, tag = "1")] pub total_input_bytes: i64, } /// Job resource usage breakdown by reservation. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ReservationResourceUsage { /// Reservation name or "unreserved" for on-demand resources usage. #[prost(string, tag = "1")] pub name: ::prost::alloc::string::String, /// Total slot milliseconds used by the reservation for a particular job. #[prost(int64, tag = "2")] pub slot_ms: i64, } /// Statistics specific to the job type. #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Extended { /// Query job statistics. #[prost(message, tag = "8")] QueryStats(Query), /// Load job statistics. #[prost(message, tag = "9")] LoadStats(Load), /// Extract job statistics. #[prost(message, tag = "13")] ExtractStats(Extract), } } /// BigQuery table. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Table { /// Table URI. /// /// Format: `projects//datasets//tables/`. #[prost(string, tag = "1")] pub table_name: ::prost::alloc::string::String, /// A JSON representation of the table's schema. Entire field is truncated /// if exceeds 40K. #[prost(string, tag = "3")] pub schema_json: ::prost::alloc::string::String, /// True if the schema_json field was truncated. #[prost(bool, tag = "11")] pub schema_json_truncated: bool, /// View metadata. Only present for views. #[prost(message, optional, tag = "4")] pub view: ::core::option::Option, /// Table expiration time. #[prost(message, optional, tag = "5")] pub expire_time: ::core::option::Option<::prost_types::Timestamp>, /// The table creation time. #[prost(message, optional, tag = "6")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// The last time metadata update time. #[prost(message, optional, tag = "7")] pub update_time: ::core::option::Option<::prost_types::Timestamp>, /// The last table truncation time. #[prost(message, optional, tag = "8")] pub truncate_time: ::core::option::Option<::prost_types::Timestamp>, /// Table encryption information. Set when non-default encryption is used. #[prost(message, optional, tag = "9")] pub encryption: ::core::option::Option, /// User-provided metadata for the table. #[prost(message, optional, tag = "10")] pub table_info: ::core::option::Option, } /// User Defined Function (UDF) or Stored Procedure. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Routine { /// Routine URI. /// /// Format: /// `projects//datasets//routines/`. #[prost(string, tag = "1")] pub routine_name: ::prost::alloc::string::String, /// Routine creation time. #[prost(message, optional, tag = "5")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// Routine last update time. #[prost(message, optional, tag = "6")] pub update_time: ::core::option::Option<::prost_types::Timestamp>, } /// User-provided metadata for an entity, for e.g. dataset, table or model. #[derive(Clone, PartialEq, ::prost::Message)] pub struct EntityInfo { /// A short name for the entity. #[prost(string, tag = "1")] pub friendly_name: ::prost::alloc::string::String, /// A long description for the entity. #[prost(string, tag = "2")] pub description: ::prost::alloc::string::String, /// Labels provided for the entity. #[prost(map = "string, string", tag = "3")] pub labels: ::std::collections::HashMap< ::prost::alloc::string::String, ::prost::alloc::string::String, >, } /// View definition. #[derive(Clone, PartialEq, ::prost::Message)] pub struct TableViewDefinition { /// SQL query defining the view. Truncated if exceeds 40K. #[prost(string, tag = "1")] pub query: ::prost::alloc::string::String, /// True if the schema_json field was truncated. #[prost(bool, tag = "2")] pub query_truncated: bool, } /// An access control list. #[derive(Clone, PartialEq, ::prost::Message)] pub struct BigQueryAcl { /// IAM policy for the resource. #[prost(message, optional, tag = "1")] pub policy: ::core::option::Option, /// List of authorized views for a dataset. /// /// Format: `projects//datasets//tables/`. #[prost(string, repeated, tag = "2")] pub authorized_views: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } /// Encryption properties for a table or a job #[derive(Clone, PartialEq, ::prost::Message)] pub struct EncryptionInfo { /// Cloud kms key identifier. /// /// Format: /// `projects//locations//keyRings//cryptoKeys/` #[prost(string, tag = "1")] pub kms_key_name: ::prost::alloc::string::String, } /// Describes whether a job should overwrite or append the existing destination /// table if it already exists. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum WriteDisposition { /// Unknown. Unspecified = 0, /// This job should only be writing to empty tables. WriteEmpty = 1, /// This job will truncate the existing table data. WriteTruncate = 2, /// This job will append to the table. WriteAppend = 3, } /// Table copy job operation type. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum OperationType { /// Unspecified operation type. Unspecified = 0, /// The source and the destination table have the same table type. Copy = 1, /// The source table type is TABLE and /// the destination table type is SNAPSHOT. Snapshot = 2, /// The source table type is SNAPSHOT and /// the destination table type is TABLE. Restore = 3, } /// Describes whether a job should create a destination table if it doesn't /// exist. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum CreateDisposition { /// Unknown. Unspecified = 0, /// This job should never create tables. CreateNever = 1, /// This job should create a table if it doesn't already exist. CreateIfNeeded = 2, } /// State of a job. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum JobState { /// State unknown. Unspecified = 0, /// Job is waiting for the resources. Pending = 1, /// Job is running. Running = 2, /// Job is done. Done = 3, } /// Type of the statement (e.g. SELECT, INSERT, CREATE_TABLE, CREATE_MODEL..) #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum QueryStatementType { /// Unknown. Unspecified = 0, /// SELECT ... FROM <Table list> ... Select = 1, /// ASSERT <condition> AS 'description' Assert = 23, /// INSERT INTO <Table> .... Insert = 2, /// UPDATE <Table> SET ... Update = 3, /// DELETE <Table> ... Delete = 4, /// MERGE INTO <Table> .... Merge = 5, /// CREATE TABLE <Table> <column list> CreateTable = 6, /// CREATE TABLE <Table> AS SELECT CreateTableAsSelect = 7, /// CREATE VIEW <View> CreateView = 8, /// CREATE MODEL <Model> AS <Query> CreateModel = 9, /// CREATE MATERIALIZED VIEW <View> AS ... CreateMaterializedView = 13, /// CREATE FUNCTION <Function>(<Signature>) AS ... CreateFunction = 14, /// CREATE PROCEDURE <Procedure> CreateProcedure = 20, /// CREATE SCHEMA <Schema> CreateSchema = 53, /// DROP TABLE <Table> DropTable = 10, /// DROP EXTERNAL TABLE <Table> DropExternalTable = 33, /// DROP VIEW <View> DropView = 11, /// DROP MODEL <Model> DropModel = 12, /// DROP MATERIALIZED VIEW <View> DropMaterializedView = 15, /// DROP FUNCTION <Function> DropFunction = 16, /// DROP PROCEDURE <Procedure> DropProcedure = 21, /// DROP SCHEMA <Schema> DropSchema = 54, /// ALTER TABLE <Table> AlterTable = 17, /// ALTER VIEW <View> AlterView = 18, /// ALTER MATERIALIZED_VIEW <view> AlterMaterializedView = 22, /// ALTER SCHEMA <Schema> AlterSchema = 55, /// Script Script = 19, /// TRUNCATE TABLE <Table> TruncateTable = 26, /// CREATE EXTERNAL TABLE <TABLE> CreateExternalTable = 27, /// EXPORT DATA; ExportData = 28, /// CALL <stored procedure> Call = 29, } /// BigQuery event information. #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Event { /// Job insertion event. #[prost(message, tag = "1")] JobInsertion(JobInsertion), /// Job state change event. #[prost(message, tag = "2")] JobChange(JobChange), /// Dataset creation event. #[prost(message, tag = "3")] DatasetCreation(DatasetCreation), /// Dataset change event. #[prost(message, tag = "4")] DatasetChange(DatasetChange), /// Dataset deletion event. #[prost(message, tag = "5")] DatasetDeletion(DatasetDeletion), /// Table creation event. #[prost(message, tag = "6")] TableCreation(TableCreation), /// Table metadata change event. #[prost(message, tag = "8")] TableChange(TableChange), /// Table deletion event. #[prost(message, tag = "9")] TableDeletion(TableDeletion), /// Table data read event. #[prost(message, tag = "10")] TableDataRead(TableDataRead), /// Table data change event. #[prost(message, tag = "11")] TableDataChange(TableDataChange), /// Model deletion event. #[prost(message, tag = "12")] ModelDeletion(ModelDeletion), /// Model creation event. #[prost(message, tag = "13")] ModelCreation(ModelCreation), /// Model metadata change event. #[prost(message, tag = "14")] ModelMetadataChange(ModelMetadataChange), /// Model data change event. #[prost(message, tag = "15")] ModelDataChange(ModelDataChange), /// Model data read event. #[prost(message, tag = "19")] ModelDataRead(ModelDataRead), /// Routine creation event. #[prost(message, tag = "16")] RoutineCreation(RoutineCreation), /// Routine change event. #[prost(message, tag = "17")] RoutineChange(RoutineChange), /// Routine deletion event. #[prost(message, tag = "18")] RoutineDeletion(RoutineDeletion), } }