40#include <system_error>
45#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
63 : username_{ std::move(username) }
64 , password_{ std::move(password) }
76 : username_{ std::move(authenticator.username_) }
77 , password_{ std::move(authenticator.password_) }
79 if (authenticator.ldap_compatible_) {
80 sasl_mechanisms_ = { {
"PLAIN" } };
92 : certificate_path_{ std::move(authenticator.certificate_path_) }
93 , key_path_{ std::move(authenticator.key_path_) }
105 : jwt_token_{ std::move(authenticator.token_) }
241 return transactions_;
254 return application_telemetry_;
267 if (strategy ==
nullptr) {
268 throw std::invalid_argument(
"retry strategy cannot be null");
270 default_retry_strategy_ = std::move(strategy);
277 throw std::invalid_argument(
"crypto manager cannot be null");
313 compression_.build(),
321 transactions_.build(),
322 default_retry_strategy_,
323 application_telemetry_.build(),
329 std::string username_{};
330 std::string password_{};
331 std::string certificate_path_{};
332 std::string key_path_{};
333 std::string jwt_token_{};
334 std::optional<std::vector<std::string>> sasl_mechanisms_{};
345 std::shared_ptr<retry_strategy> default_retry_strategy_{
nullptr };
347 std::shared_ptr<crypto::manager> crypto_manager_{};
350#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
Definition application_telemetry_options.hxx:27
Definition behavior_options.hxx:25
Definition certificate_authenticator.hxx:25
cluster_options(jwt_authenticator authenticator)
Definition cluster_options.hxx:104
auto behavior() -> behavior_options &
Returns misc options that affects cluster behavior.
Definition cluster_options.hxx:226
cluster_options(password_authenticator authenticator)
Definition cluster_options.hxx:75
cluster_options(certificate_authenticator authenticator)
Definition cluster_options.hxx:91
cluster_options(std::string username, std::string password)
Definition cluster_options.hxx:62
auto application_telemetry() -> application_telemetry_options &
Returns the Application Telemetry options.
Definition cluster_options.hxx:252
auto tracing() -> tracing_options &
Returns tracing options.
Definition cluster_options.hxx:213
auto build() const -> built
Definition cluster_options.hxx:304
auto default_retry_strategy(std::shared_ptr< retry_strategy > strategy) -> cluster_options &
Override default retry strategy.
Definition cluster_options.hxx:265
auto security() -> security_options &
Returns security options (including TLS).
Definition cluster_options.hxx:174
void apply_profile(const std::string &profile_name)
Apply settings profile by name.
Definition cluster_options.hxx:122
auto network() -> network_options &
Returns network options.
Definition cluster_options.hxx:187
auto dns() -> dns_options &
Returns options for DNS-SRV bootstrap.
Definition cluster_options.hxx:161
auto compression() -> compression_options &
Returns compression options.
Definition cluster_options.hxx:135
auto crypto_manager(std::shared_ptr< crypto::manager > crypto_manager) -> cluster_options &
Definition cluster_options.hxx:274
auto timeouts() -> timeout_options &
Returns various timeout options.
Definition cluster_options.hxx:148
auto transactions() -> transactions::transactions_config &
Returns the transactions options which effect the transactions behavior.
Definition cluster_options.hxx:239
auto metrics() -> metrics_options &
Returns metrics and observability options.
Definition cluster_options.hxx:200
The cluster is the main entry point when connecting to a Couchbase cluster.
Definition cluster.hxx:60
Definition compression_options.hxx:25
static void apply_profile(const std::string &name, couchbase::cluster_options &options)
Apply a profile to an instance of cluster_options.
Definition dns_options.hxx:28
A JWT authenticator which uses a JSON Web Token (JWT) to authenticate with the cluster.
Definition jwt_authenticator.hxx:31
Definition metrics_options.hxx:29
Definition network_options.hxx:30
Definition password_authenticator.hxx:25
Definition security_options.hxx:28
Definition timeout_options.hxx:26
Definition tracing_options.hxx:29
Configuration parameters for transactions.
Definition transactions_config.hxx:43
Definition internal.hxx:27
Represents a single item from the result of scan().
Definition allow_querying_search_index_options.hxx:28
std::function< void(error, cluster)> cluster_connect_handler
The signature for the handler of the connect().
Definition cluster_options.hxx:360
Definition application_telemetry_options.hxx:102
Definition behavior_options.hxx:76
Definition cluster_options.hxx:283
std::string password
Definition cluster_options.hxx:285
metrics_options::built metrics
Definition cluster_options.hxx:295
network_options::built network
Definition cluster_options.hxx:294
compression_options::built compression
Definition cluster_options.hxx:290
std::shared_ptr< retry_strategy > default_retry_strategy
Definition cluster_options.hxx:299
security_options::built security
Definition cluster_options.hxx:293
std::string username
Definition cluster_options.hxx:284
timeout_options::built timeouts
Definition cluster_options.hxx:291
transactions::transactions_config::built transactions
Definition cluster_options.hxx:298
std::optional< std::vector< std::string > > allowed_sasl_mechanisms
Definition cluster_options.hxx:289
std::string certificate_path
Definition cluster_options.hxx:286
std::string key_path
Definition cluster_options.hxx:287
tracing_options::built tracing
Definition cluster_options.hxx:296
std::string jwt_token
Definition cluster_options.hxx:288
std::shared_ptr< crypto::manager > crypto_manager
Definition cluster_options.hxx:301
behavior_options::built behavior
Definition cluster_options.hxx:297
dns_options::built dns
Definition cluster_options.hxx:292
application_telemetry_options::built application_telemetry
Definition cluster_options.hxx:300
Definition compression_options.hxx:45
Definition dns_options.hxx:45
Definition metrics_options.hxx:51
Definition network_options.hxx:133
Definition security_options.hxx:54
Definition timeout_options.hxx:119
Definition tracing_options.hxx:127