| // 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.api.servicecontrol.v1; |
| |
| import "google/api/annotations.proto"; |
| import "google/api/servicecontrol/v1/log_entry.proto"; |
| import "google/api/servicecontrol/v1/metric_value.proto"; |
| import "google/protobuf/timestamp.proto"; |
| |
| option cc_enable_arenas = true; |
| option go_package = "google.golang.org/genproto/googleapis/api/servicecontrol/v1;servicecontrol"; |
| option java_multiple_files = true; |
| option java_outer_classname = "OperationProto"; |
| option java_package = "com.google.api.servicecontrol.v1"; |
| |
| |
| // Represents information regarding an operation. |
| message Operation { |
| // Defines the importance of the data contained in the operation. |
| enum Importance { |
| // The API implementation may cache and aggregate the data. |
| // The data may be lost when rare and unexpected system failures occur. |
| LOW = 0; |
| |
| // The API implementation doesn't cache and aggregate the data. |
| // If the method returns successfully, it's guaranteed that the data has |
| // been persisted in durable storage. |
| HIGH = 1; |
| } |
| |
| // Identity of the operation. This must be unique within the scope of the |
| // service that generated the operation. If the service calls |
| // Check() and Report() on the same operation, the two calls should carry |
| // the same id. |
| // |
| // UUID version 4 is recommended, though not required. |
| // In scenarios where an operation is computed from existing information |
| // and an idempotent id is desirable for deduplication purpose, UUID version 5 |
| // is recommended. See RFC 4122 for details. |
| string operation_id = 1; |
| |
| // Fully qualified name of the operation. Reserved for future use. |
| string operation_name = 2; |
| |
| // Identity of the consumer who is using the service. |
| // This field should be filled in for the operations initiated by a |
| // consumer, but not for service-initiated operations that are |
| // not related to a specific consumer. |
| // |
| // This can be in one of the following formats: |
| // project:<project_id>, |
| // project_number:<project_number>, |
| // api_key:<api_key>. |
| string consumer_id = 3; |
| |
| // Required. Start time of the operation. |
| google.protobuf.Timestamp start_time = 4; |
| |
| // End time of the operation. |
| // Required when the operation is used in [ServiceController.Report][google.api.servicecontrol.v1.ServiceController.Report], |
| // but optional when the operation is used in [ServiceController.Check][google.api.servicecontrol.v1.ServiceController.Check]. |
| google.protobuf.Timestamp end_time = 5; |
| |
| // Labels describing the operation. Only the following labels are allowed: |
| // |
| // - Labels describing monitored resources as defined in |
| // the service configuration. |
| // - Default labels of metric values. When specified, labels defined in the |
| // metric value override these default. |
| // - The following labels defined by Google Cloud Platform: |
| // - `cloud.googleapis.com/location` describing the location where the |
| // operation happened, |
| // - `servicecontrol.googleapis.com/user_agent` describing the user agent |
| // of the API request, |
| // - `servicecontrol.googleapis.com/service_agent` describing the service |
| // used to handle the API request (e.g. ESP), |
| // - `servicecontrol.googleapis.com/platform` describing the platform |
| // where the API is served (e.g. GAE, GCE, GKE). |
| map<string, string> labels = 6; |
| |
| // Represents information about this operation. Each MetricValueSet |
| // corresponds to a metric defined in the service configuration. |
| // The data type used in the MetricValueSet must agree with |
| // the data type specified in the metric definition. |
| // |
| // Within a single operation, it is not allowed to have more than one |
| // MetricValue instances that have the same metric names and identical |
| // label value combinations. If a request has such duplicated MetricValue |
| // instances, the entire request is rejected with |
| // an invalid argument error. |
| repeated MetricValueSet metric_value_sets = 7; |
| |
| // Represents information to be logged. |
| repeated LogEntry log_entries = 8; |
| |
| // DO NOT USE. This is an experimental field. |
| Importance importance = 11; |
| } |