diff --git a/doc/v3-migration-guide.md b/doc/v3-migration-guide.md
index d32c3e643ea35..dd860d9473b9c 100644
--- a/doc/v3-migration-guide.md
+++ b/doc/v3-migration-guide.md
@@ -247,6 +247,28 @@ auto limit = google::cloud::bigtable::RowReader::NO_ROWS_LIMIT;
+
+Removed Endpoint Options
+
+
+The `bigtable::DataEndpointOption`, `bigtable::AdminEndpointOption`, and
+`bigtable::InstanceAdminEndpointOption` classes have been removed. Applications
+should use `google::cloud::EndpointOption` instead.
+
+**Before:**
+
+```cpp
+auto options = google::cloud::Options{}.set("...");
+```
+
+**After:**
+
+```cpp
+auto options = google::cloud::Options{}.set("...");
+```
+
+
+
Removed bigtable::DataClient and related functions
diff --git a/google/cloud/bigtable/CMakeLists.txt b/google/cloud/bigtable/CMakeLists.txt
index 72776902b34f6..2a1e87682d6a2 100644
--- a/google/cloud/bigtable/CMakeLists.txt
+++ b/google/cloud/bigtable/CMakeLists.txt
@@ -188,6 +188,7 @@ add_library(
internal/default_row_reader.h
internal/defaults.cc
internal/defaults.h
+ internal/endpoint_options.h
internal/google_bytes_traits.cc
internal/google_bytes_traits.h
internal/logging_result_set_reader.cc
diff --git a/google/cloud/bigtable/google_cloud_cpp_bigtable.bzl b/google/cloud/bigtable/google_cloud_cpp_bigtable.bzl
index ec15dacaef281..18e4940539f6a 100644
--- a/google/cloud/bigtable/google_cloud_cpp_bigtable.bzl
+++ b/google/cloud/bigtable/google_cloud_cpp_bigtable.bzl
@@ -92,6 +92,7 @@ google_cloud_cpp_bigtable_hdrs = [
"internal/data_tracing_connection.h",
"internal/default_row_reader.h",
"internal/defaults.h",
+ "internal/endpoint_options.h",
"internal/google_bytes_traits.h",
"internal/logging_result_set_reader.h",
"internal/metrics.h",
diff --git a/google/cloud/bigtable/internal/defaults.cc b/google/cloud/bigtable/internal/defaults.cc
index c7c1cd041ea86..9544730158bda 100644
--- a/google/cloud/bigtable/internal/defaults.cc
+++ b/google/cloud/bigtable/internal/defaults.cc
@@ -126,20 +126,24 @@ int DefaultConnectionPoolSize() {
}
Options HandleUniverseDomain(Options opts) {
- if (!opts.has()) {
+ if (!opts.has<::google::cloud::bigtable_internal::DataEndpointOption>()) {
auto ep = google::cloud::internal::UniverseDomainEndpoint(
"bigtable.googleapis.com", opts);
- opts.set(std::move(ep));
+ opts.set<::google::cloud::bigtable_internal::DataEndpointOption>(
+ std::move(ep));
}
- if (!opts.has()) {
+ if (!opts.has<::google::cloud::bigtable_internal::AdminEndpointOption>()) {
auto ep = google::cloud::internal::UniverseDomainEndpoint(
"bigtableadmin.googleapis.com", opts);
- opts.set(std::move(ep));
+ opts.set<::google::cloud::bigtable_internal::AdminEndpointOption>(
+ std::move(ep));
}
- if (!opts.has()) {
+ if (!opts.has<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>()) {
auto ep = google::cloud::internal::UniverseDomainEndpoint(
"bigtableadmin.googleapis.com", opts);
- opts.set(std::move(ep));
+ opts.set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ std::move(ep));
}
return opts;
}
@@ -153,14 +157,16 @@ Options DefaultOptions(Options opts) {
if (opts.has()) {
auto const& ep = opts.get();
- if (!opts.has()) {
- opts.set(ep);
+ if (!opts.has<::google::cloud::bigtable_internal::DataEndpointOption>()) {
+ opts.set<::google::cloud::bigtable_internal::DataEndpointOption>(ep);
}
- if (!opts.has()) {
- opts.set(ep);
+ if (!opts.has<::google::cloud::bigtable_internal::AdminEndpointOption>()) {
+ opts.set<::google::cloud::bigtable_internal::AdminEndpointOption>(ep);
}
- if (!opts.has()) {
- opts.set(ep);
+ if (!opts.has<::google::cloud::bigtable_internal::
+ InstanceAdminEndpointOption>()) {
+ opts.set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ ep);
}
}
@@ -168,7 +174,7 @@ Options DefaultOptions(Options opts) {
GetEnv("GOOGLE_CLOUD_ENABLE_DIRECT_PATH").value_or("");
if (absl::c_any_of(absl::StrSplit(direct_path, ','),
[](absl::string_view v) { return v == "bigtable"; })) {
- opts.set(
+ opts.set<::google::cloud::bigtable_internal::DataEndpointOption>(
"google-c2p:///directpath-bigtable.googleapis.com")
.set("directpath-bigtable.googleapis.com");
@@ -180,15 +186,18 @@ Options DefaultOptions(Options opts) {
auto emulator = GetEnv("BIGTABLE_EMULATOR_HOST");
if (emulator) {
- opts.set(*emulator);
- opts.set(*emulator);
- opts.set(*emulator);
+ opts.set<::google::cloud::bigtable_internal::DataEndpointOption>(*emulator);
+ opts.set<::google::cloud::bigtable_internal::AdminEndpointOption>(
+ *emulator);
+ opts.set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ *emulator);
}
auto instance_admin_emulator =
GetEnv("BIGTABLE_INSTANCE_ADMIN_EMULATOR_HOST");
if (instance_admin_emulator) {
- opts.set(*std::move(instance_admin_emulator));
+ opts.set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ *std::move(instance_admin_emulator));
}
// Handle `UniverseDomainOption`. Note that we have already addressed the
@@ -285,17 +294,21 @@ Options DefaultDataOptions(Options opts) {
"bigtable.googleapis.com", opts);
opts.set(std::move(ep));
}
- return opts.set(opts.get());
+ return opts.set(
+ opts.get<::google::cloud::bigtable_internal::DataEndpointOption>());
}
Options DefaultInstanceAdminOptions(Options opts) {
opts = DefaultOptions(std::move(opts));
- return opts.set(opts.get());
+ return opts.set(
+ opts.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
}
Options DefaultTableAdminOptions(Options opts) {
opts = DefaultOptions(std::move(opts));
- return opts.set(opts.get());
+ return opts.set(
+ opts.get<::google::cloud::bigtable_internal::AdminEndpointOption>());
}
} // namespace internal
diff --git a/google/cloud/bigtable/internal/defaults_test.cc b/google/cloud/bigtable/internal/defaults_test.cc
index 19f666a323504..aa4e50948c53f 100644
--- a/google/cloud/bigtable/internal/defaults_test.cc
+++ b/google/cloud/bigtable/internal/defaults_test.cc
@@ -14,6 +14,7 @@
#include "google/cloud/bigtable/internal/defaults.h"
#include "google/cloud/bigtable/internal/client_options_defaults.h"
+#include "google/cloud/bigtable/internal/endpoint_options.h"
#include "google/cloud/bigtable/options.h"
#include "google/cloud/common_options.h"
#include "google/cloud/grpc_options.h"
@@ -53,10 +54,15 @@ TEST(OptionsTest, Defaults) {
"BIGTABLE_INSTANCE_ADMIN_EMULATOR_HOST", absl::nullopt);
auto opts = DefaultOptions();
- EXPECT_EQ("bigtable.googleapis.com", opts.get());
- EXPECT_EQ("bigtableadmin.googleapis.com", opts.get());
- EXPECT_EQ("bigtableadmin.googleapis.com",
- opts.get());
+ EXPECT_EQ("bigtable.googleapis.com",
+ opts.get<::google::cloud::bigtable_internal::DataEndpointOption>());
+ EXPECT_EQ(
+ "bigtableadmin.googleapis.com",
+ opts.get<::google::cloud::bigtable_internal::AdminEndpointOption>());
+ EXPECT_EQ(
+ "bigtableadmin.googleapis.com",
+ opts.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
EXPECT_EQ(typeid(grpc::GoogleDefaultCredentials()),
typeid(opts.get()));
EXPECT_FALSE(opts.has());
@@ -94,9 +100,12 @@ TEST(OptionsTest, DefaultOptionsDoesNotOverride) {
channel_args.SetString("test-key-1", "value-1");
auto opts = DefaultOptions(
Options{}
- .set("testdata.googleapis.com")
- .set("testadmin.googleapis.com")
- .set("testinstanceadmin.googleapis.com")
+ .set<::google::cloud::bigtable_internal::DataEndpointOption>(
+ "testdata.googleapis.com")
+ .set<::google::cloud::bigtable_internal::AdminEndpointOption>(
+ "testadmin.googleapis.com")
+ .set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ "testinstanceadmin.googleapis.com")
.set(grpc::InsecureChannelCredentials())
.set(
TracingOptions{}.SetOptions("single_line_mode=F"))
@@ -107,10 +116,15 @@ TEST(OptionsTest, DefaultOptionsDoesNotOverride) {
.set({{"test-key-2", "value-2"}})
.set({"test-prefix"}));
- EXPECT_EQ("testdata.googleapis.com", opts.get());
- EXPECT_EQ("testadmin.googleapis.com", opts.get());
- EXPECT_EQ("testinstanceadmin.googleapis.com",
- opts.get());
+ EXPECT_EQ("testdata.googleapis.com",
+ opts.get<::google::cloud::bigtable_internal::DataEndpointOption>());
+ EXPECT_EQ(
+ "testadmin.googleapis.com",
+ opts.get<::google::cloud::bigtable_internal::AdminEndpointOption>());
+ EXPECT_EQ(
+ "testinstanceadmin.googleapis.com",
+ opts.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
EXPECT_EQ(typeid(grpc::InsecureChannelCredentials()),
typeid(opts.get()));
EXPECT_FALSE(opts.get().single_line_mode());
@@ -134,29 +148,49 @@ TEST(OptionsTest, EndpointOptionSetsAll) {
auto options = Options{}.set("endpoint-option");
options = DefaultOptions(std::move(options));
EXPECT_EQ("endpoint-option", options.get());
- EXPECT_EQ("endpoint-option", options.get());
- EXPECT_EQ("endpoint-option", options.get());
- EXPECT_EQ("endpoint-option", options.get());
+ EXPECT_EQ(
+ "endpoint-option",
+ options.get<::google::cloud::bigtable_internal::DataEndpointOption>());
+ EXPECT_EQ(
+ "endpoint-option",
+ options.get<::google::cloud::bigtable_internal::AdminEndpointOption>());
+ EXPECT_EQ(
+ "endpoint-option",
+ options.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
}
TEST(OptionsTest, EndpointOptionOverridden) {
- auto options = Options{}
- .set("ignored")
- .set("data")
- .set("table-admin")
- .set("instance-admin");
+ auto options =
+ Options{}
+ .set("ignored")
+ .set<::google::cloud::bigtable_internal::DataEndpointOption>("data")
+ .set<::google::cloud::bigtable_internal::AdminEndpointOption>(
+ "table-admin")
+ .set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ "instance-admin");
options = DefaultOptions(std::move(options));
- EXPECT_EQ("data", options.get());
- EXPECT_EQ("table-admin", options.get());
- EXPECT_EQ("instance-admin", options.get());
+ EXPECT_EQ(
+ "data",
+ options.get<::google::cloud::bigtable_internal::DataEndpointOption>());
+ EXPECT_EQ(
+ "table-admin",
+ options.get<::google::cloud::bigtable_internal::AdminEndpointOption>());
+ EXPECT_EQ(
+ "instance-admin",
+ options.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
}
TEST(OptionsTest, DefaultDataOptionsEndpoint) {
auto options =
Options{}
- .set("data.googleapis.com")
- .set("tableadmin.googleapis.com")
- .set("instanceadmin.googleapis.com");
+ .set<::google::cloud::bigtable_internal::DataEndpointOption>(
+ "data.googleapis.com")
+ .set<::google::cloud::bigtable_internal::AdminEndpointOption>(
+ "tableadmin.googleapis.com")
+ .set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ "instanceadmin.googleapis.com");
options = DefaultDataOptions(std::move(options));
EXPECT_EQ("data.googleapis.com", options.get());
@@ -168,9 +202,12 @@ TEST(OptionsTest, DefaultDataOptionsEndpoint) {
TEST(OptionsTest, DefaultInstanceAdminOptions) {
auto options =
Options{}
- .set("data.googleapis.com")
- .set("tableadmin.googleapis.com")
- .set("instanceadmin.googleapis.com");
+ .set<::google::cloud::bigtable_internal::DataEndpointOption>(
+ "data.googleapis.com")
+ .set<::google::cloud::bigtable_internal::AdminEndpointOption>(
+ "tableadmin.googleapis.com")
+ .set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ "instanceadmin.googleapis.com");
options = DefaultInstanceAdminOptions(std::move(options));
EXPECT_EQ("instanceadmin.googleapis.com", options.get());
@@ -182,9 +219,12 @@ TEST(OptionsTest, DefaultInstanceAdminOptions) {
TEST(OptionsTest, DefaultTableAdminOptions) {
auto options =
Options{}
- .set("data.googleapis.com")
- .set("tableadmin.googleapis.com")
- .set("instanceadmin.googleapis.com");
+ .set<::google::cloud::bigtable_internal::DataEndpointOption>(
+ "data.googleapis.com")
+ .set<::google::cloud::bigtable_internal::AdminEndpointOption>(
+ "tableadmin.googleapis.com")
+ .set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ "instanceadmin.googleapis.com");
options = DefaultTableAdminOptions(std::move(options));
EXPECT_EQ("tableadmin.googleapis.com", options.get());
@@ -285,9 +325,12 @@ TEST(OptionsTest, BigtableEndpointOptionsOverrideUniverseDomain) {
auto options =
Options{}
.set("ud-option.net")
- .set("data.googleapis.com")
- .set("tableadmin.googleapis.com")
- .set("instanceadmin.googleapis.com");
+ .set<::google::cloud::bigtable_internal::DataEndpointOption>(
+ "data.googleapis.com")
+ .set<::google::cloud::bigtable_internal::AdminEndpointOption>(
+ "tableadmin.googleapis.com")
+ .set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ "instanceadmin.googleapis.com");
EXPECT_EQ(DefaultDataOptions(options).get(),
"data.googleapis.com");
@@ -304,9 +347,11 @@ TEST(OptionsTest, BigtableEndpointEnvVarsOverrideUniverseDomain) {
auto options =
Options{}
.set("ud-option.net")
- .set("ignored-data.googleapis.com")
- .set("ignored-tableadmin.googleapis.com")
- .set(
+ .set<::google::cloud::bigtable_internal::DataEndpointOption>(
+ "ignored-data.googleapis.com")
+ .set<::google::cloud::bigtable_internal::AdminEndpointOption>(
+ "ignored-tableadmin.googleapis.com")
+ .set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
"ignored-instanceadmin.googleapis.com")
.set("ignored-endpoint.googleapis.com");
@@ -350,9 +395,15 @@ TEST(EndpointEnvTest, EmulatorEnvOnly) {
ScopedEnvironment emulator("BIGTABLE_EMULATOR_HOST", "emulator-host:8000");
auto opts = DefaultOptions();
- EXPECT_EQ("emulator-host:8000", opts.get());
- EXPECT_EQ("emulator-host:8000", opts.get());
- EXPECT_EQ("emulator-host:8000", opts.get());
+ EXPECT_EQ("emulator-host:8000",
+ opts.get<::google::cloud::bigtable_internal::DataEndpointOption>());
+ EXPECT_EQ(
+ "emulator-host:8000",
+ opts.get<::google::cloud::bigtable_internal::AdminEndpointOption>());
+ EXPECT_EQ(
+ "emulator-host:8000",
+ opts.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
}
TEST(EndpointEnvTest, InstanceEmulatorEnvOnly) {
@@ -360,10 +411,15 @@ TEST(EndpointEnvTest, InstanceEmulatorEnvOnly) {
"instance-emulator-host:9000");
auto opts = DefaultOptions();
- EXPECT_EQ("bigtable.googleapis.com", opts.get());
- EXPECT_EQ("bigtableadmin.googleapis.com", opts.get());
- EXPECT_EQ("instance-emulator-host:9000",
- opts.get());
+ EXPECT_EQ("bigtable.googleapis.com",
+ opts.get<::google::cloud::bigtable_internal::DataEndpointOption>());
+ EXPECT_EQ(
+ "bigtableadmin.googleapis.com",
+ opts.get<::google::cloud::bigtable_internal::AdminEndpointOption>());
+ EXPECT_EQ(
+ "instance-emulator-host:9000",
+ opts.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
}
TEST(EndpointEnvTest, InstanceEmulatorEnvOverridesOtherEnv) {
@@ -372,10 +428,15 @@ TEST(EndpointEnvTest, InstanceEmulatorEnvOverridesOtherEnv) {
"instance-emulator-host:9000");
auto opts = DefaultOptions();
- EXPECT_EQ("emulator-host:8000", opts.get());
- EXPECT_EQ("emulator-host:8000", opts.get());
- EXPECT_EQ("instance-emulator-host:9000",
- opts.get());
+ EXPECT_EQ("emulator-host:8000",
+ opts.get<::google::cloud::bigtable_internal::DataEndpointOption>());
+ EXPECT_EQ(
+ "emulator-host:8000",
+ opts.get<::google::cloud::bigtable_internal::AdminEndpointOption>());
+ EXPECT_EQ(
+ "instance-emulator-host:9000",
+ opts.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
}
TEST(EndpointEnvTest, EmulatorEnvOverridesUserOptions) {
@@ -384,13 +445,22 @@ TEST(EndpointEnvTest, EmulatorEnvOverridesUserOptions) {
auto opts = DefaultOptions(
Options{}
.set("ignored-any")
- .set("ignored-data")
- .set("ignored-admin")
- .set("ignored-instance-admin"));
-
- EXPECT_EQ("emulator-host:8000", opts.get());
- EXPECT_EQ("emulator-host:8000", opts.get());
- EXPECT_EQ("emulator-host:8000", opts.get());
+ .set<::google::cloud::bigtable_internal::DataEndpointOption>(
+ "ignored-data")
+ .set<::google::cloud::bigtable_internal::AdminEndpointOption>(
+ "ignored-admin")
+ .set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ "ignored-instance-admin"));
+
+ EXPECT_EQ("emulator-host:8000",
+ opts.get<::google::cloud::bigtable_internal::DataEndpointOption>());
+ EXPECT_EQ(
+ "emulator-host:8000",
+ opts.get<::google::cloud::bigtable_internal::AdminEndpointOption>());
+ EXPECT_EQ(
+ "emulator-host:8000",
+ opts.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
}
TEST(EndpointEnvTest, InstanceEmulatorEnvOverridesUserOption) {
@@ -400,10 +470,13 @@ TEST(EndpointEnvTest, InstanceEmulatorEnvOverridesUserOption) {
auto opts = DefaultOptions(
Options{}
.set("ignored-any")
- .set("ignored-instance-admin"));
+ .set<::google::cloud::bigtable_internal::InstanceAdminEndpointOption>(
+ "ignored-instance-admin"));
- EXPECT_EQ("instance-emulator-host:9000",
- opts.get());
+ EXPECT_EQ(
+ "instance-emulator-host:9000",
+ opts.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
}
TEST(EndpointEnvTest, EmulatorEnvDefaultsToInsecureCredentials) {
@@ -431,12 +504,16 @@ TEST(EndpointEnvTest, DirectPathEnabled) {
auto opts = DefaultOptions();
EXPECT_EQ("google-c2p:///directpath-bigtable.googleapis.com",
- opts.get());
+ opts.get<::google::cloud::bigtable_internal::DataEndpointOption>());
EXPECT_EQ("directpath-bigtable.googleapis.com", opts.get());
// Admin endpoints are not affected.
- EXPECT_EQ("bigtableadmin.googleapis.com", opts.get());
- EXPECT_EQ("bigtableadmin.googleapis.com",
- opts.get());
+ EXPECT_EQ(
+ "bigtableadmin.googleapis.com",
+ opts.get<::google::cloud::bigtable_internal::AdminEndpointOption>());
+ EXPECT_EQ(
+ "bigtableadmin.googleapis.com",
+ opts.get<
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption>());
EXPECT_EQ(1, opts.get());
}
diff --git a/google/cloud/bigtable/internal/endpoint_options.h b/google/cloud/bigtable/internal/endpoint_options.h
new file mode 100644
index 0000000000000..58c1185263dff
--- /dev/null
+++ b/google/cloud/bigtable/internal/endpoint_options.h
@@ -0,0 +1,58 @@
+// Copyright 2026 Google LLC
+//
+// 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
+//
+// https://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.
+
+#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGTABLE_INTERNAL_ENDPOINT_OPTIONS_H
+#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGTABLE_INTERNAL_ENDPOINT_OPTIONS_H
+
+#include "google/cloud/version.h"
+#include
+
+namespace google {
+namespace cloud {
+namespace bigtable_internal {
+GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
+
+/**
+ * The endpoint for data operations.
+ *
+ */
+struct DataEndpointOption {
+ using Type = std::string;
+};
+
+/**
+ * The endpoint for table admin operations.
+ *
+ */
+struct AdminEndpointOption {
+ using Type = std::string;
+};
+
+/**
+ * The endpoint for instance admin operations.
+ *
+ * In most scenarios this should have the same value as `AdminEndpointOption`.
+ * The most common exception is testing, where the emulator for instance admin
+ * operations may be different than the emulator for admin and data operations.
+ * */
+struct InstanceAdminEndpointOption {
+ using Type = std::string;
+};
+
+GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
+} // namespace bigtable_internal
+} // namespace cloud
+} // namespace google
+
+#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGTABLE_INTERNAL_ENDPOINT_OPTIONS_H
diff --git a/google/cloud/bigtable/options.h b/google/cloud/bigtable/options.h
index 865d5c009547e..efc2d81ea607c 100644
--- a/google/cloud/bigtable/options.h
+++ b/google/cloud/bigtable/options.h
@@ -39,6 +39,7 @@
*/
#include "google/cloud/bigtable/idempotent_mutation_policy.h"
+#include "google/cloud/bigtable/internal/endpoint_options.h"
#include "google/cloud/bigtable/retry_policy.h"
#include "google/cloud/bigtable/rpc_retry_policy.h"
#include "google/cloud/bigtable/version.h"
@@ -99,37 +100,6 @@ struct ReverseScanOption {
using Type = bool;
};
-/**
- * The endpoint for data operations.
- *
- * @deprecated Please use `google::cloud::EndpointOption` instead.
- */
-struct DataEndpointOption {
- using Type = std::string;
-};
-
-/**
- * The endpoint for table admin operations.
- *
- * @deprecated Please use `google::cloud::EndpointOption` instead.
- */
-struct AdminEndpointOption {
- using Type = std::string;
-};
-
-/**
- * The endpoint for instance admin operations.
- *
- * In most scenarios this should have the same value as `AdminEndpointOption`.
- * The most common exception is testing, where the emulator for instance admin
- * operations may be different than the emulator for admin and data operations.
- *
- * @deprecated Please use `google::cloud::EndpointOption` instead.
- */
-struct InstanceAdminEndpointOption {
- using Type = std::string;
-};
-
/**
* Minimum time in ms to refresh connections.
*
@@ -207,9 +177,10 @@ struct QueryPlanRefreshFunctionRetryPolicyOption {
/// The complete list of options accepted by `bigtable::*Client`
using ClientOptionList =
- OptionList;
+ OptionList<::google::cloud::bigtable_internal::DataEndpointOption,
+ ::google::cloud::bigtable_internal::AdminEndpointOption,
+ ::google::cloud::bigtable_internal::InstanceAdminEndpointOption,
+ MinConnectionRefreshOption, MaxConnectionRefreshOption>;
/**
* Option to configure the retry policy used by `Table`.