|  | // Copyright 2017 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/distribution.proto"; | 
|  | import "google/api/metric.proto"; | 
|  | import "google/protobuf/empty.proto"; | 
|  |  | 
|  | option csharp_namespace = "Google.Cloud.Logging.V2"; | 
|  | option go_package = "google.golang.org/genproto/googleapis/logging/v2;logging"; | 
|  | option java_multiple_files = true; | 
|  | option java_outer_classname = "LoggingMetricsProto"; | 
|  | option java_package = "com.google.logging.v2"; | 
|  |  | 
|  |  | 
|  | // Service for configuring logs-based metrics. | 
|  | service MetricsServiceV2 { | 
|  | // Lists logs-based metrics. | 
|  | rpc ListLogMetrics(ListLogMetricsRequest) returns (ListLogMetricsResponse) { | 
|  | option (google.api.http) = { get: "/v2/{parent=projects/*}/metrics" }; | 
|  | } | 
|  |  | 
|  | // Gets a logs-based metric. | 
|  | rpc GetLogMetric(GetLogMetricRequest) returns (LogMetric) { | 
|  | option (google.api.http) = { get: "/v2/{metric_name=projects/*/metrics/*}" }; | 
|  | } | 
|  |  | 
|  | // Creates a logs-based metric. | 
|  | rpc CreateLogMetric(CreateLogMetricRequest) returns (LogMetric) { | 
|  | option (google.api.http) = { post: "/v2/{parent=projects/*}/metrics" body: "metric" }; | 
|  | } | 
|  |  | 
|  | // Creates or updates a logs-based metric. | 
|  | rpc UpdateLogMetric(UpdateLogMetricRequest) returns (LogMetric) { | 
|  | option (google.api.http) = { put: "/v2/{metric_name=projects/*/metrics/*}" body: "metric" }; | 
|  | } | 
|  |  | 
|  | // Deletes a logs-based metric. | 
|  | rpc DeleteLogMetric(DeleteLogMetricRequest) returns (google.protobuf.Empty) { | 
|  | option (google.api.http) = { delete: "/v2/{metric_name=projects/*/metrics/*}" }; | 
|  | } | 
|  | } | 
|  |  | 
|  | // Describes a logs-based metric.  The value of the metric is the | 
|  | // number of log entries that match a logs filter in a given time interval. | 
|  | message LogMetric { | 
|  | // Stackdriver Logging API version. | 
|  | enum ApiVersion { | 
|  | // Stackdriver Logging API v2. | 
|  | V2 = 0; | 
|  |  | 
|  | // Stackdriver Logging API v1. | 
|  | V1 = 1; | 
|  | } | 
|  |  | 
|  | // Required. The client-assigned metric identifier. | 
|  | // Examples: `"error_count"`, `"nginx/requests"`. | 
|  | // | 
|  | // Metric identifiers are limited to 100 characters and can include | 
|  | // only the following characters: `A-Z`, `a-z`, `0-9`, and the | 
|  | // special characters `_-.,+!*',()%/`.  The forward-slash character | 
|  | // (`/`) denotes a hierarchy of name pieces, and it cannot be the | 
|  | // first character of the name. | 
|  | // | 
|  | // The metric identifier in this field must not be | 
|  | // [URL-encoded](https://en.wikipedia.org/wiki/Percent-encoding). | 
|  | // However, when the metric identifier appears as the `[METRIC_ID]` | 
|  | // part of a `metric_name` API parameter, then the metric identifier | 
|  | // must be URL-encoded. Example: | 
|  | // `"projects/my-project/metrics/nginx%2Frequests"`. | 
|  | string name = 1; | 
|  |  | 
|  | // Optional. A description of this metric, which is used in documentation. | 
|  | string description = 2; | 
|  |  | 
|  | // Required. An [advanced logs filter](/logging/docs/view/advanced_filters) | 
|  | // which is used to match log entries. | 
|  | // Example: | 
|  | // | 
|  | //     "resource.type=gae_app AND severity>=ERROR" | 
|  | // | 
|  | // The maximum length of the filter is 20000 characters. | 
|  | string filter = 3; | 
|  |  | 
|  | // Output only. The API version that created or updated this metric. | 
|  | // The version also dictates the syntax of the filter expression. When a value | 
|  | // for this field is missing, the default value of V2 should be assumed. | 
|  | ApiVersion version = 4; | 
|  | } | 
|  |  | 
|  | // The parameters to ListLogMetrics. | 
|  | message ListLogMetricsRequest { | 
|  | // Required. The name of the project containing the metrics: | 
|  | // | 
|  | //     "projects/[PROJECT_ID]" | 
|  | string parent = 1; | 
|  |  | 
|  | // Optional. If present, then retrieve the next batch of results from the | 
|  | // preceding call to this method.  `pageToken` must be the value of | 
|  | // `nextPageToken` from the previous response.  The values of other method | 
|  | // parameters should be identical to those in the previous call. | 
|  | string page_token = 2; | 
|  |  | 
|  | // Optional. The maximum number of results to return from this request. | 
|  | // Non-positive values are ignored.  The presence of `nextPageToken` in the | 
|  | // response indicates that more results might be available. | 
|  | int32 page_size = 3; | 
|  | } | 
|  |  | 
|  | // Result returned from ListLogMetrics. | 
|  | message ListLogMetricsResponse { | 
|  | // A list of logs-based metrics. | 
|  | repeated LogMetric metrics = 1; | 
|  |  | 
|  | // If there might be more results than appear in this response, then | 
|  | // `nextPageToken` is included.  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 GetLogMetric. | 
|  | message GetLogMetricRequest { | 
|  | // The resource name of the desired metric: | 
|  | // | 
|  | //     "projects/[PROJECT_ID]/metrics/[METRIC_ID]" | 
|  | string metric_name = 1; | 
|  | } | 
|  |  | 
|  | // The parameters to CreateLogMetric. | 
|  | message CreateLogMetricRequest { | 
|  | // The resource name of the project in which to create the metric: | 
|  | // | 
|  | //     "projects/[PROJECT_ID]" | 
|  | // | 
|  | // The new metric must be provided in the request. | 
|  | string parent = 1; | 
|  |  | 
|  | // The new logs-based metric, which must not have an identifier that | 
|  | // already exists. | 
|  | LogMetric metric = 2; | 
|  | } | 
|  |  | 
|  | // The parameters to UpdateLogMetric. | 
|  | message UpdateLogMetricRequest { | 
|  | // The resource name of the metric to update: | 
|  | // | 
|  | //     "projects/[PROJECT_ID]/metrics/[METRIC_ID]" | 
|  | // | 
|  | // The updated metric must be provided in the request and it's | 
|  | // `name` field must be the same as `[METRIC_ID]` If the metric | 
|  | // does not exist in `[PROJECT_ID]`, then a new metric is created. | 
|  | string metric_name = 1; | 
|  |  | 
|  | // The updated metric. | 
|  | LogMetric metric = 2; | 
|  | } | 
|  |  | 
|  | // The parameters to DeleteLogMetric. | 
|  | message DeleteLogMetricRequest { | 
|  | // The resource name of the metric to delete: | 
|  | // | 
|  | //     "projects/[PROJECT_ID]/metrics/[METRIC_ID]" | 
|  | string metric_name = 1; | 
|  | } |