15 #ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGTABLE_TABLE_ADMIN_H
16 #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGTABLE_TABLE_ADMIN_H
18 #include "google/cloud/bigtable/admin/bigtable_table_admin_connection.h"
19 #include "google/cloud/bigtable/admin_client.h"
20 #include "google/cloud/bigtable/column_family.h"
21 #include "google/cloud/bigtable/completion_queue.h"
22 #include "google/cloud/bigtable/iam_policy.h"
23 #include "google/cloud/bigtable/internal/convert_policies.h"
24 #include "google/cloud/bigtable/metadata_update_policy.h"
25 #include "google/cloud/bigtable/polling_policy.h"
26 #include "google/cloud/bigtable/resource_names.h"
27 #include "google/cloud/bigtable/table_config.h"
28 #include "google/cloud/bigtable/version.h"
29 #include "google/cloud/future.h"
30 #include "google/cloud/grpc_error_delegate.h"
31 #include "google/cloud/options.h"
32 #include "google/cloud/status_or.h"
33 #include "absl/types/optional.h"
42 namespace bigtable_internal {
44 class TableAdminTester;
150 TableAdmin(std::shared_ptr<AdminClient> client, std::string instance_id)
151 : connection_(client->connection_),
153 background_threads_(client->background_threads_),
155 instance_id_(std::move(instance_id)),
156 instance_name_(InstanceName()),
163 policies_(bigtable_internal::MakeTableAdminOptions(
164 retry_prototype_, backoff_prototype_, polling_prototype_)) {}
192 template <
typename... Policies>
194 TableAdmin(std::shared_ptr<AdminClient> client, std::string instance_id,
195 Policies&&... policies)
196 : connection_(client->connection_),
198 background_threads_(client->background_threads_),
200 instance_id_(std::move(instance_id)),
201 instance_name_(InstanceName()),
208 ChangePolicies(std::forward<Policies>(policies)...);
209 policies_
= bigtable_internal::MakeTableAdminOptions(
210 retry_prototype_, backoff_prototype_, polling_prototype_);
218 using TableView = ::
google::bigtable::admin::v2::Table::View;
221 google::bigtable::admin::v2::Table::ENCRYPTION_VIEW;
224 google::bigtable::admin::v2::Table::FULL;
227 google::bigtable::admin::v2::Table::NAME_ONLY;
231 google::bigtable::admin::v2::Table::REPLICATION_VIEW;
234 google::bigtable::admin::v2::Table::SCHEMA_VIEW;
237 google::bigtable::admin::v2::Table::VIEW_UNSPECIFIED;
240 std::string
const&
project()
const {
return project_id_; }
249 std::string instance_id)
const {
251 table.project_id_ = std::move(project_id);
252 table.instance_id_ = std::move(instance_id);
253 table.instance_name_ = table.InstanceName();
304 ::
google::bigtable::admin::v2::Table::View view);
331 std::string
const& table_id, TableView view =
SCHEMA_VIEW);
379 std::string table_id,
380 std::chrono::system_clock::time_point expire_time)
387 std::string instance_name)
const;
441 std::string
const& cluster_id, std::string
const& backup_id);
462 std::chrono::system_clock::time_point expire_time)
468 std::string
const& instance_name)
const;
521 std::string
const& backup_id);
634 std::string
const& instance_name)
const;
683 std::string backup_id)
690 std::string
const& instance_name)
const;
770 std::string
const& table_id,
793 std::string row_key_prefix);
835 std::string
const& consistency_token);
857 std::string
const& table_id, std::string
const& consistency_token);
918 std::string
const& backup_id);
946 std::string
const& table_id,
google::iam::v1::Policy
const& iam_policy);
975 std::string
const& cluster_id, std::string
const& backup_id,
976 google::iam::v1::Policy
const& iam_policy);
999 std::string
const& table_id, std::vector<std::string>
const& permissions);
1023 std::string
const& cluster_id, std::string
const& backup_id,
1024 std::vector<std::string>
const& permissions);
1040 std::string
const& backup_id)
const {
1042 cluster_id
, backup_id
);
1046 friend class bigtable_internal::TableAdminTester;
1048 explicit TableAdmin(
1051 : connection_(std::move(connection)),
1053 project_id_(std::move(project_id)),
1054 instance_id_(std::move(instance_id)),
1055 instance_name_(InstanceName()),
1062 policies_(bigtable_internal::MakeTableAdminOptions(
1063 retry_prototype_, backoff_prototype_, polling_prototype_)) {}
1072 backoff_prototype_ = policy
.clone();
1076 polling_prototype_ = policy
.clone();
1079 template <
typename Policy,
typename... Policies>
1080 void ChangePolicies(Policy&& policy, Policies&&... policies) {
1081 ChangePolicy(policy);
1082 ChangePolicies(std::forward<Policies>(policies)...);
1084 void ChangePolicies() {}
1088 std::string InstanceName()
const;
1090 StatusOr<
google::iam::v1::Policy> GetIamPolicyImpl(std::string resource);
1092 StatusOr<
google::iam::v1::Policy> SetIamPolicyImpl(
1093 std::string resource,
google::iam::v1::Policy
const& iam_policy);
1095 StatusOr<std::vector<std::string>> TestIamPermissionsImpl(
1096 std::string resource, std::vector<std::string>
const& permissions);
1101 std::string project_id_;
1102 std::string instance_id_;
1103 std::string instance_name_;