An idiomatic C++ client library for the Cloud SQL Admin API, a service for Cloud SQL database instance management.
This library is experimental. Its APIs are subject to change without notice.
Please, note that the Google Cloud C++ client libraries do not follow Semantic Versioning.
Quickstart
The following shows the code that you'll run in the google/cloud/sql/quickstart/ directory, which should give you a taste of the Cloud SQL Admin API C++ client library API.
This library offers multiple *Client classes, which are listed below. Each one of these classes exposes all the RPCs for a gRPC service as member functions of the class. This library groups multiple gRPC services because they are part of the same product or are often used together. A typical example may be the administrative and data plane operations for a single product.
The library also has other classes that provide helpers, configuration parameters, and infrastructure to mock the *Client classes when testing your application.
The library automatically retries requests that fail with transient errors, and uses exponential backoff to backoff between retries. Application developers can override the default policies.
More Information
Error Handling - describes how the library reports errors.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThis webpage details the C++ client library for the Cloud SQL Admin API, which facilitates management of Cloud SQL database instances.\u003c/p\u003e\n"],["\u003cp\u003eThe library is currently in an experimental phase, meaning its APIs are subject to change, and it does not adhere to Semantic Versioning.\u003c/p\u003e\n"],["\u003cp\u003eThe documentation offers a quickstart guide and code sample demonstrating the basic usage of the \u003ccode\u003eSqlInstancesServiceClient\u003c/code\u003e class for interacting with the API.\u003c/p\u003e\n"],["\u003cp\u003eThe library provides multiple \u003ccode\u003e*Client\u003c/code\u003e classes, each corresponding to a gRPC service, including \u003ccode\u003eSqlBackupRunsServiceClient\u003c/code\u003e, \u003ccode\u003eSqlConnectServiceClient\u003c/code\u003e, \u003ccode\u003eSqlDatabasesServiceClient\u003c/code\u003e, and others.\u003c/p\u003e\n"],["\u003cp\u003eIt supports automatic retries with exponential backoff for transient errors and allows customization of policies and credentials, with more information available on error handling, endpoint overrides, authentication overrides and environment variables.\u003c/p\u003e\n"]]],[],null,["Version 2.12.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/sql/latest)\n- [2.41.0](/cpp/docs/reference/sql/2.41.0)\n- [2.40.0](/cpp/docs/reference/sql/2.40.0)\n- [2.39.0](/cpp/docs/reference/sql/2.39.0)\n- [2.38.0](/cpp/docs/reference/sql/2.38.0)\n- [2.37.0](/cpp/docs/reference/sql/2.37.0)\n- [2.36.0](/cpp/docs/reference/sql/2.36.0)\n- [2.35.0](/cpp/docs/reference/sql/2.35.0)\n- [2.34.0](/cpp/docs/reference/sql/2.34.0)\n- [2.33.0](/cpp/docs/reference/sql/2.33.0)\n- [2.32.0](/cpp/docs/reference/sql/2.32.0)\n- [2.31.0](/cpp/docs/reference/sql/2.31.0)\n- [2.30.0](/cpp/docs/reference/sql/2.30.0)\n- [2.29.0](/cpp/docs/reference/sql/2.29.0)\n- [2.28.0](/cpp/docs/reference/sql/2.28.0)\n- [2.27.0](/cpp/docs/reference/sql/2.27.0)\n- [2.26.0](/cpp/docs/reference/sql/2.26.0)\n- [2.25.1](/cpp/docs/reference/sql/2.25.1)\n- [2.24.0](/cpp/docs/reference/sql/2.24.0)\n- [2.23.0](/cpp/docs/reference/sql/2.23.0)\n- [2.22.1](/cpp/docs/reference/sql/2.22.1)\n- [2.21.0](/cpp/docs/reference/sql/2.21.0)\n- [2.20.0](/cpp/docs/reference/sql/2.20.0)\n- [2.19.0](/cpp/docs/reference/sql/2.19.0)\n- [2.18.0](/cpp/docs/reference/sql/2.18.0)\n- [2.17.0](/cpp/docs/reference/sql/2.17.0)\n- [2.16.0](/cpp/docs/reference/sql/2.16.0)\n- [2.15.1](/cpp/docs/reference/sql/2.15.1)\n- [2.14.0](/cpp/docs/reference/sql/2.14.0)\n- [2.13.0](/cpp/docs/reference/sql/2.13.0)\n- [2.12.0](/cpp/docs/reference/sql/2.12.0)\n- [2.11.0](/cpp/docs/reference/sql/2.11.0) \n\nCloud SQL Admin API C++ Client Library\n======================================\n\nAn idiomatic C++ client library for the [Cloud SQL Admin API](https://cloud.google.com/sql), a service for Cloud SQL database instance management.\n\nThis library is **experimental**. Its APIs are subject to change without notice.\n\nPlease, note that the Google Cloud C++ client libraries do **not** follow [Semantic Versioning](https://semver.org/).\n\n### Quickstart\n\nThe following shows the code that you'll run in the `google/cloud/sql/quickstart/` directory, which should give you a taste of the Cloud SQL Admin API C++ client library API. \n\n #include \"google/cloud/sql/v1/sql_instances_client.h\"\n #include \"google/cloud/project.h\"\n #include \u003ciostream\u003e\n\n int main(int argc, char* argv[]) try {\n if (argc != 2) {\n std::cerr \u003c\u003c \"Usage: \" \u003c\u003c argv[0] \u003c\u003c \" project-id\\n\";\n return 1;\n }\n\n namespace sql = ::google::cloud::sql_v1;\n auto client =\n sql::SqlInstancesServiceClient(google::cloud::ExperimentalTag{},\n sql::MakeSqlInstancesServiceConnectionRest(\n google::cloud::ExperimentalTag{}));\n\n google::cloud::sql::v1::SqlInstancesListRequest request;\n request.set_project(argv[1]);\n for (auto database : client.List(request)) {\n if (!database) throw std::move(database).status();\n std::cout \u003c\u003c database-\u003eDebugString() \u003c\u003c \"\\n\";\n }\n\n return 0;\n } catch (google::cloud::Status const& status) {\n std::cerr \u003c\u003c \"google::cloud::Status thrown: \" \u003c\u003c status \u003c\u003c \"\\n\";\n return 1;\n }\n\n### Main classes\n\nThis library offers multiple `*Client` classes, which are listed below. Each one of these classes exposes all the RPCs for a gRPC `service` as member functions of the class. This library groups multiple gRPC services because they are part of the same product or are often used together. A typical example may be the administrative and data plane operations for a single product.\n\nThe library also has other classes that provide helpers, configuration parameters, and infrastructure to mock the `*Client` classes when testing your application.\n\n- [`sql_v1::SqlBackupRunsServiceClient`](/cpp/docs/reference/sql/2.12.0/classgoogle_1_1cloud_1_1sql__v1_1_1SqlBackupRunsServiceClient)\n- [`sql_v1::SqlConnectServiceClient`](/cpp/docs/reference/sql/2.12.0/classgoogle_1_1cloud_1_1sql__v1_1_1SqlConnectServiceClient)\n- [`sql_v1::SqlDatabasesServiceClient`](/cpp/docs/reference/sql/2.12.0/classgoogle_1_1cloud_1_1sql__v1_1_1SqlDatabasesServiceClient)\n- [`sql_v1::SqlFlagsServiceClient`](/cpp/docs/reference/sql/2.12.0/classgoogle_1_1cloud_1_1sql__v1_1_1SqlFlagsServiceClient)\n- [`sql_v1::SqlInstancesServiceClient`](/cpp/docs/reference/sql/2.12.0/classgoogle_1_1cloud_1_1sql__v1_1_1SqlInstancesServiceClient)\n- [`sql_v1::SqlOperationsServiceClient`](/cpp/docs/reference/sql/2.12.0/classgoogle_1_1cloud_1_1sql__v1_1_1SqlOperationsServiceClient)\n- [`sql_v1::SqlSslCertsServiceClient`](/cpp/docs/reference/sql/2.12.0/classgoogle_1_1cloud_1_1sql__v1_1_1SqlSslCertsServiceClient)\n- [`sql_v1::SqlTiersServiceClient`](/cpp/docs/reference/sql/2.12.0/classgoogle_1_1cloud_1_1sql__v1_1_1SqlTiersServiceClient)\n- [`sql_v1::SqlUsersServiceClient`](/cpp/docs/reference/sql/2.12.0/classgoogle_1_1cloud_1_1sql__v1_1_1SqlUsersServiceClient)\n\n### Retry, Backoff, and Idempotency Policies.\n\nThe library automatically retries requests that fail with transient errors, and uses [exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff) to backoff between retries. Application developers can override the default policies.\n\n### More Information\n\n- [Error Handling](https://cloud.google.com/cpp/docs/reference/common/latest/common-error-handling.html) - describes how the library reports errors.\n- [How to Override the Default Endpoint](/cpp/docs/reference/sql/2.12.0/sql-override-endpoint) - describes how to override the default endpoint.\n- [How to Override the Authentication Credentials](/cpp/docs/reference/sql/2.12.0/sql-override-authentication) - describes how to change the authentication credentials used by the library.\n- [Environment Variables](/cpp/docs/reference/sql/2.12.0/sql-env) - describes environment variables that can configure the behavior of the library."]]