xref: /aosp_15_r20/external/googleapis/google/logging/v2/logging_metrics.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 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.logging.v2;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/distribution.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/api/metric.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
27*d5c09012SAndroid Build Coastguard Worker
28*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true;
29*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Logging.V2";
30*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/logging/apiv2/loggingpb;loggingpb";
31*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
32*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "LoggingMetricsProto";
33*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.logging.v2";
34*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Logging\\V2";
35*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Logging::V2";
36*d5c09012SAndroid Build Coastguard Worker
37*d5c09012SAndroid Build Coastguard Worker// Service for configuring logs-based metrics.
38*d5c09012SAndroid Build Coastguard Workerservice MetricsServiceV2 {
39*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "logging.googleapis.com";
40*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
41*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
42*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform.read-only,"
43*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/logging.admin,"
44*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/logging.read,"
45*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/logging.write";
46*d5c09012SAndroid Build Coastguard Worker
47*d5c09012SAndroid Build Coastguard Worker  // Lists logs-based metrics.
48*d5c09012SAndroid Build Coastguard Worker  rpc ListLogMetrics(ListLogMetricsRequest) returns (ListLogMetricsResponse) {
49*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
50*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{parent=projects/*}/metrics"
51*d5c09012SAndroid Build Coastguard Worker    };
52*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
53*d5c09012SAndroid Build Coastguard Worker  }
54*d5c09012SAndroid Build Coastguard Worker
55*d5c09012SAndroid Build Coastguard Worker  // Gets a logs-based metric.
56*d5c09012SAndroid Build Coastguard Worker  rpc GetLogMetric(GetLogMetricRequest) returns (LogMetric) {
57*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
58*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{metric_name=projects/*/metrics/*}"
59*d5c09012SAndroid Build Coastguard Worker    };
60*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "metric_name";
61*d5c09012SAndroid Build Coastguard Worker  }
62*d5c09012SAndroid Build Coastguard Worker
63*d5c09012SAndroid Build Coastguard Worker  // Creates a logs-based metric.
64*d5c09012SAndroid Build Coastguard Worker  rpc CreateLogMetric(CreateLogMetricRequest) returns (LogMetric) {
65*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
66*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=projects/*}/metrics"
67*d5c09012SAndroid Build Coastguard Worker      body: "metric"
68*d5c09012SAndroid Build Coastguard Worker    };
69*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,metric";
70*d5c09012SAndroid Build Coastguard Worker  }
71*d5c09012SAndroid Build Coastguard Worker
72*d5c09012SAndroid Build Coastguard Worker  // Creates or updates a logs-based metric.
73*d5c09012SAndroid Build Coastguard Worker  rpc UpdateLogMetric(UpdateLogMetricRequest) returns (LogMetric) {
74*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
75*d5c09012SAndroid Build Coastguard Worker      put: "/v2/{metric_name=projects/*/metrics/*}"
76*d5c09012SAndroid Build Coastguard Worker      body: "metric"
77*d5c09012SAndroid Build Coastguard Worker    };
78*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "metric_name,metric";
79*d5c09012SAndroid Build Coastguard Worker  }
80*d5c09012SAndroid Build Coastguard Worker
81*d5c09012SAndroid Build Coastguard Worker  // Deletes a logs-based metric.
82*d5c09012SAndroid Build Coastguard Worker  rpc DeleteLogMetric(DeleteLogMetricRequest) returns (google.protobuf.Empty) {
83*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
84*d5c09012SAndroid Build Coastguard Worker      delete: "/v2/{metric_name=projects/*/metrics/*}"
85*d5c09012SAndroid Build Coastguard Worker    };
86*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "metric_name";
87*d5c09012SAndroid Build Coastguard Worker  }
88*d5c09012SAndroid Build Coastguard Worker}
89*d5c09012SAndroid Build Coastguard Worker
90*d5c09012SAndroid Build Coastguard Worker// Describes a logs-based metric. The value of the metric is the number of log
91*d5c09012SAndroid Build Coastguard Worker// entries that match a logs filter in a given time interval.
92*d5c09012SAndroid Build Coastguard Worker//
93*d5c09012SAndroid Build Coastguard Worker// Logs-based metrics can also be used to extract values from logs and create a
94*d5c09012SAndroid Build Coastguard Worker// distribution of the values. The distribution records the statistics of the
95*d5c09012SAndroid Build Coastguard Worker// extracted values along with an optional histogram of the values as specified
96*d5c09012SAndroid Build Coastguard Worker// by the bucket options.
97*d5c09012SAndroid Build Coastguard Workermessage LogMetric {
98*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
99*d5c09012SAndroid Build Coastguard Worker    type: "logging.googleapis.com/LogMetric"
100*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/metrics/{metric}"
101*d5c09012SAndroid Build Coastguard Worker  };
102*d5c09012SAndroid Build Coastguard Worker
103*d5c09012SAndroid Build Coastguard Worker  // Logging API version.
104*d5c09012SAndroid Build Coastguard Worker  enum ApiVersion {
105*d5c09012SAndroid Build Coastguard Worker    // Logging API v2.
106*d5c09012SAndroid Build Coastguard Worker    V2 = 0;
107*d5c09012SAndroid Build Coastguard Worker
108*d5c09012SAndroid Build Coastguard Worker    // Logging API v1.
109*d5c09012SAndroid Build Coastguard Worker    V1 = 1;
110*d5c09012SAndroid Build Coastguard Worker  }
111*d5c09012SAndroid Build Coastguard Worker
112*d5c09012SAndroid Build Coastguard Worker  // Required. The client-assigned metric identifier.
113*d5c09012SAndroid Build Coastguard Worker  // Examples: `"error_count"`, `"nginx/requests"`.
114*d5c09012SAndroid Build Coastguard Worker  //
115*d5c09012SAndroid Build Coastguard Worker  // Metric identifiers are limited to 100 characters and can include only the
116*d5c09012SAndroid Build Coastguard Worker  // following characters: `A-Z`, `a-z`, `0-9`, and the special characters
117*d5c09012SAndroid Build Coastguard Worker  // `_-.,+!*',()%/`. The forward-slash character (`/`) denotes a hierarchy of
118*d5c09012SAndroid Build Coastguard Worker  // name pieces, and it cannot be the first character of the name.
119*d5c09012SAndroid Build Coastguard Worker  //
120*d5c09012SAndroid Build Coastguard Worker  // This field is the `[METRIC_ID]` part of a metric resource name in the
121*d5c09012SAndroid Build Coastguard Worker  // format "projects/[PROJECT_ID]/metrics/[METRIC_ID]". Example: If the
122*d5c09012SAndroid Build Coastguard Worker  // resource name of a metric is
123*d5c09012SAndroid Build Coastguard Worker  // `"projects/my-project/metrics/nginx%2Frequests"`, this field's value is
124*d5c09012SAndroid Build Coastguard Worker  // `"nginx/requests"`.
125*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = REQUIRED];
126*d5c09012SAndroid Build Coastguard Worker
127*d5c09012SAndroid Build Coastguard Worker  // Optional. A description of this metric, which is used in documentation.
128*d5c09012SAndroid Build Coastguard Worker  // The maximum length of the description is 8000 characters.
129*d5c09012SAndroid Build Coastguard Worker  string description = 2 [(google.api.field_behavior) = OPTIONAL];
130*d5c09012SAndroid Build Coastguard Worker
131*d5c09012SAndroid Build Coastguard Worker  // Required. An [advanced logs
132*d5c09012SAndroid Build Coastguard Worker  // filter](https://cloud.google.com/logging/docs/view/advanced_filters) which
133*d5c09012SAndroid Build Coastguard Worker  // is used to match log entries. Example:
134*d5c09012SAndroid Build Coastguard Worker  //
135*d5c09012SAndroid Build Coastguard Worker  //     "resource.type=gae_app AND severity>=ERROR"
136*d5c09012SAndroid Build Coastguard Worker  //
137*d5c09012SAndroid Build Coastguard Worker  // The maximum length of the filter is 20000 characters.
138*d5c09012SAndroid Build Coastguard Worker  string filter = 3 [(google.api.field_behavior) = REQUIRED];
139*d5c09012SAndroid Build Coastguard Worker
140*d5c09012SAndroid Build Coastguard Worker  // Optional. The resource name of the Log Bucket that owns the Log Metric.
141*d5c09012SAndroid Build Coastguard Worker  // Only Log Buckets in projects are supported. The bucket has to be in the
142*d5c09012SAndroid Build Coastguard Worker  // same project as the metric.
143*d5c09012SAndroid Build Coastguard Worker  //
144*d5c09012SAndroid Build Coastguard Worker  // For example:
145*d5c09012SAndroid Build Coastguard Worker  //
146*d5c09012SAndroid Build Coastguard Worker  //   `projects/my-project/locations/global/buckets/my-bucket`
147*d5c09012SAndroid Build Coastguard Worker  //
148*d5c09012SAndroid Build Coastguard Worker  // If empty, then the Log Metric is considered a non-Bucket Log Metric.
149*d5c09012SAndroid Build Coastguard Worker  string bucket_name = 13 [(google.api.field_behavior) = OPTIONAL];
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // Optional. If set to True, then this metric is disabled and it does not
152*d5c09012SAndroid Build Coastguard Worker  // generate any points.
153*d5c09012SAndroid Build Coastguard Worker  bool disabled = 12 [(google.api.field_behavior) = OPTIONAL];
154*d5c09012SAndroid Build Coastguard Worker
155*d5c09012SAndroid Build Coastguard Worker  // Optional. The metric descriptor associated with the logs-based metric.
156*d5c09012SAndroid Build Coastguard Worker  // If unspecified, it uses a default metric descriptor with a DELTA metric
157*d5c09012SAndroid Build Coastguard Worker  // kind, INT64 value type, with no labels and a unit of "1". Such a metric
158*d5c09012SAndroid Build Coastguard Worker  // counts the number of log entries matching the `filter` expression.
159*d5c09012SAndroid Build Coastguard Worker  //
160*d5c09012SAndroid Build Coastguard Worker  // The `name`, `type`, and `description` fields in the `metric_descriptor`
161*d5c09012SAndroid Build Coastguard Worker  // are output only, and is constructed using the `name` and `description`
162*d5c09012SAndroid Build Coastguard Worker  // field in the LogMetric.
163*d5c09012SAndroid Build Coastguard Worker  //
164*d5c09012SAndroid Build Coastguard Worker  // To create a logs-based metric that records a distribution of log values, a
165*d5c09012SAndroid Build Coastguard Worker  // DELTA metric kind with a DISTRIBUTION value type must be used along with
166*d5c09012SAndroid Build Coastguard Worker  // a `value_extractor` expression in the LogMetric.
167*d5c09012SAndroid Build Coastguard Worker  //
168*d5c09012SAndroid Build Coastguard Worker  // Each label in the metric descriptor must have a matching label
169*d5c09012SAndroid Build Coastguard Worker  // name as the key and an extractor expression as the value in the
170*d5c09012SAndroid Build Coastguard Worker  // `label_extractors` map.
171*d5c09012SAndroid Build Coastguard Worker  //
172*d5c09012SAndroid Build Coastguard Worker  // The `metric_kind` and `value_type` fields in the `metric_descriptor` cannot
173*d5c09012SAndroid Build Coastguard Worker  // be updated once initially configured. New labels can be added in the
174*d5c09012SAndroid Build Coastguard Worker  // `metric_descriptor`, but existing labels cannot be modified except for
175*d5c09012SAndroid Build Coastguard Worker  // their description.
176*d5c09012SAndroid Build Coastguard Worker  google.api.MetricDescriptor metric_descriptor = 5
177*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
178*d5c09012SAndroid Build Coastguard Worker
179*d5c09012SAndroid Build Coastguard Worker  // Optional. A `value_extractor` is required when using a distribution
180*d5c09012SAndroid Build Coastguard Worker  // logs-based metric to extract the values to record from a log entry.
181*d5c09012SAndroid Build Coastguard Worker  // Two functions are supported for value extraction: `EXTRACT(field)` or
182*d5c09012SAndroid Build Coastguard Worker  // `REGEXP_EXTRACT(field, regex)`. The arguments are:
183*d5c09012SAndroid Build Coastguard Worker  //
184*d5c09012SAndroid Build Coastguard Worker  //   1. field: The name of the log entry field from which the value is to be
185*d5c09012SAndroid Build Coastguard Worker  //      extracted.
186*d5c09012SAndroid Build Coastguard Worker  //   2. regex: A regular expression using the Google RE2 syntax
187*d5c09012SAndroid Build Coastguard Worker  //      (https://github.com/google/re2/wiki/Syntax) with a single capture
188*d5c09012SAndroid Build Coastguard Worker  //      group to extract data from the specified log entry field. The value
189*d5c09012SAndroid Build Coastguard Worker  //      of the field is converted to a string before applying the regex.
190*d5c09012SAndroid Build Coastguard Worker  //      It is an error to specify a regex that does not include exactly one
191*d5c09012SAndroid Build Coastguard Worker  //      capture group.
192*d5c09012SAndroid Build Coastguard Worker  //
193*d5c09012SAndroid Build Coastguard Worker  // The result of the extraction must be convertible to a double type, as the
194*d5c09012SAndroid Build Coastguard Worker  // distribution always records double values. If either the extraction or
195*d5c09012SAndroid Build Coastguard Worker  // the conversion to double fails, then those values are not recorded in the
196*d5c09012SAndroid Build Coastguard Worker  // distribution.
197*d5c09012SAndroid Build Coastguard Worker  //
198*d5c09012SAndroid Build Coastguard Worker  // Example: `REGEXP_EXTRACT(jsonPayload.request, ".*quantity=(\d+).*")`
199*d5c09012SAndroid Build Coastguard Worker  string value_extractor = 6 [(google.api.field_behavior) = OPTIONAL];
200*d5c09012SAndroid Build Coastguard Worker
201*d5c09012SAndroid Build Coastguard Worker  // Optional. A map from a label key string to an extractor expression which is
202*d5c09012SAndroid Build Coastguard Worker  // used to extract data from a log entry field and assign as the label value.
203*d5c09012SAndroid Build Coastguard Worker  // Each label key specified in the LabelDescriptor must have an associated
204*d5c09012SAndroid Build Coastguard Worker  // extractor expression in this map. The syntax of the extractor expression
205*d5c09012SAndroid Build Coastguard Worker  // is the same as for the `value_extractor` field.
206*d5c09012SAndroid Build Coastguard Worker  //
207*d5c09012SAndroid Build Coastguard Worker  // The extracted value is converted to the type defined in the label
208*d5c09012SAndroid Build Coastguard Worker  // descriptor. If either the extraction or the type conversion fails,
209*d5c09012SAndroid Build Coastguard Worker  // the label will have a default value. The default value for a string
210*d5c09012SAndroid Build Coastguard Worker  // label is an empty string, for an integer label its 0, and for a boolean
211*d5c09012SAndroid Build Coastguard Worker  // label its `false`.
212*d5c09012SAndroid Build Coastguard Worker  //
213*d5c09012SAndroid Build Coastguard Worker  // Note that there are upper bounds on the maximum number of labels and the
214*d5c09012SAndroid Build Coastguard Worker  // number of active time series that are allowed in a project.
215*d5c09012SAndroid Build Coastguard Worker  map<string, string> label_extractors = 7
216*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
217*d5c09012SAndroid Build Coastguard Worker
218*d5c09012SAndroid Build Coastguard Worker  // Optional. The `bucket_options` are required when the logs-based metric is
219*d5c09012SAndroid Build Coastguard Worker  // using a DISTRIBUTION value type and it describes the bucket boundaries
220*d5c09012SAndroid Build Coastguard Worker  // used to create a histogram of the extracted values.
221*d5c09012SAndroid Build Coastguard Worker  google.api.Distribution.BucketOptions bucket_options = 8
222*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
223*d5c09012SAndroid Build Coastguard Worker
224*d5c09012SAndroid Build Coastguard Worker  // Output only. The creation timestamp of the metric.
225*d5c09012SAndroid Build Coastguard Worker  //
226*d5c09012SAndroid Build Coastguard Worker  // This field may not be present for older metrics.
227*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 9
228*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
229*d5c09012SAndroid Build Coastguard Worker
230*d5c09012SAndroid Build Coastguard Worker  // Output only. The last update timestamp of the metric.
231*d5c09012SAndroid Build Coastguard Worker  //
232*d5c09012SAndroid Build Coastguard Worker  // This field may not be present for older metrics.
233*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 10
234*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
235*d5c09012SAndroid Build Coastguard Worker
236*d5c09012SAndroid Build Coastguard Worker  // Deprecated. The API version that created or updated this metric.
237*d5c09012SAndroid Build Coastguard Worker  // The v2 format is used by default and cannot be changed.
238*d5c09012SAndroid Build Coastguard Worker  ApiVersion version = 4 [deprecated = true];
239*d5c09012SAndroid Build Coastguard Worker}
240*d5c09012SAndroid Build Coastguard Worker
241*d5c09012SAndroid Build Coastguard Worker// The parameters to ListLogMetrics.
242*d5c09012SAndroid Build Coastguard Workermessage ListLogMetricsRequest {
243*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the project containing the metrics:
244*d5c09012SAndroid Build Coastguard Worker  //
245*d5c09012SAndroid Build Coastguard Worker  //     "projects/[PROJECT_ID]"
246*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
247*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
248*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
249*d5c09012SAndroid Build Coastguard Worker      type: "cloudresourcemanager.googleapis.com/Project"
250*d5c09012SAndroid Build Coastguard Worker    }
251*d5c09012SAndroid Build Coastguard Worker  ];
252*d5c09012SAndroid Build Coastguard Worker
253*d5c09012SAndroid Build Coastguard Worker  // Optional. If present, then retrieve the next batch of results from the
254*d5c09012SAndroid Build Coastguard Worker  // preceding call to this method. `pageToken` must be the value of
255*d5c09012SAndroid Build Coastguard Worker  // `nextPageToken` from the previous response. The values of other method
256*d5c09012SAndroid Build Coastguard Worker  // parameters should be identical to those in the previous call.
257*d5c09012SAndroid Build Coastguard Worker  string page_token = 2 [(google.api.field_behavior) = OPTIONAL];
258*d5c09012SAndroid Build Coastguard Worker
259*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of results to return from this request.
260*d5c09012SAndroid Build Coastguard Worker  // Non-positive values are ignored. The presence of `nextPageToken` in the
261*d5c09012SAndroid Build Coastguard Worker  // response indicates that more results might be available.
262*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
263*d5c09012SAndroid Build Coastguard Worker}
264*d5c09012SAndroid Build Coastguard Worker
265*d5c09012SAndroid Build Coastguard Worker// Result returned from ListLogMetrics.
266*d5c09012SAndroid Build Coastguard Workermessage ListLogMetricsResponse {
267*d5c09012SAndroid Build Coastguard Worker  // A list of logs-based metrics.
268*d5c09012SAndroid Build Coastguard Worker  repeated LogMetric metrics = 1;
269*d5c09012SAndroid Build Coastguard Worker
270*d5c09012SAndroid Build Coastguard Worker  // If there might be more results than appear in this response, then
271*d5c09012SAndroid Build Coastguard Worker  // `nextPageToken` is included. To get the next set of results, call this
272*d5c09012SAndroid Build Coastguard Worker  // method again using the value of `nextPageToken` as `pageToken`.
273*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
274*d5c09012SAndroid Build Coastguard Worker}
275*d5c09012SAndroid Build Coastguard Worker
276*d5c09012SAndroid Build Coastguard Worker// The parameters to GetLogMetric.
277*d5c09012SAndroid Build Coastguard Workermessage GetLogMetricRequest {
278*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the desired metric:
279*d5c09012SAndroid Build Coastguard Worker  //
280*d5c09012SAndroid Build Coastguard Worker  //     "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
281*d5c09012SAndroid Build Coastguard Worker  string metric_name = 1 [
282*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
283*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
284*d5c09012SAndroid Build Coastguard Worker      type: "logging.googleapis.com/LogMetric"
285*d5c09012SAndroid Build Coastguard Worker    }
286*d5c09012SAndroid Build Coastguard Worker  ];
287*d5c09012SAndroid Build Coastguard Worker}
288*d5c09012SAndroid Build Coastguard Worker
289*d5c09012SAndroid Build Coastguard Worker// The parameters to CreateLogMetric.
290*d5c09012SAndroid Build Coastguard Workermessage CreateLogMetricRequest {
291*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the project in which to create the metric:
292*d5c09012SAndroid Build Coastguard Worker  //
293*d5c09012SAndroid Build Coastguard Worker  //     "projects/[PROJECT_ID]"
294*d5c09012SAndroid Build Coastguard Worker  //
295*d5c09012SAndroid Build Coastguard Worker  // The new metric must be provided in the request.
296*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
297*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
298*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
299*d5c09012SAndroid Build Coastguard Worker      child_type: "logging.googleapis.com/LogMetric"
300*d5c09012SAndroid Build Coastguard Worker    }
301*d5c09012SAndroid Build Coastguard Worker  ];
302*d5c09012SAndroid Build Coastguard Worker
303*d5c09012SAndroid Build Coastguard Worker  // Required. The new logs-based metric, which must not have an identifier that
304*d5c09012SAndroid Build Coastguard Worker  // already exists.
305*d5c09012SAndroid Build Coastguard Worker  LogMetric metric = 2 [(google.api.field_behavior) = REQUIRED];
306*d5c09012SAndroid Build Coastguard Worker}
307*d5c09012SAndroid Build Coastguard Worker
308*d5c09012SAndroid Build Coastguard Worker// The parameters to UpdateLogMetric.
309*d5c09012SAndroid Build Coastguard Workermessage UpdateLogMetricRequest {
310*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the metric to update:
311*d5c09012SAndroid Build Coastguard Worker  //
312*d5c09012SAndroid Build Coastguard Worker  //     "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
313*d5c09012SAndroid Build Coastguard Worker  //
314*d5c09012SAndroid Build Coastguard Worker  // The updated metric must be provided in the request and it's
315*d5c09012SAndroid Build Coastguard Worker  // `name` field must be the same as `[METRIC_ID]` If the metric
316*d5c09012SAndroid Build Coastguard Worker  // does not exist in `[PROJECT_ID]`, then a new metric is created.
317*d5c09012SAndroid Build Coastguard Worker  string metric_name = 1 [
318*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
319*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
320*d5c09012SAndroid Build Coastguard Worker      type: "logging.googleapis.com/LogMetric"
321*d5c09012SAndroid Build Coastguard Worker    }
322*d5c09012SAndroid Build Coastguard Worker  ];
323*d5c09012SAndroid Build Coastguard Worker
324*d5c09012SAndroid Build Coastguard Worker  // Required. The updated metric.
325*d5c09012SAndroid Build Coastguard Worker  LogMetric metric = 2 [(google.api.field_behavior) = REQUIRED];
326*d5c09012SAndroid Build Coastguard Worker}
327*d5c09012SAndroid Build Coastguard Worker
328*d5c09012SAndroid Build Coastguard Worker// The parameters to DeleteLogMetric.
329*d5c09012SAndroid Build Coastguard Workermessage DeleteLogMetricRequest {
330*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the metric to delete:
331*d5c09012SAndroid Build Coastguard Worker  //
332*d5c09012SAndroid Build Coastguard Worker  //     "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
333*d5c09012SAndroid Build Coastguard Worker  string metric_name = 1 [
334*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
335*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
336*d5c09012SAndroid Build Coastguard Worker      type: "logging.googleapis.com/LogMetric"
337*d5c09012SAndroid Build Coastguard Worker    }
338*d5c09012SAndroid Build Coastguard Worker  ];
339*d5c09012SAndroid Build Coastguard Worker}
340