Skip to content

Commit 16ffa2e

Browse files
authored
feat(datacatalog): generate lineage library (#10977)
1 parent 4637f2a commit 16ffa2e

36 files changed

+5274
-5
lines changed

ci/etc/expected_install_directories

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,10 @@
200200
./include/google/cloud/containeranalysis/v1/internal
201201
./include/google/cloud/containeranalysis/v1/mocks
202202
./include/google/cloud/datacatalog
203+
./include/google/cloud/datacatalog/lineage
204+
./include/google/cloud/datacatalog/lineage/v1
205+
./include/google/cloud/datacatalog/lineage/v1/internal
206+
./include/google/cloud/datacatalog/lineage/v1/mocks
203207
./include/google/cloud/datacatalog/mocks
204208
./include/google/cloud/datacatalog/v1
205209
./include/google/cloud/datacatalog/v1/internal

external/googleapis/protodeps/datacatalog.deps

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,6 @@
77
@com_google_googleapis//google/iam/v1:iam_policy_proto
88
@com_google_googleapis//google/iam/v1:options_proto
99
@com_google_googleapis//google/iam/v1:policy_proto
10+
@com_google_googleapis//google/longrunning:operations_proto
11+
@com_google_googleapis//google/rpc:status_proto
1012
@com_google_googleapis//google/type:expr_proto

external/googleapis/protolists/datacatalog.list

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
@com_google_googleapis//google/cloud/datacatalog/lineage/v1:lineage.proto
12
@com_google_googleapis//google/cloud/datacatalog/v1:bigquery.proto
23
@com_google_googleapis//google/cloud/datacatalog/v1:common.proto
34
@com_google_googleapis//google/cloud/datacatalog/v1:data_source.proto

external/googleapis/update_libraries.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,11 @@ declare -A -r LIBRARIES=(
8484
["contactcenterinsights"]="@com_google_googleapis//google/cloud/contactcenterinsights/v1:contactcenterinsights_cc_grpc"
8585
["container"]="@com_google_googleapis//google/container/v1:container_cc_grpc"
8686
["containeranalysis"]="@com_google_googleapis//google/devtools/containeranalysis/v1:containeranalysis_cc_grpc"
87-
["datacatalog"]="@com_google_googleapis//google/cloud/datacatalog/v1:datacatalog_cc_grpc"
87+
["datacatalog"]="$(
88+
printf ",%s" \
89+
"@com_google_googleapis//google/cloud/datacatalog/v1:datacatalog_cc_grpc" \
90+
"@com_google_googleapis//google/cloud/datacatalog/lineage/v1:lineage_cc_grpc"
91+
)"
8892
["datamigration"]="$(
8993
printf ",%s" \
9094
"@com_google_googleapis//google/cloud/clouddms/v1:clouddms_cc_grpc" \

generator/generator_config.textproto

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,15 @@ service {
512512
retryable_status_codes: ["kUnavailable"]
513513
}
514514
515+
service {
516+
service_proto_path: "google/cloud/datacatalog/lineage/v1/lineage.proto"
517+
product_path: "google/cloud/datacatalog/lineage/v1"
518+
initial_copyright_year: "2023"
519+
retryable_status_codes: ["kUnavailable"]
520+
#TODO(#10976): Remove experimental when service goes GA.
521+
experimental: true
522+
}
523+
515524
# Database Migration
516525
service {
517526
service_proto_path: "google/cloud/clouddms/v1/clouddms.proto"

google/cloud/datacatalog/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ licenses(["notice"]) # Apache 2.0
1818

1919
service_dirs = [
2020
"",
21+
"lineage/v1/",
2122
"v1/",
2223
]
2324

@@ -46,6 +47,7 @@ cc_library(
4647
deps = [
4748
"//:common",
4849
"//:grpc_utils",
50+
"@com_google_googleapis//google/cloud/datacatalog/lineage/v1:lineage_cc_grpc",
4951
"@com_google_googleapis//google/cloud/datacatalog/v1:datacatalog_cc_grpc",
5052
],
5153
)

google/cloud/datacatalog/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ set(DOXYGEN_EXAMPLE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/quickstart")
2424

2525
unset(mocks_globs)
2626
unset(source_globs)
27-
set(service_dirs "" "v1/")
27+
set(service_dirs "" "lineage/v1/" "v1/")
2828
foreach (dir IN LISTS service_dirs)
2929
string(REPLACE "/" "_" ns "${dir}")
3030
list(APPEND source_globs "${dir}*.h" "${dir}*.cc" "${dir}internal/*")

google/cloud/datacatalog/doc/main.dox

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ which should give you a taste of the Google Cloud Data Catalog API C++ client li
4646
`EndpointOption` (which defaults to "datacatalog.googleapis.com")
4747
used by `MakeDataCatalogConnection()`.
4848

49+
- `GOOGLE_CLOUD_CPP_LINEAGE_ENDPOINT=...` overrides the
50+
`EndpointOption` (which defaults to "datalineage.googleapis.com")
51+
used by `MakeLineageConnection()`.
52+
4953
- `GOOGLE_CLOUD_CPP_POLICY_TAG_MANAGER_ENDPOINT=...` overrides the
5054
`EndpointOption` (which defaults to "datacatalog.googleapis.com")
5155
used by `MakePolicyTagManagerConnection()`.
@@ -100,11 +104,12 @@ library. Use the `google::cloud::EndpointOption` when initializing the client
100104
library to change this default.
101105

102106
<!-- inject-endpoint-snippet-start -->
103-
For example, this will override the default endpoint for `datacatalog_v1::DataCatalogClient`:
107+
For example, this will override the default endpoint for `datacatalog_lineage_v1::LineageClient`:
104108

105-
@snippet data_catalog_client_samples.cc set-client-endpoint
109+
@snippet lineage_client_samples.cc set-client-endpoint
106110

107111
Follow these links to find examples for other \c *Client classes:
112+
[datacatalog_lineage_v1::LineageClient](@ref datacatalog_lineage_v1::LineageClient-endpoint-snippet)
108113
[datacatalog_v1::DataCatalogClient](@ref datacatalog_v1::DataCatalogClient-endpoint-snippet)
109114
[datacatalog_v1::PolicyTagManagerClient](@ref datacatalog_v1::PolicyTagManagerClient-endpoint-snippet)
110115
[datacatalog_v1::PolicyTagManagerSerializationClient](@ref datacatalog_v1::PolicyTagManagerSerializationClient-endpoint-snippet)
@@ -119,9 +124,10 @@ Some applications cannot use the default authentication mechanism (known as
119124
to explicitly load a service account key file.
120125

121126
<!-- inject-service-account-snippet-start -->
122-
@snippet data_catalog_client_samples.cc with-service-account
127+
@snippet lineage_client_samples.cc with-service-account
123128

124129
Follow these links to find examples for other \c *Client classes:
130+
[datacatalog_lineage_v1::LineageClient](@ref datacatalog_lineage_v1::LineageClient-service-account-snippet)
125131
[datacatalog_v1::DataCatalogClient](@ref datacatalog_v1::DataCatalogClient-service-account-snippet)
126132
[datacatalog_v1::PolicyTagManagerClient](@ref datacatalog_v1::PolicyTagManagerClient-service-account-snippet)
127133
[datacatalog_v1::PolicyTagManagerSerializationClient](@ref datacatalog_v1::PolicyTagManagerSerializationClient-service-account-snippet)
@@ -155,6 +161,18 @@ can override the default policies.
155161

156162
// <!-- inject-endpoint-pages-start -->
157163

164+
/*! @page datacatalog_lineage_v1::LineageClient-endpoint-snippet Override datacatalog_lineage_v1::LineageClient Endpoint Configuration
165+
166+
@snippet google/cloud/datacatalog/lineage/v1/samples/lineage_client_samples.cc set-client-endpoint
167+
168+
*/
169+
170+
/*! @page datacatalog_lineage_v1::LineageClient-service-account-snippet Override datacatalog_lineage_v1::LineageClient Authentication Defaults
171+
172+
@snippet google/cloud/datacatalog/lineage/v1/samples/lineage_client_samples.cc with-service-account
173+
174+
*/
175+
158176
/*! @page datacatalog_v1::DataCatalogClient-endpoint-snippet Override datacatalog_v1::DataCatalogClient Endpoint Configuration
159177

160178
@snippet google/cloud/datacatalog/v1/samples/data_catalog_client_samples.cc set-client-endpoint
Lines changed: 239 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
1+
// Copyright 2023 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/datacatalog/lineage/v1/lineage.proto
18+
19+
#include "google/cloud/datacatalog/lineage/v1/internal/lineage_auth_decorator.h"
20+
#include <google/cloud/datacatalog/lineage/v1/lineage.grpc.pb.h>
21+
#include <memory>
22+
23+
namespace google {
24+
namespace cloud {
25+
namespace datacatalog_lineage_v1_internal {
26+
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
27+
28+
LineageAuth::LineageAuth(
29+
std::shared_ptr<google::cloud::internal::GrpcAuthenticationStrategy> auth,
30+
std::shared_ptr<LineageStub> child)
31+
: auth_(std::move(auth)), child_(std::move(child)) {}
32+
33+
StatusOr<google::cloud::datacatalog::lineage::v1::Process>
34+
LineageAuth::CreateProcess(
35+
grpc::ClientContext& context,
36+
google::cloud::datacatalog::lineage::v1::CreateProcessRequest const&
37+
request) {
38+
auto status = auth_->ConfigureContext(context);
39+
if (!status.ok()) return status;
40+
return child_->CreateProcess(context, request);
41+
}
42+
43+
StatusOr<google::cloud::datacatalog::lineage::v1::Process>
44+
LineageAuth::UpdateProcess(
45+
grpc::ClientContext& context,
46+
google::cloud::datacatalog::lineage::v1::UpdateProcessRequest const&
47+
request) {
48+
auto status = auth_->ConfigureContext(context);
49+
if (!status.ok()) return status;
50+
return child_->UpdateProcess(context, request);
51+
}
52+
53+
StatusOr<google::cloud::datacatalog::lineage::v1::Process>
54+
LineageAuth::GetProcess(
55+
grpc::ClientContext& context,
56+
google::cloud::datacatalog::lineage::v1::GetProcessRequest const& request) {
57+
auto status = auth_->ConfigureContext(context);
58+
if (!status.ok()) return status;
59+
return child_->GetProcess(context, request);
60+
}
61+
62+
StatusOr<google::cloud::datacatalog::lineage::v1::ListProcessesResponse>
63+
LineageAuth::ListProcesses(
64+
grpc::ClientContext& context,
65+
google::cloud::datacatalog::lineage::v1::ListProcessesRequest const&
66+
request) {
67+
auto status = auth_->ConfigureContext(context);
68+
if (!status.ok()) return status;
69+
return child_->ListProcesses(context, request);
70+
}
71+
72+
future<StatusOr<google::longrunning::Operation>>
73+
LineageAuth::AsyncDeleteProcess(
74+
google::cloud::CompletionQueue& cq,
75+
std::unique_ptr<grpc::ClientContext> context,
76+
google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const&
77+
request) {
78+
using ReturnType = StatusOr<google::longrunning::Operation>;
79+
auto& child = child_;
80+
return auth_->AsyncConfigureContext(std::move(context))
81+
.then([cq, child,
82+
request](future<StatusOr<std::unique_ptr<grpc::ClientContext>>>
83+
f) mutable {
84+
auto context = f.get();
85+
if (!context) {
86+
return make_ready_future(ReturnType(std::move(context).status()));
87+
}
88+
return child->AsyncDeleteProcess(cq, *std::move(context), request);
89+
});
90+
}
91+
92+
StatusOr<google::cloud::datacatalog::lineage::v1::Run> LineageAuth::CreateRun(
93+
grpc::ClientContext& context,
94+
google::cloud::datacatalog::lineage::v1::CreateRunRequest const& request) {
95+
auto status = auth_->ConfigureContext(context);
96+
if (!status.ok()) return status;
97+
return child_->CreateRun(context, request);
98+
}
99+
100+
StatusOr<google::cloud::datacatalog::lineage::v1::Run> LineageAuth::UpdateRun(
101+
grpc::ClientContext& context,
102+
google::cloud::datacatalog::lineage::v1::UpdateRunRequest const& request) {
103+
auto status = auth_->ConfigureContext(context);
104+
if (!status.ok()) return status;
105+
return child_->UpdateRun(context, request);
106+
}
107+
108+
StatusOr<google::cloud::datacatalog::lineage::v1::Run> LineageAuth::GetRun(
109+
grpc::ClientContext& context,
110+
google::cloud::datacatalog::lineage::v1::GetRunRequest const& request) {
111+
auto status = auth_->ConfigureContext(context);
112+
if (!status.ok()) return status;
113+
return child_->GetRun(context, request);
114+
}
115+
116+
StatusOr<google::cloud::datacatalog::lineage::v1::ListRunsResponse>
117+
LineageAuth::ListRuns(
118+
grpc::ClientContext& context,
119+
google::cloud::datacatalog::lineage::v1::ListRunsRequest const& request) {
120+
auto status = auth_->ConfigureContext(context);
121+
if (!status.ok()) return status;
122+
return child_->ListRuns(context, request);
123+
}
124+
125+
future<StatusOr<google::longrunning::Operation>> LineageAuth::AsyncDeleteRun(
126+
google::cloud::CompletionQueue& cq,
127+
std::unique_ptr<grpc::ClientContext> context,
128+
google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request) {
129+
using ReturnType = StatusOr<google::longrunning::Operation>;
130+
auto& child = child_;
131+
return auth_->AsyncConfigureContext(std::move(context))
132+
.then([cq, child,
133+
request](future<StatusOr<std::unique_ptr<grpc::ClientContext>>>
134+
f) mutable {
135+
auto context = f.get();
136+
if (!context) {
137+
return make_ready_future(ReturnType(std::move(context).status()));
138+
}
139+
return child->AsyncDeleteRun(cq, *std::move(context), request);
140+
});
141+
}
142+
143+
StatusOr<google::cloud::datacatalog::lineage::v1::LineageEvent>
144+
LineageAuth::CreateLineageEvent(
145+
grpc::ClientContext& context,
146+
google::cloud::datacatalog::lineage::v1::CreateLineageEventRequest const&
147+
request) {
148+
auto status = auth_->ConfigureContext(context);
149+
if (!status.ok()) return status;
150+
return child_->CreateLineageEvent(context, request);
151+
}
152+
153+
StatusOr<google::cloud::datacatalog::lineage::v1::LineageEvent>
154+
LineageAuth::GetLineageEvent(
155+
grpc::ClientContext& context,
156+
google::cloud::datacatalog::lineage::v1::GetLineageEventRequest const&
157+
request) {
158+
auto status = auth_->ConfigureContext(context);
159+
if (!status.ok()) return status;
160+
return child_->GetLineageEvent(context, request);
161+
}
162+
163+
StatusOr<google::cloud::datacatalog::lineage::v1::ListLineageEventsResponse>
164+
LineageAuth::ListLineageEvents(
165+
grpc::ClientContext& context,
166+
google::cloud::datacatalog::lineage::v1::ListLineageEventsRequest const&
167+
request) {
168+
auto status = auth_->ConfigureContext(context);
169+
if (!status.ok()) return status;
170+
return child_->ListLineageEvents(context, request);
171+
}
172+
173+
Status LineageAuth::DeleteLineageEvent(
174+
grpc::ClientContext& context,
175+
google::cloud::datacatalog::lineage::v1::DeleteLineageEventRequest const&
176+
request) {
177+
auto status = auth_->ConfigureContext(context);
178+
if (!status.ok()) return status;
179+
return child_->DeleteLineageEvent(context, request);
180+
}
181+
182+
StatusOr<google::cloud::datacatalog::lineage::v1::SearchLinksResponse>
183+
LineageAuth::SearchLinks(
184+
grpc::ClientContext& context,
185+
google::cloud::datacatalog::lineage::v1::SearchLinksRequest const&
186+
request) {
187+
auto status = auth_->ConfigureContext(context);
188+
if (!status.ok()) return status;
189+
return child_->SearchLinks(context, request);
190+
}
191+
192+
StatusOr<
193+
google::cloud::datacatalog::lineage::v1::BatchSearchLinkProcessesResponse>
194+
LineageAuth::BatchSearchLinkProcesses(
195+
grpc::ClientContext& context,
196+
google::cloud::datacatalog::lineage::v1::
197+
BatchSearchLinkProcessesRequest const& request) {
198+
auto status = auth_->ConfigureContext(context);
199+
if (!status.ok()) return status;
200+
return child_->BatchSearchLinkProcesses(context, request);
201+
}
202+
203+
future<StatusOr<google::longrunning::Operation>> LineageAuth::AsyncGetOperation(
204+
google::cloud::CompletionQueue& cq,
205+
std::unique_ptr<grpc::ClientContext> context,
206+
google::longrunning::GetOperationRequest const& request) {
207+
using ReturnType = StatusOr<google::longrunning::Operation>;
208+
auto& child = child_;
209+
return auth_->AsyncConfigureContext(std::move(context))
210+
.then([cq, child,
211+
request](future<StatusOr<std::unique_ptr<grpc::ClientContext>>>
212+
f) mutable {
213+
auto context = f.get();
214+
if (!context) {
215+
return make_ready_future(ReturnType(std::move(context).status()));
216+
}
217+
return child->AsyncGetOperation(cq, *std::move(context), request);
218+
});
219+
}
220+
221+
future<Status> LineageAuth::AsyncCancelOperation(
222+
google::cloud::CompletionQueue& cq,
223+
std::unique_ptr<grpc::ClientContext> context,
224+
google::longrunning::CancelOperationRequest const& request) {
225+
auto& child = child_;
226+
return auth_->AsyncConfigureContext(std::move(context))
227+
.then([cq, child,
228+
request](future<StatusOr<std::unique_ptr<grpc::ClientContext>>>
229+
f) mutable {
230+
auto context = f.get();
231+
if (!context) return make_ready_future(std::move(context).status());
232+
return child->AsyncCancelOperation(cq, *std::move(context), request);
233+
});
234+
}
235+
236+
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
237+
} // namespace datacatalog_lineage_v1_internal
238+
} // namespace cloud
239+
} // namespace google

0 commit comments

Comments
 (0)