The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number.
An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
[[["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-08 UTC."],[[["\u003cp\u003eThe latest version of the \u003ccode\u003eGoogle.Cloud.Compute.V1.Denied\u003c/code\u003e class is 3.6.0, with numerous previous versions available for reference, spanning from 1.0.0 to the present release.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eDenied\u003c/code\u003e class implements several interfaces, including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable<Denied>\u003c/code\u003e, \u003ccode\u003eIDeepCloneable<Denied>\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, offering methods for message handling, equality checks, deep cloning, and buffer operations.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eDenied\u003c/code\u003e class has properties \u003ccode\u003eHasIPProtocol\u003c/code\u003e, which checks if the IP protocol field is set, \u003ccode\u003eIPProtocol\u003c/code\u003e which specifies the IP protocol for the rule, and \u003ccode\u003ePorts\u003c/code\u003e that lists the ports for which the rule is applicable.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eDenied\u003c/code\u003e class has inherited members such as \u003ccode\u003eObject.GetHashCode()\u003c/code\u003e, \u003ccode\u003eObject.GetType()\u003c/code\u003e, \u003ccode\u003eObject.MemberwiseClone()\u003c/code\u003e, and \u003ccode\u003eObject.ToString()\u003c/code\u003e from the \u003ccode\u003eObject\u003c/code\u003e class.\u003c/p\u003e\n"],["\u003cp\u003eThere are two constructors for the Denied class, a default one (\u003ccode\u003eDenied()\u003c/code\u003e) and one that takes an instance of Denied (\u003ccode\u003eDenied(Denied other)\u003c/code\u003e), where other is a parameter of type Denied.\u003c/p\u003e\n"]]],[],null,[]]