Skip to content

Commit c902732

Browse files
authored
feat(bigquery): add support for datapolicies v2 (#15284)
1 parent 97da81c commit c902732

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+4163
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ the APIs in these libraries are stable, and are ready for production use.
1515

1616
### Updated Libraries
1717

18+
- [BigQuery](/google/cloud/bigquery/README.md) - added support for datapolicies/v2
1819
- [ManagedKafka](/google/cloud/managedkafka/README.md) - add schemaregistry to the library
1920

2021
## v2.39.0 - 2025-07
-124 KB
Binary file not shown.

ci/etc/expected_install_directories

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@
131131
./include/google/cloud/bigquery/datapolicies/v1
132132
./include/google/cloud/bigquery/datapolicies/v1/internal
133133
./include/google/cloud/bigquery/datapolicies/v1/mocks
134+
./include/google/cloud/bigquery/datapolicies/v2
135+
./include/google/cloud/bigquery/datapolicies/v2/internal
136+
./include/google/cloud/bigquery/datapolicies/v2/mocks
134137
./include/google/cloud/bigquery/datatransfer
135138
./include/google/cloud/bigquery/datatransfer/v1
136139
./include/google/cloud/bigquery/datatransfer/v1/internal

external/googleapis/protolists/bigquery.list

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
@com_google_googleapis//google/cloud/bigquery/biglake/v1:metastore.proto
44
@com_google_googleapis//google/cloud/bigquery/connection/v1:connection.proto
55
@com_google_googleapis//google/cloud/bigquery/datapolicies/v1:datapolicy.proto
6+
@com_google_googleapis//google/cloud/bigquery/datapolicies/v2:datapolicy.proto
67
@com_google_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer.proto
78
@com_google_googleapis//google/cloud/bigquery/datatransfer/v1:transfer.proto
89
@com_google_googleapis//google/cloud/bigquery/logging/v1:audit_data.proto

external/googleapis/update_libraries.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ declare -A -r LIBRARIES=(
6767
"@com_google_googleapis//google/cloud/bigquery/biglake/v1:biglake_cc_grpc" \
6868
"@com_google_googleapis//google/cloud/bigquery/connection/v1:connection_cc_grpc" \
6969
"@com_google_googleapis//google/cloud/bigquery/datapolicies/v1:datapolicies_cc_grpc" \
70+
"@com_google_googleapis//google/cloud/bigquery/datapolicies/v2:datapolicies_cc_grpc" \
7071
"@com_google_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_cc_grpc" \
7172
"@com_google_googleapis//google/cloud/bigquery/logging/v1:logging_cc_grpc" \
7273
"@com_google_googleapis//google/cloud/bigquery/migration/v2:migration_cc_grpc" \

generator/generator_config.textproto

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,13 @@ service {
444444
retryable_status_codes: ["kUnavailable"]
445445
}
446446

447+
service {
448+
service_proto_path: "google/cloud/bigquery/datapolicies/v2/datapolicy.proto"
449+
product_path: "google/cloud/bigquery/datapolicies/v2"
450+
initial_copyright_year: "2025"
451+
retryable_status_codes: ["kUnavailable"]
452+
}
453+
447454
service {
448455
service_proto_path: "google/cloud/bigquery/datatransfer/v1/datatransfer.proto"
449456
product_path: "google/cloud/bigquery/datatransfer/v1"

google/cloud/bigquery/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ service_dirs = [
2828
"analyticshub/v1/",
2929
"connection/v1/",
3030
"datapolicies/v1/",
31+
"datapolicies/v2/",
3132
"datatransfer/v1/",
3233
"migration/v2/",
3334
"reservation/v1/",
@@ -41,6 +42,7 @@ googleapis_deps = [
4142
"@com_google_googleapis//google/cloud/bigquery/biglake/v1:biglake_cc_grpc",
4243
"@com_google_googleapis//google/cloud/bigquery/connection/v1:connection_cc_grpc",
4344
"@com_google_googleapis//google/cloud/bigquery/datapolicies/v1:datapolicies_cc_grpc",
45+
"@com_google_googleapis//google/cloud/bigquery/datapolicies/v2:datapolicies_cc_grpc",
4446
"@com_google_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_cc_grpc",
4547
"@com_google_googleapis//google/cloud/bigquery/logging/v1:logging_cc_grpc",
4648
"@com_google_googleapis//google/cloud/bigquery/migration/v2:migration_cc_grpc",

google/cloud/bigquery/bigquery_grpc.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ google_cloud_cpp_add_gapic_library(
2424
"biglake/v1/"
2525
"connection/v1/"
2626
"datapolicies/v1/"
27+
"datapolicies/v2/"
2728
"datatransfer/v1/"
2829
"migration/v2/"
2930
"reservation/v1/"
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"api_id": "bigquerydatapolicy.googleapis.com",
3+
"api_shortname": "bigquerydatapolicy",
4+
"client_documentation": "https://cloud.google.com/cpp/docs/reference/bigquery/latest",
5+
"distribution_name": "google-cloud-cpp",
6+
"issue_tracker": "https://issuetracker.google.com/issues?q=componentid:187149%20status=open",
7+
"language": "cpp",
8+
"library_type": "GAPIC_AUTO",
9+
"name_pretty": "BigQuery Data Policy API",
10+
"product_documentation": "https://cloud.google.com/bigquery/docs/column-data-masking-intro",
11+
"release_level": "stable",
12+
"repo": "googleapis/google-cloud-cpp",
13+
"requires_billing": true
14+
}
Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
// Copyright 2025 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/bigquery/datapolicies/v2/datapolicy.proto
18+
19+
#include "google/cloud/bigquery/datapolicies/v2/data_policy_client.h"
20+
#include <memory>
21+
#include <utility>
22+
23+
namespace google {
24+
namespace cloud {
25+
namespace bigquery_datapolicies_v2 {
26+
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
27+
28+
DataPolicyServiceClient::DataPolicyServiceClient(
29+
std::shared_ptr<DataPolicyServiceConnection> connection, Options opts)
30+
: connection_(std::move(connection)),
31+
options_(
32+
internal::MergeOptions(std::move(opts), connection_->options())) {}
33+
DataPolicyServiceClient::~DataPolicyServiceClient() = default;
34+
35+
StatusOr<google::cloud::bigquery::datapolicies::v2::DataPolicy>
36+
DataPolicyServiceClient::CreateDataPolicy(
37+
std::string const& parent,
38+
google::cloud::bigquery::datapolicies::v2::DataPolicy const& data_policy,
39+
std::string const& data_policy_id, Options opts) {
40+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
41+
google::cloud::bigquery::datapolicies::v2::CreateDataPolicyRequest request;
42+
request.set_parent(parent);
43+
*request.mutable_data_policy() = data_policy;
44+
request.set_data_policy_id(data_policy_id);
45+
return connection_->CreateDataPolicy(request);
46+
}
47+
48+
StatusOr<google::cloud::bigquery::datapolicies::v2::DataPolicy>
49+
DataPolicyServiceClient::CreateDataPolicy(
50+
google::cloud::bigquery::datapolicies::v2::CreateDataPolicyRequest const&
51+
request,
52+
Options opts) {
53+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
54+
return connection_->CreateDataPolicy(request);
55+
}
56+
57+
StatusOr<google::cloud::bigquery::datapolicies::v2::DataPolicy>
58+
DataPolicyServiceClient::AddGrantees(std::string const& data_policy,
59+
std::vector<std::string> const& grantees,
60+
Options opts) {
61+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
62+
google::cloud::bigquery::datapolicies::v2::AddGranteesRequest request;
63+
request.set_data_policy(data_policy);
64+
*request.mutable_grantees() = {grantees.begin(), grantees.end()};
65+
return connection_->AddGrantees(request);
66+
}
67+
68+
StatusOr<google::cloud::bigquery::datapolicies::v2::DataPolicy>
69+
DataPolicyServiceClient::AddGrantees(
70+
google::cloud::bigquery::datapolicies::v2::AddGranteesRequest const&
71+
request,
72+
Options opts) {
73+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
74+
return connection_->AddGrantees(request);
75+
}
76+
77+
StatusOr<google::cloud::bigquery::datapolicies::v2::DataPolicy>
78+
DataPolicyServiceClient::RemoveGrantees(
79+
std::string const& data_policy, std::vector<std::string> const& grantees,
80+
Options opts) {
81+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
82+
google::cloud::bigquery::datapolicies::v2::RemoveGranteesRequest request;
83+
request.set_data_policy(data_policy);
84+
*request.mutable_grantees() = {grantees.begin(), grantees.end()};
85+
return connection_->RemoveGrantees(request);
86+
}
87+
88+
StatusOr<google::cloud::bigquery::datapolicies::v2::DataPolicy>
89+
DataPolicyServiceClient::RemoveGrantees(
90+
google::cloud::bigquery::datapolicies::v2::RemoveGranteesRequest const&
91+
request,
92+
Options opts) {
93+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
94+
return connection_->RemoveGrantees(request);
95+
}
96+
97+
StatusOr<google::cloud::bigquery::datapolicies::v2::DataPolicy>
98+
DataPolicyServiceClient::UpdateDataPolicy(
99+
google::cloud::bigquery::datapolicies::v2::DataPolicy const& data_policy,
100+
google::protobuf::FieldMask const& update_mask, Options opts) {
101+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
102+
google::cloud::bigquery::datapolicies::v2::UpdateDataPolicyRequest request;
103+
*request.mutable_data_policy() = data_policy;
104+
*request.mutable_update_mask() = update_mask;
105+
return connection_->UpdateDataPolicy(request);
106+
}
107+
108+
StatusOr<google::cloud::bigquery::datapolicies::v2::DataPolicy>
109+
DataPolicyServiceClient::UpdateDataPolicy(
110+
google::cloud::bigquery::datapolicies::v2::UpdateDataPolicyRequest const&
111+
request,
112+
Options opts) {
113+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
114+
return connection_->UpdateDataPolicy(request);
115+
}
116+
117+
Status DataPolicyServiceClient::DeleteDataPolicy(std::string const& name,
118+
Options opts) {
119+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
120+
google::cloud::bigquery::datapolicies::v2::DeleteDataPolicyRequest request;
121+
request.set_name(name);
122+
return connection_->DeleteDataPolicy(request);
123+
}
124+
125+
Status DataPolicyServiceClient::DeleteDataPolicy(
126+
google::cloud::bigquery::datapolicies::v2::DeleteDataPolicyRequest const&
127+
request,
128+
Options opts) {
129+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
130+
return connection_->DeleteDataPolicy(request);
131+
}
132+
133+
StatusOr<google::cloud::bigquery::datapolicies::v2::DataPolicy>
134+
DataPolicyServiceClient::GetDataPolicy(std::string const& name, Options opts) {
135+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
136+
google::cloud::bigquery::datapolicies::v2::GetDataPolicyRequest request;
137+
request.set_name(name);
138+
return connection_->GetDataPolicy(request);
139+
}
140+
141+
StatusOr<google::cloud::bigquery::datapolicies::v2::DataPolicy>
142+
DataPolicyServiceClient::GetDataPolicy(
143+
google::cloud::bigquery::datapolicies::v2::GetDataPolicyRequest const&
144+
request,
145+
Options opts) {
146+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
147+
return connection_->GetDataPolicy(request);
148+
}
149+
150+
StreamRange<google::cloud::bigquery::datapolicies::v2::DataPolicy>
151+
DataPolicyServiceClient::ListDataPolicies(std::string const& parent,
152+
Options opts) {
153+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
154+
google::cloud::bigquery::datapolicies::v2::ListDataPoliciesRequest request;
155+
request.set_parent(parent);
156+
return connection_->ListDataPolicies(request);
157+
}
158+
159+
StreamRange<google::cloud::bigquery::datapolicies::v2::DataPolicy>
160+
DataPolicyServiceClient::ListDataPolicies(
161+
google::cloud::bigquery::datapolicies::v2::ListDataPoliciesRequest request,
162+
Options opts) {
163+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
164+
return connection_->ListDataPolicies(std::move(request));
165+
}
166+
167+
StatusOr<google::iam::v1::Policy> DataPolicyServiceClient::GetIamPolicy(
168+
google::iam::v1::GetIamPolicyRequest const& request, Options opts) {
169+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
170+
return connection_->GetIamPolicy(request);
171+
}
172+
173+
StatusOr<google::iam::v1::Policy> DataPolicyServiceClient::SetIamPolicy(
174+
google::iam::v1::SetIamPolicyRequest const& request, Options opts) {
175+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
176+
return connection_->SetIamPolicy(request);
177+
}
178+
179+
StatusOr<google::iam::v1::TestIamPermissionsResponse>
180+
DataPolicyServiceClient::TestIamPermissions(
181+
google::iam::v1::TestIamPermissionsRequest const& request, Options opts) {
182+
internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_));
183+
return connection_->TestIamPermissions(request);
184+
}
185+
186+
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
187+
} // namespace bigquery_datapolicies_v2
188+
} // namespace cloud
189+
} // namespace google

0 commit comments

Comments
 (0)