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-14 UTC."],[[["\u003cp\u003eThe latest version available is 2.37.0-rc, with multiple previous versions listed from 2.36.0 down to 2.11.0, all related to App Engine's AuthorizedCertificatesClient.\u003c/p\u003e\n"],["\u003cp\u003eYou can override the retry policies for \u003ccode\u003eappengine_v1::AuthorizedCertificatesClient\u003c/code\u003e by setting options for the \u003ccode\u003eAuthorizedCertificatesConnectionIdempotencyPolicyOption\u003c/code\u003e, \u003ccode\u003eAuthorizedCertificatesRetryPolicyOption\u003c/code\u003e, and \u003ccode\u003eAuthorizedCertificatesBackoffPolicyOption\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eClients created from the same connection will share the same retry policies, but you can override specific policies in a new client or within a single call.\u003c/p\u003e\n"],["\u003cp\u003eA \u003ccode\u003eCustomIdempotencyPolicy\u003c/code\u003e class example is provided, demonstrating how to create and implement a unique idempotency policy for the \u003ccode\u003eAuthorizedCertificatesConnection\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe code snippet showcases options like setting the error count retry policy, the retry policy based on time and how to use the exponential back off policy, in the provided code.\u003c/p\u003e\n"]]],[],null,["Version 2.33.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 };"]]