Skip to content

Commit d8b3b50

Browse files
authored
feat(sql): generate library (#11296)
1 parent 2e574a9 commit d8b3b50

257 files changed

Lines changed: 21027 additions & 2 deletions

File tree

Some content is hidden

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

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ the APIs in these libraries are stable, and are ready for production use.
129129
- [ConfidentialComputing API](/google/cloud/confidentialcomputing/README.md)
130130
- [Workstations API](/google/cloud/workstations/README.md)
131131

132+
The following experimental libraries are now available:
133+
134+
- [Cloud SQL Admin API](/google/cloud/sql/README.md)
135+
132136
### [Service Control](/google/cloud/servicecontrol/README.md)
133137

134138
The library has been expanded to include the v2 service.

ci/etc/expected_install_directories

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,10 @@
534534
./include/google/cloud/speech/v2
535535
./include/google/cloud/speech/v2/internal
536536
./include/google/cloud/speech/v2/mocks
537+
./include/google/cloud/sql
538+
./include/google/cloud/sql/v1
539+
./include/google/cloud/sql/v1/internal
540+
./include/google/cloud/sql/v1/mocks
537541
./include/google/cloud/storage
538542
./include/google/cloud/storage/internal
539543
./include/google/cloud/storagetransfer
@@ -774,6 +778,7 @@
774778
./lib64/cmake/google_cloud_cpp_shell
775779
./lib64/cmake/google_cloud_cpp_spanner
776780
./lib64/cmake/google_cloud_cpp_speech
781+
./lib64/cmake/google_cloud_cpp_sql
777782
./lib64/cmake/google_cloud_cpp_storage
778783
./lib64/cmake/google_cloud_cpp_storagetransfer
779784
./lib64/cmake/google_cloud_cpp_talent

ci/etc/full_feature_list

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ serviceusage
8282
shell
8383
spanner
8484
speech
85+
sql
8586
storage
8687
storagetransfer
8788
talent

ci/verify_current_targets/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ set(ga_libraries
3636
# Define experimental libraries. The only difference is the name of the CMake
3737
# targets.
3838
set(experimental_libraries # cmake-format: sortable
39-
bigquery_rest opentelemetry_sdk)
39+
bigquery_rest opentelemetry_sdk sql)
4040

4141
# CMake can use pkg-config to find dependencies. We recommend using CMake
4242
# targets, but we want to verify our pkg-config files remain usable and

cmake/GoogleCloudCppFeatures.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ set(GOOGLE_CLOUD_CPP_LEGACY_FEATURES
2525

2626
set(GOOGLE_CLOUD_CPP_EXPERIMENTAL_LIBRARIES # cmake-format: sorted
2727
# This is WIP, it needs a number of hand-crafted APIs.
28-
"pubsublite")
28+
"pubsublite" "sql")
2929

3030
set(GOOGLE_CLOUD_CPP_TRANSITION_LIBRARIES # cmake-format: sorted
3131
# Transitioned circa 2023-02-22
@@ -209,6 +209,7 @@ function (google_cloud_cpp_enable_cleanup)
209209
set(GOOGLE_CLOUD_CPP_ENABLE_REST OFF)
210210
if ((storage IN_LIST GOOGLE_CLOUD_CPP_ENABLE)
211211
OR (experimental-bigquery_rest IN_LIST GOOGLE_CLOUD_CPP_ENABLE)
212+
OR (sql IN_LIST GOOGLE_CLOUD_CPP_ENABLE)
212213
OR (generator IN_LIST GOOGLE_CLOUD_CPP_ENABLE))
213214
set(GOOGLE_CLOUD_CPP_ENABLE_REST ON)
214215
endif ()
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@com_google_googleapis//google/api:annotations_proto
2+
@com_google_googleapis//google/api:client_proto
3+
@com_google_googleapis//google/api:field_behavior_proto
4+
@com_google_googleapis//google/api:http_proto
5+
@com_google_googleapis//google/api:launch_stage_proto
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_backup_runs.proto
2+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_connect.proto
3+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_databases.proto
4+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_flags.proto
5+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_instance_names.proto
6+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_instances.proto
7+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_operations.proto
8+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_resources.proto
9+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_ssl_certs.proto
10+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_tiers.proto
11+
@com_google_googleapis//google/cloud/sql/v1:cloud_sql_users.proto

external/googleapis/update_libraries.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ declare -A -r LIBRARIES=(
216216
"@com_google_googleapis//google/cloud/speech/v1:speech_cc_grpc" \
217217
"@com_google_googleapis//google/cloud/speech/v2:speech_cc_grpc"
218218
)"
219+
["sql"]="@com_google_googleapis//google/cloud/sql/v1:sql_cc_grpc"
219220
["storage"]="@com_google_googleapis//google/storage/v2:storage_cc_grpc"
220221
["storagetransfer"]="@com_google_googleapis//google/storagetransfer/v1:storagetransfer_cc_grpc"
221222
["talent"]="@com_google_googleapis//google/cloud/talent/v4:talent_cc_grpc"

generator/generator_config.textproto

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1695,6 +1695,97 @@ service {
16951695
experimental: true
16961696
}
16971697
1698+
# Sql
1699+
service {
1700+
service_proto_path: "google/cloud/sql/v1/cloud_sql_backup_runs.proto"
1701+
product_path: "google/cloud/sql/v1"
1702+
initial_copyright_year: "2023"
1703+
retryable_status_codes: ["kUnavailable"]
1704+
experimental: true
1705+
generate_rest_transport: true
1706+
generate_grpc_transport: false
1707+
}
1708+
1709+
service {
1710+
service_proto_path: "google/cloud/sql/v1/cloud_sql_connect.proto"
1711+
product_path: "google/cloud/sql/v1"
1712+
initial_copyright_year: "2023"
1713+
retryable_status_codes: ["kUnavailable"]
1714+
experimental: true
1715+
generate_rest_transport: true
1716+
generate_grpc_transport: false
1717+
}
1718+
1719+
service {
1720+
service_proto_path: "google/cloud/sql/v1/cloud_sql_databases.proto"
1721+
product_path: "google/cloud/sql/v1"
1722+
initial_copyright_year: "2023"
1723+
retryable_status_codes: ["kUnavailable"]
1724+
experimental: true
1725+
generate_rest_transport: true
1726+
generate_grpc_transport: false
1727+
}
1728+
1729+
service {
1730+
service_proto_path: "google/cloud/sql/v1/cloud_sql_flags.proto"
1731+
product_path: "google/cloud/sql/v1"
1732+
initial_copyright_year: "2023"
1733+
retryable_status_codes: ["kUnavailable"]
1734+
experimental: true
1735+
generate_rest_transport: true
1736+
generate_grpc_transport: false
1737+
}
1738+
1739+
service {
1740+
service_proto_path: "google/cloud/sql/v1/cloud_sql_instances.proto"
1741+
product_path: "google/cloud/sql/v1"
1742+
initial_copyright_year: "2023"
1743+
retryable_status_codes: ["kUnavailable"]
1744+
experimental: true
1745+
generate_rest_transport: true
1746+
generate_grpc_transport: false
1747+
}
1748+
1749+
service {
1750+
service_proto_path: "google/cloud/sql/v1/cloud_sql_operations.proto"
1751+
product_path: "google/cloud/sql/v1"
1752+
initial_copyright_year: "2023"
1753+
retryable_status_codes: ["kUnavailable"]
1754+
experimental: true
1755+
generate_rest_transport: true
1756+
generate_grpc_transport: false
1757+
}
1758+
1759+
service {
1760+
service_proto_path: "google/cloud/sql/v1/cloud_sql_ssl_certs.proto"
1761+
product_path: "google/cloud/sql/v1"
1762+
initial_copyright_year: "2023"
1763+
retryable_status_codes: ["kUnavailable"]
1764+
experimental: true
1765+
generate_rest_transport: true
1766+
generate_grpc_transport: false
1767+
}
1768+
1769+
service {
1770+
service_proto_path: "google/cloud/sql/v1/cloud_sql_tiers.proto"
1771+
product_path: "google/cloud/sql/v1"
1772+
initial_copyright_year: "2023"
1773+
retryable_status_codes: ["kUnavailable"]
1774+
experimental: true
1775+
generate_rest_transport: true
1776+
generate_grpc_transport: false
1777+
}
1778+
1779+
service {
1780+
service_proto_path: "google/cloud/sql/v1/cloud_sql_users.proto"
1781+
product_path: "google/cloud/sql/v1"
1782+
initial_copyright_year: "2023"
1783+
retryable_status_codes: ["kUnavailable"]
1784+
experimental: true
1785+
generate_rest_transport: true
1786+
generate_grpc_transport: false
1787+
}
1788+
16981789
# Storage
16991790
service {
17001791
service_proto_path: "google/storage/v2/storage.proto"

google/cloud/sql/BUILD.bazel

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
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+
package(default_visibility = ["//visibility:private"])
16+
17+
licenses(["notice"]) # Apache 2.0
18+
19+
service_dirs = ["v1/"]
20+
21+
src_dirs = service_dirs + [d + "internal/" for d in service_dirs]
22+
23+
filegroup(
24+
name = "srcs",
25+
srcs = glob([d + "*.cc" for d in src_dirs]),
26+
)
27+
28+
filegroup(
29+
name = "hdrs",
30+
srcs = glob([d + "*.h" for d in src_dirs]),
31+
)
32+
33+
filegroup(
34+
name = "mocks",
35+
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
36+
)
37+
38+
cc_library(
39+
name = "google_cloud_cpp_sql",
40+
srcs = [":srcs"],
41+
hdrs = [":hdrs"],
42+
visibility = ["//:__pkg__"],
43+
deps = [
44+
"//:common",
45+
"//:grpc_utils",
46+
"//google/cloud:google_cloud_cpp_rest_internal",
47+
"//google/cloud:google_cloud_cpp_rest_protobuf_internal",
48+
"@com_google_googleapis//google/cloud/sql/v1:sql_cc_grpc",
49+
],
50+
)
51+
52+
cc_library(
53+
name = "google_cloud_cpp_sql_mocks",
54+
hdrs = [":mocks"],
55+
visibility = ["//:__pkg__"],
56+
deps = [
57+
":google_cloud_cpp_sql",
58+
"@com_google_googletest//:gtest",
59+
],
60+
)
61+
62+
[cc_test(
63+
name = sample.replace("/", "_").replace(".cc", ""),
64+
srcs = [sample],
65+
tags = ["integration-test"],
66+
deps = [
67+
"//:experimental-sql",
68+
"//google/cloud/testing_util:google_cloud_cpp_testing_private",
69+
],
70+
) for sample in glob([d + "samples/*.cc" for d in service_dirs])]

0 commit comments

Comments
 (0)