Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / google / bigtable / admin / cluster / v1 / bigtable_cluster_service.proto
diff --git a/legacy-libs/google-proto-files/google/bigtable/admin/cluster/v1/bigtable_cluster_service.proto b/legacy-libs/google-proto-files/google/bigtable/admin/cluster/v1/bigtable_cluster_service.proto
new file mode 100644 (file)
index 0000000..a95fdb1
--- /dev/null
@@ -0,0 +1,150 @@
+// 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.bigtable.admin.cluster.v1;
+
+import "google/api/annotations.proto";
+import "google/bigtable/admin/cluster/v1/bigtable_cluster_data.proto";
+import "google/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+
+option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1;cluster";
+option java_multiple_files = true;
+option java_outer_classname = "BigtableClusterServicesProto";
+option java_package = "com.google.bigtable.admin.cluster.v1";
+
+// Service for managing zonal Cloud Bigtable resources.
+service BigtableClusterService {
+  // Lists the supported zones for the given project.
+  rpc ListZones(ListZonesRequest) returns (ListZonesResponse) {
+    option (google.api.http) = {
+      get: "/v1/{name=projects/*}/zones"
+    };
+  }
+
+  // Gets information about a particular cluster.
+  rpc GetCluster(GetClusterRequest) returns (Cluster) {
+    option (google.api.http) = {
+      get: "/v1/{name=projects/*/zones/*/clusters/*}"
+    };
+  }
+
+  // Lists all clusters in the given project, along with any zones for which
+  // cluster information could not be retrieved.
+  rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
+    option (google.api.http) = {
+      get: "/v1/{name=projects/*}/aggregated/clusters"
+    };
+  }
+
+  // Creates a cluster and begins preparing it to begin serving. The returned
+  // cluster embeds as its "current_operation" a long-running operation which
+  // can be used to track the progress of turning up the new cluster.
+  // Immediately upon completion of this request:
+  //  * The cluster will be readable via the API, with all requested attributes
+  //    but no allocated resources.
+  // Until completion of the embedded operation:
+  //  * Cancelling the operation will render the cluster immediately unreadable
+  //    via the API.
+  //  * All other attempts to modify or delete the cluster will be rejected.
+  // Upon completion of the embedded operation:
+  //  * Billing for all successfully-allocated resources will begin (some types
+  //    may have lower than the requested levels).
+  //  * New tables can be created in the cluster.
+  //  * The cluster's allocated resource levels will be readable via the API.
+  // The embedded operation's "metadata" field type is
+  // [CreateClusterMetadata][google.bigtable.admin.cluster.v1.CreateClusterMetadata]
+  // The embedded operation's "response" field type is
+  // [Cluster][google.bigtable.admin.cluster.v1.Cluster], if successful.
+  rpc CreateCluster(CreateClusterRequest) returns (Cluster) {
+    option (google.api.http) = {
+      post: "/v1/{name=projects/*/zones/*}/clusters"
+      body: "*"
+    };
+  }
+
+  // Updates a cluster, and begins allocating or releasing resources as
+  // requested. The returned cluster embeds as its "current_operation" a
+  // long-running operation which can be used to track the progress of updating
+  // the cluster.
+  // Immediately upon completion of this request:
+  //  * For resource types where a decrease in the cluster's allocation has been
+  //    requested, billing will be based on the newly-requested level.
+  // Until completion of the embedded operation:
+  //  * Cancelling the operation will set its metadata's "cancelled_at_time",
+  //    and begin restoring resources to their pre-request values. The operation
+  //    is guaranteed to succeed at undoing all resource changes, after which
+  //    point it will terminate with a CANCELLED status.
+  //  * All other attempts to modify or delete the cluster will be rejected.
+  //  * Reading the cluster via the API will continue to give the pre-request
+  //    resource levels.
+  // Upon completion of the embedded operation:
+  //  * Billing will begin for all successfully-allocated resources (some types
+  //    may have lower than the requested levels).
+  //  * All newly-reserved resources will be available for serving the cluster's
+  //    tables.
+  //  * The cluster's new resource levels will be readable via the API.
+  // [UpdateClusterMetadata][google.bigtable.admin.cluster.v1.UpdateClusterMetadata]
+  // The embedded operation's "response" field type is
+  // [Cluster][google.bigtable.admin.cluster.v1.Cluster], if successful.
+  rpc UpdateCluster(Cluster) returns (Cluster) {
+    option (google.api.http) = {
+      put: "/v1/{name=projects/*/zones/*/clusters/*}"
+      body: "*"
+    };
+  }
+
+  // Marks a cluster and all of its tables for permanent deletion in 7 days.
+  // Immediately upon completion of the request:
+  //  * Billing will cease for all of the cluster's reserved resources.
+  //  * The cluster's "delete_time" field will be set 7 days in the future.
+  // Soon afterward:
+  //  * All tables within the cluster will become unavailable.
+  // Prior to the cluster's "delete_time":
+  //  * The cluster can be recovered with a call to UndeleteCluster.
+  //  * All other attempts to modify or delete the cluster will be rejected.
+  // At the cluster's "delete_time":
+  //  * The cluster and *all of its tables* will immediately and irrevocably
+  //    disappear from the API, and their data will be permanently deleted.
+  rpc DeleteCluster(DeleteClusterRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v1/{name=projects/*/zones/*/clusters/*}"
+    };
+  }
+
+  // Cancels the scheduled deletion of an cluster and begins preparing it to
+  // resume serving. The returned operation will also be embedded as the
+  // cluster's "current_operation".
+  // Immediately upon completion of this request:
+  //  * The cluster's "delete_time" field will be unset, protecting it from
+  //    automatic deletion.
+  // Until completion of the returned operation:
+  //  * The operation cannot be cancelled.
+  // Upon completion of the returned operation:
+  //  * Billing for the cluster's resources will resume.
+  //  * All tables within the cluster will be available.
+  // [UndeleteClusterMetadata][google.bigtable.admin.cluster.v1.UndeleteClusterMetadata]
+  // The embedded operation's "response" field type is
+  // [Cluster][google.bigtable.admin.cluster.v1.Cluster], if successful.
+  rpc UndeleteCluster(UndeleteClusterRequest)
+      returns (google.longrunning.Operation) {
+    option (google.api.http) = {
+      post: "/v1/{name=projects/*/zones/*/clusters/*}:undelete"
+      body: ""
+    };
+  }
+}