| // Copyright 2016 Google Inc. |
| // |
| // 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/api/annotations.proto"; |
| import "google/protobuf/any.proto"; |
| import "google/protobuf/struct.proto"; |
| import "google/rpc/status.proto"; |
| |
| option go_package = "google.golang.org/genproto/googleapis/cloud/audit;audit"; |
| option java_multiple_files = true; |
| option java_outer_classname = "AuditLogProto"; |
| 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"`. |
| 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" |
| 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" |
| string resource_name = 11; |
| |
| // The number of items returned from a List or Query API method, |
| // if applicable. |
| int64 num_response_items = 12; |
| |
| // The status of the overall operation. |
| google.rpc.Status status = 2; |
| |
| // Authentication information. |
| AuthenticationInfo authentication_info = 3; |
| |
| // Authorization information. If there are multiple |
| // resources or permissions involved, then there is |
| // one AuthorizationInfo element for each {resource, permission} tuple. |
| repeated AuthorizationInfo authorization_info = 9; |
| |
| // Metadata about the operation. |
| RequestMetadata request_metadata = 4; |
| |
| // The operation request. This may not include all request parameters, |
| // such as those that are too large, privacy-sensitive, or duplicated |
| // elsewhere in the log record. |
| // It should never include user-generated data, such as file contents. |
| // When the JSON object represented here has a proto equivalent, the proto |
| // name will be indicated in the `@type` property. |
| google.protobuf.Struct request = 16; |
| |
| // The operation response. This may not include all response elements, |
| // such as those that are too large, privacy-sensitive, or duplicated |
| // elsewhere in the log record. |
| // It should never include user-generated data, such as file contents. |
| // When the JSON object represented here has a proto equivalent, the proto |
| // name will be indicated in the `@type` property. |
| google.protobuf.Struct response = 17; |
| |
| // Other service-specific data about the request, response, and other |
| // activities. |
| google.protobuf.Any service_data = 15; |
| } |
| |
| // Authentication information for the operation. |
| message AuthenticationInfo { |
| // The email address of the authenticated user making the request. |
| string principal_email = 1; |
| } |
| |
| // Authorization information for the operation. |
| message AuthorizationInfo { |
| // The resource being accessed, as a REST-style string. For example: |
| // |
| // bigquery.googlapis.com/projects/PROJECTID/datasets/DATASETID |
| string resource = 1; |
| |
| // The required IAM permission. |
| string permission = 2; |
| |
| // Whether or not authorization for `resource` and `permission` |
| // was granted. |
| bool granted = 3; |
| } |
| |
| // Metadata about the request. |
| message RequestMetadata { |
| // The IP address of the caller. |
| string caller_ip = 1; |
| |
| // The user agent of the caller. |
| // This information is not authenticated and should be treated accordingly. |
| // For example: |
| // |
| // + `google-api-python-client/1.4.0`: |
| // The request was made by the Google API client for Python. |
| // + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: |
| // The request was made by the Google Cloud SDK CLI (gcloud). |
| // + `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`: |
| // The request was made from the `my-project` App Engine app. |
| string caller_supplied_user_agent = 2; |
| } |