public RepeatedField<FirewallAction> Actions { get; }
Optional. The actions that the caller should take regarding user access.
There should be at most one terminal action. A terminal action is any
action that forces a response, such as AllowAction,
BlockAction or SubstituteAction.
Zero or more non-terminal actions such as SetHeader might be
specified. A single policy can contain up to 16 actions.
Optional. A CEL (Common Expression Language) conditional expression that
specifies if this policy applies to an incoming user request. If this
condition evaluates to true and the requested path matched the path
pattern, the associated actions should be executed by the caller. The
condition string is checked for CEL syntax correctness on creation. For
more information, see the CEL spec
and its language
definition.
A condition has a max length of 500 characters.
Optional. The path for which this policy applies, specified as a glob
pattern. For more information on glob, see the manual
page.
A path has a max length of 200 characters.
[[["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 provided content details the \u003ccode\u003eFirewallPolicy\u003c/code\u003e class within the Google Cloud reCAPTCHA Enterprise v1 API, with the latest version being 2.17.0.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eFirewallPolicy\u003c/code\u003e defines a matching pattern and actions to be taken, applicable to user access.\u003c/p\u003e\n"],["\u003cp\u003eThe class implements interfaces like \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, extending its capabilities and providing specific methods such as deep cloning.\u003c/p\u003e\n"],["\u003cp\u003eKey properties of \u003ccode\u003eFirewallPolicy\u003c/code\u003e include \u003ccode\u003eActions\u003c/code\u003e, specifying what actions to perform, \u003ccode\u003eCondition\u003c/code\u003e, a CEL expression for policy applicability, \u003ccode\u003eDescription\u003c/code\u003e, \u003ccode\u003eFirewallPolicyName\u003c/code\u003e, \u003ccode\u003eName\u003c/code\u003e, and \u003ccode\u003ePath\u003c/code\u003e, all contributing to define and control the policy.\u003c/p\u003e\n"],["\u003cp\u003eThe class uses public constructor methods \u003ccode\u003eFirewallPolicy()\u003c/code\u003e and \u003ccode\u003eFirewallPolicy(FirewallPolicy other)\u003c/code\u003e to allow different manners of instantiating it, including cloning another already existing \u003ccode\u003eFirewallPolicy\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Google Cloud reCAPTCHA Enterprise v1 API - Class FirewallPolicy (2.18.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.18.0 (latest)](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/latest/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.17.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.17.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.16.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.16.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.15.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.15.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.14.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.14.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.13.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.13.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.12.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.12.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.11.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.11.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.10.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.10.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.9.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.9.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.8.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.8.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.7.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.6.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.5.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.4.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.3.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.2.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.1.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/2.0.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [1.6.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/1.6.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [1.5.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/1.5.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [1.4.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/1.4.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [1.3.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/1.3.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy)\n- [1.2.0](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/1.2.0/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy) \n\n public sealed class FirewallPolicy : IMessage\u003cFirewallPolicy\u003e, IEquatable\u003cFirewallPolicy\u003e, IDeepCloneable\u003cFirewallPolicy\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google Cloud reCAPTCHA Enterprise v1 API class FirewallPolicy.\n\nA FirewallPolicy represents a single matching pattern and resulting actions\nto take. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e FirewallPolicy \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[FirewallPolicy](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/latest/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[FirewallPolicy](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/latest/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[FirewallPolicy](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/latest/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy), [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.RecaptchaEnterprise.V1](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/latest/Google.Cloud.RecaptchaEnterprise.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.RecaptchaEnterprise.V1.dll\n\nConstructors\n------------\n\n### FirewallPolicy()\n\n public FirewallPolicy()\n\n### FirewallPolicy(FirewallPolicy)\n\n public FirewallPolicy(FirewallPolicy other)\n\nProperties\n----------\n\n### Actions\n\n public RepeatedField\u003cFirewallAction\u003e Actions { get; }\n\nOptional. The actions that the caller should take regarding user access.\nThere should be at most one terminal action. A terminal action is any\naction that forces a response, such as `AllowAction`,\n`BlockAction` or `SubstituteAction`.\nZero or more non-terminal actions such as `SetHeader` might be\nspecified. A single policy can contain up to 16 actions.\n\n### Condition\n\n public string Condition { get; set; }\n\nOptional. A CEL (Common Expression Language) conditional expression that\nspecifies if this policy applies to an incoming user request. If this\ncondition evaluates to true and the requested path matched the path\npattern, the associated actions should be executed by the caller. The\ncondition string is checked for CEL syntax correctness on creation. For\nmore information, see the [CEL spec](https://github.com/google/cel-spec)\nand its [language\ndefinition](https://github.com/google/cel-spec/blob/master/doc/langdef.md).\nA condition has a max length of 500 characters.\n\n### Description\n\n public string Description { get; set; }\n\nOptional. A description of what this policy aims to achieve, for\nconvenience purposes. The description can at most include 256 UTF-8\ncharacters.\n\n### FirewallPolicyName\n\n public FirewallPolicyName FirewallPolicyName { get; set; }\n\n[FirewallPolicyName](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/latest/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicyName)-typed view over the [Name](/dotnet/docs/reference/Google.Cloud.RecaptchaEnterprise.V1/latest/Google.Cloud.RecaptchaEnterprise.V1.FirewallPolicy#Google_Cloud_RecaptchaEnterprise_V1_FirewallPolicy_Name) resource name property.\n\n### Name\n\n public string Name { get; set; }\n\nIdentifier. The resource name for the FirewallPolicy in the format\n`projects/{project}/firewallpolicies/{firewallpolicy}`.\n\n### Path\n\n public string Path { get; set; }\n\nOptional. The path for which this policy applies, specified as a glob\npattern. For more information on glob, see the [manual\npage](https://man7.org/linux/man-pages/man7/glob.7.html).\nA path has a max length of 200 characters."]]