1*d5c09012SAndroid Build Coastguard Worker// Copyright 2022 Google LLC 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.audit; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/any.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/struct.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/context/attribute_context.proto"; 23*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto"; 24*d5c09012SAndroid Build Coastguard Worker 25*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true; 26*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/cloud/audit;audit"; 27*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 28*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "AuditLogProto"; 29*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.audit"; 30*d5c09012SAndroid Build Coastguard Worker 31*d5c09012SAndroid Build Coastguard Worker// Common audit log format for Google Cloud Platform API operations. 32*d5c09012SAndroid Build Coastguard Workermessage AuditLog { 33*d5c09012SAndroid Build Coastguard Worker // The name of the API service performing the operation. For example, 34*d5c09012SAndroid Build Coastguard Worker // `"compute.googleapis.com"`. 35*d5c09012SAndroid Build Coastguard Worker string service_name = 7; 36*d5c09012SAndroid Build Coastguard Worker 37*d5c09012SAndroid Build Coastguard Worker // The name of the service method or operation. 38*d5c09012SAndroid Build Coastguard Worker // For API calls, this should be the name of the API method. 39*d5c09012SAndroid Build Coastguard Worker // For example, 40*d5c09012SAndroid Build Coastguard Worker // 41*d5c09012SAndroid Build Coastguard Worker // "google.cloud.bigquery.v2.TableService.InsertTable" 42*d5c09012SAndroid Build Coastguard Worker // "google.logging.v2.ConfigServiceV2.CreateSink" 43*d5c09012SAndroid Build Coastguard Worker string method_name = 8; 44*d5c09012SAndroid Build Coastguard Worker 45*d5c09012SAndroid Build Coastguard Worker // The resource or collection that is the target of the operation. 46*d5c09012SAndroid Build Coastguard Worker // The name is a scheme-less URI, not including the API service name. 47*d5c09012SAndroid Build Coastguard Worker // For example: 48*d5c09012SAndroid Build Coastguard Worker // 49*d5c09012SAndroid Build Coastguard Worker // "projects/PROJECT_ID/zones/us-central1-a/instances" 50*d5c09012SAndroid Build Coastguard Worker // "projects/PROJECT_ID/datasets/DATASET_ID" 51*d5c09012SAndroid Build Coastguard Worker string resource_name = 11; 52*d5c09012SAndroid Build Coastguard Worker 53*d5c09012SAndroid Build Coastguard Worker // The resource location information. 54*d5c09012SAndroid Build Coastguard Worker ResourceLocation resource_location = 20; 55*d5c09012SAndroid Build Coastguard Worker 56*d5c09012SAndroid Build Coastguard Worker // The resource's original state before mutation. Present only for 57*d5c09012SAndroid Build Coastguard Worker // operations which have successfully modified the targeted resource(s). 58*d5c09012SAndroid Build Coastguard Worker // In general, this field should contain all changed fields, except those 59*d5c09012SAndroid Build Coastguard Worker // that are already been included in `request`, `response`, `metadata` or 60*d5c09012SAndroid Build Coastguard Worker // `service_data` fields. 61*d5c09012SAndroid Build Coastguard Worker // When the JSON object represented here has a proto equivalent, 62*d5c09012SAndroid Build Coastguard Worker // the proto name will be indicated in the `@type` property. 63*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct resource_original_state = 19; 64*d5c09012SAndroid Build Coastguard Worker 65*d5c09012SAndroid Build Coastguard Worker // The number of items returned from a List or Query API method, 66*d5c09012SAndroid Build Coastguard Worker // if applicable. 67*d5c09012SAndroid Build Coastguard Worker int64 num_response_items = 12; 68*d5c09012SAndroid Build Coastguard Worker 69*d5c09012SAndroid Build Coastguard Worker // The status of the overall operation. 70*d5c09012SAndroid Build Coastguard Worker google.rpc.Status status = 2; 71*d5c09012SAndroid Build Coastguard Worker 72*d5c09012SAndroid Build Coastguard Worker // Authentication information. 73*d5c09012SAndroid Build Coastguard Worker AuthenticationInfo authentication_info = 3; 74*d5c09012SAndroid Build Coastguard Worker 75*d5c09012SAndroid Build Coastguard Worker // Authorization information. If there are multiple 76*d5c09012SAndroid Build Coastguard Worker // resources or permissions involved, then there is 77*d5c09012SAndroid Build Coastguard Worker // one AuthorizationInfo element for each {resource, permission} tuple. 78*d5c09012SAndroid Build Coastguard Worker repeated AuthorizationInfo authorization_info = 9; 79*d5c09012SAndroid Build Coastguard Worker 80*d5c09012SAndroid Build Coastguard Worker // Indicates the policy violations for this request. If the request 81*d5c09012SAndroid Build Coastguard Worker // is denied by the policy, violation information will be logged 82*d5c09012SAndroid Build Coastguard Worker // here. 83*d5c09012SAndroid Build Coastguard Worker PolicyViolationInfo policy_violation_info = 25; 84*d5c09012SAndroid Build Coastguard Worker 85*d5c09012SAndroid Build Coastguard Worker // Metadata about the operation. 86*d5c09012SAndroid Build Coastguard Worker RequestMetadata request_metadata = 4; 87*d5c09012SAndroid Build Coastguard Worker 88*d5c09012SAndroid Build Coastguard Worker // The operation request. This may not include all request parameters, 89*d5c09012SAndroid Build Coastguard Worker // such as those that are too large, privacy-sensitive, or duplicated 90*d5c09012SAndroid Build Coastguard Worker // elsewhere in the log record. 91*d5c09012SAndroid Build Coastguard Worker // It should never include user-generated data, such as file contents. 92*d5c09012SAndroid Build Coastguard Worker // When the JSON object represented here has a proto equivalent, the proto 93*d5c09012SAndroid Build Coastguard Worker // name will be indicated in the `@type` property. 94*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct request = 16; 95*d5c09012SAndroid Build Coastguard Worker 96*d5c09012SAndroid Build Coastguard Worker // The operation response. This may not include all response elements, 97*d5c09012SAndroid Build Coastguard Worker // such as those that are too large, privacy-sensitive, or duplicated 98*d5c09012SAndroid Build Coastguard Worker // elsewhere in the log record. 99*d5c09012SAndroid Build Coastguard Worker // It should never include user-generated data, such as file contents. 100*d5c09012SAndroid Build Coastguard Worker // When the JSON object represented here has a proto equivalent, the proto 101*d5c09012SAndroid Build Coastguard Worker // name will be indicated in the `@type` property. 102*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct response = 17; 103*d5c09012SAndroid Build Coastguard Worker 104*d5c09012SAndroid Build Coastguard Worker // Other service-specific data about the request, response, and other 105*d5c09012SAndroid Build Coastguard Worker // information associated with the current audited event. 106*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct metadata = 18; 107*d5c09012SAndroid Build Coastguard Worker 108*d5c09012SAndroid Build Coastguard Worker // Deprecated. Use the `metadata` field instead. 109*d5c09012SAndroid Build Coastguard Worker // Other service-specific data about the request, response, and other 110*d5c09012SAndroid Build Coastguard Worker // activities. 111*d5c09012SAndroid Build Coastguard Worker google.protobuf.Any service_data = 15 [deprecated = true]; 112*d5c09012SAndroid Build Coastguard Worker} 113*d5c09012SAndroid Build Coastguard Worker 114*d5c09012SAndroid Build Coastguard Worker// Authentication information for the operation. 115*d5c09012SAndroid Build Coastguard Workermessage AuthenticationInfo { 116*d5c09012SAndroid Build Coastguard Worker // The email address of the authenticated user (or service account on behalf 117*d5c09012SAndroid Build Coastguard Worker // of third party principal) making the request. For third party identity 118*d5c09012SAndroid Build Coastguard Worker // callers, the `principal_subject` field is populated instead of this field. 119*d5c09012SAndroid Build Coastguard Worker // For privacy reasons, the principal email address is sometimes redacted. 120*d5c09012SAndroid Build Coastguard Worker // For more information, see [Caller identities in audit 121*d5c09012SAndroid Build Coastguard Worker // logs](https://cloud.google.com/logging/docs/audit#user-id). 122*d5c09012SAndroid Build Coastguard Worker string principal_email = 1; 123*d5c09012SAndroid Build Coastguard Worker 124*d5c09012SAndroid Build Coastguard Worker // The authority selector specified by the requestor, if any. 125*d5c09012SAndroid Build Coastguard Worker // It is not guaranteed that the principal was allowed to use this authority. 126*d5c09012SAndroid Build Coastguard Worker string authority_selector = 2; 127*d5c09012SAndroid Build Coastguard Worker 128*d5c09012SAndroid Build Coastguard Worker // The third party identification (if any) of the authenticated user making 129*d5c09012SAndroid Build Coastguard Worker // the request. 130*d5c09012SAndroid Build Coastguard Worker // When the JSON object represented here has a proto equivalent, the proto 131*d5c09012SAndroid Build Coastguard Worker // name will be indicated in the `@type` property. 132*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct third_party_principal = 4; 133*d5c09012SAndroid Build Coastguard Worker 134*d5c09012SAndroid Build Coastguard Worker // The name of the service account key used to create or exchange 135*d5c09012SAndroid Build Coastguard Worker // credentials for authenticating the service account making the request. 136*d5c09012SAndroid Build Coastguard Worker // This is a scheme-less URI full resource name. For example: 137*d5c09012SAndroid Build Coastguard Worker // 138*d5c09012SAndroid Build Coastguard Worker // "//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}" 139*d5c09012SAndroid Build Coastguard Worker string service_account_key_name = 5; 140*d5c09012SAndroid Build Coastguard Worker 141*d5c09012SAndroid Build Coastguard Worker // Identity delegation history of an authenticated service account that makes 142*d5c09012SAndroid Build Coastguard Worker // the request. It contains information on the real authorities that try to 143*d5c09012SAndroid Build Coastguard Worker // access GCP resources by delegating on a service account. When multiple 144*d5c09012SAndroid Build Coastguard Worker // authorities present, they are guaranteed to be sorted based on the original 145*d5c09012SAndroid Build Coastguard Worker // ordering of the identity delegation events. 146*d5c09012SAndroid Build Coastguard Worker repeated ServiceAccountDelegationInfo service_account_delegation_info = 6; 147*d5c09012SAndroid Build Coastguard Worker 148*d5c09012SAndroid Build Coastguard Worker // String representation of identity of requesting party. 149*d5c09012SAndroid Build Coastguard Worker // Populated for both first and third party identities. 150*d5c09012SAndroid Build Coastguard Worker string principal_subject = 8; 151*d5c09012SAndroid Build Coastguard Worker} 152*d5c09012SAndroid Build Coastguard Worker 153*d5c09012SAndroid Build Coastguard Worker// Authorization information for the operation. 154*d5c09012SAndroid Build Coastguard Workermessage AuthorizationInfo { 155*d5c09012SAndroid Build Coastguard Worker // The resource being accessed, as a REST-style or cloud resource string. 156*d5c09012SAndroid Build Coastguard Worker // For example: 157*d5c09012SAndroid Build Coastguard Worker // 158*d5c09012SAndroid Build Coastguard Worker // bigquery.googleapis.com/projects/PROJECTID/datasets/DATASETID 159*d5c09012SAndroid Build Coastguard Worker // or 160*d5c09012SAndroid Build Coastguard Worker // projects/PROJECTID/datasets/DATASETID 161*d5c09012SAndroid Build Coastguard Worker string resource = 1; 162*d5c09012SAndroid Build Coastguard Worker 163*d5c09012SAndroid Build Coastguard Worker // The required IAM permission. 164*d5c09012SAndroid Build Coastguard Worker string permission = 2; 165*d5c09012SAndroid Build Coastguard Worker 166*d5c09012SAndroid Build Coastguard Worker // Whether or not authorization for `resource` and `permission` 167*d5c09012SAndroid Build Coastguard Worker // was granted. 168*d5c09012SAndroid Build Coastguard Worker bool granted = 3; 169*d5c09012SAndroid Build Coastguard Worker 170*d5c09012SAndroid Build Coastguard Worker // Resource attributes used in IAM condition evaluation. This field contains 171*d5c09012SAndroid Build Coastguard Worker // resource attributes like resource type and resource name. 172*d5c09012SAndroid Build Coastguard Worker // 173*d5c09012SAndroid Build Coastguard Worker // To get the whole view of the attributes used in IAM 174*d5c09012SAndroid Build Coastguard Worker // condition evaluation, the user must also look into 175*d5c09012SAndroid Build Coastguard Worker // `AuditLog.request_metadata.request_attributes`. 176*d5c09012SAndroid Build Coastguard Worker google.rpc.context.AttributeContext.Resource resource_attributes = 5; 177*d5c09012SAndroid Build Coastguard Worker} 178*d5c09012SAndroid Build Coastguard Worker 179*d5c09012SAndroid Build Coastguard Worker// Metadata about the request. 180*d5c09012SAndroid Build Coastguard Workermessage RequestMetadata { 181*d5c09012SAndroid Build Coastguard Worker // The IP address of the caller. 182*d5c09012SAndroid Build Coastguard Worker // For a caller from the internet, this will be the public IPv4 or IPv6 183*d5c09012SAndroid Build Coastguard Worker // address. For calls made from inside Google's internal production network 184*d5c09012SAndroid Build Coastguard Worker // from one GCP service to another, `caller_ip` will be redacted to "private". 185*d5c09012SAndroid Build Coastguard Worker // For a caller from a Compute Engine VM with a external IP address, 186*d5c09012SAndroid Build Coastguard Worker // `caller_ip` will be the VM's external IP address. For a caller from a 187*d5c09012SAndroid Build Coastguard Worker // Compute Engine VM without a external IP address, if the VM is in the same 188*d5c09012SAndroid Build Coastguard Worker // organization (or project) as the accessed resource, `caller_ip` will be the 189*d5c09012SAndroid Build Coastguard Worker // VM's internal IPv4 address, otherwise `caller_ip` will be redacted to 190*d5c09012SAndroid Build Coastguard Worker // "gce-internal-ip". See https://cloud.google.com/compute/docs/vpc/ for more 191*d5c09012SAndroid Build Coastguard Worker // information. 192*d5c09012SAndroid Build Coastguard Worker string caller_ip = 1; 193*d5c09012SAndroid Build Coastguard Worker 194*d5c09012SAndroid Build Coastguard Worker // The user agent of the caller. 195*d5c09012SAndroid Build Coastguard Worker // This information is not authenticated and should be treated accordingly. 196*d5c09012SAndroid Build Coastguard Worker // For example: 197*d5c09012SAndroid Build Coastguard Worker // 198*d5c09012SAndroid Build Coastguard Worker // + `google-api-python-client/1.4.0`: 199*d5c09012SAndroid Build Coastguard Worker // The request was made by the Google API client for Python. 200*d5c09012SAndroid Build Coastguard Worker // + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: 201*d5c09012SAndroid Build Coastguard Worker // The request was made by the Google Cloud SDK CLI (gcloud). 202*d5c09012SAndroid Build Coastguard Worker // + `AppEngine-Google; (+http://code.google.com/appengine; appid: 203*d5c09012SAndroid Build Coastguard Worker // s~my-project`: 204*d5c09012SAndroid Build Coastguard Worker // The request was made from the `my-project` App Engine app. 205*d5c09012SAndroid Build Coastguard Worker string caller_supplied_user_agent = 2; 206*d5c09012SAndroid Build Coastguard Worker 207*d5c09012SAndroid Build Coastguard Worker // The network of the caller. 208*d5c09012SAndroid Build Coastguard Worker // Set only if the network host project is part of the same GCP organization 209*d5c09012SAndroid Build Coastguard Worker // (or project) as the accessed resource. 210*d5c09012SAndroid Build Coastguard Worker // See https://cloud.google.com/compute/docs/vpc/ for more information. 211*d5c09012SAndroid Build Coastguard Worker // This is a scheme-less URI full resource name. For example: 212*d5c09012SAndroid Build Coastguard Worker // 213*d5c09012SAndroid Build Coastguard Worker // "//compute.googleapis.com/projects/PROJECT_ID/global/networks/NETWORK_ID" 214*d5c09012SAndroid Build Coastguard Worker string caller_network = 3; 215*d5c09012SAndroid Build Coastguard Worker 216*d5c09012SAndroid Build Coastguard Worker // Request attributes used in IAM condition evaluation. This field contains 217*d5c09012SAndroid Build Coastguard Worker // request attributes like request time and access levels associated with 218*d5c09012SAndroid Build Coastguard Worker // the request. 219*d5c09012SAndroid Build Coastguard Worker // 220*d5c09012SAndroid Build Coastguard Worker // 221*d5c09012SAndroid Build Coastguard Worker // To get the whole view of the attributes used in IAM 222*d5c09012SAndroid Build Coastguard Worker // condition evaluation, the user must also look into 223*d5c09012SAndroid Build Coastguard Worker // `AuditLog.authentication_info.resource_attributes`. 224*d5c09012SAndroid Build Coastguard Worker google.rpc.context.AttributeContext.Request request_attributes = 7; 225*d5c09012SAndroid Build Coastguard Worker 226*d5c09012SAndroid Build Coastguard Worker // The destination of a network activity, such as accepting a TCP connection. 227*d5c09012SAndroid Build Coastguard Worker // In a multi hop network activity, the destination represents the receiver of 228*d5c09012SAndroid Build Coastguard Worker // the last hop. Only two fields are used in this message, Peer.port and 229*d5c09012SAndroid Build Coastguard Worker // Peer.ip. These fields are optionally populated by those services utilizing 230*d5c09012SAndroid Build Coastguard Worker // the IAM condition feature. 231*d5c09012SAndroid Build Coastguard Worker google.rpc.context.AttributeContext.Peer destination_attributes = 8; 232*d5c09012SAndroid Build Coastguard Worker} 233*d5c09012SAndroid Build Coastguard Worker 234*d5c09012SAndroid Build Coastguard Worker// Location information about a resource. 235*d5c09012SAndroid Build Coastguard Workermessage ResourceLocation { 236*d5c09012SAndroid Build Coastguard Worker // The locations of a resource after the execution of the operation. 237*d5c09012SAndroid Build Coastguard Worker // Requests to create or delete a location based resource must populate 238*d5c09012SAndroid Build Coastguard Worker // the 'current_locations' field and not the 'original_locations' field. 239*d5c09012SAndroid Build Coastguard Worker // For example: 240*d5c09012SAndroid Build Coastguard Worker // 241*d5c09012SAndroid Build Coastguard Worker // "europe-west1-a" 242*d5c09012SAndroid Build Coastguard Worker // "us-east1" 243*d5c09012SAndroid Build Coastguard Worker // "nam3" 244*d5c09012SAndroid Build Coastguard Worker repeated string current_locations = 1; 245*d5c09012SAndroid Build Coastguard Worker 246*d5c09012SAndroid Build Coastguard Worker // The locations of a resource prior to the execution of the operation. 247*d5c09012SAndroid Build Coastguard Worker // Requests that mutate the resource's location must populate both the 248*d5c09012SAndroid Build Coastguard Worker // 'original_locations' as well as the 'current_locations' fields. 249*d5c09012SAndroid Build Coastguard Worker // For example: 250*d5c09012SAndroid Build Coastguard Worker // 251*d5c09012SAndroid Build Coastguard Worker // "europe-west1-a" 252*d5c09012SAndroid Build Coastguard Worker // "us-east1" 253*d5c09012SAndroid Build Coastguard Worker // "nam3" 254*d5c09012SAndroid Build Coastguard Worker repeated string original_locations = 2; 255*d5c09012SAndroid Build Coastguard Worker} 256*d5c09012SAndroid Build Coastguard Worker 257*d5c09012SAndroid Build Coastguard Worker// Identity delegation history of an authenticated service account. 258*d5c09012SAndroid Build Coastguard Workermessage ServiceAccountDelegationInfo { 259*d5c09012SAndroid Build Coastguard Worker // First party identity principal. 260*d5c09012SAndroid Build Coastguard Worker message FirstPartyPrincipal { 261*d5c09012SAndroid Build Coastguard Worker // The email address of a Google account. 262*d5c09012SAndroid Build Coastguard Worker string principal_email = 1; 263*d5c09012SAndroid Build Coastguard Worker 264*d5c09012SAndroid Build Coastguard Worker // Metadata about the service that uses the service account. 265*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct service_metadata = 2; 266*d5c09012SAndroid Build Coastguard Worker } 267*d5c09012SAndroid Build Coastguard Worker 268*d5c09012SAndroid Build Coastguard Worker // Third party identity principal. 269*d5c09012SAndroid Build Coastguard Worker message ThirdPartyPrincipal { 270*d5c09012SAndroid Build Coastguard Worker // Metadata about third party identity. 271*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct third_party_claims = 1; 272*d5c09012SAndroid Build Coastguard Worker } 273*d5c09012SAndroid Build Coastguard Worker 274*d5c09012SAndroid Build Coastguard Worker // A string representing the principal_subject associated with the identity. 275*d5c09012SAndroid Build Coastguard Worker // For most identities, the format will be 276*d5c09012SAndroid Build Coastguard Worker // `principal://iam.googleapis.com/{identity pool name}/subject/{subject)` 277*d5c09012SAndroid Build Coastguard Worker // except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) 278*d5c09012SAndroid Build Coastguard Worker // that are still in the legacy format `serviceAccount:{identity pool 279*d5c09012SAndroid Build Coastguard Worker // name}[{subject}]` 280*d5c09012SAndroid Build Coastguard Worker string principal_subject = 3; 281*d5c09012SAndroid Build Coastguard Worker 282*d5c09012SAndroid Build Coastguard Worker // Entity that creates credentials for service account and assumes its 283*d5c09012SAndroid Build Coastguard Worker // identity for authentication. 284*d5c09012SAndroid Build Coastguard Worker oneof Authority { 285*d5c09012SAndroid Build Coastguard Worker // First party (Google) identity as the real authority. 286*d5c09012SAndroid Build Coastguard Worker FirstPartyPrincipal first_party_principal = 1; 287*d5c09012SAndroid Build Coastguard Worker 288*d5c09012SAndroid Build Coastguard Worker // Third party identity as the real authority. 289*d5c09012SAndroid Build Coastguard Worker ThirdPartyPrincipal third_party_principal = 2; 290*d5c09012SAndroid Build Coastguard Worker } 291*d5c09012SAndroid Build Coastguard Worker} 292*d5c09012SAndroid Build Coastguard Worker 293*d5c09012SAndroid Build Coastguard Worker// Information related to policy violations for this request. 294*d5c09012SAndroid Build Coastguard Workermessage PolicyViolationInfo { 295*d5c09012SAndroid Build Coastguard Worker // Indicates the orgpolicy violations for this resource. 296*d5c09012SAndroid Build Coastguard Worker OrgPolicyViolationInfo org_policy_violation_info = 1; 297*d5c09012SAndroid Build Coastguard Worker} 298*d5c09012SAndroid Build Coastguard Worker 299*d5c09012SAndroid Build Coastguard Worker// Represents OrgPolicy Violation information. 300*d5c09012SAndroid Build Coastguard Workermessage OrgPolicyViolationInfo { 301*d5c09012SAndroid Build Coastguard Worker // Optional. Resource payload that is currently in scope and is subjected to orgpolicy 302*d5c09012SAndroid Build Coastguard Worker // conditions. This payload may be the subset of the actual Resource that may 303*d5c09012SAndroid Build Coastguard Worker // come in the request. This payload should not contain any core content. 304*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct payload = 1 [(google.api.field_behavior) = OPTIONAL]; 305*d5c09012SAndroid Build Coastguard Worker 306*d5c09012SAndroid Build Coastguard Worker // Optional. Resource type that the orgpolicy is checked against. 307*d5c09012SAndroid Build Coastguard Worker // Example: compute.googleapis.com/Instance, store.googleapis.com/bucket 308*d5c09012SAndroid Build Coastguard Worker string resource_type = 2 [(google.api.field_behavior) = OPTIONAL]; 309*d5c09012SAndroid Build Coastguard Worker 310*d5c09012SAndroid Build Coastguard Worker // Optional. Tags referenced on the resource at the time of evaluation. These also 311*d5c09012SAndroid Build Coastguard Worker // include the federated tags, if they are supplied in the CheckOrgPolicy 312*d5c09012SAndroid Build Coastguard Worker // or CheckCustomConstraints Requests. 313*d5c09012SAndroid Build Coastguard Worker // 314*d5c09012SAndroid Build Coastguard Worker // Optional field as of now. These tags are the Cloud tags that are 315*d5c09012SAndroid Build Coastguard Worker // available on the resource during the policy evaluation and will 316*d5c09012SAndroid Build Coastguard Worker // be available as part of the OrgPolicy check response for logging purposes. 317*d5c09012SAndroid Build Coastguard Worker map<string, string> resource_tags = 3 [(google.api.field_behavior) = OPTIONAL]; 318*d5c09012SAndroid Build Coastguard Worker 319*d5c09012SAndroid Build Coastguard Worker // Optional. Policy violations 320*d5c09012SAndroid Build Coastguard Worker repeated ViolationInfo violation_info = 4 [(google.api.field_behavior) = OPTIONAL]; 321*d5c09012SAndroid Build Coastguard Worker} 322*d5c09012SAndroid Build Coastguard Worker 323*d5c09012SAndroid Build Coastguard Worker// Provides information about the Policy violation info for this request. 324*d5c09012SAndroid Build Coastguard Workermessage ViolationInfo { 325*d5c09012SAndroid Build Coastguard Worker // Policy Type enum 326*d5c09012SAndroid Build Coastguard Worker enum PolicyType { 327*d5c09012SAndroid Build Coastguard Worker // Default value. This value should not be used. 328*d5c09012SAndroid Build Coastguard Worker POLICY_TYPE_UNSPECIFIED = 0; 329*d5c09012SAndroid Build Coastguard Worker 330*d5c09012SAndroid Build Coastguard Worker // Indicates boolean policy constraint 331*d5c09012SAndroid Build Coastguard Worker BOOLEAN_CONSTRAINT = 1; 332*d5c09012SAndroid Build Coastguard Worker 333*d5c09012SAndroid Build Coastguard Worker // Indicates list policy constraint 334*d5c09012SAndroid Build Coastguard Worker LIST_CONSTRAINT = 2; 335*d5c09012SAndroid Build Coastguard Worker 336*d5c09012SAndroid Build Coastguard Worker // Indicates custom policy constraint 337*d5c09012SAndroid Build Coastguard Worker CUSTOM_CONSTRAINT = 3; 338*d5c09012SAndroid Build Coastguard Worker } 339*d5c09012SAndroid Build Coastguard Worker 340*d5c09012SAndroid Build Coastguard Worker // Optional. Constraint name 341*d5c09012SAndroid Build Coastguard Worker string constraint = 1 [(google.api.field_behavior) = OPTIONAL]; 342*d5c09012SAndroid Build Coastguard Worker 343*d5c09012SAndroid Build Coastguard Worker // Optional. Error message that policy is indicating. 344*d5c09012SAndroid Build Coastguard Worker string error_message = 2 [(google.api.field_behavior) = OPTIONAL]; 345*d5c09012SAndroid Build Coastguard Worker 346*d5c09012SAndroid Build Coastguard Worker // Optional. Value that is being checked for the policy. 347*d5c09012SAndroid Build Coastguard Worker // This could be in encrypted form (if pii sensitive). 348*d5c09012SAndroid Build Coastguard Worker // This field will only be emitted in LIST_POLICY types 349*d5c09012SAndroid Build Coastguard Worker string checked_value = 3 [(google.api.field_behavior) = OPTIONAL]; 350*d5c09012SAndroid Build Coastguard Worker 351*d5c09012SAndroid Build Coastguard Worker // Optional. Indicates the type of the policy. 352*d5c09012SAndroid Build Coastguard Worker PolicyType policy_type = 4 [(google.api.field_behavior) = OPTIONAL]; 353*d5c09012SAndroid Build Coastguard Worker}