The returned connection object should not be used directly; instead it should be passed as an argument to the constructor of PolicyTroubleshooterClient.
The optional options argument may be used to configure aspects of the returned PolicyTroubleshooterConnection. Expected options are any of the types in the following option lists:
[[["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 provides documentation for the Google Cloud Policy Troubleshooter C++ client library, with version 2.29.0 being the currently viewed version.\u003c/p\u003e\n"],["\u003cp\u003eThe latest release candidate version is 2.37.0-rc, and the page lists numerous other versions of the Policy Troubleshooter library, ranging from 2.36.0 down to 2.11.0.\u003c/p\u003e\n"],["\u003cp\u003eThe documentation includes information on several classes related to Policy Troubleshooting, such as \u003ccode\u003ePolicyTroubleshooterClient\u003c/code\u003e and \u003ccode\u003ePolicyTroubleshooterConnection\u003c/code\u003e, as well as retry and backoff policies.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eMakePolicyTroubleshooterConnection\u003c/code\u003e function is detailed, describing its use in creating a \u003ccode\u003ePolicyTroubleshooterConnection\u003c/code\u003e object and specifying the various option lists that it can use.\u003c/p\u003e\n"],["\u003cp\u003eThere is also a function available called \u003ccode\u003eMakeDefaultPolicyTroubleshooterConnectionIdempotencyPolicy\u003c/code\u003e which will return an object of type \u003ccode\u003ePolicyTroubleshooterConnectionIdempotencyPolicy\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Namespace google::cloud::policytroubleshooter_iam_v3 (2.29.0)\n\nVersion 2.29.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/policytroubleshooter/latest/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.41.0](/cpp/docs/reference/policytroubleshooter/2.41.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.40.0](/cpp/docs/reference/policytroubleshooter/2.40.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.39.0](/cpp/docs/reference/policytroubleshooter/2.39.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.38.0](/cpp/docs/reference/policytroubleshooter/2.38.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.37.0](/cpp/docs/reference/policytroubleshooter/2.37.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.36.0](/cpp/docs/reference/policytroubleshooter/2.36.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.35.0](/cpp/docs/reference/policytroubleshooter/2.35.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.34.0](/cpp/docs/reference/policytroubleshooter/2.34.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.33.0](/cpp/docs/reference/policytroubleshooter/2.33.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.32.0](/cpp/docs/reference/policytroubleshooter/2.32.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.31.0](/cpp/docs/reference/policytroubleshooter/2.31.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.30.0](/cpp/docs/reference/policytroubleshooter/2.30.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.29.0](/cpp/docs/reference/policytroubleshooter/2.29.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.28.0](/cpp/docs/reference/policytroubleshooter/2.28.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.27.0](/cpp/docs/reference/policytroubleshooter/2.27.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.26.0](/cpp/docs/reference/policytroubleshooter/2.26.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.25.1](/cpp/docs/reference/policytroubleshooter/2.25.1/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.24.0](/cpp/docs/reference/policytroubleshooter/2.24.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.23.0](/cpp/docs/reference/policytroubleshooter/2.23.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.22.1](/cpp/docs/reference/policytroubleshooter/2.22.1/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.21.0](/cpp/docs/reference/policytroubleshooter/2.21.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.20.0](/cpp/docs/reference/policytroubleshooter/2.20.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.19.0](/cpp/docs/reference/policytroubleshooter/2.19.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.18.0](/cpp/docs/reference/policytroubleshooter/2.18.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.17.0](/cpp/docs/reference/policytroubleshooter/2.17.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.16.0](/cpp/docs/reference/policytroubleshooter/2.16.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.15.1](/cpp/docs/reference/policytroubleshooter/2.15.1/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.14.0](/cpp/docs/reference/policytroubleshooter/2.14.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.13.0](/cpp/docs/reference/policytroubleshooter/2.13.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.12.0](/cpp/docs/reference/policytroubleshooter/2.12.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3)\n- [2.11.0](/cpp/docs/reference/policytroubleshooter/2.11.0/namespacegoogle_1_1cloud_1_1policytroubleshooter__iam__v3) \n\nClasses\n-------\n\n### [PolicyTroubleshooterClient](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterClient)\n\nIAM Policy Troubleshooter service.\n\n### [PolicyTroubleshooterConnection](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterConnection)\n\nThe [`PolicyTroubleshooterConnection`](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterConnection) object for [`PolicyTroubleshooterClient`](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterClient).\n\n### [PolicyTroubleshooterConnectionIdempotencyPolicy](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterConnectionIdempotencyPolicy)\n\n### [PolicyTroubleshooterLimitedErrorCountRetryPolicy](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterLimitedErrorCountRetryPolicy)\n\nA retry policy for [`PolicyTroubleshooterConnection`](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterConnection) based on counting errors.\n\n### [PolicyTroubleshooterLimitedTimeRetryPolicy](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterLimitedTimeRetryPolicy)\n\nA retry policy for [`PolicyTroubleshooterConnection`](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterConnection) based on elapsed time.\n\n### [PolicyTroubleshooterRetryPolicy](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterRetryPolicy)\n\nThe retry policy for [`PolicyTroubleshooterConnection`](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterConnection).\n\nStructs\n-------\n\n### [PolicyTroubleshooterBackoffPolicyOption](/cpp/docs/reference/policytroubleshooter/2.29.0/structgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterBackoffPolicyOption)\n\nUse with [`google::cloud::Options`](https://cloud.google.com/cpp/docs/reference/common/latest/classgoogle_1_1cloud_1_1Options.html) to configure the backoff policy.\n\n### [PolicyTroubleshooterConnectionIdempotencyPolicyOption](/cpp/docs/reference/policytroubleshooter/2.29.0/structgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterConnectionIdempotencyPolicyOption)\n\nUse with [`google::cloud::Options`](https://cloud.google.com/cpp/docs/reference/common/latest/classgoogle_1_1cloud_1_1Options.html) to configure which operations are retried.\n\n### [PolicyTroubleshooterRetryPolicyOption](/cpp/docs/reference/policytroubleshooter/2.29.0/structgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterRetryPolicyOption)\n\nUse with [`google::cloud::Options`](https://cloud.google.com/cpp/docs/reference/common/latest/classgoogle_1_1cloud_1_1Options.html) to configure the retry policy.\n\nFunctions\n---------\n\n### MakePolicyTroubleshooterConnection(Options)\n\nA factory function to construct an object of type [`PolicyTroubleshooterConnection`](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterConnection). \nThe returned connection object should not be used directly; instead it should be passed as an argument to the constructor of [PolicyTroubleshooterClient](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterClient).\n\nThe optional `options` argument may be used to configure aspects of the returned [`PolicyTroubleshooterConnection`](/cpp/docs/reference/policytroubleshooter/2.29.0/classgoogle_1_1cloud_1_1policytroubleshooter__iam__v3_1_1PolicyTroubleshooterConnection). Expected options are any of the types in the following option lists:\n\n- [`google::cloud::CommonOptionList`](https://cloud.google.com/cpp/docs/reference/common/latest/namespacegoogle_1_1cloud.html)\n- [`google::cloud::GrpcOptionList`](https://cloud.google.com/cpp/docs/reference/common/latest/namespacegoogle_1_1cloud.html)\n- [`google::cloud::UnifiedCredentialsOptionList`](https://cloud.google.com/cpp/docs/reference/common/latest/namespacegoogle_1_1cloud.html)\n- [`google::cloud::policytroubleshooter_iam_v3::PolicyTroubleshooterPolicyOptionList`](about:invalid#zCSafez)\n\n| **Note:** Unexpected options will be ignored. To log unexpected options instead, set `GOOGLE_CLOUD_CPP_ENABLE_CLOG=yes` in the environment.\n\n### MakeDefaultPolicyTroubleshooterConnectionIdempotencyPolicy()"]]