Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ for details on updating existing applications using v1.x.y or v2.x.y.

## v3.4.0 - TBD

### [Data Catalog](/google/cloud/datacatalog/README.md)

- Added Data Lineage Config Management library.

## v3.3.0 - 2026-03

### New Libraries
Expand Down
Binary file modified ci/abi-dumps/google_cloud_cpp_datacatalog.expected.abi.dump.gz
Binary file not shown.
4 changes: 4 additions & 0 deletions ci/etc/expected_install_directories
Original file line number Diff line number Diff line change
Expand Up @@ -669,6 +669,10 @@
./include/google/cloud/contentwarehouse/v1/mocks
./include/google/cloud/datacatalog
./include/google/cloud/datacatalog/lineage
./include/google/cloud/datacatalog/lineage/configmanagement
./include/google/cloud/datacatalog/lineage/configmanagement/v1
./include/google/cloud/datacatalog/lineage/configmanagement/v1/internal
./include/google/cloud/datacatalog/lineage/configmanagement/v1/mocks
./include/google/cloud/datacatalog/lineage/v1
./include/google/cloud/datacatalog/lineage/v1/internal
./include/google/cloud/datacatalog/lineage/v1/mocks
Expand Down
1 change: 1 addition & 0 deletions external/googleapis/protolists/datacatalog.list
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
@googleapis//google/cloud/datacatalog/lineage/configmanagement/v1:configmanagement.proto
@googleapis//google/cloud/datacatalog/lineage/v1:lineage.proto
@googleapis//google/cloud/datacatalog/v1:bigquery.proto
@googleapis//google/cloud/datacatalog/v1:common.proto
Expand Down
3 changes: 2 additions & 1 deletion external/googleapis/update_libraries.sh
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,8 @@ declare -A -r LIBRARIES=(
["datacatalog"]="$(
printf ",%s" \
"@googleapis//google/cloud/datacatalog/v1:datacatalog_cc_grpc" \
"@googleapis//google/cloud/datacatalog/lineage/v1:lineage_cc_grpc"
"@googleapis//google/cloud/datacatalog/lineage/v1:lineage_cc_grpc" \
"@googleapis//google/cloud/datacatalog/lineage/configmanagement/v1:configmanagement_cc_grpc"
)"
["dataform"]="$(
printf ",%s" \
Expand Down
14 changes: 14 additions & 0 deletions generator/generator_config.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -1934,6 +1934,20 @@ service {
retryable_status_codes: ["kUnavailable"]
}

service {
service_proto_path: "google/cloud/datacatalog/lineage/v1/lineage.proto"
product_path: "google/cloud/datacatalog/lineage/v1"
initial_copyright_year: "2023"
retryable_status_codes: ["kUnavailable"]
}

service {
service_proto_path: "google/cloud/datacatalog/lineage/configmanagement/v1/configmanagement.proto"
product_path: "google/cloud/datacatalog/lineage/configmanagement/v1"
initial_copyright_year: "2026"
retryable_status_codes: ["kUnavailable"]
}

