An idiomatic C++ client library forRecommender, a service on Google Cloud that provides usage recommendations and insights for Cloud products and services.
While this library isGA, please note Google Cloud C++ client libraries donotfollowSemantic Versioning.
Quickstart
The following shows the code that you'll run in thegoogle/cloud/recommender/quickstart/directory, which should give you a taste of the Recommender C++ client library API.
The main class in this library isrecommender_v1::RecommenderClient. All RPCs are exposed as member functions of this class. Other classes provide helpers, configuration parameters, and infrastructure to mockrecommender_v1::RecommenderClientwhen testing your application.
Retry, Backoff, and Idempotency Policies.
The library automatically retries requests that fail with transient errors, and usesexponential backoffto 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"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThe Recommender C++ Client Library provides a way to interact with Google Cloud's Recommender service, offering usage recommendations and insights for various Cloud products and services.\u003c/p\u003e\n"],["\u003cp\u003eVersion 2.37.0-rc is the latest release candidate, with numerous previous versions listed including 2.11.0 as well as every minor version in between.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003erecommender_v1::RecommenderClient\u003c/code\u003e class is the main interface for interacting with the Recommender service, exposing all Remote Procedure Calls (RPCs).\u003c/p\u003e\n"],["\u003cp\u003eThe library uses automatic retries for transient errors and implements exponential backoff, which can be customized by developers if needed.\u003c/p\u003e\n"],["\u003cp\u003eThis library provides resources on error handling, overriding the default endpoint and authentication, and descriptions for environment variable configuration.\u003c/p\u003e\n"]]],[],null,["Version 2.11.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/recommender/latest)\n- [2.41.0](/cpp/docs/reference/recommender/2.41.0)\n- [2.40.0](/cpp/docs/reference/recommender/2.40.0)\n- [2.39.0](/cpp/docs/reference/recommender/2.39.0)\n- [2.38.0](/cpp/docs/reference/recommender/2.38.0)\n- [2.37.0](/cpp/docs/reference/recommender/2.37.0)\n- [2.36.0](/cpp/docs/reference/recommender/2.36.0)\n- [2.35.0](/cpp/docs/reference/recommender/2.35.0)\n- [2.34.0](/cpp/docs/reference/recommender/2.34.0)\n- [2.33.0](/cpp/docs/reference/recommender/2.33.0)\n- [2.32.0](/cpp/docs/reference/recommender/2.32.0)\n- [2.31.0](/cpp/docs/reference/recommender/2.31.0)\n- [2.30.0](/cpp/docs/reference/recommender/2.30.0)\n- [2.29.0](/cpp/docs/reference/recommender/2.29.0)\n- [2.28.0](/cpp/docs/reference/recommender/2.28.0)\n- [2.27.0](/cpp/docs/reference/recommender/2.27.0)\n- [2.26.0](/cpp/docs/reference/recommender/2.26.0)\n- [2.25.1](/cpp/docs/reference/recommender/2.25.1)\n- [2.24.0](/cpp/docs/reference/recommender/2.24.0)\n- [2.23.0](/cpp/docs/reference/recommender/2.23.0)\n- [2.22.1](/cpp/docs/reference/recommender/2.22.1)\n- [2.21.0](/cpp/docs/reference/recommender/2.21.0)\n- [2.20.0](/cpp/docs/reference/recommender/2.20.0)\n- [2.19.0](/cpp/docs/reference/recommender/2.19.0)\n- [2.18.0](/cpp/docs/reference/recommender/2.18.0)\n- [2.17.0](/cpp/docs/reference/recommender/2.17.0)\n- [2.16.0](/cpp/docs/reference/recommender/2.16.0)\n- [2.15.1](/cpp/docs/reference/recommender/2.15.1)\n- [2.14.0](/cpp/docs/reference/recommender/2.14.0)\n- [2.13.0](/cpp/docs/reference/recommender/2.13.0)\n- [2.12.0](/cpp/docs/reference/recommender/2.12.0)\n- [2.11.0](/cpp/docs/reference/recommender/2.11.0) \n\nRecommender C++ Client Library\n==============================\n\nAn idiomatic C++ client library for [Recommender](https://cloud.google.com/recommender), a service on Google Cloud that provides usage recommendations and insights for Cloud products and services.\n\nWhile this library is **GA** , please note 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/recommender/quickstart/` directory, which should give you a taste of the Recommender C++ client library API. \n\n #include \"google/cloud/recommender/v1/recommender_client.h\"\n #include \u003ciostream\u003e\n\n int main(int argc, char* argv[]) try {\n if (argc != 3) {\n std::cerr \u003c\u003c \"Usage: \" \u003c\u003c argv[0] \u003c\u003c \" project-id location-id\\n\";\n return 1;\n }\n\n namespace recommender = ::google::cloud::recommender_v1;\n auto client =\n recommender::RecommenderClient(recommender::MakeRecommenderConnection());\n // For additional recommenders see:\n // https://cloud.google.com/recommender/docs/recommenders#recommenders\n auto const parent =\n std::string(\"projects/\") + argv[1] + \"/locations/\" + argv[2] +\n \"/recommenders/google.compute.instance.MachineTypeRecommender\";\n for (auto r : client.ListRecommendations(parent)) {\n if (!r) throw std::move(r).status();\n std::cout \u003c\u003c r-\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\nThe main class in this library is [`recommender_v1::RecommenderClient`](/cpp/docs/reference/recommender/2.11.0/classgoogle_1_1cloud_1_1recommender__v1_1_1RecommenderClient). All RPCs are exposed as member functions of this class. Other classes provide helpers, configuration parameters, and infrastructure to mock [`recommender_v1::RecommenderClient`](/cpp/docs/reference/recommender/2.11.0/classgoogle_1_1cloud_1_1recommender__v1_1_1RecommenderClient) when testing your application.\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/recommender/2.11.0/recommender-override-endpoint) - describes how to override the default endpoint.\n- [How to Override the Authentication Credentials](/cpp/docs/reference/recommender/2.11.0/recommender-override-authentication) - describes how to change the authentication credentials used by the library.\n- [Environment Variables](/cpp/docs/reference/recommender/2.11.0/recommender-env) - describes environment variables that can configure the behavior of the library."]]