Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / google / api / servicecontrol / v1 / service_controller.proto
diff --git a/legacy-libs/google-proto-files/google/api/servicecontrol/v1/service_controller.proto b/legacy-libs/google-proto-files/google/api/servicecontrol/v1/service_controller.proto
new file mode 100644 (file)
index 0000000..6e11bcf
--- /dev/null
@@ -0,0 +1,198 @@
+// 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.api.servicecontrol.v1;
+
+import "google/api/annotations.proto";
+import "google/api/servicecontrol/v1/check_error.proto";
+import "google/api/servicecontrol/v1/operation.proto";
+import "google/rpc/status.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 = "ServiceControllerProto";
+option java_package = "com.google.api.servicecontrol.v1";
+option objc_class_prefix = "GASC";
+
+// [Google Service Control API](/service-control/overview)
+//
+// Lets clients check and report operations against a [managed
+// service](https://cloud.google.com/service-management/reference/rpc/google.api/servicemanagement.v1#google.api.servicemanagement.v1.ManagedService).
+service ServiceController {
+  // Checks an operation with Google Service Control to decide whether
+  // the given operation should proceed. It should be called before the
+  // operation is executed.
+  //
+  // If feasible, the client should cache the check results and reuse them for
+  // 60 seconds. In case of server errors, the client can rely on the cached
+  // results for longer time.
+  //
+  // NOTE: the [CheckRequest][google.api.servicecontrol.v1.CheckRequest] has the
+  // size limit of 64KB.
+  //
+  // This method requires the `servicemanagement.services.check` permission
+  // on the specified service. For more information, see
+  // [Google Cloud IAM](https://cloud.google.com/iam).
+  rpc Check(CheckRequest) returns (CheckResponse) {
+    option (google.api.http) = {
+      post: "/v1/services/{service_name}:check"
+      body: "*"
+    };
+  }
+
+  // Reports operation results to Google Service Control, such as logs and
+  // metrics. It should be called after an operation is completed.
+  //
+  // If feasible, the client should aggregate reporting data for up to 5
+  // seconds to reduce API traffic. Limiting aggregation to 5 seconds is to
+  // reduce data loss during client crashes. Clients should carefully choose
+  // the aggregation time window to avoid data loss risk more than 0.01%
+  // for business and compliance reasons.
+  //
+  // NOTE: the [ReportRequest][google.api.servicecontrol.v1.ReportRequest] has
+  // the size limit of 1MB.
+  //
+  // This method requires the `servicemanagement.services.report` permission
+  // on the specified service. For more information, see
+  // [Google Cloud IAM](https://cloud.google.com/iam).
+  rpc Report(ReportRequest) returns (ReportResponse) {
+    option (google.api.http) = {
+      post: "/v1/services/{service_name}:report"
+      body: "*"
+    };
+  }
+}
+
+// Request message for the Check method.
+message CheckRequest {
+  // The service name as specified in its service configuration. For example,
+  // `"pubsub.googleapis.com"`.
+  //
+  // See
+  // [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service)
+  // for the definition of a service name.
+  string service_name = 1;
+
+  // The operation to be checked.
+  Operation operation = 2;
+
+  // Specifies which version of service configuration should be used to process
+  // the request.
+  //
+  // If unspecified or no matching version can be found, the
+  // latest one will be used.
+  string service_config_id = 4;
+}
+
+// Response message for the Check method.
+message CheckResponse {
+  message CheckInfo {
+    // Consumer info of this check.
+    ConsumerInfo consumer_info = 2;
+  }
+
+  // `ConsumerInfo` provides information about the consumer project.
+  message ConsumerInfo {
+    // The Google cloud project number, e.g. 1234567890. A value of 0 indicates
+    // no project number is found.
+    int64 project_number = 1;
+  }
+
+  // The same operation_id value used in the
+  // [CheckRequest][google.api.servicecontrol.v1.CheckRequest]. Used for logging
+  // and diagnostics purposes.
+  string operation_id = 1;
+
+  // Indicate the decision of the check.
+  //
+  // If no check errors are present, the service should process the operation.
+  // Otherwise the service should use the list of errors to determine the
+  // appropriate action.
+  repeated CheckError check_errors = 2;
+
+  // The actual config id used to process the request.
+  string service_config_id = 5;
+
+  // Feedback data returned from the server during processing a Check request.
+  CheckInfo check_info = 6;
+}
+
+// Request message for the Report method.
+message ReportRequest {
+  // The service name as specified in its service configuration. For example,
+  // `"pubsub.googleapis.com"`.
+  //
+  // See
+  // [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service)
+  // for the definition of a service name.
+  string service_name = 1;
+
+  // Operations to be reported.
+  //
+  // Typically the service should report one operation per request.
+  // Putting multiple operations into a single request is allowed, but should
+  // be used only when multiple operations are natually available at the time
+  // of the report.
+  //
+  // If multiple operations are in a single request, the total request size
+  // should be no larger than 1MB. See
+  // [ReportResponse.report_errors][google.api.servicecontrol.v1.ReportResponse.report_errors]
+  // for partial failure behavior.
+  repeated Operation operations = 2;
+
+  // Specifies which version of service config should be used to process the
+  // request.
+  //
+  // If unspecified or no matching version can be found, the
+  // latest one will be used.
+  string service_config_id = 3;
+}
+
+// Response message for the Report method.
+message ReportResponse {
+  // Represents the processing error of one
+  // [Operation][google.api.servicecontrol.v1.Operation] in the request.
+  message ReportError {
+    // The
+    // [Operation.operation_id][google.api.servicecontrol.v1.Operation.operation_id]
+    // value from the request.
+    string operation_id = 1;
+
+    // Details of the error when processing the
+    // [Operation][google.api.servicecontrol.v1.Operation].
+    google.rpc.Status status = 2;
+  }
+
+  // Partial failures, one for each `Operation` in the request that failed
+  // processing. There are three possible combinations of the RPC status:
+  //
+  // 1. The combination of a successful RPC status and an empty `report_errors`
+  //    list indicates a complete success where all `Operations` in the
+  //    request are processed successfully.
+  // 2. The combination of a successful RPC status and a non-empty
+  //    `report_errors` list indicates a partial success where some
+  //    `Operations` in the request succeeded. Each
+  //    `Operation` that failed processing has a corresponding item
+  //    in this list.
+  // 3. A failed RPC status indicates a general non-deterministic failure.
+  //    When this happens, it's impossible to know which of the
+  //    'Operations' in the request succeeded or failed.
+  repeated ReportError report_errors = 1;
+
+  // The actual config id used to process the request.
+  string service_config_id = 2;
+}