public override void Execute() { base.Execute(); if (TranslatedFqdn != null) { ValidateIsFqdn(TranslatedFqdn); } var natRule = new PSAzureFirewallPolicyNatRule { Name = this.Name, Protocols = this.Protocol?.ToList(), SourceAddresses = this.SourceAddress?.ToList(), SourceIpGroups = this.SourceIpGroup?.ToList(), DestinationAddresses = this.DestinationAddress?.ToList(), DestinationPorts = this.DestinationPort?.ToList(), TranslatedAddress = this.TranslatedAddress, TranslatedFqdn = this.TranslatedFqdn, TranslatedPort = this.TranslatedPort, RuleType = "NatRule" }; WriteObject(natRule); }
public PSAzureFirewallPolicyRuleCollectionGroupWrapper GetAzureFirewallPolicyRuleGroup(string resourceGroupName, string firewallPolicyName, string name) { var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore }; var getRuleCollectionGroup = this.AzureFirewallPolicyRuleGroupClient.Get(resourceGroupName, firewallPolicyName, name); var ruleCollectionGroup = new PSAzureFirewallPolicyRuleCollectionGroup(); ruleCollectionGroup.RuleCollection = new List <PSAzureFirewallPolicyBaseRuleCollection>(); for (int ruleCollectionIndex = 0; ruleCollectionIndex < getRuleCollectionGroup.RuleCollections.Count; ruleCollectionIndex++) { var ruleCollection = new PSAzureFirewallPolicyBaseRuleCollection(); if (getRuleCollectionGroup.RuleCollections[ruleCollectionIndex] is MNM.FirewallPolicyFilterRuleCollection) { MNM.FirewallPolicyFilterRuleCollection filterRule = (MNM.FirewallPolicyFilterRuleCollection)getRuleCollectionGroup.RuleCollections[ruleCollectionIndex]; PSAzureFirewallPolicyFilterRuleCollection filterRuleCollection = JsonConvert.DeserializeObject <PSAzureFirewallPolicyFilterRuleCollection>(JsonConvert.SerializeObject(getRuleCollectionGroup.RuleCollections[ruleCollectionIndex])); filterRuleCollection.RuleCollectionType = "FirewallPolicyFilterRuleCollection"; filterRuleCollection.Rules = new List <PSAzureFirewallPolicyRule>(); for (int ruleIndex = 0; ruleIndex < filterRule.Rules.Count; ruleIndex++) { if (filterRule.Rules[ruleIndex] is MNM.ApplicationRule) { PSAzureFirewallPolicyApplicationRule rule = JsonConvert.DeserializeObject <PSAzureFirewallPolicyApplicationRule>(JsonConvert.SerializeObject(filterRule.Rules[ruleIndex])); rule.RuleType = "ApplicationRule"; filterRuleCollection.Rules.Add(rule); } else { PSAzureFirewallPolicyNetworkRule rule = JsonConvert.DeserializeObject <PSAzureFirewallPolicyNetworkRule>(JsonConvert.SerializeObject(filterRule.Rules[ruleIndex])); rule.RuleType = "NetworkRule"; filterRuleCollection.Rules.Add(rule); } } ruleCollectionGroup.RuleCollection.Add(filterRuleCollection); } else { MNM.FirewallPolicyNatRuleCollection natRule = (MNM.FirewallPolicyNatRuleCollection)getRuleCollectionGroup.RuleCollections[ruleCollectionIndex]; PSAzureFirewallPolicyNatRuleCollection natRuleCollection = JsonConvert.DeserializeObject <PSAzureFirewallPolicyNatRuleCollection>(JsonConvert.SerializeObject(getRuleCollectionGroup.RuleCollections[ruleCollectionIndex])); natRuleCollection.RuleCollectionType = "FirewallPolicyNatRuleCollection"; natRuleCollection.Rules = new List <PSAzureFirewallPolicyNatRule>(); for (int ruleIndex = 0; ruleIndex < natRule.Rules.Count; ruleIndex++) { PSAzureFirewallPolicyNatRule rule = JsonConvert.DeserializeObject <PSAzureFirewallPolicyNatRule>(JsonConvert.SerializeObject(natRule.Rules[ruleIndex])); rule.RuleType = "NatRule"; natRuleCollection.Rules.Add(rule); } ruleCollectionGroup.RuleCollection.Add(natRuleCollection); } } var ruleCollectionGroupWrapper = new PSAzureFirewallPolicyRuleCollectionGroupWrapper(); ruleCollectionGroup.Priority = (uint)getRuleCollectionGroup.Priority; ruleCollectionGroupWrapper.Properties = ruleCollectionGroup; ruleCollectionGroupWrapper.Name = getRuleCollectionGroup.Name; ruleCollectionGroupWrapper.Properties.Id = getRuleCollectionGroup.Id; return(ruleCollectionGroupWrapper); }