This shows how to override the retry policies for appengine_v1::AuthorizedCertificatesClient:
auto options =
google::cloud::Options{}
.set<google::cloud::appengine_v1::
AuthorizedCertificatesConnectionIdempotencyPolicyOption>(
CustomIdempotencyPolicy().clone())
.set<google::cloud::appengine_v1::
AuthorizedCertificatesRetryPolicyOption>(
google::cloud::appengine_v1::
AuthorizedCertificatesLimitedErrorCountRetryPolicy(3)
.clone())
.set<google::cloud::appengine_v1::
AuthorizedCertificatesBackoffPolicyOption>(
google::cloud::ExponentialBackoffPolicy(
/*initial_delay=*/std::chrono::milliseconds(200),
/*maximum_delay=*/std::chrono::seconds(45),
/*scaling=*/2.0)
.clone());
auto connection =
google::cloud::appengine_v1::MakeAuthorizedCertificatesConnection(
options);
// c1 and c2 share the same retry policies
auto c1 =
google::cloud::appengine_v1::AuthorizedCertificatesClient(connection);
auto c2 =
google::cloud::appengine_v1::AuthorizedCertificatesClient(connection);
// You can override any of the policies in a new client. This new client
// will share the policies from c1 (or c2) *except* for the retry policy.
auto c3 = google::cloud::appengine_v1::AuthorizedCertificatesClient(
connection, google::cloud::Options{}
.set<google::cloud::appengine_v1::
AuthorizedCertificatesRetryPolicyOption>(
google::cloud::appengine_v1::
AuthorizedCertificatesLimitedTimeRetryPolicy(
std::chrono::minutes(5))
.clone()));
// You can also override the policies in a single call:
// c3.SomeRpc(..., google::cloud::Options{}
// .set<google::cloud::appengine_v1::AuthorizedCertificatesRetryPolicyOption>(
// google::cloud::appengine_v1::AuthorizedCertificatesLimitedErrorCountRetryPolicy(10).clone()));
Assuming you have created a custom idempotency policy. Such as:
class CustomIdempotencyPolicy
: public google::cloud::appengine_v1::
AuthorizedCertificatesConnectionIdempotencyPolicy {
public:
~CustomIdempotencyPolicy() override = default;
std::unique_ptr<google::cloud::appengine_v1::
AuthorizedCertificatesConnectionIdempotencyPolicy>
clone() const override {
return std::make_unique<CustomIdempotencyPolicy>(*this);
}
// Override inherited functions to define as needed.
};
[[["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-28 UTC."],[[["\u003cp\u003eThis document provides guidance on overriding retry policies for \u003ccode\u003eappengine_v1::AuthorizedCertificatesClient\u003c/code\u003e within the Google Cloud C++ library.\u003c/p\u003e\n"],["\u003cp\u003eThe latest release candidate version of the library is 2.37.0-rc, with a list of preceding versions provided.\u003c/p\u003e\n"],["\u003cp\u003eYou can set custom retry and backoff policies, as well as a custom idempotency policy using the \u003ccode\u003egoogle::cloud::Options\u003c/code\u003e object, when creating an \u003ccode\u003eappengine_v1::AuthorizedCertificatesClient\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eClients can share the same set of retry policies by using the same connection object, but individual clients or even specific calls can be configured with unique retry policies, by overriding them.\u003c/p\u003e\n"],["\u003cp\u003eThe example provides the structure needed to create a custom idempotency policy, which can then be used when configuring the retry policies.\u003c/p\u003e\n"]]],[],null,["Version 2.30.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/appengine/latest/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.41.0](/cpp/docs/reference/appengine/2.41.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.40.0](/cpp/docs/reference/appengine/2.40.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.39.0](/cpp/docs/reference/appengine/2.39.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.38.0](/cpp/docs/reference/appengine/2.38.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.37.0](/cpp/docs/reference/appengine/2.37.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.36.0](/cpp/docs/reference/appengine/2.36.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.35.0](/cpp/docs/reference/appengine/2.35.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.34.0](/cpp/docs/reference/appengine/2.34.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.33.0](/cpp/docs/reference/appengine/2.33.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.32.0](/cpp/docs/reference/appengine/2.32.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.31.0](/cpp/docs/reference/appengine/2.31.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.30.0](/cpp/docs/reference/appengine/2.30.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.29.0](/cpp/docs/reference/appengine/2.29.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.28.0](/cpp/docs/reference/appengine/2.28.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.27.0](/cpp/docs/reference/appengine/2.27.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.26.0](/cpp/docs/reference/appengine/2.26.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.25.1](/cpp/docs/reference/appengine/2.25.1/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.24.0](/cpp/docs/reference/appengine/2.24.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.23.0](/cpp/docs/reference/appengine/2.23.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.22.1](/cpp/docs/reference/appengine/2.22.1/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.21.0](/cpp/docs/reference/appengine/2.21.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.20.0](/cpp/docs/reference/appengine/2.20.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.19.0](/cpp/docs/reference/appengine/2.19.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.18.0](/cpp/docs/reference/appengine/2.18.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.17.0](/cpp/docs/reference/appengine/2.17.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.16.0](/cpp/docs/reference/appengine/2.16.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.15.1](/cpp/docs/reference/appengine/2.15.1/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.14.0](/cpp/docs/reference/appengine/2.14.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.13.0](/cpp/docs/reference/appengine/2.13.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.12.0](/cpp/docs/reference/appengine/2.12.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet)\n- [2.11.0](/cpp/docs/reference/appengine/2.11.0/appengine_v1_1_1AuthorizedCertificatesClient-retry-snippet) \n\nOverride appengine_v1::AuthorizedCertificatesClient Retry Policies\n==================================================================\n\nThis shows how to override the retry policies for appengine_v1::AuthorizedCertificatesClient: \n\n auto options =\n google::cloud::Options{}\n .set\u003cgoogle::cloud::appengine_v1::\n AuthorizedCertificatesConnectionIdempotencyPolicyOption\u003e(\n CustomIdempotencyPolicy().clone())\n .set\u003cgoogle::cloud::appengine_v1::\n AuthorizedCertificatesRetryPolicyOption\u003e(\n google::cloud::appengine_v1::\n AuthorizedCertificatesLimitedErrorCountRetryPolicy(3)\n .clone())\n .set\u003cgoogle::cloud::appengine_v1::\n AuthorizedCertificatesBackoffPolicyOption\u003e(\n google::cloud::ExponentialBackoffPolicy(\n /*initial_delay=*/std::chrono::milliseconds(200),\n /*maximum_delay=*/std::chrono::seconds(45),\n /*scaling=*/2.0)\n .clone());\n auto connection =\n google::cloud::appengine_v1::MakeAuthorizedCertificatesConnection(\n options);\n\n // c1 and c2 share the same retry policies\n auto c1 =\n google::cloud::appengine_v1::AuthorizedCertificatesClient(connection);\n auto c2 =\n google::cloud::appengine_v1::AuthorizedCertificatesClient(connection);\n\n // You can override any of the policies in a new client. This new client\n // will share the policies from c1 (or c2) *except* for the retry policy.\n auto c3 = google::cloud::appengine_v1::AuthorizedCertificatesClient(\n connection, google::cloud::Options{}\n .set\u003cgoogle::cloud::appengine_v1::\n AuthorizedCertificatesRetryPolicyOption\u003e(\n google::cloud::appengine_v1::\n AuthorizedCertificatesLimitedTimeRetryPolicy(\n std::chrono::minutes(5))\n .clone()));\n\n // You can also override the policies in a single call:\n // c3.SomeRpc(..., google::cloud::Options{}\n // .set\u003cgoogle::cloud::appengine_v1::AuthorizedCertificatesRetryPolicyOption\u003e(\n // google::cloud::appengine_v1::AuthorizedCertificatesLimitedErrorCountRetryPolicy(10).clone()));\n\nAssuming you have created a custom idempotency policy. Such as: \n\n class CustomIdempotencyPolicy\n : public google::cloud::appengine_v1::\n AuthorizedCertificatesConnectionIdempotencyPolicy {\n public:\n ~CustomIdempotencyPolicy() override = default;\n std::unique_ptr\u003cgoogle::cloud::appengine_v1::\n AuthorizedCertificatesConnectionIdempotencyPolicy\u003e\n clone() const override {\n return std::make_unique\u003cCustomIdempotencyPolicy\u003e(*this);\n }\n // Override inherited functions to define as needed.\n };"]]