Skip to content

Commit 04b69b5

Browse files
authored
feat(networkservices): add DepServiceClient (#13843)
1 parent 6697204 commit 04b69b5

35 files changed

Lines changed: 5199 additions & 11 deletions

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ the APIs in these libraries are stable, and are ready for production use.
1414
- [App Hub API](/google/cloud/apphub/README.md)
1515
- [Sovereign Controls by Partners](/google/cloud/cloudcontrolspartner/README.md)
1616

17+
### Updated Libraries
18+
19+
- [Network Services API](/google/cloud/networkservices/README.md) - new
20+
`DepServiceClient`
21+
1722
## v2.22.0 - 2024-03
1823

1924
### New Libraries

generator/generator_config.textproto

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2577,6 +2577,13 @@ service {
25772577
retryable_status_codes: ["kUnavailable"]
25782578
}
25792579
2580+
service {
2581+
service_proto_path: "google/cloud/networkservices/v1/dep.proto"
2582+
product_path: "google/cloud/networkservices/v1"
2583+
initial_copyright_year: "2024"
2584+
retryable_status_codes: ["kUnavailable"]
2585+
}
2586+
25802587
# Notebooks
25812588
service {
25822589
service_proto_path: "google/cloud/notebooks/v1/managed_service.proto"

google/cloud/networkservices/doc/environment-variables.dox

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ environment variables are convenient when troubleshooting problems.
1010

1111
<!-- inject-endpoint-env-vars-start -->
1212

13+
- `GOOGLE_CLOUD_CPP_DEP_SERVICE_ENDPOINT=...` overrides the
14+
`EndpointOption` (which defaults to "networkservices.googleapis.com")
15+
used by `MakeDepServiceConnection()`.
16+
1317
- `GOOGLE_CLOUD_CPP_NETWORK_SERVICES_ENDPOINT=...` overrides the
1418
`EndpointOption` (which defaults to "networkservices.googleapis.com")
1519
used by `MakeNetworkServicesConnection()`.

google/cloud/networkservices/doc/main.dox

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,18 @@ which should give you a taste of the Network Services API C++ client library API
2222
## Main classes
2323

2424
<!-- inject-client-list-start -->
25-
The main class in this library is
26-
[`networkservices_v1::NetworkServicesClient`](@ref google::cloud::networkservices_v1::NetworkServicesClient). All RPCs are exposed
27-
as member functions of this class. Other classes provide helpers, configuration
28-
parameters, and infrastructure to mock
29-
[`networkservices_v1::NetworkServicesClient`](@ref google::cloud::networkservices_v1::NetworkServicesClient) when testing your
25+
This library offers multiple `*Client` classes, which are listed below. Each one
26+
of these classes exposes all the RPCs for a service as member functions of the
27+
class. This library groups multiple services because they are part of the same
28+
product or are often used together. A typical example may be the administrative
29+
and data plane operations for a single product.
30+
31+
The library also has other classes that provide helpers, configuration
32+
parameters, and infrastructure to mock the `*Client` classes when testing your
3033
application.
34+
35+
- [\c networkservices_v1::DepServiceClient](@ref google::cloud::networkservices_v1::DepServiceClient)
36+
- [\c networkservices_v1::NetworkServicesClient](@ref google::cloud::networkservices_v1::NetworkServicesClient)
3137
<!-- inject-client-list-end -->
3238

3339
## More Information

google/cloud/networkservices/doc/override-authentication.dox

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ this default. You can do so by providing the
99
The following example shows how to explicitly load a service account key file:
1010

1111
<!-- inject-service-account-snippet-start -->
12-
@snippet network_services_client_samples.cc with-service-account
12+
@snippet dep_client_samples.cc with-service-account
13+
14+
Follow these links to find examples for other \c *Client classes:
15+
16+
- [\c networkservices_v1::DepServiceClient](@ref networkservices_v1::DepServiceClient-service-account-snippet)
17+
- [\c networkservices_v1::NetworkServicesClient](@ref networkservices_v1::NetworkServicesClient-service-account-snippet)
1318

1419
<!-- inject-service-account-snippet-end -->
1520

@@ -27,6 +32,12 @@ guide for more details.
2732

2833
// <!-- inject-authentication-pages-start -->
2934

35+
/*! @page networkservices_v1::DepServiceClient-service-account-snippet Override networkservices_v1::DepServiceClient Authentication Defaults
36+
37+
@snippet google/cloud/networkservices/v1/samples/dep_client_samples.cc with-service-account
38+
39+
*/
40+
3041
/*! @page networkservices_v1::NetworkServicesClient-service-account-snippet Override networkservices_v1::NetworkServicesClient Authentication Defaults
3142

3243
@snippet google/cloud/networkservices/v1/samples/network_services_client_samples.cc with-service-account

google/cloud/networkservices/doc/override-endpoint.dox

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,27 @@ library. Use the
77
client library to change this default.
88

99
<!-- inject-endpoint-snippet-start -->
10-
For example, this will override the default endpoint for `networkservices_v1::NetworkServicesClient`:
10+
For example, this will override the default endpoint for `networkservices_v1::DepServiceClient`:
1111

12-
@snippet network_services_client_samples.cc set-client-endpoint
12+
@snippet dep_client_samples.cc set-client-endpoint
13+
14+
Follow these links to find examples for other \c *Client classes:
15+
16+
- [\c networkservices_v1::DepServiceClient](@ref networkservices_v1::DepServiceClient-endpoint-snippet)
17+
- [\c networkservices_v1::NetworkServicesClient](@ref networkservices_v1::NetworkServicesClient-endpoint-snippet)
1318

1419
<!-- inject-endpoint-snippet-end -->
1520

1621
*/
1722

1823
// <!-- inject-endpoint-pages-start -->
1924

25+
/*! @page networkservices_v1::DepServiceClient-endpoint-snippet Override networkservices_v1::DepServiceClient Endpoint Configuration
26+
27+
@snippet google/cloud/networkservices/v1/samples/dep_client_samples.cc set-client-endpoint
28+
29+
*/
30+
2031
/*! @page networkservices_v1::NetworkServicesClient-endpoint-snippet Override networkservices_v1::NetworkServicesClient Endpoint Configuration
2132

2233
@snippet google/cloud/networkservices/v1/samples/network_services_client_samples.cc set-client-endpoint

google/cloud/networkservices/doc/override-retry-policies.dox

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,20 @@ will use `FooBarIdempotencyPolicy`. This policy is very conservative.
6868
@section networkservices-override-retry-example Example
6969

7070
<!-- inject-retry-snippet-start -->
71-
For example, this will override the retry policies for `networkservices_v1::NetworkServicesClient`:
71+
For example, this will override the retry policies for `networkservices_v1::DepServiceClient`:
7272

73-
@snippet network_services_client_samples.cc set-retry-policy
73+
@snippet dep_client_samples.cc set-retry-policy
7474

7575
This assumes you have created a custom idempotency policy. Such as:
7676

77-
@snippet network_services_client_samples.cc custom-idempotency-policy
77+
@snippet dep_client_samples.cc custom-idempotency-policy
7878

7979

80+
Follow these links to find examples for other \c *Client classes:
81+
82+
- [\c networkservices_v1::DepServiceClient](@ref networkservices_v1::DepServiceClient-retry-snippet)
83+
- [\c networkservices_v1::NetworkServicesClient](@ref networkservices_v1::NetworkServicesClient-retry-snippet)
84+
8085
<!-- inject-retry-snippet-end -->
8186

8287
@section networkservices-override-retry-more-information More Information
@@ -91,6 +96,18 @@ This assumes you have created a custom idempotency policy. Such as:
9196

9297
// <!-- inject-retry-pages-start -->
9398

99+
/*! @page networkservices_v1::DepServiceClient-retry-snippet Override networkservices_v1::DepServiceClient Retry Policies
100+
101+
This shows how to override the retry policies for networkservices_v1::DepServiceClient:
102+
103+
@snippet google/cloud/networkservices/v1/samples/dep_client_samples.cc set-retry-policy
104+
105+
Assuming you have created a custom idempotency policy. Such as:
106+
107+
@snippet google/cloud/networkservices/v1/samples/dep_client_samples.cc custom-idempotency-policy
108+
109+
*/
110+
94111
/*! @page networkservices_v1::NetworkServicesClient-retry-snippet Override networkservices_v1::NetworkServicesClient Retry Policies
95112

96113
This shows how to override the retry policies for networkservices_v1::NetworkServicesClient:
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
// Copyright 2024 Google LLC
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// https://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
// Generated by the Codegen C++ plugin.
16+
// If you make any local changes, they will be lost.
17+
// source: google/cloud/networkservices/v1/dep.proto
18+
19+
#include "google/cloud/networkservices/v1/dep_client.h"
20+
#include <memory>
21+
#include <utility>
22+
23+
namespace google {
24+
namespace cloud {
25+
namespace networkservices_v1 {
26+
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
27+
28+
DepServiceClient::DepServiceClient(
29+
std::shared_ptr<DepServiceConnection> connection, Options opts)
30+
: connection_(std::move(connection)),
31+
options_(
32+
internal::MergeOptions(std::move(opts), connection_->options())) {}
33+
DepServiceClient::~DepServiceClient() = default;
34+
35+
StreamRange<google::cloud::networkservices::v1::LbTrafficExtension>
36+
DepServiceClient::ListLbTrafficExtensions(std::string const& parent,
37+
Options opts) {
38+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
39+
google::cloud::networkservices::v1::ListLbTrafficExtensionsRequest request;
40+
request.set_parent(parent);
41+
return connection_->ListLbTrafficExtensions(request);
42+
}
43+
44+
StreamRange<google::cloud::networkservices::v1::LbTrafficExtension>
45+
DepServiceClient::ListLbTrafficExtensions(
46+
google::cloud::networkservices::v1::ListLbTrafficExtensionsRequest request,
47+
Options opts) {
48+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
49+
return connection_->ListLbTrafficExtensions(std::move(request));
50+
}
51+
52+
StatusOr<google::cloud::networkservices::v1::LbTrafficExtension>
53+
DepServiceClient::GetLbTrafficExtension(std::string const& name, Options opts) {
54+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
55+
google::cloud::networkservices::v1::GetLbTrafficExtensionRequest request;
56+
request.set_name(name);
57+
return connection_->GetLbTrafficExtension(request);
58+
}
59+
60+
StatusOr<google::cloud::networkservices::v1::LbTrafficExtension>
61+
DepServiceClient::GetLbTrafficExtension(
62+
google::cloud::networkservices::v1::GetLbTrafficExtensionRequest const&
63+
request,
64+
Options opts) {
65+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
66+
return connection_->GetLbTrafficExtension(request);
67+
}
68+
69+
future<StatusOr<google::cloud::networkservices::v1::LbTrafficExtension>>
70+
DepServiceClient::CreateLbTrafficExtension(
71+
std::string const& parent,
72+
google::cloud::networkservices::v1::LbTrafficExtension const&
73+
lb_traffic_extension,
74+
std::string const& lb_traffic_extension_id, Options opts) {
75+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
76+
google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest request;
77+
request.set_parent(parent);
78+
*request.mutable_lb_traffic_extension() = lb_traffic_extension;
79+
request.set_lb_traffic_extension_id(lb_traffic_extension_id);
80+
return connection_->CreateLbTrafficExtension(request);
81+
}
82+
83+
future<StatusOr<google::cloud::networkservices::v1::LbTrafficExtension>>
84+
DepServiceClient::CreateLbTrafficExtension(
85+
google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const&
86+
request,
87+
Options opts) {
88+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
89+
return connection_->CreateLbTrafficExtension(request);
90+
}
91+
92+
future<StatusOr<google::cloud::networkservices::v1::LbTrafficExtension>>
93+
DepServiceClient::UpdateLbTrafficExtension(
94+
google::cloud::networkservices::v1::LbTrafficExtension const&
95+
lb_traffic_extension,
96+
google::protobuf::FieldMask const& update_mask, Options opts) {
97+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
98+
google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest request;
99+
*request.mutable_lb_traffic_extension() = lb_traffic_extension;
100+
*request.mutable_update_mask() = update_mask;
101+
return connection_->UpdateLbTrafficExtension(request);
102+
}
103+
104+
future<StatusOr<google::cloud::networkservices::v1::LbTrafficExtension>>
105+
DepServiceClient::UpdateLbTrafficExtension(
106+
google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const&
107+
request,
108+
Options opts) {
109+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
110+
return connection_->UpdateLbTrafficExtension(request);
111+
}
112+
113+
future<StatusOr<google::cloud::networkservices::v1::OperationMetadata>>
114+
DepServiceClient::DeleteLbTrafficExtension(std::string const& name,
115+
Options opts) {
116+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
117+
google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest request;
118+
request.set_name(name);
119+
return connection_->DeleteLbTrafficExtension(request);
120+
}
121+
122+
future<StatusOr<google::cloud::networkservices::v1::OperationMetadata>>
123+
DepServiceClient::DeleteLbTrafficExtension(
124+
google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const&
125+
request,
126+
Options opts) {
127+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
128+
return connection_->DeleteLbTrafficExtension(request);
129+
}
130+
131+
StreamRange<google::cloud::networkservices::v1::LbRouteExtension>
132+
DepServiceClient::ListLbRouteExtensions(std::string const& parent,
133+
Options opts) {
134+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
135+
google::cloud::networkservices::v1::ListLbRouteExtensionsRequest request;
136+
request.set_parent(parent);
137+
return connection_->ListLbRouteExtensions(request);
138+
}
139+
140+
StreamRange<google::cloud::networkservices::v1::LbRouteExtension>
141+
DepServiceClient::ListLbRouteExtensions(
142+
google::cloud::networkservices::v1::ListLbRouteExtensionsRequest request,
143+
Options opts) {
144+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
145+
return connection_->ListLbRouteExtensions(std::move(request));
146+
}
147+
148+
StatusOr<google::cloud::networkservices::v1::LbRouteExtension>
149+
DepServiceClient::GetLbRouteExtension(std::string const& name, Options opts) {
150+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
151+
google::cloud::networkservices::v1::GetLbRouteExtensionRequest request;
152+
request.set_name(name);
153+
return connection_->GetLbRouteExtension(request);
154+
}
155+
156+
StatusOr<google::cloud::networkservices::v1::LbRouteExtension>
157+
DepServiceClient::GetLbRouteExtension(
158+
google::cloud::networkservices::v1::GetLbRouteExtensionRequest const&
159+
request,
160+
Options opts) {
161+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
162+
return connection_->GetLbRouteExtension(request);
163+
}
164+
165+
future<StatusOr<google::cloud::networkservices::v1::LbRouteExtension>>
166+
DepServiceClient::CreateLbRouteExtension(
167+
std::string const& parent,
168+
google::cloud::networkservices::v1::LbRouteExtension const&
169+
lb_route_extension,
170+
std::string const& lb_route_extension_id, Options opts) {
171+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
172+
google::cloud::networkservices::v1::CreateLbRouteExtensionRequest request;
173+
request.set_parent(parent);
174+
*request.mutable_lb_route_extension() = lb_route_extension;
175+
request.set_lb_route_extension_id(lb_route_extension_id);
176+
return connection_->CreateLbRouteExtension(request);
177+
}
178+
179+
future<StatusOr<google::cloud::networkservices::v1::LbRouteExtension>>
180+
DepServiceClient::CreateLbRouteExtension(
181+
google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const&
182+
request,
183+
Options opts) {
184+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
185+
return connection_->CreateLbRouteExtension(request);
186+
}
187+
188+
future<StatusOr<google::cloud::networkservices::v1::LbRouteExtension>>
189+
DepServiceClient::UpdateLbRouteExtension(
190+
google::cloud::networkservices::v1::LbRouteExtension const&
191+
lb_route_extension,
192+
google::protobuf::FieldMask const& update_mask, Options opts) {
193+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
194+
google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest request;
195+
*request.mutable_lb_route_extension() = lb_route_extension;
196+
*request.mutable_update_mask() = update_mask;
197+
return connection_->UpdateLbRouteExtension(request);
198+
}
199+
200+
future<StatusOr<google::cloud::networkservices::v1::LbRouteExtension>>
201+
DepServiceClient::UpdateLbRouteExtension(
202+
google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const&
203+
request,
204+
Options opts) {
205+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
206+
return connection_->UpdateLbRouteExtension(request);
207+
}
208+
209+
future<StatusOr<google::cloud::networkservices::v1::OperationMetadata>>
210+
DepServiceClient::DeleteLbRouteExtension(std::string const& name,
211+
Options opts) {
212+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
213+
google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest request;
214+
request.set_name(name);
215+
return connection_->DeleteLbRouteExtension(request);
216+
}
217+
218+
future<StatusOr<google::cloud::networkservices::v1::OperationMetadata>>
219+
DepServiceClient::DeleteLbRouteExtension(
220+
google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const&
221+
request,
222+
Options opts) {
223+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
224+
return connection_->DeleteLbRouteExtension(request);
225+
}
226+
227+
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
228+
} // namespace networkservices_v1
229+
} // namespace cloud
230+
} // namespace google

0 commit comments

Comments
 (0)