public sealed class ExplainedPolicy : IMessage<ExplainedPolicy>, IEquatable<ExplainedPolicy>, IDeepCloneable<ExplainedPolicy>, IBufferMessage, IMessage
Reference documentation and code samples for the Policy Troubleshooter v1 API class ExplainedPolicy.
Details about how a specific IAM [Policy][google.iam.v1.Policy] contributed
to the access check.
Indicates whether this policy provides the specified permission to the
specified principal for the specified resource.
This field does not indicate whether the principal actually has the
permission for the resource. There might be another policy that overrides
this policy. To determine whether the principal actually has the
permission, use the access field in the
[TroubleshootIamPolicyResponse][IamChecker.TroubleshootIamPolicyResponse].
The full resource name that identifies the resource. For example,
//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance.
If the sender of the request does not have access to the policy, this field
is omitted.
[[["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\u003eThis page provides documentation for the \u003ccode\u003eExplainedPolicy\u003c/code\u003e class within the Google Cloud Policy Troubleshooter v1 API, detailing its properties, constructors, and inheritance.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eExplainedPolicy\u003c/code\u003e class helps explain how a specific IAM policy contributes to an access check, including details about bindings and their effects on permissions.\u003c/p\u003e\n"],["\u003cp\u003eThere are several versions of \u003ccode\u003eExplainedPolicy\u003c/code\u003e available in the documentation, ranging from version 1.1.0 up to the latest version, 2.5.0.\u003c/p\u003e\n"],["\u003cp\u003eThe documentation outlines the \u003ccode\u003eExplainedPolicy\u003c/code\u003e class's properties such as \u003ccode\u003eAccess\u003c/code\u003e, \u003ccode\u003eBindingExplanations\u003c/code\u003e, \u003ccode\u003eFullResourceName\u003c/code\u003e, \u003ccode\u003ePolicy\u003c/code\u003e, and \u003ccode\u003eRelevance\u003c/code\u003e, which offer insights into the resource, its bindings, and overall policy impact.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eExplainedPolicy\u003c/code\u003e class implements multiple interfaces including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e and \u003ccode\u003eIBufferMessage\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Policy Troubleshooter v1 API - Class ExplainedPolicy (2.5.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.5.0 (latest)](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/latest/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/2.4.0/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/2.3.0/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/2.2.0/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/2.1.0/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/2.0.0/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy)\n- [1.2.0](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/1.2.0/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy)\n- [1.1.0](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/1.1.0/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy) \n\n public sealed class ExplainedPolicy : IMessage\u003cExplainedPolicy\u003e, IEquatable\u003cExplainedPolicy\u003e, IDeepCloneable\u003cExplainedPolicy\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Policy Troubleshooter v1 API class ExplainedPolicy.\n\nDetails about how a specific IAM \\[Policy\\]\\[google.iam.v1.Policy\\] contributed\nto the access check. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e ExplainedPolicy \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[ExplainedPolicy](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/latest/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[ExplainedPolicy](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/latest/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[ExplainedPolicy](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/latest/Google.Cloud.PolicyTroubleshooter.V1.ExplainedPolicy), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\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.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.PolicyTroubleshooter.V1](/dotnet/docs/reference/Google.Cloud.PolicyTroubleshooter.V1/latest/Google.Cloud.PolicyTroubleshooter.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.PolicyTroubleshooter.V1.dll\n\nConstructors\n------------\n\n### ExplainedPolicy()\n\n public ExplainedPolicy()\n\n### ExplainedPolicy(ExplainedPolicy)\n\n public ExplainedPolicy(ExplainedPolicy other)\n\nProperties\n----------\n\n### Access\n\n public AccessState Access { get; set; }\n\nIndicates whether *this policy* provides the specified permission to the\nspecified principal for the specified resource.\n\nThis field does *not* indicate whether the principal actually has the\npermission for the resource. There might be another policy that overrides\nthis policy. To determine whether the principal actually has the\npermission, use the `access` field in the\n\\[TroubleshootIamPolicyResponse\\]\\[IamChecker.TroubleshootIamPolicyResponse\\].\n\n### BindingExplanations\n\n public RepeatedField\u003cBindingExplanation\u003e BindingExplanations { get; }\n\nDetails about how each binding in the policy affects the principal's\nability, or inability, to use the permission for the resource.\n\nIf the sender of the request does not have access to the policy, this field\nis omitted.\n\n### FullResourceName\n\n public string FullResourceName { get; set; }\n\nThe full resource name that identifies the resource. For example,\n`//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`.\n\nIf the sender of the request does not have access to the policy, this field\nis omitted.\n\nFor examples of full resource names for Google Cloud services, see\n\u003chttps://cloud.google.com/iam/help/troubleshooter/full-resource-names\u003e.\n\n### Policy\n\n public Policy Policy { get; set; }\n\nThe IAM policy attached to the resource.\n\nIf the sender of the request does not have access to the policy, this field\nis empty.\n\n### Relevance\n\n public HeuristicRelevance Relevance { get; set; }\n\nThe relevance of this policy to the overall determination in the\n\\[TroubleshootIamPolicyResponse\\]\\[IamChecker.TroubleshootIamPolicyResponse\\].\n\nIf the sender of the request does not have access to the policy, this field\nis omitted."]]