123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451 |
- // 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;
- }
|