Skip to content

Commit 717cc7b

Browse files
authored
doc(universe_domain): add ud samples for remaining libraries (#15660)
1 parent 82061b8 commit 717cc7b

File tree

14 files changed

+330
-4
lines changed

14 files changed

+330
-4
lines changed

google/cloud/bigtable/doc/bigtable-main.dox

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ library.
3838
- @ref bigtable-endpoint-example
3939
- @ref bigtable-auth-example
4040
- @ref bigtable-override-retry
41+
- @ref bigtable-universe-domain-example
4142
- @ref bigtable-mocking "Mocking the Cloud Bigtable C++ client"
4243
- The [Setting up your development environment] guide describes how to set up
4344
a C++ development environment in various platforms, including the Google Cloud
@@ -110,6 +111,22 @@ guide for more details.
110111

111112
*/
112113

114+
/**
115+
@page bigtable-universe-domain-example Override the default Universe Domain
116+
117+
In some cases, you may need to override the default universe domain used by the client
118+
library. Use the [AddUniverseDomainOption](@ref google::cloud::AddUniverseDomainOption)
119+
when initializing the client library to change this default.
120+
121+
@snippet client_samples.cc table-set-universe-domain
122+
123+
Changing the default universe domain for other `*Client` classes is very similar, as
124+
shown in these examples:
125+
126+
- [`BigtableTableAdminClient`](@ref BigtableTableAdminClient-set-universe-domain-snippet)
127+
- [`InstanceTableAdminClient`](@ref BigtableInstanceAdminClient-set-universe-domain-snippet)
128+
*/
129+
113130
/*! @page Table-set-endpoint-snippet Override Table Default Endpoint
114131

115132
@snippet google/cloud/bigtable/examples/client_samples.cc table-set-endpoint
@@ -120,6 +137,11 @@ guide for more details.
120137
@snippet google/cloud/bigtable/examples/client_samples.cc table-with-service-account
121138
*/
122139

140+
/*! @page Table-set-universe-domain-snippet Override Table Default Universe Domain
141+
142+
@snippet google/cloud/bigtable/examples/client_samples.cc table-set-universe-domain
143+
*/
144+
123145
/*! @page BigtableTableAdminClient-set-endpoint-snippet Override BigtableTableAdminClient Default Endpoint
124146

125147
@snippet google/cloud/bigtable/admin/samples/bigtable_table_admin_client_samples.cc set-client-endpoint
@@ -130,6 +152,11 @@ guide for more details.
130152
@snippet google/cloud/bigtable/admin/samples/bigtable_table_admin_client_samples.cc with-service-account
131153
*/
132154

155+
/*! @page BigtableTableAdminClient-set-universe-domain-snippet Override BigtableTableAdminClient Default Universe Domain
156+
157+
@snippet google/cloud/bigtable/admin/samples/bigtable_table_admin_client_samples.cc set-client-universe-domain
158+
*/
159+
133160
/*! @page BigtableInstanceAdminClient-set-endpoint-snippet Override BigtableInstanceAdminClient Default Endpoint
134161

135162
@snippet google/cloud/bigtable/admin/samples/bigtable_instance_admin_client_samples.cc set-client-endpoint
@@ -139,3 +166,8 @@ guide for more details.
139166

140167
@snippet google/cloud/bigtable/admin/samples/bigtable_instance_admin_client_samples.cc with-service-account
141168
*/
169+
170+
/*! @page BigtableInstanceAdminClient-set-universe-domain-snippet Override BigtableInstanceAdminClient Default Universe Domain
171+
172+
@snippet google/cloud/bigtable/admin/samples/bigtable_instance_admin_client_samples.cc set-client-universe-domain
173+
*/

google/cloud/bigtable/examples/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ cc_test(
7575
"//:bigtable",
7676
"//:common",
7777
"//:grpc_utils",
78+
"//:universe_domain",
7879
"//google/cloud/testing_util:google_cloud_cpp_testing_grpc_private",
7980
"//google/cloud/testing_util:google_cloud_cpp_testing_private",
8081
],

google/cloud/bigtable/examples/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ if (BUILD_TESTING)
7070
google-cloud-cpp::bigtable_protos
7171
google-cloud-cpp::common
7272
google-cloud-cpp::grpc_utils
73+
google-cloud-cpp::universe_domain
7374
absl::time
7475
GTest::gmock_main
7576
GTest::gmock
@@ -91,6 +92,7 @@ if (BUILD_TESTING)
9192
google-cloud-cpp::bigtable_protos
9293
google-cloud-cpp::common
9394
google-cloud-cpp::grpc_utils
95+
google-cloud-cpp::universe_domain
9496
absl::time
9597
gRPC::grpc++
9698
gRPC::grpc

google/cloud/bigtable/examples/client_samples.cc

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "google/cloud/internal/getenv.h"
2121
#include "google/cloud/internal/random.h"
2222
#include "google/cloud/testing_util/example_driver.h"
23+
#include "google/cloud/universe_domain.h"
2324
#include <fstream>
2425
#include <string>
2526
#include <vector>
@@ -116,6 +117,32 @@ void TableWithServiceAccount(std::vector<std::string> const& argv) {
116117
(argv.at(0), argv.at(1), argv.at(2), argv.at(3));
117118
}
118119

120+
void TableSetUniverseDomain(std::vector<std::string> const& argv) {
121+
if (argv.size() != 3) {
122+
throw google::cloud::testing_util::Usage{
123+
"table-set-endpoint <project-id> <instance-id> <table-id>"};
124+
}
125+
//! [table-set-universe-domain]
126+
namespace bigtable = ::google::cloud::bigtable;
127+
[](std::string const& project_id, std::string const& instance_id,
128+
std::string const& table_id) {
129+
google::cloud::Options options;
130+
131+
// AddUniverseDomainOption interrogates the UnifiedCredentialsOption, if
132+
// set, in the provided Options for the Universe Domain associated with the
133+
// credentials and adds it to the set of Options.
134+
// If no UnifiedCredentialsOption is set, GoogleDefaultCredentials are used.
135+
auto ud_options =
136+
google::cloud::AddUniverseDomainOption(std::move(options));
137+
138+
if (!ud_options.ok()) throw std::move(ud_options).status();
139+
auto resource = bigtable::TableResource(project_id, instance_id, table_id);
140+
return bigtable::Table(bigtable::MakeDataConnection(*ud_options), resource);
141+
}
142+
//! [table-set-universe-domain]
143+
(argv.at(0), argv.at(1), argv.at(2));
144+
}
145+
119146
void AutoRun(std::vector<std::string> const& argv) {
120147
using ::google::cloud::internal::GetEnv;
121148
namespace examples = ::google::cloud::testing_util;
@@ -144,6 +171,9 @@ void AutoRun(std::vector<std::string> const& argv) {
144171
std::cout << "\nRunning SetRetryPolicy() sample" << std::endl;
145172
SetRetryPolicy({project_id, instance_id, table_id});
146173

174+
std::cout << "\nRunning TableSetUniverseDomain() sample" << std::endl;
175+
TableSetUniverseDomain({project_id, instance_id, table_id});
176+
147177
std::cout << "\nAutoRun done" << std::endl;
148178
}
149179

@@ -154,6 +184,7 @@ int main(int argc, char* argv[]) { // NOLINT(bugprone-exception-escape)
154184
{"table-set-endpoint", TableSetEndpoint},
155185
{"set-retry-policy", SetRetryPolicy},
156186
{"table-with-service-account", TableWithServiceAccount},
187+
{"table-set-universe-domain", TableSetUniverseDomain},
157188
{"auto", AutoRun},
158189
});
159190
return example.Run(argc, argv);

google/cloud/pubsub/doc/pubsub-main.dox

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ library.
2727
- @ref pubsub-endpoint-example
2828
- @ref pubsub-auth-example
2929
- @ref pubsub-override-retry
30+
- @ref pubsub-universe-domain-example
3031
- @ref publisher-mock shows how to write tests mocking [Publisher]
3132
- @ref subscriber-mock shows how to write tests mocking [Subscriber]
3233
- The [Setting up your development environment] guide describes how to set up
@@ -108,6 +109,25 @@ Follow these links to find examples for other `*Client` classes:
108109
[Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
109110
*/
110111

112+
/**
113+
@page pubsub-universe-domain-example Override the default universe domain
114+
115+
In some cases, you may need to override the default universe domain used by the client
116+
library. Use the [AddUniverseDomainOption](@ref google::cloud::AddUniverseDomainOption)
117+
when initializing the client library to change this default.
118+
119+
@snippet client_samples.cc publisher-set-universe-domain
120+
121+
Follow these links to find examples for other `*Client` classes:
122+
123+
- [`Subscriber`](@ref Subscriber-universe-domain-snippet)
124+
- [`BlockingPublisher`](@ref BlockingPublisher-universe-domain-snippet)
125+
- [`TopicAdminClient`](@ref TopicAdminClient-universe-domain-snippet)
126+
- [`SubscriptionAdminClient`](@ref SubscriptionAdminClient-universe-domain-snippet)
127+
- [`SchemaServiceClient`](@ref SchemaServiceClient-universe-domain-snippet)
128+
- [`Publisher`](@ref Publisher-universe-domain-snippet)
129+
*/
130+
111131
/*! @page Publisher-endpoint-snippet Override @c Publisher Default Endpoint
112132

113133
@snippet google/cloud/pubsub/samples/client_samples.cc publisher-set-endpoint
@@ -179,3 +199,38 @@ Follow these links to find examples for other `*Client` classes:
179199
@snippet google/cloud/pubsub/samples/schema_client_samples.cc with-service-account
180200

181201
*/
202+
203+
/*! @page Publisher-universe-domain-snippet Override @c Publisher Default Endpoint
204+
205+
@snippet google/cloud/pubsub/samples/client_samples.cc publisher-set-universe-domain
206+
207+
*/
208+
209+
/*! @page Subscriber-universe-domain-snippet Override @c Subscriber Default Endpoint
210+
211+
@snippet google/cloud/pubsub/samples/client_samples.cc subscriber-set-universe-domain
212+
213+
*/
214+
215+
/*! @page BlockingPublisher-universe-domain-snippet Override @c BlockingPublisher Default Endpoint
216+
217+
@snippet google/cloud/pubsub/samples/client_samples.cc blocking-publisher-set-universe-domain
218+
219+
*/
220+
221+
/*! @page TopicAdminClient-universe-domain-snippet Override @c TopicAdminClient Default Endpoint
222+
223+
@snippet google/cloud/pubsub/admin/samples/topic_admin_client_samples.cc set-client-universe-domain
224+
*/
225+
226+
/*! @page SubscriptionAdminClient-universe-domain-snippet Override @c SubscriptionAdminClient Default Endpoint
227+
228+
@snippet google/cloud/pubsub/admin/samples/subscription_admin_client_samples.cc set-client-universe-domain
229+
230+
*/
231+
232+
/*! @page SchemaServiceClient-universe-domain-snippet Override @c SchemaServiceClient Default Endpoint
233+
234+
@snippet google/cloud/pubsub/samples/schema_client_samples.cc set-client-universe-domain
235+
236+
*/

google/cloud/pubsub/samples/client_samples.cc

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "google/cloud/internal/getenv.h"
2121
#include "google/cloud/internal/random.h"
2222
#include "google/cloud/testing_util/example_driver.h"
23+
#include "google/cloud/universe_domain.h"
2324
#include <fstream>
2425
#include <string>
2526
#include <vector>
@@ -79,6 +80,32 @@ void PublisherServiceAccountKey(std::vector<std::string> const& argv) {
7980
(argv.at(0), argv.at(1), argv.at(2));
8081
}
8182

83+
void PublisherSetUniverseDomain(std::vector<std::string> const& argv) {
84+
namespace examples = ::google::cloud::testing_util;
85+
if (argv.size() != 2) {
86+
throw examples::Usage{
87+
"publisher-set-universe-domain <project-id> <topic-id>"};
88+
}
89+
//! [publisher-set-universe-domain]
90+
namespace pubsub = ::google::cloud::pubsub;
91+
[](std::string const& project_id, std::string const& topic_id) {
92+
google::cloud::Options options;
93+
94+
// AddUniverseDomainOption interrogates the UnifiedCredentialsOption, if
95+
// set, in the provided Options for the Universe Domain associated with the
96+
// credentials and adds it to the set of Options.
97+
// If no UnifiedCredentialsOption is set, GoogleDefaultCredentials are used.
98+
auto ud_options =
99+
google::cloud::AddUniverseDomainOption(std::move(options));
100+
101+
if (!ud_options.ok()) throw std::move(ud_options).status();
102+
auto pub = pubsub::Publisher(pubsub::MakePublisherConnection(
103+
"europe-central2", pubsub::Topic(project_id, topic_id), *ud_options));
104+
}
105+
//! [publisher-set-universe-domain]
106+
(argv.at(0), argv.at(1));
107+
}
108+
82109
void SubscriberSetEndpoint(std::vector<std::string> const& argv) {
83110
namespace examples = ::google::cloud::testing_util;
84111
if (argv.size() != 2) {
@@ -131,6 +158,33 @@ void SubscriberServiceAccountKey(std::vector<std::string> const& argv) {
131158
(argv.at(0), argv.at(1), argv.at(2));
132159
}
133160

161+
void SubscriberSetUniverseDomain(std::vector<std::string> const& argv) {
162+
namespace examples = ::google::cloud::testing_util;
163+
if (argv.size() != 2) {
164+
throw examples::Usage{
165+
"subscriber-set-universe-domain <project-id> <subscription-id>"};
166+
}
167+
//! [subscriber-set-universe-domain]
168+
namespace pubsub = ::google::cloud::pubsub;
169+
[](std::string const& project_id, std::string const& subscription_id) {
170+
google::cloud::Options options;
171+
172+
// AddUniverseDomainOption interrogates the UnifiedCredentialsOption, if
173+
// set, in the provided Options for the Universe Domain associated with the
174+
// credentials and adds it to the set of Options.
175+
// If no UnifiedCredentialsOption is set, GoogleDefaultCredentials are used.
176+
auto ud_options =
177+
google::cloud::AddUniverseDomainOption(std::move(options));
178+
179+
if (!ud_options.ok()) throw std::move(ud_options).status();
180+
auto sub = pubsub::Subscriber(pubsub::MakeSubscriberConnection(
181+
"europe-central2", pubsub::Subscription(project_id, subscription_id),
182+
*ud_options));
183+
}
184+
//! [subscriber-set-universe-domain]
185+
(argv.at(0), argv.at(1));
186+
}
187+
134188
void BlockingPublisherSetEndpoint(std::vector<std::string> const& argv) {
135189
namespace examples = ::google::cloud::testing_util;
136190
if (!argv.empty()) {
@@ -177,6 +231,32 @@ void BlockingPublisherServiceAccountKey(std::vector<std::string> const& argv) {
177231
(argv.at(0));
178232
}
179233

234+
void BlockingPublisherSetUniverseDomain(std::vector<std::string> const& argv) {
235+
namespace examples = ::google::cloud::testing_util;
236+
if (!argv.empty()) {
237+
throw examples::Usage{"blocking-publisher-set-universe-domain"};
238+
}
239+
//! [blocking-publisher-set-universe-domain]
240+
namespace pubsub = ::google::cloud::pubsub;
241+
[]() {
242+
google::cloud::Options options;
243+
244+
// AddUniverseDomainOption interrogates the UnifiedCredentialsOption, if
245+
// set, in the provided Options for the Universe Domain associated with the
246+
// credentials and adds it to the set of Options.
247+
// If no UnifiedCredentialsOption is set, GoogleDefaultCredentials are used.
248+
auto ud_options =
249+
google::cloud::AddUniverseDomainOption(std::move(options));
250+
251+
if (!ud_options.ok()) throw std::move(ud_options).status();
252+
auto pub =
253+
pubsub::BlockingPublisher(pubsub::MakeBlockingPublisherConnection(
254+
"europe-central2", *ud_options));
255+
}
256+
//! [blocking-publisher-set-universe-domain]
257+
();
258+
}
259+
180260
void AutoRun(std::vector<std::string> const& argv) {
181261
namespace examples = ::google::cloud::testing_util;
182262

@@ -199,19 +279,29 @@ void AutoRun(std::vector<std::string> const& argv) {
199279
std::cout << "\nRunning PublisherServiceAccountKey() sample" << std::endl;
200280
PublisherServiceAccountKey({project_id, topic_id, keyfile});
201281

282+
std::cout << "\nRunning PublisherSetUniverseDomain() sample" << std::endl;
283+
PublisherSetUniverseDomain({project_id, topic_id});
284+
202285
std::cout << "\nRunning SubscriberSetEndpoint() sample" << std::endl;
203286
SubscriberSetEndpoint({project_id, subscription_id});
204287

205288
std::cout << "\nRunning SubscriberServiceAccountKey() sample" << std::endl;
206289
SubscriberServiceAccountKey({project_id, subscription_id, keyfile});
207290

291+
std::cout << "\nRunning SubscriberSetUniverseDomain() sample" << std::endl;
292+
SubscriberSetUniverseDomain({project_id, subscription_id});
293+
208294
std::cout << "\nRunning BlockingPublisherSetEndpoint() sample" << std::endl;
209295
BlockingPublisherSetEndpoint({});
210296

211297
std::cout << "\nRunning BlockingPublisherServiceAccountKey() sample"
212298
<< std::endl;
213299
BlockingPublisherServiceAccountKey({keyfile});
214300

301+
std::cout << "\nRunning BlockingPublisherSetUniverseDomain() sample"
302+
<< std::endl;
303+
BlockingPublisherSetUniverseDomain({});
304+
215305
std::cout << "\nAutoRun done" << std::endl;
216306
}
217307

@@ -221,11 +311,15 @@ int main(int argc, char* argv[]) { // NOLINT(bugprone-exception-escape)
221311
google::cloud::testing_util::Example example({
222312
{"publisher-set-endpoint", PublisherSetEndpoint},
223313
{"publisher-service-account-key", PublisherServiceAccountKey},
314+
{"publisher-set-universe-domain", PublisherSetUniverseDomain},
224315
{"subscriber-set-endpoint", SubscriberSetEndpoint},
225316
{"subscriber-service-account-key", SubscriberServiceAccountKey},
317+
{"subscriber-set-universe-domain", SubscriberSetUniverseDomain},
226318
{"blocking-publisher-set-endpoint", BlockingPublisherSetEndpoint},
227319
{"blocking-publisher-service-account-key",
228320
BlockingPublisherServiceAccountKey},
321+
{"blocking-publisher-set-universe-domain",
322+
BlockingPublisherSetUniverseDomain},
229323
{"auto", AutoRun},
230324
});
231325
return example.Run(argc, argv);

0 commit comments

Comments
 (0)