[ClassVersion("1.0.0"), FriendlyName("vFirewall")]
class VE_vFirewall : OMI_BaseResource
  [Key, Description("Localized, user-facing name of the Firewall Rule being created")] String DisplayName;
  [Required, Description("Specifies one or more profiles to which the rule is assigned")] String Profile[];
  [Required, Description("Permit or Block the supplied configuration"), ValueMap{"Bypass", "Allow", "Block"},Values{"Bypass", "Allow", "Block"}] String Action;
  [Required, Description("Direction of the connection"), ValueMap{"Inbound","Outbound"},values{"Inbound","Outbound"}] String Direction;
  [Write, Description("Ensure the presence/absence of the resource"), ValueMap{"Present", "Absent"},Values{"Present", "Absent"}] String Ensure;
  [Write, Description("Enable or disable the supplied configuration")] boolean Enabled;
  [Write, Description("Specific Port used for filter. Specified by port number, range, or keyword")] String RemotePort[];
  [Write, Description("Local Port used for the filter. Specified by port number, range, or keyword")] String LocalPort[];
  [Write, Description("Specific Protocol for filter. Specified by name, number, or range")] String Protocol;
  [Write, Description("Documentation for the Rule")] String Description;
  [Write, Description("Path and file name of the program for which the rule is applied")] String Program;
  [Write, Description("Specifies the short name of a Windows service to which the firewall rule applies")] String Service;
  [Read, Description("Name of the Firewall Group")] string DisplayGroup;