Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / google / cloud / runtimeconfig / v1beta1 / runtimeconfig.proto
diff --git a/legacy-libs/google-proto-files/google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto b/legacy-libs/google-proto-files/google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto
new file mode 100644 (file)
index 0000000..fbd1d41
--- /dev/null
@@ -0,0 +1,451 @@
+// 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.cloud.runtimeconfig.v1beta1;
+
+import "google/api/annotations.proto";
+import "google/cloud/runtimeconfig/v1beta1/resources.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.RuntimeConfig.V1Beta1";
+option go_package = "google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1;runtimeconfig";
+option java_multiple_files = true;
+option java_package = "com.google.cloud.runtimeconfig.v1beta1";
+option php_namespace = "Google\\Cloud\\RuntimeConfig\\V1beta1";
+
+// RuntimeConfig API represents configuration objects and operations on those
+// configuration objects.
+// RuntimeConfig objects consist of Variables logically grouped in the those
+// objects.
+// Variables are simple key-value pairs. Variables can be watched for changes or
+// deletions. Variable key can be hieararchical, e.g. ports/serving_port,
+// ports/monitoring_port, etc. Variable names can be hierarchical. No variable
+// name can be prefix of another.
+// Config objects represent logical containers for variables, e.g. flags,
+// passwords, etc.
+service RuntimeConfigManager {
+  // Lists all the RuntimeConfig resources within project.
+  rpc ListConfigs(ListConfigsRequest) returns (ListConfigsResponse) {
+    option (google.api.http) = {
+      get: "/v1beta1/{parent=projects/*}/configs"
+    };
+  }
+
+  // Gets information about a RuntimeConfig resource.
+  rpc GetConfig(GetConfigRequest) returns (RuntimeConfig) {
+    option (google.api.http) = {
+      get: "/v1beta1/{name=projects/*/configs/*}"
+    };
+  }
+
+  // Creates a new RuntimeConfig resource. The configuration name must be
+  // unique within project.
+  rpc CreateConfig(CreateConfigRequest) returns (RuntimeConfig) {
+    option (google.api.http) = {
+      post: "/v1beta1/{parent=projects/*}/configs"
+      body: "config"
+    };
+  }
+
+  // Updates a RuntimeConfig resource. The configuration must exist beforehand.
+  rpc UpdateConfig(UpdateConfigRequest) returns (RuntimeConfig) {
+    option (google.api.http) = {
+      put: "/v1beta1/{name=projects/*/configs/*}"
+      body: "config"
+    };
+  }
+
+  // Deletes a RuntimeConfig resource.
+  rpc DeleteConfig(DeleteConfigRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v1beta1/{name=projects/*/configs/*}"
+    };
+  }
+
+  // Lists variables within given a configuration, matching any provided
+  // filters. This only lists variable names, not the values, unless
+  // `return_values` is true, in which case only variables that user has IAM
+  // permission to GetVariable will be returned.
+  rpc ListVariables(ListVariablesRequest) returns (ListVariablesResponse) {
+    option (google.api.http) = {
+      get: "/v1beta1/{parent=projects/*/configs/*}/variables"
+    };
+  }
+
+  // Gets information about a single variable.
+  rpc GetVariable(GetVariableRequest) returns (Variable) {
+    option (google.api.http) = {
+      get: "/v1beta1/{name=projects/*/configs/*/variables/**}"
+    };
+  }
+
+  // Watches a specific variable and waits for a change in the variable's value.
+  // When there is a change, this method returns the new value or times out.
+  //
+  // If a variable is deleted while being watched, the `variableState` state is
+  // set to `DELETED` and the method returns the last known variable `value`.
+  //
+  // If you set the deadline for watching to a larger value than internal
+  // timeout (60 seconds), the current variable value is returned and the
+  // `variableState` will be `VARIABLE_STATE_UNSPECIFIED`.
+  //
+  // To learn more about creating a watcher, read the
+  // [Watching a Variable for
+  // Changes](/deployment-manager/runtime-configurator/watching-a-variable)
+  // documentation.
+  rpc WatchVariable(WatchVariableRequest) returns (Variable) {
+    option (google.api.http) = {
+      post: "/v1beta1/{name=projects/*/configs/*/variables/**}:watch"
+      body: "*"
+    };
+  }
+
+  // Creates a variable within the given configuration. You cannot create
+  // a variable with a name that is a prefix of an existing variable name, or a
+  // name that has an existing variable name as a prefix.
+  //
+  // To learn more about creating a variable, read the
+  // [Setting and Getting
+  // Data](/deployment-manager/runtime-configurator/set-and-get-variables)
+  // documentation.
+  rpc CreateVariable(CreateVariableRequest) returns (Variable) {
+    option (google.api.http) = {
+      post: "/v1beta1/{parent=projects/*/configs/*}/variables"
+      body: "variable"
+    };
+  }
+
+  // Updates an existing variable with a new value.
+  rpc UpdateVariable(UpdateVariableRequest) returns (Variable) {
+    option (google.api.http) = {
+      put: "/v1beta1/{name=projects/*/configs/*/variables/**}"
+      body: "variable"
+    };
+  }
+
+  // Deletes a variable or multiple variables.
+  //
+  // If you specify a variable name, then that variable is deleted. If you
+  // specify a prefix and `recursive` is true, then all variables with that
+  // prefix are deleted. You must set a `recursive` to true if you delete
+  // variables by prefix.
+  rpc DeleteVariable(DeleteVariableRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v1beta1/{name=projects/*/configs/*/variables/**}"
+    };
+  }
+
+  // List waiters within the given configuration.
+  rpc ListWaiters(ListWaitersRequest) returns (ListWaitersResponse) {
+    option (google.api.http) = {
+      get: "/v1beta1/{parent=projects/*/configs/*}/waiters"
+    };
+  }
+
+  // Gets information about a single waiter.
+  rpc GetWaiter(GetWaiterRequest) returns (Waiter) {
+    option (google.api.http) = {
+      get: "/v1beta1/{name=projects/*/configs/*/waiters/*}"
+    };
+  }
+
+  // Creates a Waiter resource. This operation returns a long-running Operation
+  // resource which can be polled for completion. However, a waiter with the
+  // given name will exist (and can be retrieved) prior to the operation
+  // completing. If the operation fails, the failed Waiter resource will
+  // still exist and must be deleted prior to subsequent creation attempts.
+  rpc CreateWaiter(CreateWaiterRequest) returns (google.longrunning.Operation) {
+    option (google.api.http) = {
+      post: "/v1beta1/{parent=projects/*/configs/*}/waiters"
+      body: "waiter"
+    };
+  }
+
+  // Deletes the waiter with the specified name.
+  rpc DeleteWaiter(DeleteWaiterRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v1beta1/{name=projects/*/configs/*/waiters/*}"
+    };
+  }
+}
+
+// Request for the `ListConfigs()` method.
+message ListConfigsRequest {
+  // The [project
+  // ID](https://support.google.com/cloud/answer/6158840?hl=en&ref_topic=6158848)
+  // for this request, in the format `projects/[PROJECT_ID]`.
+  string parent = 1;
+
+  // Specifies the number of results to return per page. If there are fewer
+  // elements than the specified number, returns all elements.
+  int32 page_size = 2;
+
+  // Specifies a page token to use. Set `pageToken` to a `nextPageToken`
+  // returned by a previous list request to get the next page of results.
+  string page_token = 3;
+}
+
+// `ListConfigs()` returns the following response. The order of returned
+// objects is arbitrary; that is, it is not ordered in any particular way.
+message ListConfigsResponse {
+  // A list of the configurations in the project. The order of returned
+  // objects is arbitrary; that is, it is not ordered in any particular way.
+  repeated RuntimeConfig configs = 1;
+
+  // This token allows you to get the next page of results for list requests.
+  // If the number of results is larger than `pageSize`, use the `nextPageToken`
+  // as a value for the query parameter `pageToken` in the next list request.
+  // Subsequent list requests will have their own `nextPageToken` to continue
+  // paging through the results
+  string next_page_token = 2;
+}
+
+// Gets a RuntimeConfig resource.
+message GetConfigRequest {
+  // The name of the RuntimeConfig resource to retrieve, in the format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
+  string name = 2;
+}
+
+// Creates a RuntimeConfig resource.
+message CreateConfigRequest {
+  // The [project
+  // ID](https://support.google.com/cloud/answer/6158840?hl=en&ref_topic=6158848)
+  // for this request, in the format `projects/[PROJECT_ID]`.
+  string parent = 1;
+
+  // The RuntimeConfig to create.
+  RuntimeConfig config = 2;
+
+  // An optional but recommended unique `request_id`. If the server
+  // receives two `create()` requests  with the same
+  // `request_id`, then the second request will be ignored and the
+  // first resource created and stored in the backend is returned.
+  // Empty `request_id` fields are ignored.
+  //
+  // It is responsibility of the client to ensure uniqueness of the
+  // `request_id` strings.
+  //
+  // `request_id` strings are limited to 64 characters.
+  string request_id = 3;
+}
+
+// Request message for `UpdateConfig()` method.
+message UpdateConfigRequest {
+  // The name of the RuntimeConfig resource to update, in the format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
+  string name = 1;
+
+  // The config resource to update.
+  RuntimeConfig config = 2;
+}
+
+// Request for the `DeleteConfig()` method.
+message DeleteConfigRequest {
+  // The RuntimeConfig resource to delete, in the format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
+  string name = 1;
+}
+
+// Request for the `ListVariables()` method.
+message ListVariablesRequest {
+  // The path to the RuntimeConfig resource for which you want to list
+  // variables. The configuration must exist beforehand; the path must by in the
+  // format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
+  string parent = 1;
+
+  // Filters variables by matching the specified filter. For example:
+  //
+  // `projects/example-project/config/[CONFIG_NAME]/variables/example-variable`.
+  string filter = 2;
+
+  // Specifies the number of results to return per page. If there are fewer
+  // elements than the specified number, returns all elements.
+  int32 page_size = 3;
+
+  // Specifies a page token to use. Set `pageToken` to a `nextPageToken`
+  // returned by a previous list request to get the next page of results.
+  string page_token = 4;
+
+  // The flag indicates whether the user wants to return values of variables.
+  // If true, then only those variables that user has IAM GetVariable permission
+  // will be returned along with their values.
+  bool return_values = 5;
+}
+
+// Response for the `ListVariables()` method.
+message ListVariablesResponse {
+  // A list of variables and their values. The order of returned variable
+  // objects is arbitrary.
+  repeated Variable variables = 1;
+
+  // This token allows you to get the next page of results for list requests.
+  // If the number of results is larger than `pageSize`, use the `nextPageToken`
+  // as a value for the query parameter `pageToken` in the next list request.
+  // Subsequent list requests will have their own `nextPageToken` to continue
+  // paging through the results
+  string next_page_token = 2;
+}
+
+// Request for the `WatchVariable()` method.
+message WatchVariableRequest {
+  // The name of the variable to watch, in the format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
+  string name = 1;
+
+  // If specified, checks the current timestamp of the variable and if the
+  // current timestamp is newer than `newerThan` timestamp, the method returns
+  // immediately.
+  //
+  // If not specified or the variable has an older timestamp, the watcher waits
+  // for a the value to change before returning.
+  google.protobuf.Timestamp newer_than = 4;
+}
+
+// Request for the `GetVariable()` method.
+message GetVariableRequest {
+  // The name of the variable to return, in the format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIBLE_NAME]`
+  string name = 1;
+}
+
+// Request for the `CreateVariable()` method.
+message CreateVariableRequest {
+  // The path to the RutimeConfig resource that this variable should belong to.
+  // The configuration must exist beforehand; the path must by in the format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
+  string parent = 1;
+
+  // The variable to create.
+  Variable variable = 2;
+
+  // An optional but recommended unique `request_id`. If the server
+  // receives two `create()` requests  with the same
+  // `request_id`, then the second request will be ignored and the
+  // first resource created and stored in the backend is returned.
+  // Empty `request_id` fields are ignored.
+  //
+  // It is responsibility of the client to ensure uniqueness of the
+  // `request_id` strings.
+  //
+  // `request_id` strings are limited to 64 characters.
+  string request_id = 3;
+}
+
+// Request for the `UpdateVariable()` method.
+message UpdateVariableRequest {
+  // The name of the variable to update, in the format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]`
+  string name = 1;
+
+  // The variable to update.
+  Variable variable = 2;
+}
+
+// Request for the `DeleteVariable()` method.
+message DeleteVariableRequest {
+  // The name of the variable to delete, in the format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]`
+  string name = 1;
+
+  // Set to `true` to recursively delete multiple variables with the same
+  // prefix.
+  bool recursive = 2;
+}
+
+// Request for the `ListWaiters()` method.
+message ListWaitersRequest {
+  // The path to the configuration for which you want to get a list of waiters.
+  // The configuration must exist beforehand; the path must by in the format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
+  string parent = 1;
+
+  // Specifies the number of results to return per page. If there are fewer
+  // elements than the specified number, returns all elements.
+  int32 page_size = 2;
+
+  // Specifies a page token to use. Set `pageToken` to a `nextPageToken`
+  // returned by a previous list request to get the next page of results.
+  string page_token = 3;
+}
+
+// Response for the `ListWaiters()` method.
+// Order of returned waiter objects is arbitrary.
+message ListWaitersResponse {
+  // Found waiters in the project.
+  repeated Waiter waiters = 1;
+
+  // This token allows you to get the next page of results for list requests.
+  // If the number of results is larger than `pageSize`, use the `nextPageToken`
+  // as a value for the query parameter `pageToken` in the next list request.
+  // Subsequent list requests will have their own `nextPageToken` to continue
+  // paging through the results
+  string next_page_token = 2;
+}
+
+// Request for the `GetWaiter()` method.
+message GetWaiterRequest {
+  // The fully-qualified name of the Waiter resource object to retrieve, in the
+  // format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]`
+  string name = 1;
+}
+
+// Request message for `CreateWaiter()` method.
+message CreateWaiterRequest {
+  // The path to the configuration that will own the waiter.
+  // The configuration must exist beforehand; the path must by in the format:
+  //
+  // `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`.
+  string parent = 1;
+
+  // The Waiter resource to create.
+  Waiter waiter = 2;
+
+  // An optional but recommended unique `request_id`. If the server
+  // receives two `create()` requests  with the same
+  // `request_id`, then the second request will be ignored and the
+  // first resource created and stored in the backend is returned.
+  // Empty `request_id` fields are ignored.
+  //
+  // It is responsibility of the client to ensure uniqueness of the
+  // `request_id` strings.
+  //
+  // `request_id` strings are limited to 64 characters.
+  string request_id = 3;
+}
+
+// Request for the `DeleteWaiter()` method.
+message DeleteWaiterRequest {
+  // The Waiter resource to delete, in the format:
+  //
+  //  `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]`
+  string name = 1;
+}