// 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.logging.v2; import "google/api/annotations.proto"; import "google/api/monitored_resource.proto"; import "google/logging/v2/log_entry.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; option cc_enable_arenas = true; option java_multiple_files = true; option java_outer_classname = "LoggingProto"; option java_package = "com.google.logging.v2"; // Service for ingesting and querying logs. service LoggingServiceV2 { // Deletes a log and all its log entries. // The log will reappear if it receives new entries. // rpc DeleteLog(DeleteLogRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2beta1/{log_name=projects/*/logs/*}" }; } // Writes log entries to Stackdriver Logging. All log entries are // written by this method. // rpc WriteLogEntries(WriteLogEntriesRequest) returns (WriteLogEntriesResponse) { option (google.api.http) = { post: "/v2beta1/entries:write" body: "*" }; } // Lists log entries. Use this method to retrieve log entries from Cloud // Logging. For ways to export log entries, see // [Exporting Logs](/logging/docs/export). // rpc ListLogEntries(ListLogEntriesRequest) returns (ListLogEntriesResponse) { option (google.api.http) = { post: "/v2beta1/entries:list" body: "*" }; } // Lists the monitored resource descriptors used by Stackdriver Logging. rpc ListMonitoredResourceDescriptors(ListMonitoredResourceDescriptorsRequest) returns (ListMonitoredResourceDescriptorsResponse) { option (google.api.http) = { get: "/v2beta1/monitoredResourceDescriptors" }; } } // The parameters to DeleteLog. message DeleteLogRequest { // Required. The resource name of the log to delete. Example: // `"projects/my-project/logs/syslog"`. string log_name = 1; } // The parameters to WriteLogEntries. message WriteLogEntriesRequest { // Optional. A default log resource name for those log entries in `entries` // that do not specify their own `logName`. Example: // `"projects/my-project/logs/syslog"`. See // [LogEntry][google.logging.v2.LogEntry]. string log_name = 1; // Optional. A default monitored resource for those log entries in `entries` // that do not specify their own `resource`. google.api.MonitoredResource resource = 2; // Optional. User-defined `key:value` items that are added to // the `labels` field of each log entry in `entries`, except when a log // entry specifies its own `key:value` item with the same key. // Example: `{ "size": "large", "color":"red" }` map labels = 3; // Required. The log entries to write. The log entries must have values for // all required fields. // // To improve throughput and to avoid exceeding the quota limit for calls // to `entries.write`, use this field to write multiple log entries at once // rather than // calling this method for each log entry. repeated LogEntry entries = 4; // Optional. Whether valid entries should be written even if some other // entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any // entry is not written, the response status will be the error associated // with one of the failed entries and include error details in the form of // WriteLogEntriesPartialErrors. bool partial_success = 5; } // Result returned from WriteLogEntries. // empty message WriteLogEntriesResponse { } // The parameters to `ListLogEntries`. message ListLogEntriesRequest { // Required. One or more project IDs or project numbers from which to retrieve // log entries. Examples of a project ID: `"my-project-1A"`, `"1234567890"`. repeated string project_ids = 1; // Optional. An [advanced logs filter](/logging/docs/view/advanced_filters). // The filter is compared against all log entries in the projects specified by // `projectIds`. Only entries that match the filter are retrieved. An empty // filter matches all log entries. string filter = 2; // Optional. How the results should be sorted. Presently, the only permitted // values are `"timestamp asc"` (default) and `"timestamp desc"`. The first // option returns entries in order of increasing values of // `LogEntry.timestamp` (oldest first), and the second option returns entries // in order of decreasing timestamps (newest first). Entries with equal // timestamps are returned in order of `LogEntry.insertId`. string order_by = 3; // Optional. The maximum number of results to return from this request. // You must check for presence of `nextPageToken` to determine if additional // results are available, which you can retrieve by passing the // `nextPageToken` value as the `pageToken` parameter in the next request. int32 page_size = 4; // Optional. If the `pageToken` parameter is supplied, then the next page of // results is retrieved. The `pageToken` parameter must be set to the value // of the `nextPageToken` from the previous response. // The values of `projectIds`, `filter`, and `orderBy` must be the same // as in the previous request. string page_token = 5; } // Result returned from `ListLogEntries`. message ListLogEntriesResponse { // A list of log entries. repeated LogEntry entries = 1; // If there are more results than were returned, then `nextPageToken` is // included in the response. To get the next set of results, call this // method again using the value of `nextPageToken` as `pageToken`. string next_page_token = 2; } // The parameters to ListMonitoredResourceDescriptors message ListMonitoredResourceDescriptorsRequest { // Optional. The maximum number of results to return from this request. // You must check for presence of `nextPageToken` to determine if additional // results are available, which you can retrieve by passing the // `nextPageToken` value as the `pageToken` parameter in the next request. int32 page_size = 1; // Optional. If the `pageToken` parameter is supplied, then the next page of // results is retrieved. The `pageToken` parameter must be set to the value // of the `nextPageToken` from the previous response. string page_token = 2; } // Result returned from ListMonitoredResourceDescriptors. message ListMonitoredResourceDescriptorsResponse { // A list of resource descriptors. repeated google.api.MonitoredResourceDescriptor resource_descriptors = 1; // If there are more results than were returned, then `nextPageToken` is // included in the response. To get the next set of results, call this // method again using the value of `nextPageToken` as `pageToken`. string next_page_token = 2; }