1 // Copyright 2017 Google Inc.
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
17 package google.bigtable.admin.table.v1;
19 import "google/api/annotations.proto";
20 import "google/bigtable/admin/table/v1/bigtable_table_data.proto";
21 import "google/bigtable/admin/table/v1/bigtable_table_service_messages.proto";
22 import "google/protobuf/empty.proto";
24 option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/table/v1;table";
25 option java_multiple_files = true;
26 option java_outer_classname = "BigtableTableServicesProto";
27 option java_package = "com.google.bigtable.admin.table.v1";
29 // Service for creating, configuring, and deleting Cloud Bigtable tables.
30 // Provides access to the table schemas only, not the data stored within the
32 service BigtableTableService {
33 // Creates a new table, to be served from a specified cluster.
34 // The table can be created with a full set of initial column families,
35 // specified in the request.
36 rpc CreateTable(CreateTableRequest) returns (Table) {
37 option (google.api.http) = {
38 post: "/v1/{name=projects/*/zones/*/clusters/*}/tables"
43 // Lists the names of all tables served from a specified cluster.
44 rpc ListTables(ListTablesRequest) returns (ListTablesResponse) {
45 option (google.api.http) = {
46 get: "/v1/{name=projects/*/zones/*/clusters/*}/tables"
50 // Gets the schema of the specified table, including its column families.
51 rpc GetTable(GetTableRequest) returns (Table) {
52 option (google.api.http) = {
53 get: "/v1/{name=projects/*/zones/*/clusters/*/tables/*}"
57 // Permanently deletes a specified table and all of its data.
58 rpc DeleteTable(DeleteTableRequest) returns (google.protobuf.Empty) {
59 option (google.api.http) = {
60 delete: "/v1/{name=projects/*/zones/*/clusters/*/tables/*}"
64 // Changes the name of a specified table.
65 // Cannot be used to move tables between clusters, zones, or projects.
66 rpc RenameTable(RenameTableRequest) returns (google.protobuf.Empty) {
67 option (google.api.http) = {
68 post: "/v1/{name=projects/*/zones/*/clusters/*/tables/*}:rename"
73 // Creates a new column family within a specified table.
74 rpc CreateColumnFamily(CreateColumnFamilyRequest) returns (ColumnFamily) {
75 option (google.api.http) = {
76 post: "/v1/{name=projects/*/zones/*/clusters/*/tables/*}/columnFamilies"
81 // Changes the configuration of a specified column family.
82 rpc UpdateColumnFamily(ColumnFamily) returns (ColumnFamily) {
83 option (google.api.http) = {
84 put: "/v1/{name=projects/*/zones/*/clusters/*/tables/*/columnFamilies/*}"
89 // Permanently deletes a specified column family and all of its data.
90 rpc DeleteColumnFamily(DeleteColumnFamilyRequest)
91 returns (google.protobuf.Empty) {
92 option (google.api.http) = {
93 delete: "/v1/{name=projects/*/zones/*/clusters/*/tables/*/columnFamilies/*}"
97 // Delete all rows in a table corresponding to a particular prefix
98 rpc BulkDeleteRows(BulkDeleteRowsRequest) returns (google.protobuf.Empty) {
99 option (google.api.http) = {
100 post: "/v1/{table_name=projects/*/zones/*/clusters/*/tables/*}:bulkDeleteRows"