# Database Migration
service {
service_proto_path: "google/cloud/clouddms/v1/clouddms.proto"
Expand Down
2 changes: 2 additions & 0 deletions google/cloud/datacatalog/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@ package(default_visibility = ["//visibility:private"])
licenses(["notice"]) # Apache 2.0

service_dirs = [
"lineage/configmanagement/v1/",
"lineage/v1/",
"v1/",
]

googleapis_deps = [
"@googleapis//google/cloud/datacatalog/lineage/configmanagement/v1:configmanagement_cc_grpc",
"@googleapis//google/cloud/datacatalog/lineage/v1:lineage_cc_grpc",
"@googleapis//google/cloud/datacatalog/v1:datacatalog_cc_grpc",
]
Expand Down
5 changes: 3 additions & 2 deletions google/cloud/datacatalog/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@

include(GoogleCloudCppLibrary)

google_cloud_cpp_add_gapic_library(datacatalog "Google Cloud Data Catalog API"
SERVICE_DIRS "lineage/v1/" "v1/")
google_cloud_cpp_add_gapic_library(
datacatalog "Google Cloud Data Catalog API"
SERVICE_DIRS "lineage/configmanagement/v1/" "lineage/v1/" "v1/")

if (BUILD_TESTING AND GOOGLE_CLOUD_CPP_ENABLE_CXX_EXCEPTIONS)
add_executable(datacatalog_quickstart "quickstart/quickstart.cc")
Expand Down
4 changes: 4 additions & 0 deletions google/cloud/datacatalog/doc/environment-variables.dox
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ environment variables are convenient when troubleshooting problems.

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

- `GOOGLE_CLOUD_CPP_CONFIG_MANAGEMENT_SERVICE_ENDPOINT=...` overrides the
`EndpointOption` (which defaults to "datalineage.googleapis.com")
used by `MakeConfigManagementServiceConnection()`.

- `GOOGLE_CLOUD_CPP_DATA_CATALOG_ENDPOINT=...` overrides the
`EndpointOption` (which defaults to "datacatalog.googleapis.com")
used by `MakeDataCatalogConnection()`.
Expand Down
1 change: 1 addition & 0 deletions google/cloud/datacatalog/doc/main.dox
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ The library also has other classes that provide helpers, configuration
parameters, and infrastructure to mock the `*Client` classes when testing your
application.

- [\c datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient](@ref google::cloud::datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient)
- [\c datacatalog_lineage_v1::LineageClient](@ref google::cloud::datacatalog_lineage_v1::LineageClient)
- [\c datacatalog_v1::DataCatalogClient](@ref google::cloud::datacatalog_v1::DataCatalogClient)
- [\c datacatalog_v1::PolicyTagManagerClient](@ref google::cloud::datacatalog_v1::PolicyTagManagerClient)
Expand Down
9 changes: 8 additions & 1 deletion google/cloud/datacatalog/doc/override-authentication.dox
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@ this default. You can do so by providing the
The following example shows how to explicitly load a service account key file:

<!-- inject-service-account-snippet-start -->
@snippet lineage_client_samples.cc with-service-account
@snippet config_management_client_samples.cc with-service-account

Follow these links to find examples for other \c *Client classes:

- [\c datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient](@ref datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient-service-account-snippet)
- [\c datacatalog_lineage_v1::LineageClient](@ref datacatalog_lineage_v1::LineageClient-service-account-snippet)
- [\c datacatalog_v1::DataCatalogClient](@ref datacatalog_v1::DataCatalogClient-service-account-snippet)
- [\c datacatalog_v1::PolicyTagManagerClient](@ref datacatalog_v1::PolicyTagManagerClient-service-account-snippet)
Expand All @@ -34,6 +35,12 @@ guide for more details.

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

/*! @page datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient-service-account-snippet Override datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient Authentication Defaults

@snippet google/cloud/datacatalog/lineage/configmanagement/v1/samples/config_management_client_samples.cc with-service-account

*/

/*! @page datacatalog_lineage_v1::LineageClient-service-account-snippet Override datacatalog_lineage_v1::LineageClient Authentication Defaults

@snippet google/cloud/datacatalog/lineage/v1/samples/lineage_client_samples.cc with-service-account
Expand Down
11 changes: 9 additions & 2 deletions google/cloud/datacatalog/doc/override-endpoint.dox
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@ library. Use the
client library to change this default.

<!-- inject-endpoint-snippet-start -->
For example, this will override the default endpoint for `datacatalog_lineage_v1::LineageClient`:
For example, this will override the default endpoint for `datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient`:

@snippet lineage_client_samples.cc set-client-endpoint
@snippet config_management_client_samples.cc set-client-endpoint

Follow these links to find examples for other \c *Client classes:

- [\c datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient](@ref datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient-endpoint-snippet)
- [\c datacatalog_lineage_v1::LineageClient](@ref datacatalog_lineage_v1::LineageClient-endpoint-snippet)
- [\c datacatalog_v1::DataCatalogClient](@ref datacatalog_v1::DataCatalogClient-endpoint-snippet)
- [\c datacatalog_v1::PolicyTagManagerClient](@ref datacatalog_v1::PolicyTagManagerClient-endpoint-snippet)
Expand All @@ -24,6 +25,12 @@ Follow these links to find examples for other \c *Client classes:

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

/*! @page datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient-endpoint-snippet Override datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient Endpoint Configuration

@snippet google/cloud/datacatalog/lineage/configmanagement/v1/samples/config_management_client_samples.cc set-client-endpoint

*/

/*! @page datacatalog_lineage_v1::LineageClient-endpoint-snippet Override datacatalog_lineage_v1::LineageClient Endpoint Configuration

@snippet google/cloud/datacatalog/lineage/v1/samples/lineage_client_samples.cc set-client-endpoint
Expand Down
23 changes: 16 additions & 7 deletions google/cloud/datacatalog/doc/override-retry-policies.dox
Original file line number Diff line number Diff line change
Expand Up @@ -67,21 +67,18 @@ will use `FooBarIdempotencyPolicy`. This policy is very conservative.
@section datacatalog-override-retry-example Example

<!-- inject-retry-snippet-start -->
For example, this will override the retry policies for `datacatalog_lineage_v1::LineageClient`:
For example, this will override the retry policies for `datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient`:

@snippet lineage_client_samples.cc set-retry-policy
@snippet config_management_client_samples.cc set-retry-policy

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

@snippet lineage_client_samples.cc custom-idempotency-policy

This will override the polling policies for `datacatalog_lineage_v1::LineageClient`

@snippet lineage_client_samples.cc set-polling-policy
@snippet config_management_client_samples.cc custom-idempotency-policy


Follow these links to find examples for other \c *Client classes:

- [\c datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient](@ref datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient-retry-snippet)
- [\c datacatalog_lineage_v1::LineageClient](@ref datacatalog_lineage_v1::LineageClient-retry-snippet)
- [\c datacatalog_v1::DataCatalogClient](@ref datacatalog_v1::DataCatalogClient-retry-snippet)
- [\c datacatalog_v1::PolicyTagManagerClient](@ref datacatalog_v1::PolicyTagManagerClient-retry-snippet)
Expand All @@ -101,6 +98,18 @@ Follow these links to find examples for other \c *Client classes:

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

/*! @page datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient-retry-snippet Override datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient Retry Policies

This shows how to override the retry policies for datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient:

@snippet google/cloud/datacatalog/lineage/configmanagement/v1/samples/config_management_client_samples.cc set-retry-policy

Assuming you have created a custom idempotency policy. Such as:

@snippet google/cloud/datacatalog/lineage/configmanagement/v1/samples/config_management_client_samples.cc custom-idempotency-policy

*/

/*! @page datacatalog_lineage_v1::LineageClient-retry-snippet Override datacatalog_lineage_v1::LineageClient Retry Policies

This shows how to override the retry policies for datacatalog_lineage_v1::LineageClient:
Expand Down
11 changes: 9 additions & 2 deletions google/cloud/datacatalog/doc/override-universe-domain.dox
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ client library. Use `AddUniverseDomainOption` when initializing the client
library to change this default.

<!-- inject-universe-domain-snippet-start -->
For example, this will override the default universe domain for `datacatalog_lineage_v1::LineageClient`:
For example, this will override the default universe domain for `datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient`:

@snippet lineage_client_samples.cc set-client-universe-domain
@snippet config_management_client_samples.cc set-client-universe-domain

Follow these links to find examples for other \c *Client classes:

- [\c datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient](@ref datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient-universe-domain-snippet)
- [\c datacatalog_lineage_v1::LineageClient](@ref datacatalog_lineage_v1::LineageClient-universe-domain-snippet)
- [\c datacatalog_v1::DataCatalogClient](@ref datacatalog_v1::DataCatalogClient-universe-domain-snippet)
- [\c datacatalog_v1::PolicyTagManagerClient](@ref datacatalog_v1::PolicyTagManagerClient-universe-domain-snippet)
Expand All @@ -23,6 +24,12 @@ Follow these links to find examples for other \c *Client classes:

// <!-- inject-universe-domain-pages-start -->

/*! @page datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient-universe-domain-snippet Override datacatalog_lineage_configmanagement_v1::ConfigManagementServiceClient Universe Domain

@snippet google/cloud/datacatalog/lineage/configmanagement/v1/samples/config_management_client_samples.cc set-client-universe-domain

*/

/*! @page datacatalog_lineage_v1::LineageClient-universe-domain-snippet Override datacatalog_lineage_v1::LineageClient Universe Domain

@snippet google/cloud/datacatalog/lineage/v1/samples/lineage_client_samples.cc set-client-universe-domain
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"api_id": "datalineage.googleapis.com",
"api_shortname": "datalineage",
"client_documentation": "https://cloud.google.com/cpp/docs/reference/datacatalog/latest",
"distribution_name": "google-cloud-cpp",
"issue_tracker": "https://issuetracker.google.com/issues?q=componentid:1530027%20status=open",
"language": "cpp",
"library_type": "GAPIC_AUTO",
"name_pretty": "Data Lineage API",
"product_documentation": "https://cloud.google.com/dataplex/docs/about-data-lineage",
"release_level": "stable",
"repo": "googleapis/google-cloud-cpp",
"requires_billing": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Generated by the Codegen C++ plugin.
// If you make any local changes, they will be lost.
// source:
// google/cloud/datacatalog/lineage/configmanagement/v1/configmanagement.proto

#include "google/cloud/datacatalog/lineage/configmanagement/v1/config_management_client.h"
#include <memory>
#include <utility>

namespace google {
namespace cloud {
namespace datacatalog_lineage_configmanagement_v1 {
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN

ConfigManagementServiceClient::ConfigManagementServiceClient(
std::shared_ptr<ConfigManagementServiceConnection> connection, Options opts)
: connection_(std::move(connection)),
options_(
internal::MergeOptions(std::move(opts), connection_->options())) {}
ConfigManagementServiceClient::~ConfigManagementServiceClient() = default;

StatusOr<google::cloud::datacatalog::lineage::configmanagement::v1::Config>
ConfigManagementServiceClient::GetConfig(std::string const& name,
Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
google::cloud::datacatalog::lineage::configmanagement::v1::GetConfigRequest
request;
request.set_name(name);
return connection_->GetConfig(request);
}

StatusOr<google::cloud::datacatalog::lineage::configmanagement::v1::Config>
ConfigManagementServiceClient::GetConfig(
google::cloud::datacatalog::lineage::configmanagement::v1::
GetConfigRequest const& request,
Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
return connection_->GetConfig(request);
}

StatusOr<google::cloud::datacatalog::lineage::configmanagement::v1::Config>
ConfigManagementServiceClient::UpdateConfig(
google::cloud::datacatalog::lineage::configmanagement::v1::Config const&
config,
Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
google::cloud::datacatalog::lineage::configmanagement::v1::UpdateConfigRequest
request;
*request.mutable_config() = config;
return connection_->UpdateConfig(request);
}

StatusOr<google::cloud::datacatalog::lineage::configmanagement::v1::Config>
ConfigManagementServiceClient::UpdateConfig(
google::cloud::datacatalog::lineage::configmanagement::v1::
UpdateConfigRequest const& request,
Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
return connection_->UpdateConfig(request);
}

StreamRange<google::longrunning::Operation>
ConfigManagementServiceClient::ListOperations(std::string const& name,
std::string const& filter,
Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
google::longrunning::ListOperationsRequest request;
request.set_name(name);
request.set_filter(filter);
return connection_->ListOperations(request);
}

StreamRange<google::longrunning::Operation>
ConfigManagementServiceClient::ListOperations(
google::longrunning::ListOperationsRequest request, Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
return connection_->ListOperations(std::move(request));
}

StatusOr<google::longrunning::Operation>
ConfigManagementServiceClient::GetOperation(std::string const& name,
Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
google::longrunning::GetOperationRequest request;
request.set_name(name);
return connection_->GetOperation(request);
}

StatusOr<google::longrunning::Operation>
ConfigManagementServiceClient::GetOperation(
google::longrunning::GetOperationRequest const& request, Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
return connection_->GetOperation(request);
}

Status ConfigManagementServiceClient::DeleteOperation(std::string const& name,
Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
google::longrunning::DeleteOperationRequest request;
request.set_name(name);
return connection_->DeleteOperation(request);
}

Status ConfigManagementServiceClient::DeleteOperation(
google::longrunning::DeleteOperationRequest const& request, Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
return connection_->DeleteOperation(request);
}

Status ConfigManagementServiceClient::CancelOperation(std::string const& name,
Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
google::longrunning::CancelOperationRequest request;
request.set_name(name);
return connection_->CancelOperation(request);
}

Status ConfigManagementServiceClient::CancelOperation(
google::longrunning::CancelOperationRequest const& request, Options opts) {
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
return connection_->CancelOperation(request);
}

GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
} // namespace datacatalog_lineage_configmanagement_v1
} // namespace cloud
} // namespace google
Loading
Loading