This shows how to override the retry policies for vpcaccess_v1::VpcAccessServiceClient:
auto options =
google::cloud::Options{}
.set<google::cloud::vpcaccess_v1::
VpcAccessServiceConnectionIdempotencyPolicyOption>(
CustomIdempotencyPolicy().clone())
.set<google::cloud::vpcaccess_v1::VpcAccessServiceRetryPolicyOption>(
google::cloud::vpcaccess_v1::
VpcAccessServiceLimitedErrorCountRetryPolicy(3)
.clone())
.set<
google::cloud::vpcaccess_v1::VpcAccessServiceBackoffPolicyOption>(
google::cloud::ExponentialBackoffPolicy(
/*initial_delay=*/std::chrono::milliseconds(200),
/*maximum_delay=*/std::chrono::seconds(45),
/*scaling=*/2.0)
.clone());
auto connection =
google::cloud::vpcaccess_v1::MakeVpcAccessServiceConnection(options);
// c1 and c2 share the same retry policies
auto c1 = google::cloud::vpcaccess_v1::VpcAccessServiceClient(connection);
auto c2 = google::cloud::vpcaccess_v1::VpcAccessServiceClient(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::vpcaccess_v1::VpcAccessServiceClient(
connection,
google::cloud::Options{}
.set<google::cloud::vpcaccess_v1::VpcAccessServiceRetryPolicyOption>(
google::cloud::vpcaccess_v1::
VpcAccessServiceLimitedTimeRetryPolicy(
std::chrono::minutes(5))
.clone()));
// You can also override the policies in a single call:
// c3.SomeRpc(..., google::cloud::Options{}
// .set<google::cloud::vpcaccess_v1::VpcAccessServiceRetryPolicyOption>(
// google::cloud::vpcaccess_v1::VpcAccessServiceLimitedErrorCountRetryPolicy(10).clone()));
Assuming you have created a custom idempotency policy. Such as:
class CustomIdempotencyPolicy
: public google::cloud::vpcaccess_v1::
VpcAccessServiceConnectionIdempotencyPolicy {
public:
~CustomIdempotencyPolicy() override = default;
std::unique_ptr<
google::cloud::vpcaccess_v1::VpcAccessServiceConnectionIdempotencyPolicy>
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 release candidate version is 2.37.0-rc, and the content lists versions from 2.36.0 down to 2.11.0, providing links to the respective documentation pages for each release.\u003c/p\u003e\n"],["\u003cp\u003eThis documentation illustrates how to override retry policies for \u003ccode\u003evpcaccess_v1::VpcAccessServiceClient\u003c/code\u003e, including setting custom retry policies, backoff policies, and idempotency policies.\u003c/p\u003e\n"],["\u003cp\u003eYou can configure retry policies at the connection level, where multiple clients can share the same policies, or you can override them for individual client instances or even specific RPC calls.\u003c/p\u003e\n"],["\u003cp\u003eThe example shows how to define a custom idempotency policy called \u003ccode\u003eCustomIdempotencyPolicy\u003c/code\u003e, allowing for specialized behavior.\u003c/p\u003e\n"]]],[],null,["Version 2.27.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/vpcaccess/latest/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.41.0](/cpp/docs/reference/vpcaccess/2.41.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.40.0](/cpp/docs/reference/vpcaccess/2.40.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.39.0](/cpp/docs/reference/vpcaccess/2.39.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.38.0](/cpp/docs/reference/vpcaccess/2.38.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.37.0](/cpp/docs/reference/vpcaccess/2.37.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.36.0](/cpp/docs/reference/vpcaccess/2.36.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.35.0](/cpp/docs/reference/vpcaccess/2.35.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.34.0](/cpp/docs/reference/vpcaccess/2.34.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.33.0](/cpp/docs/reference/vpcaccess/2.33.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.32.0](/cpp/docs/reference/vpcaccess/2.32.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.31.0](/cpp/docs/reference/vpcaccess/2.31.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.30.0](/cpp/docs/reference/vpcaccess/2.30.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.29.0](/cpp/docs/reference/vpcaccess/2.29.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.28.0](/cpp/docs/reference/vpcaccess/2.28.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.27.0](/cpp/docs/reference/vpcaccess/2.27.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.26.0](/cpp/docs/reference/vpcaccess/2.26.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.25.1](/cpp/docs/reference/vpcaccess/2.25.1/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.24.0](/cpp/docs/reference/vpcaccess/2.24.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.23.0](/cpp/docs/reference/vpcaccess/2.23.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.22.1](/cpp/docs/reference/vpcaccess/2.22.1/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.21.0](/cpp/docs/reference/vpcaccess/2.21.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.20.0](/cpp/docs/reference/vpcaccess/2.20.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.19.0](/cpp/docs/reference/vpcaccess/2.19.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.18.0](/cpp/docs/reference/vpcaccess/2.18.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.17.0](/cpp/docs/reference/vpcaccess/2.17.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.16.0](/cpp/docs/reference/vpcaccess/2.16.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.15.1](/cpp/docs/reference/vpcaccess/2.15.1/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.14.0](/cpp/docs/reference/vpcaccess/2.14.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.13.0](/cpp/docs/reference/vpcaccess/2.13.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.12.0](/cpp/docs/reference/vpcaccess/2.12.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet)\n- [2.11.0](/cpp/docs/reference/vpcaccess/2.11.0/vpcaccess_v1_1_1VpcAccessServiceClient-retry-snippet) \n\nOverride vpcaccess_v1::VpcAccessServiceClient Retry Policies\n============================================================\n\nThis shows how to override the retry policies for vpcaccess_v1::VpcAccessServiceClient: \n\n auto options =\n google::cloud::Options{}\n .set\u003cgoogle::cloud::vpcaccess_v1::\n VpcAccessServiceConnectionIdempotencyPolicyOption\u003e(\n CustomIdempotencyPolicy().clone())\n .set\u003cgoogle::cloud::vpcaccess_v1::VpcAccessServiceRetryPolicyOption\u003e(\n google::cloud::vpcaccess_v1::\n VpcAccessServiceLimitedErrorCountRetryPolicy(3)\n .clone())\n .set\u003c\n google::cloud::vpcaccess_v1::VpcAccessServiceBackoffPolicyOption\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::vpcaccess_v1::MakeVpcAccessServiceConnection(options);\n\n // c1 and c2 share the same retry policies\n auto c1 = google::cloud::vpcaccess_v1::VpcAccessServiceClient(connection);\n auto c2 = google::cloud::vpcaccess_v1::VpcAccessServiceClient(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::vpcaccess_v1::VpcAccessServiceClient(\n connection,\n google::cloud::Options{}\n .set\u003cgoogle::cloud::vpcaccess_v1::VpcAccessServiceRetryPolicyOption\u003e(\n google::cloud::vpcaccess_v1::\n VpcAccessServiceLimitedTimeRetryPolicy(\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::vpcaccess_v1::VpcAccessServiceRetryPolicyOption\u003e(\n // google::cloud::vpcaccess_v1::VpcAccessServiceLimitedErrorCountRetryPolicy(10).clone()));\n\nAssuming you have created a custom idempotency policy. Such as: \n\n class CustomIdempotencyPolicy\n : public google::cloud::vpcaccess_v1::\n VpcAccessServiceConnectionIdempotencyPolicy {\n public:\n ~CustomIdempotencyPolicy() override = default;\n std::unique_ptr\u003c\n google::cloud::vpcaccess_v1::VpcAccessServiceConnectionIdempotencyPolicy\u003e\n clone() const override {\n return std::make_unique\u003cCustomIdempotencyPolicy\u003e(*this);\n }\n // Override inherited functions to define as needed.\n };"]]