| // Copyright (c) 2015, 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.golang.org/cloud/bigtable/internal/cluster_data_proto/bigtable_cluster_data.proto"; |
| import "google.golang.org/cloud/bigtable/internal/cluster_service_proto/bigtable_cluster_service_messages.proto"; |
| import "google/protobuf/empty.proto"; |
| |
| 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) { |
| } |
| |
| // Gets information about a particular cluster. |
| rpc GetCluster(GetClusterRequest) returns (Cluster) { |
| } |
| |
| // Lists all clusters in the given project, along with any zones for which |
| // cluster information could not be retrieved. |
| rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) { |
| } |
| |
| // 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) { |
| } |
| |
| // 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) { |
| } |
| |
| // 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) { |
| } |
| |
| // 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. |
| } |