From 65d2714a41f48a0853eee31c48533659144804fd Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Sat, 10 Feb 2024 19:36:40 +0000 Subject: [PATCH 1/7] ci: resolve issue where protos are not updating --- google/cloud/audit/audit_log.proto | 123 +- google/cloud/audit/audit_log_pb2.py | 121 +- .../cloud/audit/bigquery_audit_metadata.proto | 1334 +++++++++++++++++ .../audit/bigquery_audit_metadata_pb2.py | 921 ++++++++++++ owlbot.py | 41 +- 5 files changed, 2478 insertions(+), 62 deletions(-) create mode 100644 google/cloud/audit/bigquery_audit_metadata.proto create mode 100644 google/cloud/audit/bigquery_audit_metadata_pb2.py diff --git a/google/cloud/audit/audit_log.proto b/google/cloud/audit/audit_log.proto index 66ea021..ed4ae5f 100644 --- a/google/cloud/audit/audit_log.proto +++ b/google/cloud/audit/audit_log.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.audit; +import "google/api/field_behavior.proto"; import "google/protobuf/any.proto"; import "google/protobuf/struct.proto"; import "google/rpc/context/attribute_context.proto"; @@ -30,23 +31,23 @@ option java_package = "com.google.cloud.audit"; // Common audit log format for Google Cloud Platform API operations. message AuditLog { // The name of the API service performing the operation. For example, - // `"datastore.googleapis.com"`. + // `"compute.googleapis.com"`. string service_name = 7; // The name of the service method or operation. // For API calls, this should be the name of the API method. // For example, // - // "google.datastore.v1.Datastore.RunQuery" - // "google.logging.v1.LoggingService.DeleteLog" + // "google.cloud.bigquery.v2.TableService.InsertTable" + // "google.logging.v2.ConfigServiceV2.CreateSink" string method_name = 8; // 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: // - // "shelves/SHELF_ID/books" - // "shelves/SHELF_ID/books/BOOK_ID" + // "projects/PROJECT_ID/zones/us-central1-a/instances" + // "projects/PROJECT_ID/datasets/DATASET_ID" string resource_name = 11; // The resource location information. @@ -76,6 +77,11 @@ message AuditLog { // one AuthorizationInfo element for each {resource, permission} tuple. repeated AuthorizationInfo authorization_info = 9; + // Indicates the policy violations for this request. If the request + // is denied by the policy, violation information will be logged + // here. + PolicyViolationInfo policy_violation_info = 25; + // Metadata about the operation. RequestMetadata request_metadata = 4; @@ -99,18 +105,20 @@ message AuditLog { // information associated with the current audited event. google.protobuf.Struct metadata = 18; - // Deprecated, use `metadata` field instead. + // Deprecated. Use the `metadata` field instead. // Other service-specific data about the request, response, and other // activities. - google.protobuf.Any service_data = 15; + google.protobuf.Any service_data = 15 [deprecated = true]; } // Authentication information for the operation. message AuthenticationInfo { // The email address of the authenticated user (or service account on behalf - // of third party principal) making the request. For privacy reasons, the - // principal email address is redacted for all read-only operations that fail - // with a "permission denied" error. + // 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 [Caller identities in audit + // logs](https://cloud.google.com/logging/docs/audit#user-id). string principal_email = 1; // The authority selector specified by the requestor, if any. @@ -144,9 +152,12 @@ message AuthenticationInfo { // Authorization information for the operation. message AuthorizationInfo { - // The resource being accessed, as a REST-style string. For example: + // 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 string resource = 1; // The required IAM permission. @@ -168,14 +179,16 @@ message AuthorizationInfo { // Metadata about the request. message 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 https://cloud.google.com/compute/docs/vpc/ for more information. + // For a caller from the internet, this will be the public IPv4 or IPv6 + // address. For calls made from inside Google's internal production network + // from one GCP service to another, `caller_ip` will be redacted to "private". + // For a caller from a Compute Engine VM with a external IP address, + // `caller_ip` will be the VM's external IP address. For a caller from a + // Compute Engine VM without a 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 `caller_ip` will be redacted to + // "gce-internal-ip". See https://cloud.google.com/compute/docs/vpc/ for more + // information. string caller_ip = 1; // The user agent of the caller. @@ -258,6 +271,14 @@ message ServiceAccountDelegationInfo { google.protobuf.Struct third_party_claims = 1; } + // 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}]` + string principal_subject = 3; + // Entity that creates credentials for service account and assumes its // identity for authentication. oneof Authority { @@ -268,3 +289,65 @@ message ServiceAccountDelegationInfo { ThirdPartyPrincipal third_party_principal = 2; } } + +// Information related to policy violations for this request. +message PolicyViolationInfo { + // Indicates the orgpolicy violations for this resource. + OrgPolicyViolationInfo org_policy_violation_info = 1; +} + +// Represents OrgPolicy Violation information. +message OrgPolicyViolationInfo { + // Optional. Resource payload that is currently in scope and is subjected to orgpolicy + // conditions. This payload may be the subset of the actual Resource that may + // come in the request. This payload should not contain any core content. + google.protobuf.Struct payload = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Resource type that the orgpolicy is checked against. + // Example: compute.googleapis.com/Instance, store.googleapis.com/bucket + string resource_type = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Tags referenced on the resource at the time of evaluation. These also + // include the federated tags, if they are supplied in the CheckOrgPolicy + // or CheckCustomConstraints Requests. + // + // Optional field as of now. These tags are the Cloud tags that are + // available on the resource during the policy evaluation and will + // be available as part of the OrgPolicy check response for logging purposes. + map resource_tags = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Policy violations + repeated ViolationInfo violation_info = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Provides information about the Policy violation info for this request. +message ViolationInfo { + // Policy Type enum + enum PolicyType { + // Default value. This value should not be used. + POLICY_TYPE_UNSPECIFIED = 0; + + // Indicates boolean policy constraint + BOOLEAN_CONSTRAINT = 1; + + // Indicates list policy constraint + LIST_CONSTRAINT = 2; + + // Indicates custom policy constraint + CUSTOM_CONSTRAINT = 3; + } + + // Optional. Constraint name + string constraint = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Error message that policy is indicating. + string error_message = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Value that is being checked for the policy. + // This could be in encrypted form (if pii sensitive). + // This field will only be emitted in LIST_POLICY types + string checked_value = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates the type of the policy. + PolicyType policy_type = 4 [(google.api.field_behavior) = OPTIONAL]; +} \ No newline at end of file diff --git a/google/cloud/audit/audit_log_pb2.py b/google/cloud/audit/audit_log_pb2.py index 91b61e1..fccf896 100644 --- a/google/cloud/audit/audit_log_pb2.py +++ b/google/cloud/audit/audit_log_pb2.py @@ -28,6 +28,7 @@ _sym_db = _symbol_database.Default() +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 from google.rpc.context import ( @@ -37,7 +38,7 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n"google/cloud/audit/audit_log.proto\x12\x12google.cloud.audit\x1a\x19google/protobuf/any.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a*google/rpc/context/attribute_context.proto\x1a\x17google/rpc/status.proto"\xfa\x04\n\x08\x41uditLog\x12\x14\n\x0cservice_name\x18\x07 \x01(\t\x12\x13\n\x0bmethod_name\x18\x08 \x01(\t\x12\x15\n\rresource_name\x18\x0b \x01(\t\x12?\n\x11resource_location\x18\x14 \x01(\x0b\x32$.google.cloud.audit.ResourceLocation\x12\x38\n\x17resource_original_state\x18\x13 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x1a\n\x12num_response_items\x18\x0c \x01(\x03\x12"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x12\x43\n\x13\x61uthentication_info\x18\x03 \x01(\x0b\x32&.google.cloud.audit.AuthenticationInfo\x12\x41\n\x12\x61uthorization_info\x18\t \x03(\x0b\x32%.google.cloud.audit.AuthorizationInfo\x12=\n\x10request_metadata\x18\x04 \x01(\x0b\x32#.google.cloud.audit.RequestMetadata\x12(\n\x07request\x18\x10 \x01(\x0b\x32\x17.google.protobuf.Struct\x12)\n\x08response\x18\x11 \x01(\x0b\x32\x17.google.protobuf.Struct\x12)\n\x08metadata\x18\x12 \x01(\x0b\x32\x17.google.protobuf.Struct\x12*\n\x0cservice_data\x18\x0f \x01(\x0b\x32\x14.google.protobuf.Any"\x99\x02\n\x12\x41uthenticationInfo\x12\x17\n\x0fprincipal_email\x18\x01 \x01(\t\x12\x1a\n\x12\x61uthority_selector\x18\x02 \x01(\t\x12\x36\n\x15third_party_principal\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12 \n\x18service_account_key_name\x18\x05 \x01(\t\x12Y\n\x1fservice_account_delegation_info\x18\x06 \x03(\x0b\x32\x30.google.cloud.audit.ServiceAccountDelegationInfo\x12\x19\n\x11principal_subject\x18\x08 \x01(\t"\x96\x01\n\x11\x41uthorizationInfo\x12\x10\n\x08resource\x18\x01 \x01(\t\x12\x12\n\npermission\x18\x02 \x01(\t\x12\x0f\n\x07granted\x18\x03 \x01(\x08\x12J\n\x13resource_attributes\x18\x05 \x01(\x0b\x32-.google.rpc.context.AttributeContext.Resource"\xf5\x01\n\x0fRequestMetadata\x12\x11\n\tcaller_ip\x18\x01 \x01(\t\x12"\n\x1a\x63\x61ller_supplied_user_agent\x18\x02 \x01(\t\x12\x16\n\x0e\x63\x61ller_network\x18\x03 \x01(\t\x12H\n\x12request_attributes\x18\x07 \x01(\x0b\x32,.google.rpc.context.AttributeContext.Request\x12I\n\x16\x64\x65stination_attributes\x18\x08 \x01(\x0b\x32).google.rpc.context.AttributeContext.Peer"I\n\x10ResourceLocation\x12\x19\n\x11\x63urrent_locations\x18\x01 \x03(\t\x12\x1a\n\x12original_locations\x18\x02 \x03(\t"\xa8\x03\n\x1cServiceAccountDelegationInfo\x12\x65\n\x15\x66irst_party_principal\x18\x01 \x01(\x0b\x32\x44.google.cloud.audit.ServiceAccountDelegationInfo.FirstPartyPrincipalH\x00\x12\x65\n\x15third_party_principal\x18\x02 \x01(\x0b\x32\x44.google.cloud.audit.ServiceAccountDelegationInfo.ThirdPartyPrincipalH\x00\x1a\x61\n\x13\x46irstPartyPrincipal\x12\x17\n\x0fprincipal_email\x18\x01 \x01(\t\x12\x31\n\x10service_metadata\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x1aJ\n\x13ThirdPartyPrincipal\x12\x33\n\x12third_party_claims\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructB\x0b\n\tAuthorityBe\n\x16\x63om.google.cloud.auditB\rAuditLogProtoP\x01Z7google.golang.org/genproto/googleapis/cloud/audit;audit\xf8\x01\x01\x62\x06proto3' + b'\n"google/cloud/audit/audit_log.proto\x12\x12google.cloud.audit\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/protobuf/any.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a*google/rpc/context/attribute_context.proto\x1a\x17google/rpc/status.proto"\xc6\x05\n\x08\x41uditLog\x12\x14\n\x0cservice_name\x18\x07 \x01(\t\x12\x13\n\x0bmethod_name\x18\x08 \x01(\t\x12\x15\n\rresource_name\x18\x0b \x01(\t\x12?\n\x11resource_location\x18\x14 \x01(\x0b\x32$.google.cloud.audit.ResourceLocation\x12\x38\n\x17resource_original_state\x18\x13 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x1a\n\x12num_response_items\x18\x0c \x01(\x03\x12"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x12\x43\n\x13\x61uthentication_info\x18\x03 \x01(\x0b\x32&.google.cloud.audit.AuthenticationInfo\x12\x41\n\x12\x61uthorization_info\x18\t \x03(\x0b\x32%.google.cloud.audit.AuthorizationInfo\x12\x46\n\x15policy_violation_info\x18\x19 \x01(\x0b\x32\'.google.cloud.audit.PolicyViolationInfo\x12=\n\x10request_metadata\x18\x04 \x01(\x0b\x32#.google.cloud.audit.RequestMetadata\x12(\n\x07request\x18\x10 \x01(\x0b\x32\x17.google.protobuf.Struct\x12)\n\x08response\x18\x11 \x01(\x0b\x32\x17.google.protobuf.Struct\x12)\n\x08metadata\x18\x12 \x01(\x0b\x32\x17.google.protobuf.Struct\x12.\n\x0cservice_data\x18\x0f \x01(\x0b\x32\x14.google.protobuf.AnyB\x02\x18\x01"\x99\x02\n\x12\x41uthenticationInfo\x12\x17\n\x0fprincipal_email\x18\x01 \x01(\t\x12\x1a\n\x12\x61uthority_selector\x18\x02 \x01(\t\x12\x36\n\x15third_party_principal\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12 \n\x18service_account_key_name\x18\x05 \x01(\t\x12Y\n\x1fservice_account_delegation_info\x18\x06 \x03(\x0b\x32\x30.google.cloud.audit.ServiceAccountDelegationInfo\x12\x19\n\x11principal_subject\x18\x08 \x01(\t"\x96\x01\n\x11\x41uthorizationInfo\x12\x10\n\x08resource\x18\x01 \x01(\t\x12\x12\n\npermission\x18\x02 \x01(\t\x12\x0f\n\x07granted\x18\x03 \x01(\x08\x12J\n\x13resource_attributes\x18\x05 \x01(\x0b\x32-.google.rpc.context.AttributeContext.Resource"\xf5\x01\n\x0fRequestMetadata\x12\x11\n\tcaller_ip\x18\x01 \x01(\t\x12"\n\x1a\x63\x61ller_supplied_user_agent\x18\x02 \x01(\t\x12\x16\n\x0e\x63\x61ller_network\x18\x03 \x01(\t\x12H\n\x12request_attributes\x18\x07 \x01(\x0b\x32,.google.rpc.context.AttributeContext.Request\x12I\n\x16\x64\x65stination_attributes\x18\x08 \x01(\x0b\x32).google.rpc.context.AttributeContext.Peer"I\n\x10ResourceLocation\x12\x19\n\x11\x63urrent_locations\x18\x01 \x03(\t\x12\x1a\n\x12original_locations\x18\x02 \x03(\t"\xc3\x03\n\x1cServiceAccountDelegationInfo\x12\x19\n\x11principal_subject\x18\x03 \x01(\t\x12\x65\n\x15\x66irst_party_principal\x18\x01 \x01(\x0b\x32\x44.google.cloud.audit.ServiceAccountDelegationInfo.FirstPartyPrincipalH\x00\x12\x65\n\x15third_party_principal\x18\x02 \x01(\x0b\x32\x44.google.cloud.audit.ServiceAccountDelegationInfo.ThirdPartyPrincipalH\x00\x1a\x61\n\x13\x46irstPartyPrincipal\x12\x17\n\x0fprincipal_email\x18\x01 \x01(\t\x12\x31\n\x10service_metadata\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x1aJ\n\x13ThirdPartyPrincipal\x12\x33\n\x12third_party_claims\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructB\x0b\n\tAuthority"d\n\x13PolicyViolationInfo\x12M\n\x19org_policy_violation_info\x18\x01 \x01(\x0b\x32*.google.cloud.audit.OrgPolicyViolationInfo"\xb2\x02\n\x16OrgPolicyViolationInfo\x12-\n\x07payload\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\x12\x1a\n\rresource_type\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12X\n\rresource_tags\x18\x03 \x03(\x0b\x32<.google.cloud.audit.OrgPolicyViolationInfo.ResourceTagsEntryB\x03\xe0\x41\x01\x12>\n\x0eviolation_info\x18\x04 \x03(\x0b\x32!.google.cloud.audit.ViolationInfoB\x03\xe0\x41\x01\x1a\x33\n\x11ResourceTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\x97\x02\n\rViolationInfo\x12\x17\n\nconstraint\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rerror_message\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rchecked_value\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x46\n\x0bpolicy_type\x18\x04 \x01(\x0e\x32,.google.cloud.audit.ViolationInfo.PolicyTypeB\x03\xe0\x41\x01"m\n\nPolicyType\x12\x1b\n\x17POLICY_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x42OOLEAN_CONSTRAINT\x10\x01\x12\x13\n\x0fLIST_CONSTRAINT\x10\x02\x12\x15\n\x11\x43USTOM_CONSTRAINT\x10\x03\x42\x65\n\x16\x63om.google.cloud.auditB\rAuditLogProtoP\x01Z7google.golang.org/genproto/googleapis/cloud/audit;audit\xf8\x01\x01\x62\x06proto3' ) @@ -55,6 +56,13 @@ _SERVICEACCOUNTDELEGATIONINFO_THIRDPARTYPRINCIPAL = _SERVICEACCOUNTDELEGATIONINFO.nested_types_by_name[ "ThirdPartyPrincipal" ] +_POLICYVIOLATIONINFO = DESCRIPTOR.message_types_by_name["PolicyViolationInfo"] +_ORGPOLICYVIOLATIONINFO = DESCRIPTOR.message_types_by_name["OrgPolicyViolationInfo"] +_ORGPOLICYVIOLATIONINFO_RESOURCETAGSENTRY = _ORGPOLICYVIOLATIONINFO.nested_types_by_name[ + "ResourceTagsEntry" +] +_VIOLATIONINFO = DESCRIPTOR.message_types_by_name["ViolationInfo"] +_VIOLATIONINFO_POLICYTYPE = _VIOLATIONINFO.enum_types_by_name["PolicyType"] AuditLog = _reflection.GeneratedProtocolMessageType( "AuditLog", (_message.Message,), @@ -141,24 +149,103 @@ _sym_db.RegisterMessage(ServiceAccountDelegationInfo.FirstPartyPrincipal) _sym_db.RegisterMessage(ServiceAccountDelegationInfo.ThirdPartyPrincipal) +PolicyViolationInfo = _reflection.GeneratedProtocolMessageType( + "PolicyViolationInfo", + (_message.Message,), + { + "DESCRIPTOR": _POLICYVIOLATIONINFO, + "__module__": "google.cloud.audit.audit_log_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.PolicyViolationInfo) + }, +) +_sym_db.RegisterMessage(PolicyViolationInfo) + +OrgPolicyViolationInfo = _reflection.GeneratedProtocolMessageType( + "OrgPolicyViolationInfo", + (_message.Message,), + { + "ResourceTagsEntry": _reflection.GeneratedProtocolMessageType( + "ResourceTagsEntry", + (_message.Message,), + { + "DESCRIPTOR": _ORGPOLICYVIOLATIONINFO_RESOURCETAGSENTRY, + "__module__": "google.cloud.audit.audit_log_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.OrgPolicyViolationInfo.ResourceTagsEntry) + }, + ), + "DESCRIPTOR": _ORGPOLICYVIOLATIONINFO, + "__module__": "google.cloud.audit.audit_log_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.OrgPolicyViolationInfo) + }, +) +_sym_db.RegisterMessage(OrgPolicyViolationInfo) +_sym_db.RegisterMessage(OrgPolicyViolationInfo.ResourceTagsEntry) + +ViolationInfo = _reflection.GeneratedProtocolMessageType( + "ViolationInfo", + (_message.Message,), + { + "DESCRIPTOR": _VIOLATIONINFO, + "__module__": "google.cloud.audit.audit_log_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.ViolationInfo) + }, +) +_sym_db.RegisterMessage(ViolationInfo) + if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b"\n\026com.google.cloud.auditB\rAuditLogProtoP\001Z7google.golang.org/genproto/googleapis/cloud/audit;audit\370\001\001" - _AUDITLOG._serialized_start = 185 - _AUDITLOG._serialized_end = 819 - _AUTHENTICATIONINFO._serialized_start = 822 - _AUTHENTICATIONINFO._serialized_end = 1103 - _AUTHORIZATIONINFO._serialized_start = 1106 - _AUTHORIZATIONINFO._serialized_end = 1256 - _REQUESTMETADATA._serialized_start = 1259 - _REQUESTMETADATA._serialized_end = 1504 - _RESOURCELOCATION._serialized_start = 1506 - _RESOURCELOCATION._serialized_end = 1579 - _SERVICEACCOUNTDELEGATIONINFO._serialized_start = 1582 - _SERVICEACCOUNTDELEGATIONINFO._serialized_end = 2006 - _SERVICEACCOUNTDELEGATIONINFO_FIRSTPARTYPRINCIPAL._serialized_start = 1820 - _SERVICEACCOUNTDELEGATIONINFO_FIRSTPARTYPRINCIPAL._serialized_end = 1917 - _SERVICEACCOUNTDELEGATIONINFO_THIRDPARTYPRINCIPAL._serialized_start = 1919 - _SERVICEACCOUNTDELEGATIONINFO_THIRDPARTYPRINCIPAL._serialized_end = 1993 + _AUDITLOG.fields_by_name["service_data"]._options = None + _AUDITLOG.fields_by_name["service_data"]._serialized_options = b"\030\001" + _ORGPOLICYVIOLATIONINFO_RESOURCETAGSENTRY._options = None + _ORGPOLICYVIOLATIONINFO_RESOURCETAGSENTRY._serialized_options = b"8\001" + _ORGPOLICYVIOLATIONINFO.fields_by_name["payload"]._options = None + _ORGPOLICYVIOLATIONINFO.fields_by_name["payload"]._serialized_options = b"\340A\001" + _ORGPOLICYVIOLATIONINFO.fields_by_name["resource_type"]._options = None + _ORGPOLICYVIOLATIONINFO.fields_by_name[ + "resource_type" + ]._serialized_options = b"\340A\001" + _ORGPOLICYVIOLATIONINFO.fields_by_name["resource_tags"]._options = None + _ORGPOLICYVIOLATIONINFO.fields_by_name[ + "resource_tags" + ]._serialized_options = b"\340A\001" + _ORGPOLICYVIOLATIONINFO.fields_by_name["violation_info"]._options = None + _ORGPOLICYVIOLATIONINFO.fields_by_name[ + "violation_info" + ]._serialized_options = b"\340A\001" + _VIOLATIONINFO.fields_by_name["constraint"]._options = None + _VIOLATIONINFO.fields_by_name["constraint"]._serialized_options = b"\340A\001" + _VIOLATIONINFO.fields_by_name["error_message"]._options = None + _VIOLATIONINFO.fields_by_name["error_message"]._serialized_options = b"\340A\001" + _VIOLATIONINFO.fields_by_name["checked_value"]._options = None + _VIOLATIONINFO.fields_by_name["checked_value"]._serialized_options = b"\340A\001" + _VIOLATIONINFO.fields_by_name["policy_type"]._options = None + _VIOLATIONINFO.fields_by_name["policy_type"]._serialized_options = b"\340A\001" + _AUDITLOG._serialized_start = 218 + _AUDITLOG._serialized_end = 928 + _AUTHENTICATIONINFO._serialized_start = 931 + _AUTHENTICATIONINFO._serialized_end = 1212 + _AUTHORIZATIONINFO._serialized_start = 1215 + _AUTHORIZATIONINFO._serialized_end = 1365 + _REQUESTMETADATA._serialized_start = 1368 + _REQUESTMETADATA._serialized_end = 1613 + _RESOURCELOCATION._serialized_start = 1615 + _RESOURCELOCATION._serialized_end = 1688 + _SERVICEACCOUNTDELEGATIONINFO._serialized_start = 1691 + _SERVICEACCOUNTDELEGATIONINFO._serialized_end = 2142 + _SERVICEACCOUNTDELEGATIONINFO_FIRSTPARTYPRINCIPAL._serialized_start = 1956 + _SERVICEACCOUNTDELEGATIONINFO_FIRSTPARTYPRINCIPAL._serialized_end = 2053 + _SERVICEACCOUNTDELEGATIONINFO_THIRDPARTYPRINCIPAL._serialized_start = 2055 + _SERVICEACCOUNTDELEGATIONINFO_THIRDPARTYPRINCIPAL._serialized_end = 2129 + _POLICYVIOLATIONINFO._serialized_start = 2144 + _POLICYVIOLATIONINFO._serialized_end = 2244 + _ORGPOLICYVIOLATIONINFO._serialized_start = 2247 + _ORGPOLICYVIOLATIONINFO._serialized_end = 2553 + _ORGPOLICYVIOLATIONINFO_RESOURCETAGSENTRY._serialized_start = 2502 + _ORGPOLICYVIOLATIONINFO_RESOURCETAGSENTRY._serialized_end = 2553 + _VIOLATIONINFO._serialized_start = 2556 + _VIOLATIONINFO._serialized_end = 2835 + _VIOLATIONINFO_POLICYTYPE._serialized_start = 2726 + _VIOLATIONINFO_POLICYTYPE._serialized_end = 2835 # @@protoc_insertion_point(module_scope) diff --git a/google/cloud/audit/bigquery_audit_metadata.proto b/google/cloud/audit/bigquery_audit_metadata.proto new file mode 100644 index 0000000..1adc41c --- /dev/null +++ b/google/cloud/audit/bigquery_audit_metadata.proto @@ -0,0 +1,1334 @@ +// Copyright 2022 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.audit; + +import "google/iam/v1/policy.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.Audit"; +option go_package = "google.golang.org/genproto/googleapis/cloud/audit;audit"; +option java_multiple_files = true; +option java_outer_classname = "BigQueryAuditMetadataProto"; +option java_package = "com.google.cloud.audit"; +option objc_class_prefix = "GCA"; +option php_namespace = "Google\\Cloud\\Audit"; + +// Audit log format for BigQuery cloud audit logs metadata. +// +message BigQueryAuditMetadata { + // Job insertion event. + message JobInsertion { + // Describes how the job was inserted. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Job was inserted using the jobs.insert API. + JOB_INSERT_REQUEST = 1; + + // Job was inserted using the jobs.query RPC. + QUERY_REQUEST = 2; + } + + // Job metadata. + Job job = 1; + + // Describes how the job was inserted. + Reason reason = 2; + } + + // Job state change event. + message JobChange { + // Job state before the job state change. + JobState before = 1; + + // Job state after the job state change. + JobState after = 2; + + // Job metadata. + Job job = 3; + } + + // Job deletion event. + message JobDeletion { + // Describes how the job was deleted. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Job was deleted using the jobs.delete API. + JOB_DELETE_REQUEST = 1; + } + + // Job URI. + // + // Format: `projects//jobs/`. + string job_name = 1; + + // Describes how the job was deleted. + Reason reason = 2; + } + + // Dataset creation event. + message DatasetCreation { + // Describes how the dataset was created. + enum Reason { + // Unknown. + REASON_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 metadata. + Dataset dataset = 1; + + // Describes how the dataset was created. + Reason reason = 2; + + // The URI of the job that created the dataset. + // Present if the reason is QUERY. + // + // Format: `projects//jobs/`. + string job_name = 3; + } + + // Dataset change event. + message DatasetChange { + // Describes how the dataset was changed. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Dataset was changed using the datasets.update or datasets.patch API. + UPDATE = 1; + + // Dataset was changed using the SetIamPolicy API. + SET_IAM_POLICY = 2; + + // Dataset was changed using a query job, e.g., ALTER SCHEMA statement. + QUERY = 3; + } + + // Dataset metadata after the change. + Dataset dataset = 1; + + // Describes how the dataset was changed. + Reason reason = 2; + + // The URI of the job that updated the dataset. + // Present if the reason is QUERY. + // + // Format: `projects//jobs/`. + string job_name = 3; + } + + // Dataset deletion event. + message DatasetDeletion { + // Describes how the dataset was deleted. + enum Reason { + // Unknown. + REASON_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; + } + + // Describes how the dataset was deleted. + Reason reason = 1; + + // The URI of the job that deleted the dataset. + // Present if the reason is QUERY. + // + // Format: `projects//jobs/`. + string job_name = 2; + } + + // Table creation event. + message TableCreation { + // Describes how the table was created. + enum Reason { + // Unknown. + REASON_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. + TABLE_INSERT_REQUEST = 3; + } + + // Table metadata. + Table table = 1; + + // Describes how the table was created. + Reason reason = 3; + + // The URI of the job that created a table. + // Present if the reason is JOB or QUERY. + // + // Format: `projects//jobs/`. + string job_name = 4; + } + + // Model creation event. + message ModelCreation { + // Describes how the model was created. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Model was created using a DDL query. + QUERY = 2; + } + + // Model metadata. + Model model = 1; + + // Describes how the model was created. + Reason reason = 3; + + // The URI of the job that created the model. + // + // Format: `projects//jobs/`. + string job_name = 4; + } + + // Routine creation event. + message RoutineCreation { + // Describes how the routine was created. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Routine was created using a DDL query. + QUERY = 1; + + // Routine was created using the routines.create API. + ROUTINE_INSERT_REQUEST = 2; + } + + // Created routine. + Routine routine = 1; + + // Describes how the routine was created. + Reason reason = 3; + + // The URI of the job that created the routine. + // + // Format: `projects//jobs/`. + string job_name = 4; + } + + // Table data read event. + message TableDataRead { + // Describes how the table data was read. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Table was used as a source table during a BigQuery job. + JOB = 1; + + // Table data was accessed using the tabledata.list API. + TABLEDATA_LIST_REQUEST = 2; + + // Table data was accessed using the jobs.getQueryResults API. + GET_QUERY_RESULTS_REQUEST = 3; + + // Table data was accessed using the jobs.query RPC. + QUERY_REQUEST = 4; + + // Table data was accessed using storage.CreateReadSession API. + CREATE_READ_SESSION = 5; + + // Table data was accessed during a materialized view refresh. + MATERIALIZED_VIEW_REFRESH = 6; + } + + // List of the accessed fields. Entire list is truncated if the record size + // exceeds 100K. + repeated string fields = 2; + + // True if the fields list was truncated. + bool fields_truncated = 8; + + // 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/` + repeated string policy_tags = 9; + + // True if the policy tag list was truncated. At most 100 policy tags can be + // saved. + bool policy_tags_truncated = 10; + + // Describes how the table data was read. + Reason reason = 3; + + // 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/`. + string job_name = 4; + + // The URI of the read session that read a table. + // Present if the reason is CREATE_READ_SESSION. + // + // Format: + // `projects//locations//sessions/`. + string session_name = 5; + } + + // Table metadata change event. + message TableChange { + // Describes how the table metadata was changed. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Table metadata was updated using the tables.update or tables.patch API. + TABLE_UPDATE_REQUEST = 1; + + // Table was used as a job destination table. + JOB = 2; + + // Table metadata was updated using a DML or DDL query. + QUERY = 3; + } + + // Updated table metadata. + Table table = 1; + + // True if the table was truncated. + bool truncated = 4; + + // Describes how the table metadata was changed. + Reason reason = 5; + + // The URI of the job that changed a table. + // Present if the reason is JOB or QUERY. + // + // Format: `projects//jobs/`. + string job_name = 6; + } + + // Model metadata change event. + message ModelMetadataChange { + // Describes how the model metadata was changed. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Model metadata was updated using the models.patch API. + MODEL_PATCH_REQUEST = 1; + + // Model metadata was updated using a DDL query. + QUERY = 2; + } + + // Updated model. + Model model = 1; + + // Describes how the model metadata was changed. + Reason reason = 2; + + // The URI of the job that changed the model metadata. + // Present if and only if the reason is QUERY. + // + // Format: `projects//jobs/`. + string job_name = 3; + } + + // Routine change event. + message RoutineChange { + // Describes how the routine was updated. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Routine was updated using a DDL query. + QUERY = 1; + + // Routine was updated using the routines.update or routines.patch API. + ROUTINE_UPDATE_REQUEST = 2; + } + + // Updated routine. + Routine routine = 1; + + // Describes how the routine was updated. + Reason reason = 3; + + // The URI of the job that updated the routine. + // + // Format: `projects//jobs/`. + string job_name = 4; + } + + // Table data change event. + message TableDataChange { + // Describes how the table data was changed. + enum Reason { + // Unknown. + REASON_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. + MATERIALIZED_VIEW_REFRESH = 3; + + // Table data was added using the Write API. + WRITE_API = 4; + } + + // Number of deleted rows. + int64 deleted_rows_count = 1; + + // Number of inserted rows. + int64 inserted_rows_count = 2; + + // True if the table was truncated. + bool truncated = 3; + + // Describes how the table data was changed. + Reason reason = 4; + + // The URI of the job that changed a table. + // + // Format: `projects//jobs/`. + string job_name = 5; + + // If written from WRITE_API, the name of the stream. + // + // Format: + // `projects//datasets//tables//streams/` + string stream_name = 6; + } + + // Model data change event. + message ModelDataChange { + // Describes how the model data was changed. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Model data was changed using a DDL query. + QUERY = 1; + } + + // Describes how the model data was changed. + Reason reason = 1; + + // The URI of the job that changed the model data. + // + // Format: `projects//jobs/`. + string job_name = 2; + } + + // Model data read event. + message ModelDataRead { + // Describes how the model data was read. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Model was used as a source model during a BigQuery job. + JOB = 1; + } + + // Describes how the model data was read. + Reason reason = 1; + + // The URI of the job that read the model data. + // + // Format: `projects//jobs/`. + string job_name = 2; + } + + // Table deletion event. + message TableDeletion { + // Describes how the table was deleted. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Table was deleted using the tables.delete API. + TABLE_DELETE_REQUEST = 2; + + // Table expired. + EXPIRED = 3; + + // Table deleted using a DDL query. + QUERY = 4; + } + + // Describes how table was deleted. + Reason reason = 1; + + // The URI of the job that deleted a table. + // Present if the reason is QUERY. + // + // Format: `projects//jobs/`. + string job_name = 2; + } + + // Model deletion event. + message ModelDeletion { + // Describes how the model was deleted. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Model was deleted using the models.delete API. + MODEL_DELETE_REQUEST = 1; + + // Model expired. + EXPIRED = 2; + + // Model was deleted using DDL query. + QUERY = 3; + } + + // Describes how the model was deleted. + Reason reason = 1; + + // The URI of the job that deleted a model. + // Present if the reason is QUERY. + // + // Format: `projects//jobs/`. + string job_name = 2; + } + + // Routine deletion event. + message RoutineDeletion { + // Describes how the routine was deleted. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Routine was deleted using DDL query. + QUERY = 1; + + // Routine was deleted using the API. + ROUTINE_DELETE_REQUEST = 2; + } + + // Deleted routine. + Routine routine = 1; + + // Describes how the routine was deleted. + Reason reason = 3; + + // The URI of the job that deleted the routine. + // Present if the reason is QUERY. + // + // Format: `projects//jobs/`. + string job_name = 4; + } + + // Row access policy creation event. + message RowAccessPolicyCreation { + // The row access policy created by this event. + RowAccessPolicy row_access_policy = 1; + + // The URI of the job that created this row access policy. + // + // Format: `projects//jobs/`. + string job_name = 2; + } + + // Row access policy change event. + message RowAccessPolicyChange { + // The row access policy that was changed by this event. + RowAccessPolicy row_access_policy = 1; + + // The URI of the job that created this row access policy. + // + // Format: `projects//jobs/`. + string job_name = 2; + } + + // Row access policy deletion event. + message RowAccessPolicyDeletion { + // The row access policies that were deleted. At present, only populated + // when a single policy is dropped. + repeated RowAccessPolicy row_access_policies = 1; + + // The job that deleted these row access policies. + // + // Format: `projects//jobs/`. + string job_name = 2; + + // This field is set to true when a DROP ALL command has been executed, thus + // removing all row access policies on the table. + bool all_row_access_policies_dropped = 3; + } + + // Unlink linked dataset from its source dataset event + message UnlinkDataset { + // Describes how the unlinking operation occurred. + enum Reason { + // Unknown. + REASON_UNSPECIFIED = 0; + + // Linked dataset unlinked via API + UNLINK_API = 1; + } + + // The linked dataset URI which is unlinked from its source. + // + // Format: `projects//datasets/`. + string linked_dataset = 1; + + // The source dataset URI from which the linked dataset is unlinked. + // + // Format: `projects//datasets/`. + string source_dataset = 2; + + // Reason for unlinking linked dataset + Reason reason = 3; + } + + // BigQuery job. + message Job { + // Job URI. + // + // Format: `projects//jobs/`. + string job_name = 1; + + // Job configuration. + JobConfig job_config = 2; + + // Job status. + JobStatus job_status = 3; + + // Job statistics. + JobStats job_stats = 4; + } + + // Job configuration. + // See the [Jobs](https://cloud.google.com/bigquery/docs/reference/v2/jobs) + // API resource for more details on individual fields. + message JobConfig { + // Job type. + enum Type { + // Unknown. + TYPE_UNSPECIFIED = 0; + + // Query job. + QUERY = 1; + + // Table copy job. + COPY = 2; + + // Export (extract) job. + EXPORT = 3; + + // Import (load) job. + IMPORT = 4; + } + + // Query job configuration. + message Query { + // Priority given to the query. + enum Priority { + // Unknown. + PRIORITY_UNSPECIFIED = 0; + + // Interactive query. + QUERY_INTERACTIVE = 1; + + // Batch query. + QUERY_BATCH = 2; + } + + // The SQL query to run. Truncated if exceeds 50K. + string query = 1; + + // True if the query field was truncated. + bool query_truncated = 10; + + // The destination table for the query results. + string destination_table = 2; + + // Destination table create disposition. + CreateDisposition create_disposition = 3; + + // Destination table write disposition. + WriteDisposition write_disposition = 4; + + // Default dataset for the query. + string default_dataset = 5; + + // External data sources used in the query. + repeated TableDefinition table_definitions = 6; + + // Priority given to the query. + Priority priority = 7; + + // Result table encryption information. Set when non-default encryption is + // used. + EncryptionInfo destination_table_encryption = 8; + + // Type of the query. + QueryStatementType statement_type = 9; + } + + // Load job configuration. + message Load { + // URIs for the data to be imported. Entire list is truncated if exceeds + // 40K. + repeated string source_uris = 1; + + // True if the source_URIs field was truncated. + bool source_uris_truncated = 7; + + // The table schema in JSON format. Entire field is truncated if exceeds + // 40K. + string schema_json = 2; + + // True if the schema_json field was truncated. + bool schema_json_truncated = 8; + + // The destination table for the import. + string destination_table = 3; + + // Destination table create disposition. + CreateDisposition create_disposition = 4; + + // Destination table write disposition. + WriteDisposition write_disposition = 5; + + // Result table encryption information. Set when non-default encryption is + // used. + EncryptionInfo destination_table_encryption = 6; + } + + // Extract job configuration. + message Extract { + // URIs where extracted data should be written. Entire list is truncated + // if exceeds 50K. + repeated string destination_uris = 1; + + // True if the destination_URIs field was truncated. + bool destination_uris_truncated = 3; + + oneof source { + // The source table. + string source_table = 2; + + // The source model. + string source_model = 4; + } + } + + // Table copy job configuration. + message TableCopy { + // Source tables. Entire list is truncated if exceeds 50K. + repeated string source_tables = 1; + + // True if the source_tables field was truncated. + bool source_tables_truncated = 6; + + // Destination table. + string destination_table = 2; + + // Destination table create disposition. + CreateDisposition create_disposition = 3; + + // Destination table write disposition. + WriteDisposition write_disposition = 4; + + // Result table encryption information. Set when non-default encryption is + // used. + EncryptionInfo destination_table_encryption = 5; + + // Supported operation types in the table copy job. + OperationType operation_type = 7; + + // Expiration time set on the destination table. Expired tables will be + // deleted and their storage reclaimed. + google.protobuf.Timestamp destination_expiration_time = 8; + } + + // Job type. + Type type = 1; + + // Job configuration information. + oneof config { + // Query job information. + Query query_config = 2; + + // Load job information. + Load load_config = 3; + + // Extract job information. + Extract extract_config = 4; + + // TableCopy job information. + TableCopy table_copy_config = 5; + } + + // Labels provided for the job. + map labels = 6; + } + + // Definition of an external data source used in a query. + message TableDefinition { + // Name of the table, used in queries. + string name = 1; + + // URIs for the data. + repeated string source_uris = 2; + } + + // Describes whether a job should create a destination table if it doesn't + // exist. + enum CreateDisposition { + // Unknown. + CREATE_DISPOSITION_UNSPECIFIED = 0; + + // This job should never create tables. + CREATE_NEVER = 1; + + // This job should create a table if it doesn't already exist. + CREATE_IF_NEEDED = 2; + } + + // Describes whether a job should overwrite or append the existing destination + // table if it already exists. + enum WriteDisposition { + // Unknown. + WRITE_DISPOSITION_UNSPECIFIED = 0; + + // This job should only be writing to empty tables. + WRITE_EMPTY = 1; + + // This job will truncate the existing table data. + WRITE_TRUNCATE = 2; + + // This job will append to the table. + WRITE_APPEND = 3; + } + + // Table copy job operation type. + enum OperationType { + // Unspecified operation type. + 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; + } + + // State of a job. + enum JobState { + // State unknown. + JOB_STATE_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..) + enum QueryStatementType { + // Unknown. + QUERY_STATEMENT_TYPE_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> + CREATE_TABLE = 6; + + // CREATE TABLE <Table> AS SELECT + CREATE_TABLE_AS_SELECT = 7; + + // CREATE VIEW <View> + CREATE_VIEW = 8; + + // CREATE MODEL <Model> AS <Query> + CREATE_MODEL = 9; + + // CREATE MATERIALIZED VIEW <View> AS ... + CREATE_MATERIALIZED_VIEW = 13; + + // CREATE FUNCTION <Function>(<Signature>) AS ... + CREATE_FUNCTION = 14; + + // CREATE TABLE FUNCTION <Function>(<Signature>) AS ... + CREATE_TABLE_FUNCTION = 56; + + // CREATE PROCEDURE <Procedure> + CREATE_PROCEDURE = 20; + + // CREATE ROW ACCESS POLICY <RowAccessPolicy> ON <Table> + CREATE_ROW_ACCESS_POLICY = 24; + + // CREATE SCHEMA <Schema> + CREATE_SCHEMA = 53; + + // CREATE SNAPSHOT TABLE <Snapshot> CLONE <Table> + CREATE_SNAPSHOT_TABLE = 59; + + // DROP TABLE <Table> + DROP_TABLE = 10; + + // DROP EXTERNAL TABLE <Table> + DROP_EXTERNAL_TABLE = 33; + + // DROP VIEW <View> + DROP_VIEW = 11; + + // DROP MODEL <Model> + DROP_MODEL = 12; + + // DROP MATERIALIZED VIEW <View> + DROP_MATERIALIZED_VIEW = 15; + + // DROP FUNCTION <Function> + DROP_FUNCTION = 16; + + // DROP PROCEDURE <Procedure> + DROP_PROCEDURE = 21; + + // DROP SCHEMA <Schema> + DROP_SCHEMA = 54; + + // DROP ROW ACCESS POLICY <RowAccessPolicy> ON <Table> DROP + // ALL ROW ACCESS POLICIES ON ON <Table> + DROP_ROW_ACCESS_POLICY = 25; + + // DROP SNAPSHOT TABLE <Snapshot> + DROP_SNAPSHOT_TABLE = 62; + + // ALTER TABLE <Table> + ALTER_TABLE = 17; + + // ALTER VIEW <View> + ALTER_VIEW = 18; + + // ALTER MATERIALIZED_VIEW <view> + ALTER_MATERIALIZED_VIEW = 22; + + // ALTER SCHEMA <Schema> + ALTER_SCHEMA = 55; + + // Script + SCRIPT = 19; + + // TRUNCATE TABLE <Table> + TRUNCATE_TABLE = 26; + + // CREATE EXTERNAL TABLE <TABLE> + CREATE_EXTERNAL_TABLE = 27; + + // EXPORT DATA; + EXPORT_DATA = 28; + + // CALL <stored procedure> + CALL = 29; + } + + // Status of a job. + message JobStatus { + // State of the job. + JobState job_state = 1; + + // Job error, if the job failed. + google.rpc.Status error_result = 2; + + // Errors encountered during the running of the job. Does not necessarily + // mean that the job has completed or was unsuccessful. + repeated google.rpc.Status errors = 3; + } + + // Job statistics. + message JobStats { + // Query job statistics. + message Query { + // Total bytes processed by the query job. + int64 total_processed_bytes = 1; + + // Total bytes billed by the query job. + int64 total_billed_bytes = 2; + + // The tier assigned by the CPU-based billing. + int32 billing_tier = 3; + + // Tables accessed by the query job. + repeated string referenced_tables = 6; + + // Views accessed by the query job. + repeated string referenced_views = 7; + + // Routines accessed by the query job. + repeated string referenced_routines = 10; + + // Number of output rows produced by the query job. + int64 output_row_count = 8; + + // True if the query job results were read from the query cache. + bool cache_hit = 9; + } + + // Load job statistics. + message Load { + // Total bytes loaded by the import job. + int64 total_output_bytes = 1; + } + + // Extract job statistics. + message Extract { + // Total bytes exported by the extract job. + int64 total_input_bytes = 1; + } + + // 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; + } + + // Job creation time. + google.protobuf.Timestamp create_time = 1; + + // Job execution start time. + google.protobuf.Timestamp start_time = 2; + + // Job completion time. + google.protobuf.Timestamp end_time = 3; + + // Statistics specific to the job type. + oneof extended { + // Query job statistics. + Query query_stats = 8; + + // Load job statistics. + Load load_stats = 9; + + // Extract job statistics. + Extract extract_stats = 13; + } + + // The total number of slot-ms consumed by the query job. + int64 total_slot_ms = 10; + + // Reservation usage attributed from each tier of a reservation hierarchy. + // This field reported misleading information and will no longer be + // populated. Aggregate usage of all jobs submitted to a reservation + // should provide a more reliable indicator of reservation imbalance. + repeated ReservationResourceUsage reservation_usage = 11 + [deprecated = true]; + + // Reservation name or "unreserved" for on-demand resource usage. + string reservation = 14; + + // Parent job name. Only present for child jobs. + string parent_job_name = 12; + } + + // BigQuery table. + message Table { + // Table URI. + // + // Format: `projects//datasets//tables/`. + string table_name = 1; + + // User-provided metadata for the table. + EntityInfo table_info = 10; + + // A JSON representation of the table's schema. Entire field is truncated + // if exceeds 40K. + string schema_json = 3; + + // True if the schema_json field was truncated. + bool schema_json_truncated = 11; + + // View metadata. Only present for views. + TableViewDefinition view = 4; + + // Table expiration time. + google.protobuf.Timestamp expire_time = 5; + + // The table creation time. + google.protobuf.Timestamp create_time = 6; + + // The last time metadata update time. + google.protobuf.Timestamp update_time = 7; + + // The last table truncation time. + google.protobuf.Timestamp truncate_time = 8; + + // Table encryption information. Set when non-default encryption is used. + EncryptionInfo encryption = 9; + } + + // Trained BigQuery ML model. + message Model { + // Model URI. + // + // Format: `projects//datasets//models/`. + string model_name = 1; + + // User-provided metadata for the model. + EntityInfo model_info = 2; + + // Model expiration time. + google.protobuf.Timestamp expire_time = 5; + + // Model creation time. + google.protobuf.Timestamp create_time = 6; + + // Model last update time. + google.protobuf.Timestamp update_time = 7; + + // Model encryption information. Set when non-default encryption is used. + EncryptionInfo encryption = 8; + } + + // User Defined Function (UDF) or Stored Procedure. + message Routine { + // Routine URI. + // + // Format: + // `projects//datasets//routines/`. + string routine_name = 1; + + // Routine creation time. + google.protobuf.Timestamp create_time = 5; + + // Routine last update time. + google.protobuf.Timestamp update_time = 6; + } + + // User-provided metadata for an entity, for e.g. dataset, table or model. + message EntityInfo { + // A short name for the entity. + string friendly_name = 1; + + // A long description for the entity. + string description = 2; + + // Labels provided for the entity. + map labels = 3; + } + + // View definition. + message TableViewDefinition { + // SQL query defining the view. Truncated if exceeds 40K. + string query = 1; + + // True if the schema_json field was truncated. + bool query_truncated = 2; + } + + // BigQuery dataset. + message Dataset { + // Dataset URI. + // + // Format: `projects//datasets/`. + string dataset_name = 1; + + // User-provided metadata for the dataset. + EntityInfo dataset_info = 7; + + // Dataset creation time. + google.protobuf.Timestamp create_time = 3; + + // Dataset metadata last update time. + google.protobuf.Timestamp update_time = 4; + + // The access control list for the dataset. + BigQueryAcl acl = 5; + + // Default expiration time for tables in the dataset. + google.protobuf.Duration default_table_expire_duration = 6; + + // Default encryption for tables in the dataset. + EncryptionInfo default_encryption = 8; + + // Default collation for the dataset. + string default_collation = 9; + } + + // An access control list. + message BigQueryAcl { + // IAM policy for the resource. + google.iam.v1.Policy policy = 1; + + // List of authorized views for a dataset. + // + // Format: `projects//datasets//tables/`. + repeated string authorized_views = 2; + } + + // Encryption properties for a table or a job + message EncryptionInfo { + // Cloud kms key identifier. + // + // Format: + // `projects//locations//keyRings//cryptoKeys/` + string kms_key_name = 1; + } + + // BigQuery row access policy. + message RowAccessPolicy { + // Row access policy URI. + // + // Format: + // `projects//datasets//tables//rowAccessPolicies/` + string row_access_policy_name = 1; + } + + // First party (Google) application specific request metadata. + message FirstPartyAppMetadata { + oneof metadata { + // Google Sheets metadata. + SheetsMetadata sheets_metadata = 1; + } + } + + // Google Sheets specific request metadata. + message SheetsMetadata { + // The ID of the spreadsheet from which the request is sent. + string doc_id = 1; + } + + // BigQuery event information. + oneof event { + // Job insertion event. + JobInsertion job_insertion = 1; + + // Job state change event. + JobChange job_change = 2; + + // Job deletion event. + JobDeletion job_deletion = 23; + + // Dataset creation event. + DatasetCreation dataset_creation = 3; + + // Dataset change event. + DatasetChange dataset_change = 4; + + // Dataset deletion event. + DatasetDeletion dataset_deletion = 5; + + // Table creation event. + TableCreation table_creation = 6; + + // Table metadata change event. + TableChange table_change = 8; + + // Table deletion event. + TableDeletion table_deletion = 9; + + // Table data read event. + TableDataRead table_data_read = 10; + + // Table data change event. + TableDataChange table_data_change = 11; + + // Model deletion event. + ModelDeletion model_deletion = 12; + + // Model creation event. + ModelCreation model_creation = 13; + + // Model metadata change event. + ModelMetadataChange model_metadata_change = 14; + + // Model data change event. + ModelDataChange model_data_change = 15; + + // Model data read event. + ModelDataRead model_data_read = 19; + + // Routine creation event. + RoutineCreation routine_creation = 16; + + // Routine change event. + RoutineChange routine_change = 17; + + // Routine deletion event. + RoutineDeletion routine_deletion = 18; + + // Row access policy create event. + RowAccessPolicyCreation row_access_policy_creation = 20; + + // Row access policy change event. + RowAccessPolicyChange row_access_policy_change = 21; + + // Row access policy deletion event. + RowAccessPolicyDeletion row_access_policy_deletion = 22; + + // Unlink linked dataset from its source dataset event + UnlinkDataset unlink_dataset = 25; + } + + // First party (Google) application specific metadata. + FirstPartyAppMetadata first_party_app_metadata = 24; +} diff --git a/google/cloud/audit/bigquery_audit_metadata_pb2.py b/google/cloud/audit/bigquery_audit_metadata_pb2.py new file mode 100644 index 0000000..03cd3be --- /dev/null +++ b/google/cloud/audit/bigquery_audit_metadata_pb2.py @@ -0,0 +1,921 @@ +# -*- coding: utf-8 -*- + +# 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. + +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/audit/bigquery_audit_metadata.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.iam.v1 import policy_pb2 as google_dot_iam_dot_v1_dot_policy__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n0google/cloud/audit/bigquery_audit_metadata.proto\x12\x12google.cloud.audit\x1a\x1agoogle/iam/v1/policy.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto"\xabo\n\x15\x42igQueryAuditMetadata\x12O\n\rjob_insertion\x18\x01 \x01(\x0b\x32\x36.google.cloud.audit.BigQueryAuditMetadata.JobInsertionH\x00\x12I\n\njob_change\x18\x02 \x01(\x0b\x32\x33.google.cloud.audit.BigQueryAuditMetadata.JobChangeH\x00\x12M\n\x0cjob_deletion\x18\x17 \x01(\x0b\x32\x35.google.cloud.audit.BigQueryAuditMetadata.JobDeletionH\x00\x12U\n\x10\x64\x61taset_creation\x18\x03 \x01(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.DatasetCreationH\x00\x12Q\n\x0e\x64\x61taset_change\x18\x04 \x01(\x0b\x32\x37.google.cloud.audit.BigQueryAuditMetadata.DatasetChangeH\x00\x12U\n\x10\x64\x61taset_deletion\x18\x05 \x01(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.DatasetDeletionH\x00\x12Q\n\x0etable_creation\x18\x06 \x01(\x0b\x32\x37.google.cloud.audit.BigQueryAuditMetadata.TableCreationH\x00\x12M\n\x0ctable_change\x18\x08 \x01(\x0b\x32\x35.google.cloud.audit.BigQueryAuditMetadata.TableChangeH\x00\x12Q\n\x0etable_deletion\x18\t \x01(\x0b\x32\x37.google.cloud.audit.BigQueryAuditMetadata.TableDeletionH\x00\x12R\n\x0ftable_data_read\x18\n \x01(\x0b\x32\x37.google.cloud.audit.BigQueryAuditMetadata.TableDataReadH\x00\x12V\n\x11table_data_change\x18\x0b \x01(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.TableDataChangeH\x00\x12Q\n\x0emodel_deletion\x18\x0c \x01(\x0b\x32\x37.google.cloud.audit.BigQueryAuditMetadata.ModelDeletionH\x00\x12Q\n\x0emodel_creation\x18\r \x01(\x0b\x32\x37.google.cloud.audit.BigQueryAuditMetadata.ModelCreationH\x00\x12^\n\x15model_metadata_change\x18\x0e \x01(\x0b\x32=.google.cloud.audit.BigQueryAuditMetadata.ModelMetadataChangeH\x00\x12V\n\x11model_data_change\x18\x0f \x01(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.ModelDataChangeH\x00\x12R\n\x0fmodel_data_read\x18\x13 \x01(\x0b\x32\x37.google.cloud.audit.BigQueryAuditMetadata.ModelDataReadH\x00\x12U\n\x10routine_creation\x18\x10 \x01(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.RoutineCreationH\x00\x12Q\n\x0eroutine_change\x18\x11 \x01(\x0b\x32\x37.google.cloud.audit.BigQueryAuditMetadata.RoutineChangeH\x00\x12U\n\x10routine_deletion\x18\x12 \x01(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.RoutineDeletionH\x00\x12g\n\x1arow_access_policy_creation\x18\x14 \x01(\x0b\x32\x41.google.cloud.audit.BigQueryAuditMetadata.RowAccessPolicyCreationH\x00\x12\x63\n\x18row_access_policy_change\x18\x15 \x01(\x0b\x32?.google.cloud.audit.BigQueryAuditMetadata.RowAccessPolicyChangeH\x00\x12g\n\x1arow_access_policy_deletion\x18\x16 \x01(\x0b\x32\x41.google.cloud.audit.BigQueryAuditMetadata.RowAccessPolicyDeletionH\x00\x12Q\n\x0eunlink_dataset\x18\x19 \x01(\x0b\x32\x37.google.cloud.audit.BigQueryAuditMetadata.UnlinkDatasetH\x00\x12\x61\n\x18\x66irst_party_app_metadata\x18\x18 \x01(\x0b\x32?.google.cloud.audit.BigQueryAuditMetadata.FirstPartyAppMetadata\x1a\xe6\x01\n\x0cJobInsertion\x12:\n\x03job\x18\x01 \x01(\x0b\x32-.google.cloud.audit.BigQueryAuditMetadata.Job\x12M\n\x06reason\x18\x02 \x01(\x0e\x32=.google.cloud.audit.BigQueryAuditMetadata.JobInsertion.Reason"K\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x16\n\x12JOB_INSERT_REQUEST\x10\x01\x12\x11\n\rQUERY_REQUEST\x10\x02\x1a\xce\x01\n\tJobChange\x12\x42\n\x06\x62\x65\x66ore\x18\x01 \x01(\x0e\x32\x32.google.cloud.audit.BigQueryAuditMetadata.JobState\x12\x41\n\x05\x61\x66ter\x18\x02 \x01(\x0e\x32\x32.google.cloud.audit.BigQueryAuditMetadata.JobState\x12:\n\x03job\x18\x03 \x01(\x0b\x32-.google.cloud.audit.BigQueryAuditMetadata.Job\x1a\xa7\x01\n\x0bJobDeletion\x12\x10\n\x08job_name\x18\x01 \x01(\t\x12L\n\x06reason\x18\x02 \x01(\x0e\x32<.google.cloud.audit.BigQueryAuditMetadata.JobDeletion.Reason"8\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x16\n\x12JOB_DELETE_REQUEST\x10\x01\x1a\xf2\x01\n\x0f\x44\x61tasetCreation\x12\x42\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x31.google.cloud.audit.BigQueryAuditMetadata.Dataset\x12P\n\x06reason\x18\x02 \x01(\x0e\x32@.google.cloud.audit.BigQueryAuditMetadata.DatasetCreation.Reason\x12\x10\n\x08job_name\x18\x03 \x01(\t"7\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\n\n\x06\x43REATE\x10\x01\x12\t\n\x05QUERY\x10\x02\x1a\x82\x02\n\rDatasetChange\x12\x42\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x31.google.cloud.audit.BigQueryAuditMetadata.Dataset\x12N\n\x06reason\x18\x02 \x01(\x0e\x32>.google.cloud.audit.BigQueryAuditMetadata.DatasetChange.Reason\x12\x10\n\x08job_name\x18\x03 \x01(\t"K\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\n\n\x06UPDATE\x10\x01\x12\x12\n\x0eSET_IAM_POLICY\x10\x02\x12\t\n\x05QUERY\x10\x03\x1a\xae\x01\n\x0f\x44\x61tasetDeletion\x12P\n\x06reason\x18\x01 \x01(\x0e\x32@.google.cloud.audit.BigQueryAuditMetadata.DatasetDeletion.Reason\x12\x10\n\x08job_name\x18\x02 \x01(\t"7\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\n\n\x06\x44\x45LETE\x10\x01\x12\t\n\x05QUERY\x10\x02\x1a\x81\x02\n\rTableCreation\x12>\n\x05table\x18\x01 \x01(\x0b\x32/.google.cloud.audit.BigQueryAuditMetadata.Table\x12N\n\x06reason\x18\x03 \x01(\x0e\x32>.google.cloud.audit.BigQueryAuditMetadata.TableCreation.Reason\x12\x10\n\x08job_name\x18\x04 \x01(\t"N\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x07\n\x03JOB\x10\x01\x12\t\n\x05QUERY\x10\x02\x12\x18\n\x14TABLE_INSERT_REQUEST\x10\x03\x1a\xde\x01\n\rModelCreation\x12>\n\x05model\x18\x01 \x01(\x0b\x32/.google.cloud.audit.BigQueryAuditMetadata.Model\x12N\n\x06reason\x18\x03 \x01(\x0e\x32>.google.cloud.audit.BigQueryAuditMetadata.ModelCreation.Reason\x12\x10\n\x08job_name\x18\x04 \x01(\t"+\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\t\n\x05QUERY\x10\x02\x1a\x82\x02\n\x0fRoutineCreation\x12\x42\n\x07routine\x18\x01 \x01(\x0b\x32\x31.google.cloud.audit.BigQueryAuditMetadata.Routine\x12P\n\x06reason\x18\x03 \x01(\x0e\x32@.google.cloud.audit.BigQueryAuditMetadata.RoutineCreation.Reason\x12\x10\n\x08job_name\x18\x04 \x01(\t"G\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\t\n\x05QUERY\x10\x01\x12\x1a\n\x16ROUTINE_INSERT_REQUEST\x10\x02\x1a\x97\x03\n\rTableDataRead\x12\x0e\n\x06\x66ields\x18\x02 \x03(\t\x12\x18\n\x10\x66ields_truncated\x18\x08 \x01(\x08\x12\x13\n\x0bpolicy_tags\x18\t \x03(\t\x12\x1d\n\x15policy_tags_truncated\x18\n \x01(\x08\x12N\n\x06reason\x18\x03 \x01(\x0e\x32>.google.cloud.audit.BigQueryAuditMetadata.TableDataRead.Reason\x12\x10\n\x08job_name\x18\x04 \x01(\t\x12\x14\n\x0csession_name\x18\x05 \x01(\t"\xaf\x01\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x07\n\x03JOB\x10\x01\x12\x1a\n\x16TABLEDATA_LIST_REQUEST\x10\x02\x12\x1d\n\x19GET_QUERY_RESULTS_REQUEST\x10\x03\x12\x11\n\rQUERY_REQUEST\x10\x04\x12\x17\n\x13\x43REATE_READ_SESSION\x10\x05\x12\x1d\n\x19MATERIALIZED_VIEW_REFRESH\x10\x06\x1a\x90\x02\n\x0bTableChange\x12>\n\x05table\x18\x01 \x01(\x0b\x32/.google.cloud.audit.BigQueryAuditMetadata.Table\x12\x11\n\ttruncated\x18\x04 \x01(\x08\x12L\n\x06reason\x18\x05 \x01(\x0e\x32<.google.cloud.audit.BigQueryAuditMetadata.TableChange.Reason\x12\x10\n\x08job_name\x18\x06 \x01(\t"N\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x18\n\x14TABLE_UPDATE_REQUEST\x10\x01\x12\x07\n\x03JOB\x10\x02\x12\t\n\x05QUERY\x10\x03\x1a\x83\x02\n\x13ModelMetadataChange\x12>\n\x05model\x18\x01 \x01(\x0b\x32/.google.cloud.audit.BigQueryAuditMetadata.Model\x12T\n\x06reason\x18\x02 \x01(\x0e\x32\x44.google.cloud.audit.BigQueryAuditMetadata.ModelMetadataChange.Reason\x12\x10\n\x08job_name\x18\x03 \x01(\t"D\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x17\n\x13MODEL_PATCH_REQUEST\x10\x01\x12\t\n\x05QUERY\x10\x02\x1a\xfe\x01\n\rRoutineChange\x12\x42\n\x07routine\x18\x01 \x01(\x0b\x32\x31.google.cloud.audit.BigQueryAuditMetadata.Routine\x12N\n\x06reason\x18\x03 \x01(\x0e\x32>.google.cloud.audit.BigQueryAuditMetadata.RoutineChange.Reason\x12\x10\n\x08job_name\x18\x04 \x01(\t"G\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\t\n\x05QUERY\x10\x01\x12\x1a\n\x16ROUTINE_UPDATE_REQUEST\x10\x02\x1a\xba\x02\n\x0fTableDataChange\x12\x1a\n\x12\x64\x65leted_rows_count\x18\x01 \x01(\x03\x12\x1b\n\x13inserted_rows_count\x18\x02 \x01(\x03\x12\x11\n\ttruncated\x18\x03 \x01(\x08\x12P\n\x06reason\x18\x04 \x01(\x0e\x32@.google.cloud.audit.BigQueryAuditMetadata.TableDataChange.Reason\x12\x10\n\x08job_name\x18\x05 \x01(\t\x12\x13\n\x0bstream_name\x18\x06 \x01(\t"b\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x07\n\x03JOB\x10\x01\x12\t\n\x05QUERY\x10\x02\x12\x1d\n\x19MATERIALIZED_VIEW_REFRESH\x10\x03\x12\r\n\tWRITE_API\x10\x04\x1a\xa2\x01\n\x0fModelDataChange\x12P\n\x06reason\x18\x01 \x01(\x0e\x32@.google.cloud.audit.BigQueryAuditMetadata.ModelDataChange.Reason\x12\x10\n\x08job_name\x18\x02 \x01(\t"+\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\t\n\x05QUERY\x10\x01\x1a\x9c\x01\n\rModelDataRead\x12N\n\x06reason\x18\x01 \x01(\x0e\x32>.google.cloud.audit.BigQueryAuditMetadata.ModelDataRead.Reason\x12\x10\n\x08job_name\x18\x02 \x01(\t")\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x07\n\x03JOB\x10\x01\x1a\xc5\x01\n\rTableDeletion\x12N\n\x06reason\x18\x01 \x01(\x0e\x32>.google.cloud.audit.BigQueryAuditMetadata.TableDeletion.Reason\x12\x10\n\x08job_name\x18\x02 \x01(\t"R\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x18\n\x14TABLE_DELETE_REQUEST\x10\x02\x12\x0b\n\x07\x45XPIRED\x10\x03\x12\t\n\x05QUERY\x10\x04\x1a\xc5\x01\n\rModelDeletion\x12N\n\x06reason\x18\x01 \x01(\x0e\x32>.google.cloud.audit.BigQueryAuditMetadata.ModelDeletion.Reason\x12\x10\n\x08job_name\x18\x02 \x01(\t"R\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x18\n\x14MODEL_DELETE_REQUEST\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x12\t\n\x05QUERY\x10\x03\x1a\x82\x02\n\x0fRoutineDeletion\x12\x42\n\x07routine\x18\x01 \x01(\x0b\x32\x31.google.cloud.audit.BigQueryAuditMetadata.Routine\x12P\n\x06reason\x18\x03 \x01(\x0e\x32@.google.cloud.audit.BigQueryAuditMetadata.RoutineDeletion.Reason\x12\x10\n\x08job_name\x18\x04 \x01(\t"G\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\t\n\x05QUERY\x10\x01\x12\x1a\n\x16ROUTINE_DELETE_REQUEST\x10\x02\x1a\x81\x01\n\x17RowAccessPolicyCreation\x12T\n\x11row_access_policy\x18\x01 \x01(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.RowAccessPolicy\x12\x10\n\x08job_name\x18\x02 \x01(\t\x1a\x7f\n\x15RowAccessPolicyChange\x12T\n\x11row_access_policy\x18\x01 \x01(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.RowAccessPolicy\x12\x10\n\x08job_name\x18\x02 \x01(\t\x1a\xac\x01\n\x17RowAccessPolicyDeletion\x12V\n\x13row_access_policies\x18\x01 \x03(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.RowAccessPolicy\x12\x10\n\x08job_name\x18\x02 \x01(\t\x12\'\n\x1f\x61ll_row_access_policies_dropped\x18\x03 \x01(\x08\x1a\xc1\x01\n\rUnlinkDataset\x12\x16\n\x0elinked_dataset\x18\x01 \x01(\t\x12\x16\n\x0esource_dataset\x18\x02 \x01(\t\x12N\n\x06reason\x18\x03 \x01(\x0e\x32>.google.cloud.audit.BigQueryAuditMetadata.UnlinkDataset.Reason"0\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x0e\n\nUNLINK_API\x10\x01\x1a\xf0\x01\n\x03Job\x12\x10\n\x08job_name\x18\x01 \x01(\t\x12G\n\njob_config\x18\x02 \x01(\x0b\x32\x33.google.cloud.audit.BigQueryAuditMetadata.JobConfig\x12G\n\njob_status\x18\x03 \x01(\x0b\x32\x33.google.cloud.audit.BigQueryAuditMetadata.JobStatus\x12\x45\n\tjob_stats\x18\x04 \x01(\x0b\x32\x32.google.cloud.audit.BigQueryAuditMetadata.JobStats\x1a\xe8\x12\n\tJobConfig\x12\x46\n\x04type\x18\x01 \x01(\x0e\x32\x38.google.cloud.audit.BigQueryAuditMetadata.JobConfig.Type\x12Q\n\x0cquery_config\x18\x02 \x01(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.JobConfig.QueryH\x00\x12O\n\x0bload_config\x18\x03 \x01(\x0b\x32\x38.google.cloud.audit.BigQueryAuditMetadata.JobConfig.LoadH\x00\x12U\n\x0e\x65xtract_config\x18\x04 \x01(\x0b\x32;.google.cloud.audit.BigQueryAuditMetadata.JobConfig.ExtractH\x00\x12Z\n\x11table_copy_config\x18\x05 \x01(\x0b\x32=.google.cloud.audit.BigQueryAuditMetadata.JobConfig.TableCopyH\x00\x12O\n\x06labels\x18\x06 \x03(\x0b\x32?.google.cloud.audit.BigQueryAuditMetadata.JobConfig.LabelsEntry\x1a\xc3\x05\n\x05Query\x12\r\n\x05query\x18\x01 \x01(\t\x12\x17\n\x0fquery_truncated\x18\n \x01(\x08\x12\x19\n\x11\x64\x65stination_table\x18\x02 \x01(\t\x12W\n\x12\x63reate_disposition\x18\x03 \x01(\x0e\x32;.google.cloud.audit.BigQueryAuditMetadata.CreateDisposition\x12U\n\x11write_disposition\x18\x04 \x01(\x0e\x32:.google.cloud.audit.BigQueryAuditMetadata.WriteDisposition\x12\x17\n\x0f\x64\x65\x66\x61ult_dataset\x18\x05 \x01(\t\x12T\n\x11table_definitions\x18\x06 \x03(\x0b\x32\x39.google.cloud.audit.BigQueryAuditMetadata.TableDefinition\x12T\n\x08priority\x18\x07 \x01(\x0e\x32\x42.google.cloud.audit.BigQueryAuditMetadata.JobConfig.Query.Priority\x12^\n\x1c\x64\x65stination_table_encryption\x18\x08 \x01(\x0b\x32\x38.google.cloud.audit.BigQueryAuditMetadata.EncryptionInfo\x12T\n\x0estatement_type\x18\t \x01(\x0e\x32<.google.cloud.audit.BigQueryAuditMetadata.QueryStatementType"L\n\x08Priority\x12\x18\n\x14PRIORITY_UNSPECIFIED\x10\x00\x12\x15\n\x11QUERY_INTERACTIVE\x10\x01\x12\x0f\n\x0bQUERY_BATCH\x10\x02\x1a\x99\x03\n\x04Load\x12\x13\n\x0bsource_uris\x18\x01 \x03(\t\x12\x1d\n\x15source_uris_truncated\x18\x07 \x01(\x08\x12\x13\n\x0bschema_json\x18\x02 \x01(\t\x12\x1d\n\x15schema_json_truncated\x18\x08 \x01(\x08\x12\x19\n\x11\x64\x65stination_table\x18\x03 \x01(\t\x12W\n\x12\x63reate_disposition\x18\x04 \x01(\x0e\x32;.google.cloud.audit.BigQueryAuditMetadata.CreateDisposition\x12U\n\x11write_disposition\x18\x05 \x01(\x0e\x32:.google.cloud.audit.BigQueryAuditMetadata.WriteDisposition\x12^\n\x1c\x64\x65stination_table_encryption\x18\x06 \x01(\x0b\x32\x38.google.cloud.audit.BigQueryAuditMetadata.EncryptionInfo\x1a\x81\x01\n\x07\x45xtract\x12\x18\n\x10\x64\x65stination_uris\x18\x01 \x03(\t\x12"\n\x1a\x64\x65stination_uris_truncated\x18\x03 \x01(\x08\x12\x16\n\x0csource_table\x18\x02 \x01(\tH\x00\x12\x16\n\x0csource_model\x18\x04 \x01(\tH\x00\x42\x08\n\x06source\x1a\x80\x04\n\tTableCopy\x12\x15\n\rsource_tables\x18\x01 \x03(\t\x12\x1f\n\x17source_tables_truncated\x18\x06 \x01(\x08\x12\x19\n\x11\x64\x65stination_table\x18\x02 \x01(\t\x12W\n\x12\x63reate_disposition\x18\x03 \x01(\x0e\x32;.google.cloud.audit.BigQueryAuditMetadata.CreateDisposition\x12U\n\x11write_disposition\x18\x04 \x01(\x0e\x32:.google.cloud.audit.BigQueryAuditMetadata.WriteDisposition\x12^\n\x1c\x64\x65stination_table_encryption\x18\x05 \x01(\x0b\x32\x38.google.cloud.audit.BigQueryAuditMetadata.EncryptionInfo\x12O\n\x0eoperation_type\x18\x07 \x01(\x0e\x32\x37.google.cloud.audit.BigQueryAuditMetadata.OperationType\x12?\n\x1b\x64\x65stination_expiration_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"I\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05QUERY\x10\x01\x12\x08\n\x04\x43OPY\x10\x02\x12\n\n\x06\x45XPORT\x10\x03\x12\n\n\x06IMPORT\x10\x04\x42\x08\n\x06\x63onfig\x1a\x34\n\x0fTableDefinition\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0bsource_uris\x18\x02 \x03(\t\x1a\xa0\x01\n\tJobStatus\x12\x45\n\tjob_state\x18\x01 \x01(\x0e\x32\x32.google.cloud.audit.BigQueryAuditMetadata.JobState\x12(\n\x0c\x65rror_result\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x12"\n\x06\x65rrors\x18\x03 \x03(\x0b\x32\x12.google.rpc.Status\x1a\xaa\x07\n\x08JobStats\x12/\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12O\n\x0bquery_stats\x18\x08 \x01(\x0b\x32\x38.google.cloud.audit.BigQueryAuditMetadata.JobStats.QueryH\x00\x12M\n\nload_stats\x18\t \x01(\x0b\x32\x37.google.cloud.audit.BigQueryAuditMetadata.JobStats.LoadH\x00\x12S\n\rextract_stats\x18\r \x01(\x0b\x32:.google.cloud.audit.BigQueryAuditMetadata.JobStats.ExtractH\x00\x12\x15\n\rtotal_slot_ms\x18\n \x01(\x03\x12j\n\x11reservation_usage\x18\x0b \x03(\x0b\x32K.google.cloud.audit.BigQueryAuditMetadata.JobStats.ReservationResourceUsageB\x02\x18\x01\x12\x13\n\x0breservation\x18\x0e \x01(\t\x12\x17\n\x0fparent_job_name\x18\x0c \x01(\t\x1a\xd7\x01\n\x05Query\x12\x1d\n\x15total_processed_bytes\x18\x01 \x01(\x03\x12\x1a\n\x12total_billed_bytes\x18\x02 \x01(\x03\x12\x14\n\x0c\x62illing_tier\x18\x03 \x01(\x05\x12\x19\n\x11referenced_tables\x18\x06 \x03(\t\x12\x18\n\x10referenced_views\x18\x07 \x03(\t\x12\x1b\n\x13referenced_routines\x18\n \x03(\t\x12\x18\n\x10output_row_count\x18\x08 \x01(\x03\x12\x11\n\tcache_hit\x18\t \x01(\x08\x1a"\n\x04Load\x12\x1a\n\x12total_output_bytes\x18\x01 \x01(\x03\x1a$\n\x07\x45xtract\x12\x19\n\x11total_input_bytes\x18\x01 \x01(\x03\x1a\x39\n\x18ReservationResourceUsage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07slot_ms\x18\x02 \x01(\x03\x42\n\n\x08\x65xtended\x1a\xfa\x03\n\x05Table\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12H\n\ntable_info\x18\n \x01(\x0b\x32\x34.google.cloud.audit.BigQueryAuditMetadata.EntityInfo\x12\x13\n\x0bschema_json\x18\x03 \x01(\t\x12\x1d\n\x15schema_json_truncated\x18\x0b \x01(\x08\x12K\n\x04view\x18\x04 \x01(\x0b\x32=.google.cloud.audit.BigQueryAuditMetadata.TableViewDefinition\x12/\n\x0b\x65xpire_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rtruncate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12L\n\nencryption\x18\t \x01(\x0b\x32\x38.google.cloud.audit.BigQueryAuditMetadata.EncryptionInfo\x1a\xc6\x02\n\x05Model\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12H\n\nmodel_info\x18\x02 \x01(\x0b\x32\x34.google.cloud.audit.BigQueryAuditMetadata.EntityInfo\x12/\n\x0b\x65xpire_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12L\n\nencryption\x18\x08 \x01(\x0b\x32\x38.google.cloud.audit.BigQueryAuditMetadata.EncryptionInfo\x1a\x81\x01\n\x07Routine\x12\x14\n\x0croutine_name\x18\x01 \x01(\t\x12/\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\xb9\x01\n\nEntityInfo\x12\x15\n\rfriendly_name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12P\n\x06labels\x18\x03 \x03(\x0b\x32@.google.cloud.audit.BigQueryAuditMetadata.EntityInfo.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a=\n\x13TableViewDefinition\x12\r\n\x05query\x18\x01 \x01(\t\x12\x17\n\x0fquery_truncated\x18\x02 \x01(\x08\x1a\xc4\x03\n\x07\x44\x61taset\x12\x14\n\x0c\x64\x61taset_name\x18\x01 \x01(\t\x12J\n\x0c\x64\x61taset_info\x18\x07 \x01(\x0b\x32\x34.google.cloud.audit.BigQueryAuditMetadata.EntityInfo\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x03\x61\x63l\x18\x05 \x01(\x0b\x32\x35.google.cloud.audit.BigQueryAuditMetadata.BigQueryAcl\x12@\n\x1d\x64\x65\x66\x61ult_table_expire_duration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12T\n\x12\x64\x65\x66\x61ult_encryption\x18\x08 \x01(\x0b\x32\x38.google.cloud.audit.BigQueryAuditMetadata.EncryptionInfo\x12\x19\n\x11\x64\x65\x66\x61ult_collation\x18\t \x01(\t\x1aN\n\x0b\x42igQueryAcl\x12%\n\x06policy\x18\x01 \x01(\x0b\x32\x15.google.iam.v1.Policy\x12\x18\n\x10\x61uthorized_views\x18\x02 \x03(\t\x1a&\n\x0e\x45ncryptionInfo\x12\x14\n\x0ckms_key_name\x18\x01 \x01(\t\x1a\x31\n\x0fRowAccessPolicy\x12\x1e\n\x16row_access_policy_name\x18\x01 \x01(\t\x1ax\n\x15\x46irstPartyAppMetadata\x12S\n\x0fsheets_metadata\x18\x01 \x01(\x0b\x32\x38.google.cloud.audit.BigQueryAuditMetadata.SheetsMetadataH\x00\x42\n\n\x08metadata\x1a \n\x0eSheetsMetadata\x12\x0e\n\x06\x64oc_id\x18\x01 \x01(\t"_\n\x11\x43reateDisposition\x12"\n\x1e\x43REATE_DISPOSITION_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x43REATE_NEVER\x10\x01\x12\x14\n\x10\x43REATE_IF_NEEDED\x10\x02"l\n\x10WriteDisposition\x12!\n\x1dWRITE_DISPOSITION_UNSPECIFIED\x10\x00\x12\x0f\n\x0bWRITE_EMPTY\x10\x01\x12\x12\n\x0eWRITE_TRUNCATE\x10\x02\x12\x10\n\x0cWRITE_APPEND\x10\x03"T\n\rOperationType\x12\x1e\n\x1aOPERATION_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x43OPY\x10\x01\x12\x0c\n\x08SNAPSHOT\x10\x02\x12\x0b\n\x07RESTORE\x10\x03"I\n\x08JobState\x12\x19\n\x15JOB_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x08\n\x04\x44ONE\x10\x03"\xf9\x05\n\x12QueryStatementType\x12$\n QUERY_STATEMENT_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06SELECT\x10\x01\x12\n\n\x06\x41SSERT\x10\x17\x12\n\n\x06INSERT\x10\x02\x12\n\n\x06UPDATE\x10\x03\x12\n\n\x06\x44\x45LETE\x10\x04\x12\t\n\x05MERGE\x10\x05\x12\x10\n\x0c\x43REATE_TABLE\x10\x06\x12\x1a\n\x16\x43REATE_TABLE_AS_SELECT\x10\x07\x12\x0f\n\x0b\x43REATE_VIEW\x10\x08\x12\x10\n\x0c\x43REATE_MODEL\x10\t\x12\x1c\n\x18\x43REATE_MATERIALIZED_VIEW\x10\r\x12\x13\n\x0f\x43REATE_FUNCTION\x10\x0e\x12\x19\n\x15\x43REATE_TABLE_FUNCTION\x10\x38\x12\x14\n\x10\x43REATE_PROCEDURE\x10\x14\x12\x1c\n\x18\x43REATE_ROW_ACCESS_POLICY\x10\x18\x12\x11\n\rCREATE_SCHEMA\x10\x35\x12\x19\n\x15\x43REATE_SNAPSHOT_TABLE\x10;\x12\x0e\n\nDROP_TABLE\x10\n\x12\x17\n\x13\x44ROP_EXTERNAL_TABLE\x10!\x12\r\n\tDROP_VIEW\x10\x0b\x12\x0e\n\nDROP_MODEL\x10\x0c\x12\x1a\n\x16\x44ROP_MATERIALIZED_VIEW\x10\x0f\x12\x11\n\rDROP_FUNCTION\x10\x10\x12\x12\n\x0e\x44ROP_PROCEDURE\x10\x15\x12\x0f\n\x0b\x44ROP_SCHEMA\x10\x36\x12\x1a\n\x16\x44ROP_ROW_ACCESS_POLICY\x10\x19\x12\x17\n\x13\x44ROP_SNAPSHOT_TABLE\x10>\x12\x0f\n\x0b\x41LTER_TABLE\x10\x11\x12\x0e\n\nALTER_VIEW\x10\x12\x12\x1b\n\x17\x41LTER_MATERIALIZED_VIEW\x10\x16\x12\x10\n\x0c\x41LTER_SCHEMA\x10\x37\x12\n\n\x06SCRIPT\x10\x13\x12\x12\n\x0eTRUNCATE_TABLE\x10\x1a\x12\x19\n\x15\x43REATE_EXTERNAL_TABLE\x10\x1b\x12\x0f\n\x0b\x45XPORT_DATA\x10\x1c\x12\x08\n\x04\x43\x41LL\x10\x1d\x42\x07\n\x05\x65ventB\x9f\x01\n\x16\x63om.google.cloud.auditB\x1a\x42igQueryAuditMetadataProtoP\x01Z7google.golang.org/genproto/googleapis/cloud/audit;audit\xa2\x02\x03GCA\xaa\x02\x12Google.Cloud.Audit\xca\x02\x12Google\\Cloud\\Auditb\x06proto3' +) + + +_BIGQUERYAUDITMETADATA = DESCRIPTOR.message_types_by_name["BigQueryAuditMetadata"] +_BIGQUERYAUDITMETADATA_JOBINSERTION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "JobInsertion" +] +_BIGQUERYAUDITMETADATA_JOBCHANGE = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "JobChange" +] +_BIGQUERYAUDITMETADATA_JOBDELETION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "JobDeletion" +] +_BIGQUERYAUDITMETADATA_DATASETCREATION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "DatasetCreation" +] +_BIGQUERYAUDITMETADATA_DATASETCHANGE = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "DatasetChange" +] +_BIGQUERYAUDITMETADATA_DATASETDELETION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "DatasetDeletion" +] +_BIGQUERYAUDITMETADATA_TABLECREATION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "TableCreation" +] +_BIGQUERYAUDITMETADATA_MODELCREATION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "ModelCreation" +] +_BIGQUERYAUDITMETADATA_ROUTINECREATION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "RoutineCreation" +] +_BIGQUERYAUDITMETADATA_TABLEDATAREAD = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "TableDataRead" +] +_BIGQUERYAUDITMETADATA_TABLECHANGE = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "TableChange" +] +_BIGQUERYAUDITMETADATA_MODELMETADATACHANGE = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "ModelMetadataChange" +] +_BIGQUERYAUDITMETADATA_ROUTINECHANGE = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "RoutineChange" +] +_BIGQUERYAUDITMETADATA_TABLEDATACHANGE = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "TableDataChange" +] +_BIGQUERYAUDITMETADATA_MODELDATACHANGE = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "ModelDataChange" +] +_BIGQUERYAUDITMETADATA_MODELDATAREAD = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "ModelDataRead" +] +_BIGQUERYAUDITMETADATA_TABLEDELETION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "TableDeletion" +] +_BIGQUERYAUDITMETADATA_MODELDELETION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "ModelDeletion" +] +_BIGQUERYAUDITMETADATA_ROUTINEDELETION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "RoutineDeletion" +] +_BIGQUERYAUDITMETADATA_ROWACCESSPOLICYCREATION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "RowAccessPolicyCreation" +] +_BIGQUERYAUDITMETADATA_ROWACCESSPOLICYCHANGE = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "RowAccessPolicyChange" +] +_BIGQUERYAUDITMETADATA_ROWACCESSPOLICYDELETION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "RowAccessPolicyDeletion" +] +_BIGQUERYAUDITMETADATA_UNLINKDATASET = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "UnlinkDataset" +] +_BIGQUERYAUDITMETADATA_JOB = _BIGQUERYAUDITMETADATA.nested_types_by_name["Job"] +_BIGQUERYAUDITMETADATA_JOBCONFIG = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "JobConfig" +] +_BIGQUERYAUDITMETADATA_JOBCONFIG_QUERY = _BIGQUERYAUDITMETADATA_JOBCONFIG.nested_types_by_name[ + "Query" +] +_BIGQUERYAUDITMETADATA_JOBCONFIG_LOAD = _BIGQUERYAUDITMETADATA_JOBCONFIG.nested_types_by_name[ + "Load" +] +_BIGQUERYAUDITMETADATA_JOBCONFIG_EXTRACT = _BIGQUERYAUDITMETADATA_JOBCONFIG.nested_types_by_name[ + "Extract" +] +_BIGQUERYAUDITMETADATA_JOBCONFIG_TABLECOPY = _BIGQUERYAUDITMETADATA_JOBCONFIG.nested_types_by_name[ + "TableCopy" +] +_BIGQUERYAUDITMETADATA_JOBCONFIG_LABELSENTRY = _BIGQUERYAUDITMETADATA_JOBCONFIG.nested_types_by_name[ + "LabelsEntry" +] +_BIGQUERYAUDITMETADATA_TABLEDEFINITION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "TableDefinition" +] +_BIGQUERYAUDITMETADATA_JOBSTATUS = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "JobStatus" +] +_BIGQUERYAUDITMETADATA_JOBSTATS = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "JobStats" +] +_BIGQUERYAUDITMETADATA_JOBSTATS_QUERY = _BIGQUERYAUDITMETADATA_JOBSTATS.nested_types_by_name[ + "Query" +] +_BIGQUERYAUDITMETADATA_JOBSTATS_LOAD = _BIGQUERYAUDITMETADATA_JOBSTATS.nested_types_by_name[ + "Load" +] +_BIGQUERYAUDITMETADATA_JOBSTATS_EXTRACT = _BIGQUERYAUDITMETADATA_JOBSTATS.nested_types_by_name[ + "Extract" +] +_BIGQUERYAUDITMETADATA_JOBSTATS_RESERVATIONRESOURCEUSAGE = _BIGQUERYAUDITMETADATA_JOBSTATS.nested_types_by_name[ + "ReservationResourceUsage" +] +_BIGQUERYAUDITMETADATA_TABLE = _BIGQUERYAUDITMETADATA.nested_types_by_name["Table"] +_BIGQUERYAUDITMETADATA_MODEL = _BIGQUERYAUDITMETADATA.nested_types_by_name["Model"] +_BIGQUERYAUDITMETADATA_ROUTINE = _BIGQUERYAUDITMETADATA.nested_types_by_name["Routine"] +_BIGQUERYAUDITMETADATA_ENTITYINFO = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "EntityInfo" +] +_BIGQUERYAUDITMETADATA_ENTITYINFO_LABELSENTRY = _BIGQUERYAUDITMETADATA_ENTITYINFO.nested_types_by_name[ + "LabelsEntry" +] +_BIGQUERYAUDITMETADATA_TABLEVIEWDEFINITION = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "TableViewDefinition" +] +_BIGQUERYAUDITMETADATA_DATASET = _BIGQUERYAUDITMETADATA.nested_types_by_name["Dataset"] +_BIGQUERYAUDITMETADATA_BIGQUERYACL = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "BigQueryAcl" +] +_BIGQUERYAUDITMETADATA_ENCRYPTIONINFO = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "EncryptionInfo" +] +_BIGQUERYAUDITMETADATA_ROWACCESSPOLICY = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "RowAccessPolicy" +] +_BIGQUERYAUDITMETADATA_FIRSTPARTYAPPMETADATA = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "FirstPartyAppMetadata" +] +_BIGQUERYAUDITMETADATA_SHEETSMETADATA = _BIGQUERYAUDITMETADATA.nested_types_by_name[ + "SheetsMetadata" +] +_BIGQUERYAUDITMETADATA_JOBINSERTION_REASON = _BIGQUERYAUDITMETADATA_JOBINSERTION.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_JOBDELETION_REASON = _BIGQUERYAUDITMETADATA_JOBDELETION.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_DATASETCREATION_REASON = _BIGQUERYAUDITMETADATA_DATASETCREATION.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_DATASETCHANGE_REASON = _BIGQUERYAUDITMETADATA_DATASETCHANGE.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_DATASETDELETION_REASON = _BIGQUERYAUDITMETADATA_DATASETDELETION.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_TABLECREATION_REASON = _BIGQUERYAUDITMETADATA_TABLECREATION.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_MODELCREATION_REASON = _BIGQUERYAUDITMETADATA_MODELCREATION.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_ROUTINECREATION_REASON = _BIGQUERYAUDITMETADATA_ROUTINECREATION.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_TABLEDATAREAD_REASON = _BIGQUERYAUDITMETADATA_TABLEDATAREAD.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_TABLECHANGE_REASON = _BIGQUERYAUDITMETADATA_TABLECHANGE.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_MODELMETADATACHANGE_REASON = _BIGQUERYAUDITMETADATA_MODELMETADATACHANGE.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_ROUTINECHANGE_REASON = _BIGQUERYAUDITMETADATA_ROUTINECHANGE.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_TABLEDATACHANGE_REASON = _BIGQUERYAUDITMETADATA_TABLEDATACHANGE.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_MODELDATACHANGE_REASON = _BIGQUERYAUDITMETADATA_MODELDATACHANGE.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_MODELDATAREAD_REASON = _BIGQUERYAUDITMETADATA_MODELDATAREAD.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_TABLEDELETION_REASON = _BIGQUERYAUDITMETADATA_TABLEDELETION.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_MODELDELETION_REASON = _BIGQUERYAUDITMETADATA_MODELDELETION.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_ROUTINEDELETION_REASON = _BIGQUERYAUDITMETADATA_ROUTINEDELETION.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_UNLINKDATASET_REASON = _BIGQUERYAUDITMETADATA_UNLINKDATASET.enum_types_by_name[ + "Reason" +] +_BIGQUERYAUDITMETADATA_JOBCONFIG_QUERY_PRIORITY = _BIGQUERYAUDITMETADATA_JOBCONFIG_QUERY.enum_types_by_name[ + "Priority" +] +_BIGQUERYAUDITMETADATA_JOBCONFIG_TYPE = _BIGQUERYAUDITMETADATA_JOBCONFIG.enum_types_by_name[ + "Type" +] +_BIGQUERYAUDITMETADATA_CREATEDISPOSITION = _BIGQUERYAUDITMETADATA.enum_types_by_name[ + "CreateDisposition" +] +_BIGQUERYAUDITMETADATA_WRITEDISPOSITION = _BIGQUERYAUDITMETADATA.enum_types_by_name[ + "WriteDisposition" +] +_BIGQUERYAUDITMETADATA_OPERATIONTYPE = _BIGQUERYAUDITMETADATA.enum_types_by_name[ + "OperationType" +] +_BIGQUERYAUDITMETADATA_JOBSTATE = _BIGQUERYAUDITMETADATA.enum_types_by_name["JobState"] +_BIGQUERYAUDITMETADATA_QUERYSTATEMENTTYPE = _BIGQUERYAUDITMETADATA.enum_types_by_name[ + "QueryStatementType" +] +BigQueryAuditMetadata = _reflection.GeneratedProtocolMessageType( + "BigQueryAuditMetadata", + (_message.Message,), + { + "JobInsertion": _reflection.GeneratedProtocolMessageType( + "JobInsertion", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBINSERTION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobInsertion) + }, + ), + "JobChange": _reflection.GeneratedProtocolMessageType( + "JobChange", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBCHANGE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobChange) + }, + ), + "JobDeletion": _reflection.GeneratedProtocolMessageType( + "JobDeletion", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBDELETION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobDeletion) + }, + ), + "DatasetCreation": _reflection.GeneratedProtocolMessageType( + "DatasetCreation", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_DATASETCREATION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.DatasetCreation) + }, + ), + "DatasetChange": _reflection.GeneratedProtocolMessageType( + "DatasetChange", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_DATASETCHANGE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.DatasetChange) + }, + ), + "DatasetDeletion": _reflection.GeneratedProtocolMessageType( + "DatasetDeletion", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_DATASETDELETION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.DatasetDeletion) + }, + ), + "TableCreation": _reflection.GeneratedProtocolMessageType( + "TableCreation", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_TABLECREATION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.TableCreation) + }, + ), + "ModelCreation": _reflection.GeneratedProtocolMessageType( + "ModelCreation", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_MODELCREATION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.ModelCreation) + }, + ), + "RoutineCreation": _reflection.GeneratedProtocolMessageType( + "RoutineCreation", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ROUTINECREATION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.RoutineCreation) + }, + ), + "TableDataRead": _reflection.GeneratedProtocolMessageType( + "TableDataRead", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_TABLEDATAREAD, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.TableDataRead) + }, + ), + "TableChange": _reflection.GeneratedProtocolMessageType( + "TableChange", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_TABLECHANGE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.TableChange) + }, + ), + "ModelMetadataChange": _reflection.GeneratedProtocolMessageType( + "ModelMetadataChange", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_MODELMETADATACHANGE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.ModelMetadataChange) + }, + ), + "RoutineChange": _reflection.GeneratedProtocolMessageType( + "RoutineChange", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ROUTINECHANGE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.RoutineChange) + }, + ), + "TableDataChange": _reflection.GeneratedProtocolMessageType( + "TableDataChange", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_TABLEDATACHANGE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.TableDataChange) + }, + ), + "ModelDataChange": _reflection.GeneratedProtocolMessageType( + "ModelDataChange", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_MODELDATACHANGE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.ModelDataChange) + }, + ), + "ModelDataRead": _reflection.GeneratedProtocolMessageType( + "ModelDataRead", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_MODELDATAREAD, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.ModelDataRead) + }, + ), + "TableDeletion": _reflection.GeneratedProtocolMessageType( + "TableDeletion", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_TABLEDELETION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.TableDeletion) + }, + ), + "ModelDeletion": _reflection.GeneratedProtocolMessageType( + "ModelDeletion", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_MODELDELETION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.ModelDeletion) + }, + ), + "RoutineDeletion": _reflection.GeneratedProtocolMessageType( + "RoutineDeletion", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ROUTINEDELETION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.RoutineDeletion) + }, + ), + "RowAccessPolicyCreation": _reflection.GeneratedProtocolMessageType( + "RowAccessPolicyCreation", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ROWACCESSPOLICYCREATION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.RowAccessPolicyCreation) + }, + ), + "RowAccessPolicyChange": _reflection.GeneratedProtocolMessageType( + "RowAccessPolicyChange", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ROWACCESSPOLICYCHANGE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.RowAccessPolicyChange) + }, + ), + "RowAccessPolicyDeletion": _reflection.GeneratedProtocolMessageType( + "RowAccessPolicyDeletion", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ROWACCESSPOLICYDELETION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.RowAccessPolicyDeletion) + }, + ), + "UnlinkDataset": _reflection.GeneratedProtocolMessageType( + "UnlinkDataset", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_UNLINKDATASET, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.UnlinkDataset) + }, + ), + "Job": _reflection.GeneratedProtocolMessageType( + "Job", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOB, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.Job) + }, + ), + "JobConfig": _reflection.GeneratedProtocolMessageType( + "JobConfig", + (_message.Message,), + { + "Query": _reflection.GeneratedProtocolMessageType( + "Query", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBCONFIG_QUERY, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobConfig.Query) + }, + ), + "Load": _reflection.GeneratedProtocolMessageType( + "Load", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBCONFIG_LOAD, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobConfig.Load) + }, + ), + "Extract": _reflection.GeneratedProtocolMessageType( + "Extract", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBCONFIG_EXTRACT, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobConfig.Extract) + }, + ), + "TableCopy": _reflection.GeneratedProtocolMessageType( + "TableCopy", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBCONFIG_TABLECOPY, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobConfig.TableCopy) + }, + ), + "LabelsEntry": _reflection.GeneratedProtocolMessageType( + "LabelsEntry", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBCONFIG_LABELSENTRY, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobConfig.LabelsEntry) + }, + ), + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBCONFIG, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobConfig) + }, + ), + "TableDefinition": _reflection.GeneratedProtocolMessageType( + "TableDefinition", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_TABLEDEFINITION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.TableDefinition) + }, + ), + "JobStatus": _reflection.GeneratedProtocolMessageType( + "JobStatus", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBSTATUS, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobStatus) + }, + ), + "JobStats": _reflection.GeneratedProtocolMessageType( + "JobStats", + (_message.Message,), + { + "Query": _reflection.GeneratedProtocolMessageType( + "Query", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBSTATS_QUERY, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobStats.Query) + }, + ), + "Load": _reflection.GeneratedProtocolMessageType( + "Load", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBSTATS_LOAD, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobStats.Load) + }, + ), + "Extract": _reflection.GeneratedProtocolMessageType( + "Extract", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBSTATS_EXTRACT, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobStats.Extract) + }, + ), + "ReservationResourceUsage": _reflection.GeneratedProtocolMessageType( + "ReservationResourceUsage", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBSTATS_RESERVATIONRESOURCEUSAGE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobStats.ReservationResourceUsage) + }, + ), + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_JOBSTATS, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.JobStats) + }, + ), + "Table": _reflection.GeneratedProtocolMessageType( + "Table", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_TABLE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.Table) + }, + ), + "Model": _reflection.GeneratedProtocolMessageType( + "Model", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_MODEL, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.Model) + }, + ), + "Routine": _reflection.GeneratedProtocolMessageType( + "Routine", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ROUTINE, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.Routine) + }, + ), + "EntityInfo": _reflection.GeneratedProtocolMessageType( + "EntityInfo", + (_message.Message,), + { + "LabelsEntry": _reflection.GeneratedProtocolMessageType( + "LabelsEntry", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ENTITYINFO_LABELSENTRY, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.EntityInfo.LabelsEntry) + }, + ), + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ENTITYINFO, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.EntityInfo) + }, + ), + "TableViewDefinition": _reflection.GeneratedProtocolMessageType( + "TableViewDefinition", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_TABLEVIEWDEFINITION, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.TableViewDefinition) + }, + ), + "Dataset": _reflection.GeneratedProtocolMessageType( + "Dataset", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_DATASET, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.Dataset) + }, + ), + "BigQueryAcl": _reflection.GeneratedProtocolMessageType( + "BigQueryAcl", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_BIGQUERYACL, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.BigQueryAcl) + }, + ), + "EncryptionInfo": _reflection.GeneratedProtocolMessageType( + "EncryptionInfo", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ENCRYPTIONINFO, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.EncryptionInfo) + }, + ), + "RowAccessPolicy": _reflection.GeneratedProtocolMessageType( + "RowAccessPolicy", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_ROWACCESSPOLICY, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.RowAccessPolicy) + }, + ), + "FirstPartyAppMetadata": _reflection.GeneratedProtocolMessageType( + "FirstPartyAppMetadata", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_FIRSTPARTYAPPMETADATA, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.FirstPartyAppMetadata) + }, + ), + "SheetsMetadata": _reflection.GeneratedProtocolMessageType( + "SheetsMetadata", + (_message.Message,), + { + "DESCRIPTOR": _BIGQUERYAUDITMETADATA_SHEETSMETADATA, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata.SheetsMetadata) + }, + ), + "DESCRIPTOR": _BIGQUERYAUDITMETADATA, + "__module__": "google.cloud.audit.bigquery_audit_metadata_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.audit.BigQueryAuditMetadata) + }, +) +_sym_db.RegisterMessage(BigQueryAuditMetadata) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobInsertion) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobChange) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobDeletion) +_sym_db.RegisterMessage(BigQueryAuditMetadata.DatasetCreation) +_sym_db.RegisterMessage(BigQueryAuditMetadata.DatasetChange) +_sym_db.RegisterMessage(BigQueryAuditMetadata.DatasetDeletion) +_sym_db.RegisterMessage(BigQueryAuditMetadata.TableCreation) +_sym_db.RegisterMessage(BigQueryAuditMetadata.ModelCreation) +_sym_db.RegisterMessage(BigQueryAuditMetadata.RoutineCreation) +_sym_db.RegisterMessage(BigQueryAuditMetadata.TableDataRead) +_sym_db.RegisterMessage(BigQueryAuditMetadata.TableChange) +_sym_db.RegisterMessage(BigQueryAuditMetadata.ModelMetadataChange) +_sym_db.RegisterMessage(BigQueryAuditMetadata.RoutineChange) +_sym_db.RegisterMessage(BigQueryAuditMetadata.TableDataChange) +_sym_db.RegisterMessage(BigQueryAuditMetadata.ModelDataChange) +_sym_db.RegisterMessage(BigQueryAuditMetadata.ModelDataRead) +_sym_db.RegisterMessage(BigQueryAuditMetadata.TableDeletion) +_sym_db.RegisterMessage(BigQueryAuditMetadata.ModelDeletion) +_sym_db.RegisterMessage(BigQueryAuditMetadata.RoutineDeletion) +_sym_db.RegisterMessage(BigQueryAuditMetadata.RowAccessPolicyCreation) +_sym_db.RegisterMessage(BigQueryAuditMetadata.RowAccessPolicyChange) +_sym_db.RegisterMessage(BigQueryAuditMetadata.RowAccessPolicyDeletion) +_sym_db.RegisterMessage(BigQueryAuditMetadata.UnlinkDataset) +_sym_db.RegisterMessage(BigQueryAuditMetadata.Job) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobConfig) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobConfig.Query) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobConfig.Load) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobConfig.Extract) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobConfig.TableCopy) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobConfig.LabelsEntry) +_sym_db.RegisterMessage(BigQueryAuditMetadata.TableDefinition) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobStatus) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobStats) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobStats.Query) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobStats.Load) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobStats.Extract) +_sym_db.RegisterMessage(BigQueryAuditMetadata.JobStats.ReservationResourceUsage) +_sym_db.RegisterMessage(BigQueryAuditMetadata.Table) +_sym_db.RegisterMessage(BigQueryAuditMetadata.Model) +_sym_db.RegisterMessage(BigQueryAuditMetadata.Routine) +_sym_db.RegisterMessage(BigQueryAuditMetadata.EntityInfo) +_sym_db.RegisterMessage(BigQueryAuditMetadata.EntityInfo.LabelsEntry) +_sym_db.RegisterMessage(BigQueryAuditMetadata.TableViewDefinition) +_sym_db.RegisterMessage(BigQueryAuditMetadata.Dataset) +_sym_db.RegisterMessage(BigQueryAuditMetadata.BigQueryAcl) +_sym_db.RegisterMessage(BigQueryAuditMetadata.EncryptionInfo) +_sym_db.RegisterMessage(BigQueryAuditMetadata.RowAccessPolicy) +_sym_db.RegisterMessage(BigQueryAuditMetadata.FirstPartyAppMetadata) +_sym_db.RegisterMessage(BigQueryAuditMetadata.SheetsMetadata) + +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b"\n\026com.google.cloud.auditB\032BigQueryAuditMetadataProtoP\001Z7google.golang.org/genproto/googleapis/cloud/audit;audit\242\002\003GCA\252\002\022Google.Cloud.Audit\312\002\022Google\\Cloud\\Audit" + _BIGQUERYAUDITMETADATA_JOBCONFIG_LABELSENTRY._options = None + _BIGQUERYAUDITMETADATA_JOBCONFIG_LABELSENTRY._serialized_options = b"8\001" + _BIGQUERYAUDITMETADATA_JOBSTATS.fields_by_name["reservation_usage"]._options = None + _BIGQUERYAUDITMETADATA_JOBSTATS.fields_by_name[ + "reservation_usage" + ]._serialized_options = b"\030\001" + _BIGQUERYAUDITMETADATA_ENTITYINFO_LABELSENTRY._options = None + _BIGQUERYAUDITMETADATA_ENTITYINFO_LABELSENTRY._serialized_options = b"8\001" + _BIGQUERYAUDITMETADATA._serialized_start = 191 + _BIGQUERYAUDITMETADATA._serialized_end = 14442 + _BIGQUERYAUDITMETADATA_JOBINSERTION._serialized_start = 2310 + _BIGQUERYAUDITMETADATA_JOBINSERTION._serialized_end = 2540 + _BIGQUERYAUDITMETADATA_JOBINSERTION_REASON._serialized_start = 2465 + _BIGQUERYAUDITMETADATA_JOBINSERTION_REASON._serialized_end = 2540 + _BIGQUERYAUDITMETADATA_JOBCHANGE._serialized_start = 2543 + _BIGQUERYAUDITMETADATA_JOBCHANGE._serialized_end = 2749 + _BIGQUERYAUDITMETADATA_JOBDELETION._serialized_start = 2752 + _BIGQUERYAUDITMETADATA_JOBDELETION._serialized_end = 2919 + _BIGQUERYAUDITMETADATA_JOBDELETION_REASON._serialized_start = 2863 + _BIGQUERYAUDITMETADATA_JOBDELETION_REASON._serialized_end = 2919 + _BIGQUERYAUDITMETADATA_DATASETCREATION._serialized_start = 2922 + _BIGQUERYAUDITMETADATA_DATASETCREATION._serialized_end = 3164 + _BIGQUERYAUDITMETADATA_DATASETCREATION_REASON._serialized_start = 3109 + _BIGQUERYAUDITMETADATA_DATASETCREATION_REASON._serialized_end = 3164 + _BIGQUERYAUDITMETADATA_DATASETCHANGE._serialized_start = 3167 + _BIGQUERYAUDITMETADATA_DATASETCHANGE._serialized_end = 3425 + _BIGQUERYAUDITMETADATA_DATASETCHANGE_REASON._serialized_start = 3350 + _BIGQUERYAUDITMETADATA_DATASETCHANGE_REASON._serialized_end = 3425 + _BIGQUERYAUDITMETADATA_DATASETDELETION._serialized_start = 3428 + _BIGQUERYAUDITMETADATA_DATASETDELETION._serialized_end = 3602 + _BIGQUERYAUDITMETADATA_DATASETDELETION_REASON._serialized_start = 3547 + _BIGQUERYAUDITMETADATA_DATASETDELETION_REASON._serialized_end = 3602 + _BIGQUERYAUDITMETADATA_TABLECREATION._serialized_start = 3605 + _BIGQUERYAUDITMETADATA_TABLECREATION._serialized_end = 3862 + _BIGQUERYAUDITMETADATA_TABLECREATION_REASON._serialized_start = 3784 + _BIGQUERYAUDITMETADATA_TABLECREATION_REASON._serialized_end = 3862 + _BIGQUERYAUDITMETADATA_MODELCREATION._serialized_start = 3865 + _BIGQUERYAUDITMETADATA_MODELCREATION._serialized_end = 4087 + _BIGQUERYAUDITMETADATA_MODELCREATION_REASON._serialized_start = 4044 + _BIGQUERYAUDITMETADATA_MODELCREATION_REASON._serialized_end = 4087 + _BIGQUERYAUDITMETADATA_ROUTINECREATION._serialized_start = 4090 + _BIGQUERYAUDITMETADATA_ROUTINECREATION._serialized_end = 4348 + _BIGQUERYAUDITMETADATA_ROUTINECREATION_REASON._serialized_start = 4277 + _BIGQUERYAUDITMETADATA_ROUTINECREATION_REASON._serialized_end = 4348 + _BIGQUERYAUDITMETADATA_TABLEDATAREAD._serialized_start = 4351 + _BIGQUERYAUDITMETADATA_TABLEDATAREAD._serialized_end = 4758 + _BIGQUERYAUDITMETADATA_TABLEDATAREAD_REASON._serialized_start = 4583 + _BIGQUERYAUDITMETADATA_TABLEDATAREAD_REASON._serialized_end = 4758 + _BIGQUERYAUDITMETADATA_TABLECHANGE._serialized_start = 4761 + _BIGQUERYAUDITMETADATA_TABLECHANGE._serialized_end = 5033 + _BIGQUERYAUDITMETADATA_TABLECHANGE_REASON._serialized_start = 4955 + _BIGQUERYAUDITMETADATA_TABLECHANGE_REASON._serialized_end = 5033 + _BIGQUERYAUDITMETADATA_MODELMETADATACHANGE._serialized_start = 5036 + _BIGQUERYAUDITMETADATA_MODELMETADATACHANGE._serialized_end = 5295 + _BIGQUERYAUDITMETADATA_MODELMETADATACHANGE_REASON._serialized_start = 5227 + _BIGQUERYAUDITMETADATA_MODELMETADATACHANGE_REASON._serialized_end = 5295 + _BIGQUERYAUDITMETADATA_ROUTINECHANGE._serialized_start = 5298 + _BIGQUERYAUDITMETADATA_ROUTINECHANGE._serialized_end = 5552 + _BIGQUERYAUDITMETADATA_ROUTINECHANGE_REASON._serialized_start = 5481 + _BIGQUERYAUDITMETADATA_ROUTINECHANGE_REASON._serialized_end = 5552 + _BIGQUERYAUDITMETADATA_TABLEDATACHANGE._serialized_start = 5555 + _BIGQUERYAUDITMETADATA_TABLEDATACHANGE._serialized_end = 5869 + _BIGQUERYAUDITMETADATA_TABLEDATACHANGE_REASON._serialized_start = 5771 + _BIGQUERYAUDITMETADATA_TABLEDATACHANGE_REASON._serialized_end = 5869 + _BIGQUERYAUDITMETADATA_MODELDATACHANGE._serialized_start = 5872 + _BIGQUERYAUDITMETADATA_MODELDATACHANGE._serialized_end = 6034 + _BIGQUERYAUDITMETADATA_MODELDATACHANGE_REASON._serialized_start = 4277 + _BIGQUERYAUDITMETADATA_MODELDATACHANGE_REASON._serialized_end = 4320 + _BIGQUERYAUDITMETADATA_MODELDATAREAD._serialized_start = 6037 + _BIGQUERYAUDITMETADATA_MODELDATAREAD._serialized_end = 6193 + _BIGQUERYAUDITMETADATA_MODELDATAREAD_REASON._serialized_start = 3784 + _BIGQUERYAUDITMETADATA_MODELDATAREAD_REASON._serialized_end = 3825 + _BIGQUERYAUDITMETADATA_TABLEDELETION._serialized_start = 6196 + _BIGQUERYAUDITMETADATA_TABLEDELETION._serialized_end = 6393 + _BIGQUERYAUDITMETADATA_TABLEDELETION_REASON._serialized_start = 6311 + _BIGQUERYAUDITMETADATA_TABLEDELETION_REASON._serialized_end = 6393 + _BIGQUERYAUDITMETADATA_MODELDELETION._serialized_start = 6396 + _BIGQUERYAUDITMETADATA_MODELDELETION._serialized_end = 6593 + _BIGQUERYAUDITMETADATA_MODELDELETION_REASON._serialized_start = 6511 + _BIGQUERYAUDITMETADATA_MODELDELETION_REASON._serialized_end = 6593 + _BIGQUERYAUDITMETADATA_ROUTINEDELETION._serialized_start = 6596 + _BIGQUERYAUDITMETADATA_ROUTINEDELETION._serialized_end = 6854 + _BIGQUERYAUDITMETADATA_ROUTINEDELETION_REASON._serialized_start = 6783 + _BIGQUERYAUDITMETADATA_ROUTINEDELETION_REASON._serialized_end = 6854 + _BIGQUERYAUDITMETADATA_ROWACCESSPOLICYCREATION._serialized_start = 6857 + _BIGQUERYAUDITMETADATA_ROWACCESSPOLICYCREATION._serialized_end = 6986 + _BIGQUERYAUDITMETADATA_ROWACCESSPOLICYCHANGE._serialized_start = 6988 + _BIGQUERYAUDITMETADATA_ROWACCESSPOLICYCHANGE._serialized_end = 7115 + _BIGQUERYAUDITMETADATA_ROWACCESSPOLICYDELETION._serialized_start = 7118 + _BIGQUERYAUDITMETADATA_ROWACCESSPOLICYDELETION._serialized_end = 7290 + _BIGQUERYAUDITMETADATA_UNLINKDATASET._serialized_start = 7293 + _BIGQUERYAUDITMETADATA_UNLINKDATASET._serialized_end = 7486 + _BIGQUERYAUDITMETADATA_UNLINKDATASET_REASON._serialized_start = 7438 + _BIGQUERYAUDITMETADATA_UNLINKDATASET_REASON._serialized_end = 7486 + _BIGQUERYAUDITMETADATA_JOB._serialized_start = 7489 + _BIGQUERYAUDITMETADATA_JOB._serialized_end = 7729 + _BIGQUERYAUDITMETADATA_JOBCONFIG._serialized_start = 7732 + _BIGQUERYAUDITMETADATA_JOBCONFIG._serialized_end = 10140 + _BIGQUERYAUDITMETADATA_JOBCONFIG_QUERY._serialized_start = 8242 + _BIGQUERYAUDITMETADATA_JOBCONFIG_QUERY._serialized_end = 8949 + _BIGQUERYAUDITMETADATA_JOBCONFIG_QUERY_PRIORITY._serialized_start = 8873 + _BIGQUERYAUDITMETADATA_JOBCONFIG_QUERY_PRIORITY._serialized_end = 8949 + _BIGQUERYAUDITMETADATA_JOBCONFIG_LOAD._serialized_start = 8952 + _BIGQUERYAUDITMETADATA_JOBCONFIG_LOAD._serialized_end = 9361 + _BIGQUERYAUDITMETADATA_JOBCONFIG_EXTRACT._serialized_start = 9364 + _BIGQUERYAUDITMETADATA_JOBCONFIG_EXTRACT._serialized_end = 9493 + _BIGQUERYAUDITMETADATA_JOBCONFIG_TABLECOPY._serialized_start = 9496 + _BIGQUERYAUDITMETADATA_JOBCONFIG_TABLECOPY._serialized_end = 10008 + _BIGQUERYAUDITMETADATA_JOBCONFIG_LABELSENTRY._serialized_start = 10010 + _BIGQUERYAUDITMETADATA_JOBCONFIG_LABELSENTRY._serialized_end = 10055 + _BIGQUERYAUDITMETADATA_JOBCONFIG_TYPE._serialized_start = 10057 + _BIGQUERYAUDITMETADATA_JOBCONFIG_TYPE._serialized_end = 10130 + _BIGQUERYAUDITMETADATA_TABLEDEFINITION._serialized_start = 10142 + _BIGQUERYAUDITMETADATA_TABLEDEFINITION._serialized_end = 10194 + _BIGQUERYAUDITMETADATA_JOBSTATUS._serialized_start = 10197 + _BIGQUERYAUDITMETADATA_JOBSTATUS._serialized_end = 10357 + _BIGQUERYAUDITMETADATA_JOBSTATS._serialized_start = 10360 + _BIGQUERYAUDITMETADATA_JOBSTATS._serialized_end = 11298 + _BIGQUERYAUDITMETADATA_JOBSTATS_QUERY._serialized_start = 10938 + _BIGQUERYAUDITMETADATA_JOBSTATS_QUERY._serialized_end = 11153 + _BIGQUERYAUDITMETADATA_JOBSTATS_LOAD._serialized_start = 11155 + _BIGQUERYAUDITMETADATA_JOBSTATS_LOAD._serialized_end = 11189 + _BIGQUERYAUDITMETADATA_JOBSTATS_EXTRACT._serialized_start = 11191 + _BIGQUERYAUDITMETADATA_JOBSTATS_EXTRACT._serialized_end = 11227 + _BIGQUERYAUDITMETADATA_JOBSTATS_RESERVATIONRESOURCEUSAGE._serialized_start = 11229 + _BIGQUERYAUDITMETADATA_JOBSTATS_RESERVATIONRESOURCEUSAGE._serialized_end = 11286 + _BIGQUERYAUDITMETADATA_TABLE._serialized_start = 11301 + _BIGQUERYAUDITMETADATA_TABLE._serialized_end = 11807 + _BIGQUERYAUDITMETADATA_MODEL._serialized_start = 11810 + _BIGQUERYAUDITMETADATA_MODEL._serialized_end = 12136 + _BIGQUERYAUDITMETADATA_ROUTINE._serialized_start = 12139 + _BIGQUERYAUDITMETADATA_ROUTINE._serialized_end = 12268 + _BIGQUERYAUDITMETADATA_ENTITYINFO._serialized_start = 12271 + _BIGQUERYAUDITMETADATA_ENTITYINFO._serialized_end = 12456 + _BIGQUERYAUDITMETADATA_ENTITYINFO_LABELSENTRY._serialized_start = 10010 + _BIGQUERYAUDITMETADATA_ENTITYINFO_LABELSENTRY._serialized_end = 10055 + _BIGQUERYAUDITMETADATA_TABLEVIEWDEFINITION._serialized_start = 12458 + _BIGQUERYAUDITMETADATA_TABLEVIEWDEFINITION._serialized_end = 12519 + _BIGQUERYAUDITMETADATA_DATASET._serialized_start = 12522 + _BIGQUERYAUDITMETADATA_DATASET._serialized_end = 12974 + _BIGQUERYAUDITMETADATA_BIGQUERYACL._serialized_start = 12976 + _BIGQUERYAUDITMETADATA_BIGQUERYACL._serialized_end = 13054 + _BIGQUERYAUDITMETADATA_ENCRYPTIONINFO._serialized_start = 13056 + _BIGQUERYAUDITMETADATA_ENCRYPTIONINFO._serialized_end = 13094 + _BIGQUERYAUDITMETADATA_ROWACCESSPOLICY._serialized_start = 13096 + _BIGQUERYAUDITMETADATA_ROWACCESSPOLICY._serialized_end = 13145 + _BIGQUERYAUDITMETADATA_FIRSTPARTYAPPMETADATA._serialized_start = 13147 + _BIGQUERYAUDITMETADATA_FIRSTPARTYAPPMETADATA._serialized_end = 13267 + _BIGQUERYAUDITMETADATA_SHEETSMETADATA._serialized_start = 13269 + _BIGQUERYAUDITMETADATA_SHEETSMETADATA._serialized_end = 13301 + _BIGQUERYAUDITMETADATA_CREATEDISPOSITION._serialized_start = 13303 + _BIGQUERYAUDITMETADATA_CREATEDISPOSITION._serialized_end = 13398 + _BIGQUERYAUDITMETADATA_WRITEDISPOSITION._serialized_start = 13400 + _BIGQUERYAUDITMETADATA_WRITEDISPOSITION._serialized_end = 13508 + _BIGQUERYAUDITMETADATA_OPERATIONTYPE._serialized_start = 13510 + _BIGQUERYAUDITMETADATA_OPERATIONTYPE._serialized_end = 13594 + _BIGQUERYAUDITMETADATA_JOBSTATE._serialized_start = 13596 + _BIGQUERYAUDITMETADATA_JOBSTATE._serialized_end = 13669 + _BIGQUERYAUDITMETADATA_QUERYSTATEMENTTYPE._serialized_start = 13672 + _BIGQUERYAUDITMETADATA_QUERYSTATEMENTTYPE._serialized_end = 14433 +# @@protoc_insertion_point(module_scope) diff --git a/owlbot.py b/owlbot.py index 924c8af..2727670 100644 --- a/owlbot.py +++ b/owlbot.py @@ -33,10 +33,21 @@ # This is required in order for s.copy() to work s._tracked_paths.add("googleapis") +# Create folders for dependencies of the protos that we want to compile +os.makedirs("google/api", exist_ok=True) +os.makedirs("google/iam/v1", exist_ok=True) os.makedirs("google/rpc/context", exist_ok=True) +os.makedirs("google/type", exist_ok=True) +# Copy dependencies of the protos that we want to compile from googleapis +s.copy("googleapis/google/api/*.proto", "google/api") +s.copy("googleapis/google/iam/v1/*.proto", "google/iam/v1") s.copy("googleapis/google/rpc/context/attribute_context.proto", "google/rpc/context") s.copy("googleapis/google/rpc/status.proto", "google/rpc") +s.copy("googleapis/google/type/*.proto", "google/type") + +# Copy the protos that we want to compile from googleapis +s.copy("googleapis/google/cloud/audit/*.proto", "google/cloud/audit") # Clean up googleapis shutil.rmtree('googleapis') @@ -61,34 +72,14 @@ # Generate _pb2.py files and format them s.shell.run(["nox", "-s", "generate_protos"], hide_output=False) -# Clean up googleapis +# Clean up the folders for dependencies which are shipped via `googleapis-common-protos` +# We should not ship them via this repository +shutil.rmtree('google/api') +shutil.rmtree("google/iam/v1") shutil.rmtree('google/rpc') +shutil.rmtree("google/type") s.shell.run(["nox", "-s", "blacken"], hide_output=False) # Add license headers python.fix_pb2_headers() - -LICENSE = """ -# 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.""" - -PB2_GRPC_HEADER = r"""(\# Generated by the gRPC Python protocol compiler plugin\. DO NOT EDIT!$) -(.*?$)""" - -s.replace( - "**/*_pb2_grpc.py", - PB2_GRPC_HEADER, - fr"{LICENSE}\n\n\g<1>\n\n\g<2>", # add line breaks to avoid stacking replacements -) From d3af5b11250ac6d50af99ea6616e3cb20ce0b48e Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Sat, 10 Feb 2024 19:40:52 +0000 Subject: [PATCH 2/7] clean up google/iam directory --- owlbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/owlbot.py b/owlbot.py index 2727670..d5127da 100644 --- a/owlbot.py +++ b/owlbot.py @@ -75,7 +75,7 @@ # Clean up the folders for dependencies which are shipped via `googleapis-common-protos` # We should not ship them via this repository shutil.rmtree('google/api') -shutil.rmtree("google/iam/v1") +shutil.rmtree("google/iam") shutil.rmtree('google/rpc') shutil.rmtree("google/type") From 0f26a6caa475845c0380c4b11c7477a1bba8f570 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Wed, 14 Aug 2024 17:31:08 +0000 Subject: [PATCH 3/7] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- google/cloud/audit/audit_log.proto | 2 +- google/cloud/audit/bigquery_audit_metadata.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/google/cloud/audit/audit_log.proto b/google/cloud/audit/audit_log.proto index ed4ae5f..2a65ca6 100644 --- a/google/cloud/audit/audit_log.proto +++ b/google/cloud/audit/audit_log.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// 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. diff --git a/google/cloud/audit/bigquery_audit_metadata.proto b/google/cloud/audit/bigquery_audit_metadata.proto index 1adc41c..7cf6008 100644 --- a/google/cloud/audit/bigquery_audit_metadata.proto +++ b/google/cloud/audit/bigquery_audit_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// 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. From 4cc54fa455dd60c54ac76a56c5bec8629bf21a88 Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Wed, 14 Aug 2024 17:38:22 +0000 Subject: [PATCH 4/7] address review feedback --- owlbot.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/owlbot.py b/owlbot.py index d5127da..039da39 100644 --- a/owlbot.py +++ b/owlbot.py @@ -34,10 +34,8 @@ s._tracked_paths.add("googleapis") # Create folders for dependencies of the protos that we want to compile -os.makedirs("google/api", exist_ok=True) -os.makedirs("google/iam/v1", exist_ok=True) -os.makedirs("google/rpc/context", exist_ok=True) -os.makedirs("google/type", exist_ok=True) +common_apis = ["google/api","google/iam/v1","google/rpc/context","google/type"] +_ = [os.makedirs(dir, exist_ok=True) for dir in common_apis] # Copy dependencies of the protos that we want to compile from googleapis s.copy("googleapis/google/api/*.proto", "google/api") @@ -74,10 +72,7 @@ # Clean up the folders for dependencies which are shipped via `googleapis-common-protos` # We should not ship them via this repository -shutil.rmtree('google/api') -shutil.rmtree("google/iam") -shutil.rmtree('google/rpc') -shutil.rmtree("google/type") +_ = [shutil.rmtree(dir) for dir in common_apis] s.shell.run(["nox", "-s", "blacken"], hide_output=False) From 8214c3f635b32139e008ece7e5ac7c13f3a6fb49 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Wed, 14 Aug 2024 17:41:24 +0000 Subject: [PATCH 5/7] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- google/rpc/status.proto | 49 ++++++++++++++++++++++++++++++++++ google/rpc/status_pb2.py | 57 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 google/rpc/status.proto create mode 100644 google/rpc/status_pb2.py diff --git a/google/rpc/status.proto b/google/rpc/status.proto new file mode 100644 index 0000000..90b70dd --- /dev/null +++ b/google/rpc/status.proto @@ -0,0 +1,49 @@ +// 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.rpc; + +import "google/protobuf/any.proto"; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/genproto/googleapis/rpc/status;status"; +option java_multiple_files = true; +option java_outer_classname = "StatusProto"; +option java_package = "com.google.rpc"; +option objc_class_prefix = "RPC"; + +// The `Status` type defines a logical error model that is suitable for +// different programming environments, including REST APIs and RPC APIs. It is +// used by [gRPC](https://github.com/grpc). Each `Status` message contains +// three pieces of data: error code, error message, and error details. +// +// You can find out more about this error model and how to work with it in the +// [API Design Guide](https://cloud.google.com/apis/design/errors). +message Status { + // The status code, which should be an enum value of + // [google.rpc.Code][google.rpc.Code]. + int32 code = 1; + + // A developer-facing error message, which should be in English. Any + // user-facing error message should be localized and sent in the + // [google.rpc.Status.details][google.rpc.Status.details] field, or localized + // by the client. + string message = 2; + + // A list of messages that carry the error details. There is a common set of + // message types for APIs to use. + repeated google.protobuf.Any details = 3; +} diff --git a/google/rpc/status_pb2.py b/google/rpc/status_pb2.py new file mode 100644 index 0000000..23f1f36 --- /dev/null +++ b/google/rpc/status_pb2.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- + +# 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. + +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/rpc/status.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n\x17google/rpc/status.proto\x12\ngoogle.rpc\x1a\x19google/protobuf/any.proto"N\n\x06Status\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12%\n\x07\x64\x65tails\x18\x03 \x03(\x0b\x32\x14.google.protobuf.AnyBa\n\x0e\x63om.google.rpcB\x0bStatusProtoP\x01Z7google.golang.org/genproto/googleapis/rpc/status;status\xf8\x01\x01\xa2\x02\x03RPCb\x06proto3' +) + + +_STATUS = DESCRIPTOR.message_types_by_name["Status"] +Status = _reflection.GeneratedProtocolMessageType( + "Status", + (_message.Message,), + { + "DESCRIPTOR": _STATUS, + "__module__": "google.rpc.status_pb2" + # @@protoc_insertion_point(class_scope:google.rpc.Status) + }, +) +_sym_db.RegisterMessage(Status) + +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b"\n\016com.google.rpcB\013StatusProtoP\001Z7google.golang.org/genproto/googleapis/rpc/status;status\370\001\001\242\002\003RPC" + _STATUS._serialized_start = 66 + _STATUS._serialized_end = 144 +# @@protoc_insertion_point(module_scope) From 55dbce55ee597b7a56a26a599b15f84fd1d315b5 Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Wed, 14 Aug 2024 17:43:45 +0000 Subject: [PATCH 6/7] revert google/rpc --- google/rpc/status.proto | 49 ---------------------------------- google/rpc/status_pb2.py | 57 ---------------------------------------- owlbot.py | 12 ++++++--- 3 files changed, 9 insertions(+), 109 deletions(-) delete mode 100644 google/rpc/status.proto delete mode 100644 google/rpc/status_pb2.py diff --git a/google/rpc/status.proto b/google/rpc/status.proto deleted file mode 100644 index 90b70dd..0000000 --- a/google/rpc/status.proto +++ /dev/null @@ -1,49 +0,0 @@ -// 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.rpc; - -import "google/protobuf/any.proto"; - -option cc_enable_arenas = true; -option go_package = "google.golang.org/genproto/googleapis/rpc/status;status"; -option java_multiple_files = true; -option java_outer_classname = "StatusProto"; -option java_package = "com.google.rpc"; -option objc_class_prefix = "RPC"; - -// The `Status` type defines a logical error model that is suitable for -// different programming environments, including REST APIs and RPC APIs. It is -// used by [gRPC](https://github.com/grpc). Each `Status` message contains -// three pieces of data: error code, error message, and error details. -// -// You can find out more about this error model and how to work with it in the -// [API Design Guide](https://cloud.google.com/apis/design/errors). -message Status { - // The status code, which should be an enum value of - // [google.rpc.Code][google.rpc.Code]. - int32 code = 1; - - // A developer-facing error message, which should be in English. Any - // user-facing error message should be localized and sent in the - // [google.rpc.Status.details][google.rpc.Status.details] field, or localized - // by the client. - string message = 2; - - // A list of messages that carry the error details. There is a common set of - // message types for APIs to use. - repeated google.protobuf.Any details = 3; -} diff --git a/google/rpc/status_pb2.py b/google/rpc/status_pb2.py deleted file mode 100644 index 23f1f36..0000000 --- a/google/rpc/status_pb2.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- coding: utf-8 -*- - -# 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. - -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: google/rpc/status.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database - -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x17google/rpc/status.proto\x12\ngoogle.rpc\x1a\x19google/protobuf/any.proto"N\n\x06Status\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12%\n\x07\x64\x65tails\x18\x03 \x03(\x0b\x32\x14.google.protobuf.AnyBa\n\x0e\x63om.google.rpcB\x0bStatusProtoP\x01Z7google.golang.org/genproto/googleapis/rpc/status;status\xf8\x01\x01\xa2\x02\x03RPCb\x06proto3' -) - - -_STATUS = DESCRIPTOR.message_types_by_name["Status"] -Status = _reflection.GeneratedProtocolMessageType( - "Status", - (_message.Message,), - { - "DESCRIPTOR": _STATUS, - "__module__": "google.rpc.status_pb2" - # @@protoc_insertion_point(class_scope:google.rpc.Status) - }, -) -_sym_db.RegisterMessage(Status) - -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b"\n\016com.google.rpcB\013StatusProtoP\001Z7google.golang.org/genproto/googleapis/rpc/status;status\370\001\001\242\002\003RPC" - _STATUS._serialized_start = 66 - _STATUS._serialized_end = 144 -# @@protoc_insertion_point(module_scope) diff --git a/owlbot.py b/owlbot.py index 039da39..07c3d16 100644 --- a/owlbot.py +++ b/owlbot.py @@ -24,7 +24,7 @@ GOOGLEAPIS_REPO = "googleapis/googleapis" # Clean up googleapis -shutil.rmtree('googleapis', ignore_errors=True) +shutil.rmtree("googleapis", ignore_errors=True) # Clone googleapis googleapis_url = git.make_repo_clone_url(GOOGLEAPIS_REPO) @@ -34,7 +34,13 @@ s._tracked_paths.add("googleapis") # Create folders for dependencies of the protos that we want to compile -common_apis = ["google/api","google/iam/v1","google/rpc/context","google/type"] +common_apis = [ + "google/api", + "google/iam/v1", + "google/rpc", + "google/rpc/context", + "google/type", +] _ = [os.makedirs(dir, exist_ok=True) for dir in common_apis] # Copy dependencies of the protos that we want to compile from googleapis @@ -48,7 +54,7 @@ s.copy("googleapis/google/cloud/audit/*.proto", "google/cloud/audit") # Clean up googleapis -shutil.rmtree('googleapis') +shutil.rmtree("googleapis") # ---------------------------------------------------------------------------- # Add templated files From 3f2da42df60a463d93e1bf02ce6843c48b6c66cd Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Wed, 14 Aug 2024 17:53:08 +0000 Subject: [PATCH 7/7] fix build --- owlbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/owlbot.py b/owlbot.py index 07c3d16..3e12400 100644 --- a/owlbot.py +++ b/owlbot.py @@ -78,7 +78,7 @@ # Clean up the folders for dependencies which are shipped via `googleapis-common-protos` # We should not ship them via this repository -_ = [shutil.rmtree(dir) for dir in common_apis] +_ = [shutil.rmtree(dir, ignore_errors=True) for dir in common_apis] s.shell.run(["nox", "-s", "blacken"], hide_output=False)