[[["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-07 UTC."],[[["\u003cp\u003eThe PolicyTroubleshooter.PolicyTroubleshooterClient class is a client for the PolicyTroubleshooter v3 API, providing reference documentation and code samples for its use.\u003c/p\u003e\n"],["\u003cp\u003eThis client inherits from ClientBase and allows for the creation of new instances using various constructors, including options for specifying a CallInvoker, ChannelBase, or ClientBaseConfiguration.\u003c/p\u003e\n"],["\u003cp\u003eThe primary function of the PolicyTroubleshooterClient is to troubleshoot IAM policies, using methods such as \u003ccode\u003eTroubleshootIamPolicy\u003c/code\u003e and \u003ccode\u003eTroubleshootIamPolicyAsync\u003c/code\u003e, to check and explain a principal's permissions on a resource.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of this client is 1.2.0, with previous versions 1.1.0 and 1.0.0 also available, along with documentation for all of them.\u003c/p\u003e\n"]]],[],null,["# Policy Troubleshooter v3 API - Class PolicyTroubleshooter.PolicyTroubleshooterClient (1.2.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.2.0 (latest)](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.Iam.V3/latest/Google.Cloud.PolicyTroubleshooter.Iam.V3.PolicyTroubleshooter.PolicyTroubleshooterClient)\n- [1.1.0](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.Iam.V3/1.1.0/Google.Cloud.PolicyTroubleshooter.Iam.V3.PolicyTroubleshooter.PolicyTroubleshooterClient)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.Iam.V3/1.0.0/Google.Cloud.PolicyTroubleshooter.Iam.V3.PolicyTroubleshooter.PolicyTroubleshooterClient) \n\n public class PolicyTroubleshooter.PolicyTroubleshooterClient : ClientBase\u003cPolicyTroubleshooter.PolicyTroubleshooterClient\u003e\n\nReference documentation and code samples for the Policy Troubleshooter v3 API class PolicyTroubleshooter.PolicyTroubleshooterClient.\n\nClient for PolicyTroubleshooter \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e [ClientBase](https://github.com/grpc/grpc-dotnet/blob/6eccb614c532d52c1569ce9f14754fdc826609ef/src/Grpc.Core.Api/ClientBase.cs) \\\u003e [ClientBase](https://github.com/grpc/grpc-dotnet/blob/6eccb614c532d52c1569ce9f14754fdc826609ef/src/Grpc.Core.Api/ClientBase.cs)[PolicyTroubleshooter](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.Iam.V3/latest/Google.Cloud.PolicyTroubleshooter.Iam.V3.PolicyTroubleshooter)[PolicyTroubleshooterClient](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.Iam.V3/latest/Google.Cloud.PolicyTroubleshooter.Iam.V3.PolicyTroubleshooter.PolicyTroubleshooterClient) \\\u003e PolicyTroubleshooter.PolicyTroubleshooterClient \n\nInherited Members\n-----------------\n\n[ClientBase\\\u003cPolicyTroubleshooter.PolicyTroubleshooterClient\\\u003e.WithHost(string)](https://github.com/grpc/grpc-dotnet/blob/6eccb614c532d52c1569ce9f14754fdc826609ef/src/Grpc.Core.Api/ClientBase.cs) \n[ClientBase.CallInvoker](https://github.com/grpc/grpc-dotnet/blob/6eccb614c532d52c1569ce9f14754fdc826609ef/src/Grpc.Core.Api/ClientBase.cs) \n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.PolicyTroubleshooter.Iam.V3](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.Iam.V3/latest/Google.Cloud.PolicyTroubleshooter.Iam.V3)\n\nAssembly\n--------\n\nGoogle.Cloud.PolicyTroubleshooter.Iam.V3.dll\n\nConstructors\n------------\n\n### PolicyTroubleshooterClient()\n\n protected PolicyTroubleshooterClient()\n\nProtected parameterless constructor to allow creation of test doubles.\n\n### PolicyTroubleshooterClient(CallInvoker)\n\n public PolicyTroubleshooterClient(CallInvoker callInvoker)\n\nCreates a new client for PolicyTroubleshooter that uses a custom `CallInvoker`.\n\n### PolicyTroubleshooterClient(ChannelBase)\n\n public PolicyTroubleshooterClient(ChannelBase channel)\n\nCreates a new client for PolicyTroubleshooter\n\n### PolicyTroubleshooterClient(ClientBaseConfiguration)\n\n protected PolicyTroubleshooterClient(ClientBase.ClientBaseConfiguration configuration)\n\nProtected constructor to allow creation of configured clients.\n\nMethods\n-------\n\n### NewInstance(ClientBaseConfiguration)\n\n protected override PolicyTroubleshooter.PolicyTroubleshooterClient NewInstance(ClientBase.ClientBaseConfiguration configuration)\n\nCreates a new instance of client from given `ClientBaseConfiguration`.\n\n**Overrides** \n[ClientBase\\\u003cPolicyTroubleshooter.PolicyTroubleshooterClient\\\u003e.NewInstance(ClientBase.ClientBaseConfiguration)](https://github.com/grpc/grpc-dotnet/blob/6eccb614c532d52c1569ce9f14754fdc826609ef/src/Grpc.Core.Api/ClientBase.cs)\n\n### TroubleshootIamPolicy(TroubleshootIamPolicyRequest, CallOptions)\n\n public virtual TroubleshootIamPolicyResponse TroubleshootIamPolicy(TroubleshootIamPolicyRequest request, CallOptions options)\n\nChecks whether a principal has a specific permission for a specific\nresource, and explains why the principal does or doesn't have that\npermission.\n\n### TroubleshootIamPolicy(TroubleshootIamPolicyRequest, Metadata, DateTime?, CancellationToken)\n\n public virtual TroubleshootIamPolicyResponse TroubleshootIamPolicy(TroubleshootIamPolicyRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)\n\nChecks whether a principal has a specific permission for a specific\nresource, and explains why the principal does or doesn't have that\npermission.\n\n### TroubleshootIamPolicyAsync(TroubleshootIamPolicyRequest, CallOptions)\n\n public virtual AsyncUnaryCall\u003cTroubleshootIamPolicyResponse\u003e TroubleshootIamPolicyAsync(TroubleshootIamPolicyRequest request, CallOptions options)\n\nChecks whether a principal has a specific permission for a specific\nresource, and explains why the principal does or doesn't have that\npermission.\n\n### TroubleshootIamPolicyAsync(TroubleshootIamPolicyRequest, Metadata, DateTime?, CancellationToken)\n\n public virtual AsyncUnaryCall\u003cTroubleshootIamPolicyResponse\u003e TroubleshootIamPolicyAsync(TroubleshootIamPolicyRequest request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default)\n\nChecks whether a principal has a specific permission for a specific\nresource, and explains why the principal does or doesn't have that\npermission."]]