From 38b7fb107e83cee77fed78b0c4c53469fcba9b6f Mon Sep 17 00:00:00 2001
From: Carlos O'Ryan <coryan@google.com>
Date: Mon, 7 Nov 2022 21:31:26 +0000
Subject: [PATCH] doc(bigtable): create page for configuration options

---
 .../cloud/bigtable/doc/bigtable-options.dox   |  9 +++++++
 google/cloud/bigtable/options.h               | 24 ++++++++++++++++---
 2 files changed, 30 insertions(+), 3 deletions(-)
 create mode 100644 google/cloud/bigtable/doc/bigtable-options.dox

diff --git a/google/cloud/bigtable/doc/bigtable-options.dox b/google/cloud/bigtable/doc/bigtable-options.dox
new file mode 100644
index 0000000000000..3d01595f53f72
--- /dev/null
+++ b/google/cloud/bigtable/doc/bigtable-options.dox
@@ -0,0 +1,9 @@
+/*!
+@defgroup bigtable-options Bigtable Client Library Configuration Options
+
+The Bigtable client library uses the same mechanism as all other C++ client
+libraries for configuration. As usual for the C++ client libraries, it adds a
+number of unique options only applicable for the Bigtable library.
+
+@see @ref options - for an overview of client library configuration.
+*/
diff --git a/google/cloud/bigtable/options.h b/google/cloud/bigtable/options.h
index 103962113750a..4c5291c547dd2 100644
--- a/google/cloud/bigtable/options.h
+++ b/google/cloud/bigtable/options.h
@@ -69,6 +69,8 @@ GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
  *
  * @see https://cloud.google.com/bigtable/docs/replication-overview#app-profiles
  *     for how app profiles are used to achieve replication.
+ *
+ * @ingroup bigtable-options
  */
 struct AppProfileIdOption {
   using Type = std::string;
@@ -109,6 +111,8 @@ struct InstanceAdminEndpointOption {
  * Minimum time in ms to refresh connections.
  *
  * The server will not disconnect idle connections before this time.
+ *
+ * @ingroup bigtable-options
  */
 struct MinConnectionRefreshOption {
   using Type = std::chrono::milliseconds;
@@ -123,6 +127,8 @@ struct MinConnectionRefreshOption {
  *
  * @note If this value is less than the value of `MinConnectionRefreshOption`,
  * it will be set to the value of `MinConnectionRefreshOption`.
+ *
+ * @ingroup bigtable-options
  */
 struct MaxConnectionRefreshOption {
   using Type = std::chrono::milliseconds;
@@ -145,17 +151,29 @@ using DataLimitedErrorCountRetryPolicy =
     ::google::cloud::internal::LimitedErrorCountRetryPolicy<
         bigtable::internal::SafeGrpcRetry>;
 
-/// Option to configure the retry policy used by `Table`.
+/**
+ * Option to configure the retry policy used by `Table`.
+ *
+ * @ingroup bigtable-options
+ */
 struct DataRetryPolicyOption {
   using Type = std::shared_ptr<DataRetryPolicy>;
 };
 
-/// Option to configure the backoff policy used by `Table`.
+/**
+ * Option to configure the backoff policy used by `Table`.
+ *
+ * @ingroup bigtable-options
+ */
 struct DataBackoffPolicyOption {
   using Type = std::shared_ptr<BackoffPolicy>;
 };
 
-/// Option to configure the idempotency policy used by `Table`.
+/**
+ *  Option to configure the idempotency policy used by `Table`.
+ *
+ * @ingroup bigtable-options
+ */
 struct IdempotentMutationPolicyOption {
   using Type = std::shared_ptr<bigtable::IdempotentMutationPolicy>;
 };