summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/cloud/runtimeconfig
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/cloud/runtimeconfig')
-rw-r--r--third_party/googleapis/google/cloud/runtimeconfig/BUILD.bazel0
-rw-r--r--third_party/googleapis/google/cloud/runtimeconfig/README.md39
-rw-r--r--third_party/googleapis/google/cloud/runtimeconfig/runtimeconfig.yaml49
-rw-r--r--third_party/googleapis/google/cloud/runtimeconfig/v1beta1/resources.proto209
-rw-r--r--third_party/googleapis/google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto451
5 files changed, 748 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/runtimeconfig/BUILD.bazel b/third_party/googleapis/google/cloud/runtimeconfig/BUILD.bazel
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/googleapis/google/cloud/runtimeconfig/BUILD.bazel
diff --git a/third_party/googleapis/google/cloud/runtimeconfig/README.md b/third_party/googleapis/google/cloud/runtimeconfig/README.md
new file mode 100644
index 0000000..49c1d87
--- /dev/null
+++ b/third_party/googleapis/google/cloud/runtimeconfig/README.md
@@ -0,0 +1,39 @@
+[TOC]
+
+# Introduction
+
+The RuntimeConfig service provides Google Cloud Platform users the ability to
+dynamically configure your service.
+
+The RuntimConfig service creates and manages RuntimeConfig resources
+within a Google Cloud Project and various variables within said resource.
+
+## Details
+
+Each cloud project can create multiple **Config** objects. A **Config** object
+by itself does not contain any configuration information, but rather is a
+logical grouping of variables. Variable names are hierarchical and follow file
+system style, where only leaf nodes can contain values.
+
+For example, you can have a configuration called *Flags*. Within that
+configuration object, you can create the following variables.
+
+* `/ports/service_port`
+* `/ports/monitoring_port`
+* `/ports/admin_port`
+
+This creates three variables: `/ports/serve_port`, `/ports/monitoring_port`,
+`/ports/admin_port`. Note that `/ports` cannot have a value but it can be
+listed.
+
+### Setup
+
+In order to make requests to RuntimeConfig service, you need to enable the API
+for your project.
+
+To achieve that, go to the
+[Google Cloud Console](https://console.cloud.google.com/apis/api/runtimeconfig.googleapis.com/overview)
+and enable *Google Cloud RuntimeConfig API* for your project.
+
+The documentation for this service is located
+[here](https://cloud.google.com/deployment-manager/runtime-configurator/reference/rest/).
diff --git a/third_party/googleapis/google/cloud/runtimeconfig/runtimeconfig.yaml b/third_party/googleapis/google/cloud/runtimeconfig/runtimeconfig.yaml
new file mode 100644
index 0000000..1f66c9b
--- /dev/null
+++ b/third_party/googleapis/google/cloud/runtimeconfig/runtimeconfig.yaml
@@ -0,0 +1,49 @@
+type: google.api.Service
+config_version: 3
+name: runtimeconfig.googleapis.com
+title: Google Cloud RuntimeConfig API
+
+apis:
+- name: google.longrunning.Operations
+- name: google.cloud.runtimeconfig.v1beta1.RuntimeConfigManager
+- name: google.iam.v1.IAMPolicy
+
+# Documentation section
+documentation:
+ summary:
+ Provides capabilities for dynamic configuration and coordination for applications running on Google Cloud Platform.
+
+
+http:
+ rules:
+ - selector: google.longrunning.Operations.GetOperation
+ get: '/v1beta1/{name=projects/*/configs/*/operations/**}'
+
+ - selector: google.iam.v1.IAMPolicy.SetIamPolicy
+ post: '/v1beta1/{resource=projects/*/configs/*}:setIamPolicy'
+ body: '*'
+
+ - selector: google.iam.v1.IAMPolicy.GetIamPolicy
+ get: '/v1beta1/{resource=projects/*/configs/*}:getIamPolicy'
+
+ - selector: google.iam.v1.IAMPolicy.TestIamPermissions
+ post: '/v1beta1/{resource=projects/*/configs/*}:testIamPermissions'
+ body: '*'
+ additional_bindings:
+ - post: '/v1beta1/{resource=projects/*/configs/*/waiters/*}:testIamPermissions'
+ body: '*'
+
+ - post: '/v1beta1/{resource=projects/*/configs/*/variables/**}:testIamPermissions'
+ body: '*'
+
+ - post: '/v1beta1/{resource=projects/*/configs/*/operations/**}:testIamPermissions'
+ body: '*'
+
+
+# Auth section
+authentication:
+ rules:
+ - selector: '*'
+ oauth:
+ canonical_scopes: https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloudruntimeconfig
diff --git a/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/resources.proto b/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/resources.proto
new file mode 100644
index 0000000..165cbf7
--- /dev/null
+++ b/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/resources.proto
@@ -0,0 +1,209 @@
+// 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/protobuf/duration.proto";
+import "google/protobuf/timestamp.proto";
+import "google/rpc/status.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";
+
+// A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
+// service. A RuntimeConfig resource consists of metadata and a hierarchy of
+// variables.
+message RuntimeConfig {
+ // The resource name of a runtime config. The name must have the format:
+ //
+ // projects/[PROJECT_ID]/configs/[CONFIG_NAME]
+ //
+ // The `[PROJECT_ID]` must be a valid project ID, and `[CONFIG_NAME]` is an
+ // arbitrary name that matches RFC 1035 segment specification. The length of
+ // `[CONFIG_NAME]` must be less than 64 bytes.
+ //
+ // You pick the RuntimeConfig resource name, but the server will validate that
+ // the name adheres to this format. After you create the resource, you cannot
+ // change the resource's name.
+ string name = 1;
+
+ // An optional description of the RuntimeConfig object.
+ string description = 2;
+}
+
+// Describes a single variable within a RuntimeConfig resource.
+// The name denotes the hierarchical variable name. For example,
+// `ports/serving_port` is a valid variable name. The variable value is an
+// opaque string and only leaf variables can have values (that is, variables
+// that do not have any child variables).
+message Variable {
+ // The name of the variable resource, in the format:
+ //
+ // projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]
+ //
+ // The `[PROJECT_ID]` must be a valid project ID, `[CONFIG_NAME]` must be a
+ // valid RuntimeConfig reource and `[VARIABLE_NAME]` follows Unix file system
+ // file path naming.
+ //
+ // The `[VARIABLE_NAME]` can contain ASCII letters, numbers, slashes and
+ // dashes. Slashes are used as path element separators and are not part of the
+ // `[VARIABLE_NAME]` itself, so `[VARIABLE_NAME]` must contain at least one
+ // non-slash character. Multiple slashes are coalesced into single slash
+ // character. Each path segment should follow RFC 1035 segment specification.
+ // The length of a `[VARIABLE_NAME]` must be less than 256 bytes.
+ //
+ // Once you create a variable, you cannot change the variable name.
+ string name = 1;
+
+ // The value of the variable. It can be either a binary or a string
+ // value. You must specify one of either `value` or `text`. Specifying both
+ // will cause the server to return an error.
+ oneof contents {
+ // The binary value of the variable. The length of the value must be less
+ // than 4096 bytes. Empty values are also accepted. The value must be
+ // base64 encoded. Only one of `value` or `text` can be set.
+ bytes value = 2;
+
+ // The string value of the variable. The length of the value must be less
+ // than 4096 bytes. Empty values are also accepted. For example,
+ // `text: "my text value"`. The string must be valid UTF-8.
+ string text = 5;
+ }
+
+ // [Output Only] The time of the last variable update.
+ google.protobuf.Timestamp update_time = 3;
+
+ // [Ouput only] The current state of the variable. The variable state
+ // indicates the outcome of the `variables().watch` call and is visible
+ // through the `get` and `list` calls.
+ VariableState state = 4;
+}
+
+// The condition that a Waiter resource is waiting for.
+message EndCondition {
+ // A Cardinality condition for the Waiter resource. A cardinality condition is
+ // met when the number of variables under a specified path prefix reaches a
+ // predefined number. For example, if you set a Cardinality condition where
+ // the `path` is set to `/foo` and the number of paths is set to 2, the
+ // following variables would meet the condition in a RuntimeConfig resource:
+ //
+ // + `/foo/variable1 = "value1"`
+ // + `/foo/variable2 = "value2"`
+ // + `/bar/variable3 = "value3"`
+ //
+ // It would not would not satisify the same condition with the `number` set to
+ // 3, however, because there is only 2 paths that start with `/foo`.
+ // Cardinality conditions are recursive; all subtrees under the specific
+ // path prefix are counted.
+ message Cardinality {
+ // The root of the variable subtree to monitor. For example, `/foo`.
+ string path = 1;
+
+ // The number variables under the `path` that must exist to meet this
+ // condition. Defaults to 1 if not specified.
+ int32 number = 2;
+ }
+
+ // The condition oneof holds the available condition types for this
+ // EndCondition. Currently, the only available type is Cardinality.
+ oneof condition {
+ // The cardinality of the `EndCondition`.
+ Cardinality cardinality = 1;
+ }
+}
+
+// A Waiter resource waits for some end condition within a RuntimeConfig
+// resource to be met before it returns. For example, assume you have a
+// distributed system where each node writes to a Variable resource indidicating
+// the node's readiness as part of the startup process.
+//
+// You then configure a Waiter resource with the success condition set to wait
+// until some number of nodes have checked in. Afterwards, your application
+// runs some arbitrary code after the condition has been met and the waiter
+// returns successfully.
+//
+// Once created, a Waiter resource is immutable.
+//
+// To learn more about using waiters, read the
+// [Creating a
+// Waiter](/deployment-manager/runtime-configurator/creating-a-waiter)
+// documentation.
+message Waiter {
+ // The name of the Waiter resource, in the format:
+ //
+ // projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]
+ //
+ // The `[PROJECT_ID]` must be a valid Google Cloud project ID,
+ // the `[CONFIG_NAME]` must be a valid RuntimeConfig resource, the
+ // `[WAITER_NAME]` must match RFC 1035 segment specification, and the length
+ // of `[WAITER_NAME]` must be less than 64 bytes.
+ //
+ // After you create a Waiter resource, you cannot change the resource name.
+ string name = 1;
+
+ // [Required] Specifies the timeout of the waiter in seconds, beginning from
+ // the instant that `waiters().create` method is called. If this time elapses
+ // before the success or failure conditions are met, the waiter fails and sets
+ // the `error` code to `DEADLINE_EXCEEDED`.
+ google.protobuf.Duration timeout = 2;
+
+ // [Optional] The failure condition of this waiter. If this condition is met,
+ // `done` will be set to `true` and the `error` code will be set to `ABORTED`.
+ // The failure condition takes precedence over the success condition. If both
+ // conditions are met, a failure will be indicated. This value is optional; if
+ // no failure condition is set, the only failure scenario will be a timeout.
+ EndCondition failure = 3;
+
+ // [Required] The success condition. If this condition is met, `done` will be
+ // set to `true` and the `error` value will remain unset. The failure
+ // condition takes precedence over the success condition. If both conditions
+ // are met, a failure will be indicated.
+ EndCondition success = 4;
+
+ // [Output Only] The instant at which this Waiter resource was created. Adding
+ // the value of `timeout` to this instant yields the timeout deadline for the
+ // waiter.
+ google.protobuf.Timestamp create_time = 5;
+
+ // [Output Only] If the value is `false`, it means the waiter is still waiting
+ // for one of its conditions to be met.
+ //
+ // If true, the waiter has finished. If the waiter finished due to a timeout
+ // or failure, `error` will be set.
+ bool done = 6;
+
+ // [Output Only] If the waiter ended due to a failure or timeout, this value
+ // will be set.
+ google.rpc.Status error = 7;
+}
+
+// The `VariableState` describes the last known state of the variable and is
+// used during a `variables().watch` call to distinguish the state of the
+// variable.
+enum VariableState {
+ // Default variable state.
+ VARIABLE_STATE_UNSPECIFIED = 0;
+
+ // The variable was updated, while `variables().watch` was executing.
+ UPDATED = 1;
+
+ // The variable was deleted, while `variables().watch` was executing.
+ DELETED = 2;
+}
diff --git a/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto b/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto
new file mode 100644
index 0000000..fbd1d41
--- /dev/null
+++ b/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto
@@ -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;
+}