From 8557d439145cd942212f4d5633c036a5192fee19 Mon Sep 17 00:00:00 2001 From: Paras Singh <143737587+paraboys@users.noreply.github.com> Date: Wed, 15 Jul 2026 23:19:24 +0530 Subject: [PATCH 1/4] Add VerifyClientAuthMode mapping to client auth config --- .../Common/NetworkResourceManagerProfile.cs | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/Network/Network/Common/NetworkResourceManagerProfile.cs b/src/Network/Network/Common/NetworkResourceManagerProfile.cs index 04af6bf67c38..e66e5b6948da 100644 --- a/src/Network/Network/Common/NetworkResourceManagerProfile.cs +++ b/src/Network/Network/Common/NetworkResourceManagerProfile.cs @@ -1449,11 +1449,15 @@ private static void Initialize() dest.CipherSuites = src.CipherSuites == null ? null : dest.CipherSuites; dest.DisabledSslProtocols = src.DisabledSslProtocols == null ? null : dest.DisabledSslProtocols; }); - cfg.CreateMap() - .ForMember( - dest => dest.VerifyClientCertIssuerDn, - opt => opt.MapFrom(src => src.VerifyClientCertIssuerDN) - ); + cfg.CreateMap() + .ForMember( + dest => dest.VerifyClientCertIssuerDn, + opt => opt.MapFrom(src => src.VerifyClientCertIssuerDN) + ) + .ForMember( + dest => dest.VerifyClientAuthMode, + opt => opt.MapFrom(src => src.VerifyClientAuthMode) + ); cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap() @@ -1554,11 +1558,15 @@ private static void Initialize() dest.CipherSuites = src.CipherSuites == null ? null : dest.CipherSuites; dest.DisabledSslProtocols = src.DisabledSslProtocols == null ? null : dest.DisabledSslProtocols; }); - cfg.CreateMap() - .ForMember( - dest => dest.VerifyClientCertIssuerDN, - opt => opt.MapFrom(src => src.VerifyClientCertIssuerDn) - ); + cfg.CreateMap() + .ForMember( + dest => dest.VerifyClientCertIssuerDN, + opt => opt.MapFrom(src => src.VerifyClientCertIssuerDn) + ) + .ForMember( + dest => dest.VerifyClientAuthMode, + opt => opt.MapFrom(src => src.VerifyClientAuthMode) + ); cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap() From e909e315e690c57318e0a709f56bb8cb0cb79728 Mon Sep 17 00:00:00 2001 From: Paras Singh <143737587+paraboys@users.noreply.github.com> Date: Wed, 15 Jul 2026 23:26:46 +0530 Subject: [PATCH 2/4] Add VerifyClientAuthMode property to PSApplicationGatewayClientAuthConfiguration --- .../Models/PSApplicationGatewayClientAuthConfiguration.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Network/Network/Models/PSApplicationGatewayClientAuthConfiguration.cs b/src/Network/Network/Models/PSApplicationGatewayClientAuthConfiguration.cs index 427475d76e4e..9a6eb514d8e9 100644 --- a/src/Network/Network/Models/PSApplicationGatewayClientAuthConfiguration.cs +++ b/src/Network/Network/Models/PSApplicationGatewayClientAuthConfiguration.cs @@ -19,5 +19,6 @@ public class PSApplicationGatewayClientAuthConfiguration { public bool? VerifyClientCertIssuerDN { get; set; } public string VerifyClientRevocation { get; set; } + public string VerifyClientAuthMode { get; set; } } } From d4c74e16e087c39f3a1833ac2b805d12c078cd13 Mon Sep 17 00:00:00 2001 From: Paras Singh <143737587+paraboys@users.noreply.github.com> Date: Thu, 16 Jul 2026 00:18:32 +0530 Subject: [PATCH 3/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../Common/NetworkResourceManagerProfile.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Network/Network/Common/NetworkResourceManagerProfile.cs b/src/Network/Network/Common/NetworkResourceManagerProfile.cs index e66e5b6948da..27d2f33805d5 100644 --- a/src/Network/Network/Common/NetworkResourceManagerProfile.cs +++ b/src/Network/Network/Common/NetworkResourceManagerProfile.cs @@ -1558,15 +1558,15 @@ private static void Initialize() dest.CipherSuites = src.CipherSuites == null ? null : dest.CipherSuites; dest.DisabledSslProtocols = src.DisabledSslProtocols == null ? null : dest.DisabledSslProtocols; }); - cfg.CreateMap() - .ForMember( - dest => dest.VerifyClientCertIssuerDN, - opt => opt.MapFrom(src => src.VerifyClientCertIssuerDn) - ) - .ForMember( - dest => dest.VerifyClientAuthMode, - opt => opt.MapFrom(src => src.VerifyClientAuthMode) - ); + cfg.CreateMap() + .ForMember( + dest => dest.VerifyClientCertIssuerDN, + opt => opt.MapFrom(src => src.VerifyClientCertIssuerDn) + ) + .ForMember( + dest => dest.VerifyClientAuthMode, + opt => opt.MapFrom(src => src.VerifyClientAuthMode) + ); cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap() From 06ada0bbc94aa229a735c431c1513fa5587984bf Mon Sep 17 00:00:00 2001 From: Paras Singh <143737587+paraboys@users.noreply.github.com> Date: Thu, 16 Jul 2026 00:47:34 +0530 Subject: [PATCH 4/4] Refactor mapping configurations for client auth indentation --- .../Common/NetworkResourceManagerProfile.cs | 5142 ++++++++--------- 1 file changed, 2571 insertions(+), 2571 deletions(-) diff --git a/src/Network/Network/Common/NetworkResourceManagerProfile.cs b/src/Network/Network/Common/NetworkResourceManagerProfile.cs index 27d2f33805d5..79840c114514 100644 --- a/src/Network/Network/Common/NetworkResourceManagerProfile.cs +++ b/src/Network/Network/Common/NetworkResourceManagerProfile.cs @@ -1,1563 +1,1563 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -namespace Microsoft.Azure.Commands.Network -{ - using AutoMapper; - using System; - using System.Collections.Generic; - using System.Linq; - using System.Management.Automation; - using WindowsAzure.Commands.Common; - using CNM = Microsoft.Azure.Commands.Network.Models; - using MNM = Microsoft.Azure.Management.Network.Models; - using ANM = Microsoft.Azure.Commands.Network.Models.NetworkManager; - using Microsoft.WindowsAzure.Commands.Utilities.Common; - using Microsoft.Azure.Commands.Network.Models; - - public class NetworkResourceManagerProfile : Profile - { - private static IMapper _mapper = null; - - private static readonly object _lock = new object(); - - public static IMapper Mapper - { - get - { - lock (_lock) - { - if (_mapper == null) - { - Initialize(); - } - - return _mapper; - } - } - } - - public override string ProfileName - { - get { return "NetworkResourceManagerProfile"; } - } - - private static string[] SecurityRuleProps = { "SourcePortRange", "DestinationPortRange", "SourceAddressPrefix", "DestinationAddressPrefix" }; - - private static void MapSecurityRuleManagementToCommand(MnmType mnmObj, CnmType cnmObj) - { - /* - * MNM type contains properties with both singular & plural name, - * while CNM - only singular (while being IList at the same time). - * MNM->CNM mapping is done this way: - * If MNM's property with plural name is non-empty list, use it - * Else set CNM prop as an empty list - * If MNM's prop with singular name isn't empty, add it to that list - */ - - for (int i = 0; i < SecurityRuleProps.Length; i++) - { - string singularPropName = SecurityRuleProps[i]; - string pluralPropName = singularPropName + (singularPropName.EndsWith("Prefix") ? "es" : "s"); - - var cnmProp = typeof(CnmType).GetProperty(singularPropName); - - var mnmPluralValue = (ICollection)typeof(MnmType).GetProperty(pluralPropName).GetValue(mnmObj); - if (mnmPluralValue != null && mnmPluralValue.Count != 0) - { - cnmProp.SetValue(cnmObj, mnmPluralValue); - } - else - { - List list = new List(); - - var mnmSingularValue = (string)typeof(MnmType).GetProperty(singularPropName).GetValue(mnmObj); - if (!string.IsNullOrWhiteSpace(mnmSingularValue)) - { - list.Add(mnmSingularValue); - } - - cnmProp.SetValue(cnmObj, list); - } - } - } - - private static void MapSecurityRuleCommandToManagement(CnmType cnmObj, MnmType mnmObj) - { - /* - * MNM type contains properties with both singular & plural name, - * while CNM - only singular (while being IList at the same time). - * CNM->MNM mapping is done this way: - * If CNM's property (which is a list) has only one item, - * use it for MNM's singular property - * Else set MNM's singular property to null - * and assign CNM's list to MNM's plural prop - */ - - for (int i = 0; i < SecurityRuleProps.Length; i++) - { - string singularPropName = SecurityRuleProps[i]; - string pluralPropName = singularPropName + (singularPropName.EndsWith("Prefix") ? "es" : "s"); - - var mnmSingularProp = typeof(MnmType).GetProperty(singularPropName); - var mnmPluralProp = typeof(MnmType).GetProperty(pluralPropName); - - var cnmValue = (ICollection)typeof(CnmType).GetProperty(singularPropName).GetValue(cnmObj); - if (GeneralUtilities.HasSingleElement(cnmValue)) - { - mnmSingularProp.SetValue(mnmObj, cnmValue.First()); - mnmPluralProp.SetValue(mnmObj, null); - } - else - { - mnmSingularProp.SetValue(mnmObj, null); - mnmPluralProp.SetValue(mnmObj, cnmValue); - } - } - } - - private static void MapRouteTableV2sToRouteTables(MnmType mnmObj, CnmType cnmObj) - { - /* - * MNM type Virtual Hub contains the property VirtualHubRouteTableV2S which - * maps to the RouteTables property of the CNM type VirtualHub - * So, we get the value of RouteTableV2s from the MNM obj and - * set it to the RouteTables property of the CNM obj. - */ - string psRouteTablesPropName = "RouteTables"; - string mnmRouteTableV2sPropName = "VirtualHubRouteTableV2S"; - - var cnmRouteTablesProp = typeof(CnmType).GetProperty(psRouteTablesPropName); - - List cnmRouteTables = new List(); - - // get routeTableV2s - var mnmValue = (ICollection)typeof(MnmType).GetProperty(mnmRouteTableV2sPropName).GetValue(mnmObj); - foreach (var mnmRouteTableV2 in mnmValue) - { - var mnmRoutes = mnmRouteTableV2.Routes; - var mnmAttachedConnections = (ICollection)mnmRouteTableV2.AttachedConnections; - - List cnmRoutes = new List(); - var cnmAttachedConnections = new List(mnmAttachedConnections); - - foreach (var mnmRoute in mnmRoutes) - { - var cnmRoute = new CNM.PSVirtualHubRoute - { - Destinations = new List(mnmRoute.Destinations), - DestinationType = mnmRoute.DestinationType, - NextHops = new List(mnmRoute.NextHops), - NextHopType = mnmRoute.NextHopType - }; - - cnmRoutes.Add(cnmRoute); - } - - var cnmRouteTable = new CNM.PSVirtualHubRouteTable - { - Routes = cnmRoutes, - Connections = cnmAttachedConnections, - Name = mnmRouteTableV2.Name - }; - - cnmRouteTables.Add(cnmRouteTable); - } - - cnmRouteTablesProp.SetValue(cnmObj, cnmRouteTables); - } - - private static void MapRouteTablesToRouteTableV2s(CnmType cnmObj, MnmType mnmObj) - { - string psRouteTablesPropName = "RouteTables"; - string mnmRouteTableV2sPropName = "VirtualHubRouteTableV2S"; - - var mnmRouteTableV2sProp = typeof(MnmType).GetProperty(mnmRouteTableV2sPropName); - - List mnmRouteTables = new List(); - - var cnmValue = (ICollection)typeof(CnmType).GetProperty(psRouteTablesPropName).GetValue(cnmObj); - foreach (var cnmRouteTableV2 in cnmValue) - { - var cnmRoutes = cnmRouteTableV2.Routes; - var cnmAttachedConnections = (ICollection)cnmRouteTableV2.Connections; - - List mnmRoutes = new List(); - var mnmAttachedConnections = new List(cnmAttachedConnections); - - foreach (var cnmRoute in cnmRoutes) - { - var mnmRoute = new MNM.VirtualHubRouteV2 - { - Destinations = new List(cnmRoute.Destinations), - DestinationType = cnmRoute.DestinationType, - NextHops = new List(cnmRoute.NextHops), - NextHopType = cnmRoute.NextHopType - }; - - mnmRoutes.Add(mnmRoute); - } - - var mnmRouteTable = new MNM.VirtualHubRouteTableV2 - { - Routes = mnmRoutes, - AttachedConnections = mnmAttachedConnections, - Name = cnmRouteTableV2.Name - }; - - mnmRouteTables.Add(mnmRouteTable); - } - - mnmRouteTableV2sProp.SetValue(mnmObj, mnmRouteTables); - } - - private static void Initialize() - { - var config = new MapperConfiguration(cfg => - { - cfg.AddProfile(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Map request error exceptions between SDK and PowerShell - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Managed Service Identity - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Route Filter - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Nat Gateway - cfg.CreateMap() - .ForMember( - dest => dest.PublicIPAddresses, - opt => opt.MapFrom(src => src.PublicIpAddresses) - ) - .ForMember( - dest => dest.PublicIPPrefixes, - opt => opt.MapFrom(src => src.PublicIpPrefixes) - ); - cfg.CreateMap() - .ForMember( - dest => dest.PublicIpAddresses, - opt => opt.MapFrom(src => src.PublicIPAddresses) - ) - .ForMember( - dest => dest.PublicIpPrefixes, - opt => opt.MapFrom(src => src.PublicIPPrefixes) - ); - cfg.CreateMap(); - cfg.CreateMap(); - - // Bgp Service Community - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Virtual Network Encryption - cfg.CreateMap(); - cfg.CreateMap(); - - // Subnet - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember(dest => dest.AddressPrefix, opt => opt.Ignore()) - .ForMember(dest => dest.AddressPrefixes, opt => opt.Ignore()) - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ) - .ForMember( - dest => dest.IPAllocations, - opt => opt.MapFrom(src => src.IpAllocations) - ) - .AfterMap((src, dest) => - { - if (GeneralUtilities.HasMoreThanOneElement(src.AddressPrefix)) - { - dest.AddressPrefixes = src.AddressPrefix; - } - else - { - dest.AddressPrefix = src.AddressPrefix?.FirstOrDefault(); - } - }); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember(dest => dest.AddressPrefix, opt => opt.Ignore()) - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ) - .ForMember( - dest => dest.IpAllocations, - opt => opt.MapFrom(src => src.IPAllocations) - ) - .AfterMap((src, dest) => - { - if (src.AddressPrefixes != null && src.AddressPrefixes.Any()) - { - dest.AddressPrefix = src.AddressPrefixes?.ToList(); - } - else if (!string.IsNullOrEmpty(src.AddressPrefix)) - { - dest.AddressPrefix = new List { src.AddressPrefix }; - } - }); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // TestPrivateIpAddressAvailability - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // Available endpoint services - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // Available subnet delegations - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // Available subnet aliases - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // VirtualNetwork Peering - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.RemoteAddressSpace, - opt => opt.MapFrom(src => src.PeeredRemoteAddressSpace) - ); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.PeeredRemoteAddressSpace, - opt => opt.MapFrom(src => src.RemoteAddressSpace) - ); - - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.PeerCompleteVnets, - opt => opt.MapFrom(src => src.PeerCompleteVnets) - ); - - // MMM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.PeerCompleteVnets, - opt => opt.MapFrom(src => src.PeerCompleteVnets) - ); - - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.LocalSubnetNames, - opt => opt.MapFrom(src => src.LocalSubnetNames) - ); - - // MMM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.LocalSubnetNames, - opt => opt.MapFrom(src => src.LocalSubnetNames) - ); - - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.RemoteSubnetNames, - opt => opt.MapFrom(src => src.RemoteSubnetNames) - ); - - // MMM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.RemoteSubnetNames, - opt => opt.MapFrom(src => src.RemoteSubnetNames) - ); - /* - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.RemoteVirtualNetworkAddressSpace, - opt => opt.MapFrom(src => src.RemoteVirtualNetworkAddressSpace) - ); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.RemoteVirtualNetworkAddressSpace, - opt => opt.MapFrom(src => src.RemoteVirtualNetworkAddressSpace) - ); - */ - - // VirtualNetwork - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IPAllocations, - opt => opt.MapFrom(src => src.IpAllocations) - ); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IpAllocations, - opt => opt.MapFrom(src => src.IPAllocations) - ) - .ForMember( - dest => dest.ExtendedLocation, - opt => opt.MapFrom(src => - (src.ExtendedLocation == null ? null : new PSExtendedLocation(src.ExtendedLocation.Name))) - ); - cfg.CreateMap(); - cfg.CreateMap(); - - // PublicIpAddress - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.IPConfiguration, - opt => opt.MapFrom(src => src.IpConfiguration) - ) - .ForMember( - dest => dest.IPTags, - opt => opt.MapFrom(src => src.IpTags) - ) - .ForMember( - dest => dest.IPAddress, - opt => opt.MapFrom(src => src.IpAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.IPTagType, - opt => opt.MapFrom(src => src.IpTagType) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.IpConfiguration, - opt => opt.MapFrom(src => src.IPConfiguration) - ) - .ForMember( - dest => dest.IpTags, - opt => opt.MapFrom(src => src.IPTags) - ) - .ForMember( - dest => dest.IpAddress, - opt => opt.MapFrom(src => src.IPAddress) - ) - .ForMember( - dest => dest.ExtendedLocation, - opt => opt.MapFrom(src => - src.ExtendedLocation == null ? null : new PSExtendedLocation(src.ExtendedLocation.Name))) - .ForMember( - dest => dest.DdosSettings, - opt => opt.MapFrom(src => - (src.DdosSettings ?? new MNM.DdosSettings())) - ); - cfg.CreateMap() - .ForMember( - dest => dest.IpTagType, - opt => opt.MapFrom(src => src.IPTagType) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // PublicIpPrefix - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.IPTags, - opt => opt.MapFrom(src => src.IpTags) - ); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IPTagType, - opt => opt.MapFrom(src => src.IpTagType) - ); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.IpTags, - opt => opt.MapFrom(src => src.IPTags) - ); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IpTagType, - opt => opt.MapFrom(src => src.IPTagType) - ); - cfg.CreateMap(); - - // CustomIpPrefix - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.CustomIPPrefixParent, - opt => opt.MapFrom(src => src.CustomIpPrefixParent) - ) - .ForMember( - dest => dest.ChildCustomIPPrefixes, - opt => opt.MapFrom(src => src.ChildCustomIpPrefixes) - ) - .ForMember( - dest => dest.PublicIPPrefixes, - opt => opt.MapFrom(src => src.PublicIpPrefixes) - ); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.CustomIpPrefixParent, - opt => opt.MapFrom(src => src.CustomIPPrefixParent) - ) - .ForMember( - dest => dest.ChildCustomIpPrefixes, - opt => opt.MapFrom(src => src.ChildCustomIPPrefixes) - ) - .ForMember( - dest => dest.PublicIpPrefixes, - opt => opt.MapFrom(src => src.PublicIPPrefixes) - ); - - // NetworkInterface - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ) - .ForMember( - dest => dest.ExtendedLocation, - opt => opt.MapFrom(src => - (src.ExtendedLocation == null ? null : new PSExtendedLocation(src.ExtendedLocation.Name))) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Usage - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // NetworkWatcher - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // PacketCapture - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Topology - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // ViewNsgRules - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // IpFlowVerify - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // NextHop - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.NextHopIPAddress, - opt => opt.MapFrom(src => src.NextHopIpAddress) - ); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.NextHopIpAddress, - opt => opt.MapFrom(src => src.NextHopIPAddress) - ); - - // Troubleshoot - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // FlowLog - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // CheckConnectivity - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.AvgLatencyInMS, - opt => opt.MapFrom(src => src.AvgLatencyInMs) - ) - .ForMember( - dest => dest.MinLatencyInMS, - opt => opt.MapFrom(src => src.MinLatencyInMs) - ) - .ForMember( - dest => dest.MaxLatencyInMS, - opt => opt.MapFrom(src => src.MaxLatencyInMs) - ); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.AvgLatencyInMs, - opt => opt.MapFrom(src => src.AvgLatencyInMS) - ) - .ForMember( - dest => dest.MinLatencyInMs, - opt => opt.MapFrom(src => src.MinLatencyInMS) - ) - .ForMember( - dest => dest.MaxLatencyInMs, - opt => opt.MapFrom(src => src.MaxLatencyInMS) - ); - cfg.CreateMap(); - cfg.CreateMap(); - - // AvailableProvidersList - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // AzureReachabilityReport - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // ConnectionMonitor - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.PreferHttps, - opt => opt.MapFrom(src => src.PreferHTTPS) - ); - cfg.CreateMap() - .ForMember( - dest => dest.RoundTripTimeMS, - opt => opt.MapFrom(src => src.RoundTripTimeMs) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.PreferHTTPS, - opt => opt.MapFrom(src => src.PreferHttps) - ); - cfg.CreateMap() - .ForMember( - dest => dest.RoundTripTimeMs, - opt => opt.MapFrom(src => src.RoundTripTimeMS) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // NetworkConfigurationDiagnostic - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // LoadBalancer - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - - // FrontendIpConfiguration - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // BackendAddressPool - // CNM to MNM - cfg.CreateMap(); - - // LoadBalancerBackendAddress - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.IPAddress, - opt => opt.MapFrom(src => src.IpAddress) - ); - - // LoadBalancerBackendAddress - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.IpAddress, - opt => opt.MapFrom(src => src.IPAddress) - ); - - // InboundNatRulePortMapping - // CNM to MNM - cfg.CreateMap(); - - // InboundNatRulePortMapping - // MNM to CNM - cfg.CreateMap(); - - // LoadBalancerHealthPerRule - // CNM to MNM - cfg.CreateMap(); - - // LoadBalancerHealthPerRule - // MNM to CNM - cfg.CreateMap(); - - // LoadBalancerHealthPerRulePerBackendAddress - // CNM to MNM - cfg.CreateMap(); - - // LoadBalancerHealthPerRulePerBackendAddress - // MNM to CNM - cfg.CreateMap(); - - // ExpressRouteFailoverSingleTestDetails - // CNM to MNM - cfg.CreateMap(); - - // ExpressRouteFailoverSingleTestDetails - // MNM to CNM - cfg.CreateMap(); - - // ExpressRouteFailoverRedundantRoute - // CNM to MNM - cfg.CreateMap(); - - // ExpressRouteFailoverRedundantRoute - // MNM to CNM - cfg.CreateMap(); - - // FailoverConnectionDetails - // CNM to MNM - cfg.CreateMap(); - - // FailoverConnectionDetails - // MNM to CNM - cfg.CreateMap(); - - // ExpressRouteFailoverTestDetails - // CNM to MNM - cfg.CreateMap(); - - // ExpressRouteFailoverTestDetails - // MNM to CNM - cfg.CreateMap(); - - // ExpressRouteFailoverCircuitResourceDetails - // CNM to MNM - cfg.CreateMap(); - - // ExpressRouteFailoverCircuitResourceDetails - // MNM to CNM - cfg.CreateMap(); - - // ExpressRouteFailoverConnectionResourceDetails - // CNM to MNM - cfg.CreateMap(); - - // ExpressRouteFailoverConnectionResourceDetails - // MNM to CNM - cfg.CreateMap(); - - // NatRulePortMapping - // CNM to MNM - cfg.CreateMap(); - - // NatRulePortMapping - // MNM to CNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // LoadBalancingRule - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // Probes - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // InboundNatRules - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // InboundNatPools - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // OutboundRules - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // NetworkSecurityGroups - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // NetworkSecurityRule - // CNM to MNM - cfg.CreateMap() - .AfterMap((src, dest) => - { - MapSecurityRuleCommandToManagement(src, dest); - }); - - cfg.CreateMap() - .AfterMap((src, dest) => - { - MapSecurityRuleManagementToCommand(src, dest); - }); - - // RouteTable - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // Route - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.NextHopIPAddress, - opt => opt.MapFrom(src => src.NextHopIpAddress) - ); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.NextHopIpAddress, - opt => opt.MapFrom(src => src.NextHopIPAddress) - ); - - // EffectiveRouteTable - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.NextHopIPAddress, - opt => opt.MapFrom(src => src.NextHopIpAddress) - ); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.NextHopIpAddress, - opt => opt.MapFrom(src => src.NextHopIPAddress) - ); - - // EffectiveNetworkSecurityGroup - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .AfterMap((src, dest) => - { - MapSecurityRuleCommandToManagement(src, dest); - }); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .AfterMap((src, dest) => - { - MapSecurityRuleManagementToCommand(src, dest); - }); - - // ExpressRoutePortsLocation - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - - // ExpressRoutePort - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // ExpressRouteCircuit - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.AzureAsn, - opt => opt.MapFrom(src => src.AzureASN) - ) - .ForMember( - dest => dest.PeerAsn, - opt => opt.MapFrom(src => src.PeerASN) - ); - - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.AzureASN, - opt => opt.MapFrom(src => src.AzureAsn) - ) - .ForMember( - dest => dest.PeerASN, - opt => opt.MapFrom(src => src.PeerAsn) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IPAddress, - opt => opt.MapFrom(src => src.IpAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // ExpressRouteCircuitPeering - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.CustomerAsn, - opt => opt.MapFrom(src => src.CustomerASN) - ); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.CustomerASN, - opt => opt.MapFrom(src => src.CustomerAsn) - ); - cfg.CreateMap(); - - // Express Route Circuit Connection - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // Peer Express Route Circuit Connection - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // ExpressRouteServiceProvider - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IpAddress, - opt => opt.MapFrom(src => src.IPAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - - // ExpressRouteCircuitAuthorization - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // ExpressRouteCrossConnection - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.AzureAsn, - opt => opt.MapFrom(src => src.AzureASN) - ) - .ForMember( - dest => dest.PeerAsn, - opt => opt.MapFrom(src => src.PeerASN) - ); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.AzureASN, - opt => opt.MapFrom(src => src.AzureAsn) - ) - .ForMember( - dest => dest.PeerASN, - opt => opt.MapFrom(src => src.PeerAsn) - ); - - // ExpressRouteCrossConnectionPeering - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Gateways - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ) - .ForMember( - dest => dest.EnablePrivateIPAddress, - opt => opt.MapFrom(src => src.EnablePrivateIpAddress) - ) - .ForMember( - dest => dest.Active, - opt => opt.MapFrom(src => src.ActiveActive) - ) - .ForMember( - dest => dest.EnableHighBandwidthVpnGateway, - opt => opt.MapFrom(src => src.EnableAdvancedConnectivity) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.GatewayIPAddress, - opt => opt.MapFrom(src => src.GatewayIpAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.GatewayCustomBgpIPAddresses, - opt => opt.MapFrom(src => src.GatewayCustomBgpIpAddresses) - ) - .ForMember( - dest => dest.UseLocalAzureIPAddress, - opt => opt.MapFrom(src => src.UseLocalAzureIpAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember(d => d.VngClientConnectionConfigurations, opt => opt.MapFrom(s => s.ClientConnectionConfigurations)); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .AfterMap((src, dest) => - { - dest.BgpPeeringAddresses = dest.BgpPeeringAddresses.Count == 0 ? null : dest.BgpPeeringAddresses; - }); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.PublicIPAddress, - opt => opt.MapFrom(src => src.PublicIpAddress) - ) - .ForMember( - dest => dest.PrivateIPAddress, - opt => opt.MapFrom(src => src.PrivateIpAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.DefaultBgpIPAddresses, - opt => opt.MapFrom(src => src.DefaultBgpIpAddresses) - ) - .ForMember( - dest => dest.CustomBgpIPAddresses, - opt => opt.MapFrom(src => src.CustomBgpIpAddresses) - ) - .ForMember( - dest => dest.TunnelIPAddresses, - opt => opt.MapFrom(src => src.TunnelIpAddresses) - ); - cfg.CreateMap() - .ForMember( - dest => dest.PropertiesType, - opt => opt.MapFrom(src => src.VirtualNetworkGatewayNatRulePropertiesType) - ) - .ForMember( - dest => dest.IPConfigurationId, - opt => opt.MapFrom(src => src.IpConfigurationId) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IPConfigurationId, - opt => opt.MapFrom(src => src.IpconfigurationId) - ) - .ForMember( - dest => dest.CustomBgpIPAddress, - opt => opt.MapFrom(src => src.CustomBgpIpAddress) - ); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ) - .ForMember( - dest => dest.EnablePrivateIpAddress, - opt => opt.MapFrom(src => src.EnablePrivateIPAddress) - ) - .ForMember( - dest => dest.ActiveActive, - opt => opt.MapFrom(src => src.Active) - ) - .ForMember( - dest => dest.EnableAdvancedConnectivity, - opt => opt.MapFrom(src => src.EnableHighBandwidthVpnGateway) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.GatewayIpAddress, - opt => opt.MapFrom(src => src.GatewayIPAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.GatewayCustomBgpIpAddresses, - opt => opt.MapFrom(src => src.GatewayCustomBgpIPAddresses) - ) - .ForMember( - dest => dest.UseLocalAzureIpAddress, - opt => opt.MapFrom(src => src.UseLocalAzureIPAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember(d => d.ClientConnectionConfigurations, opt => opt.MapFrom(s => s.VngClientConnectionConfigurations)); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.PublicIpAddress, - opt => opt.MapFrom(src => src.PublicIPAddress) - ) - .ForMember( - dest => dest.PrivateIpAddress, - opt => opt.MapFrom(src => src.PrivateIPAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.DefaultBgpIpAddresses, - opt => opt.MapFrom(src => src.DefaultBgpIPAddresses) - ) - .ForMember( - dest => dest.CustomBgpIpAddresses, - opt => opt.MapFrom(src => src.CustomBgpIPAddresses) - ) - .ForMember( - dest => dest.TunnelIpAddresses, - opt => opt.MapFrom(src => src.TunnelIPAddresses) - ); - cfg.CreateMap() - .ForMember( - dest => dest.VirtualNetworkGatewayNatRulePropertiesType, - opt => opt.MapFrom(src => src.PropertiesType) - ) - .ForMember( - dest => dest.IpConfigurationId, - opt => opt.MapFrom(src => src.IPConfigurationId) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IpconfigurationId, - opt => opt.MapFrom(src => src.IPConfigurationId) - ) - .ForMember( - dest => dest.CustomBgpIpAddress, - opt => opt.MapFrom(src => src.CustomBgpIPAddress) - ); - - // Application Gateways - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .AfterMap((src, dest) => - { - dest.CipherSuites = src.CipherSuites == null ? null : dest.CipherSuites; - dest.DisabledSslProtocols = src.DisabledSslProtocols == null ? null : dest.DisabledSslProtocols; - }); - cfg.CreateMap() - .ForMember( - dest => dest.VerifyClientCertIssuerDn, - opt => opt.MapFrom(src => src.VerifyClientCertIssuerDN) - ) - .ForMember( - dest => dest.VerifyClientAuthMode, - opt => opt.MapFrom(src => src.VerifyClientAuthMode) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .AfterMap((src, dest) => dest.StatusCodes = (src.StatusCodes == null) ? null : dest.StatusCodes); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IPAddress, - opt => opt.MapFrom(src => src.IpAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap().ForMember( - dest => dest.Password, - opt => opt.ResolveUsing(src => src.Password?.ConvertToString())); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.ClientCertIssuerDn, - opt => opt.MapFrom(src => src.ClientCertIssuerDN) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IPConfiguration, - opt => opt.MapFrom(src => src.IpConfiguration) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.RequestBodyInspectLimitInKb, - opt => opt.MapFrom(src => src.RequestBodyInspectLimitInKB) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .AfterMap((src, dest) => dest.Rules = (src.Rules == null) ? null : dest.Rules); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .AfterMap((src, dest) => - { - dest.CipherSuites = src.CipherSuites == null ? null : dest.CipherSuites; - dest.DisabledSslProtocols = src.DisabledSslProtocols == null ? null : dest.DisabledSslProtocols; - }); +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Network +{ + using AutoMapper; + using System; + using System.Collections.Generic; + using System.Linq; + using System.Management.Automation; + using WindowsAzure.Commands.Common; + using CNM = Microsoft.Azure.Commands.Network.Models; + using MNM = Microsoft.Azure.Management.Network.Models; + using ANM = Microsoft.Azure.Commands.Network.Models.NetworkManager; + using Microsoft.WindowsAzure.Commands.Utilities.Common; + using Microsoft.Azure.Commands.Network.Models; + + public class NetworkResourceManagerProfile : Profile + { + private static IMapper _mapper = null; + + private static readonly object _lock = new object(); + + public static IMapper Mapper + { + get + { + lock (_lock) + { + if (_mapper == null) + { + Initialize(); + } + + return _mapper; + } + } + } + + public override string ProfileName + { + get { return "NetworkResourceManagerProfile"; } + } + + private static string[] SecurityRuleProps = { "SourcePortRange", "DestinationPortRange", "SourceAddressPrefix", "DestinationAddressPrefix" }; + + private static void MapSecurityRuleManagementToCommand(MnmType mnmObj, CnmType cnmObj) + { + /* + * MNM type contains properties with both singular & plural name, + * while CNM - only singular (while being IList at the same time). + * MNM->CNM mapping is done this way: + * If MNM's property with plural name is non-empty list, use it + * Else set CNM prop as an empty list + * If MNM's prop with singular name isn't empty, add it to that list + */ + + for (int i = 0; i < SecurityRuleProps.Length; i++) + { + string singularPropName = SecurityRuleProps[i]; + string pluralPropName = singularPropName + (singularPropName.EndsWith("Prefix") ? "es" : "s"); + + var cnmProp = typeof(CnmType).GetProperty(singularPropName); + + var mnmPluralValue = (ICollection)typeof(MnmType).GetProperty(pluralPropName).GetValue(mnmObj); + if (mnmPluralValue != null && mnmPluralValue.Count != 0) + { + cnmProp.SetValue(cnmObj, mnmPluralValue); + } + else + { + List list = new List(); + + var mnmSingularValue = (string)typeof(MnmType).GetProperty(singularPropName).GetValue(mnmObj); + if (!string.IsNullOrWhiteSpace(mnmSingularValue)) + { + list.Add(mnmSingularValue); + } + + cnmProp.SetValue(cnmObj, list); + } + } + } + + private static void MapSecurityRuleCommandToManagement(CnmType cnmObj, MnmType mnmObj) + { + /* + * MNM type contains properties with both singular & plural name, + * while CNM - only singular (while being IList at the same time). + * CNM->MNM mapping is done this way: + * If CNM's property (which is a list) has only one item, + * use it for MNM's singular property + * Else set MNM's singular property to null + * and assign CNM's list to MNM's plural prop + */ + + for (int i = 0; i < SecurityRuleProps.Length; i++) + { + string singularPropName = SecurityRuleProps[i]; + string pluralPropName = singularPropName + (singularPropName.EndsWith("Prefix") ? "es" : "s"); + + var mnmSingularProp = typeof(MnmType).GetProperty(singularPropName); + var mnmPluralProp = typeof(MnmType).GetProperty(pluralPropName); + + var cnmValue = (ICollection)typeof(CnmType).GetProperty(singularPropName).GetValue(cnmObj); + if (GeneralUtilities.HasSingleElement(cnmValue)) + { + mnmSingularProp.SetValue(mnmObj, cnmValue.First()); + mnmPluralProp.SetValue(mnmObj, null); + } + else + { + mnmSingularProp.SetValue(mnmObj, null); + mnmPluralProp.SetValue(mnmObj, cnmValue); + } + } + } + + private static void MapRouteTableV2sToRouteTables(MnmType mnmObj, CnmType cnmObj) + { + /* + * MNM type Virtual Hub contains the property VirtualHubRouteTableV2S which + * maps to the RouteTables property of the CNM type VirtualHub + * So, we get the value of RouteTableV2s from the MNM obj and + * set it to the RouteTables property of the CNM obj. + */ + string psRouteTablesPropName = "RouteTables"; + string mnmRouteTableV2sPropName = "VirtualHubRouteTableV2S"; + + var cnmRouteTablesProp = typeof(CnmType).GetProperty(psRouteTablesPropName); + + List cnmRouteTables = new List(); + + // get routeTableV2s + var mnmValue = (ICollection)typeof(MnmType).GetProperty(mnmRouteTableV2sPropName).GetValue(mnmObj); + foreach (var mnmRouteTableV2 in mnmValue) + { + var mnmRoutes = mnmRouteTableV2.Routes; + var mnmAttachedConnections = (ICollection)mnmRouteTableV2.AttachedConnections; + + List cnmRoutes = new List(); + var cnmAttachedConnections = new List(mnmAttachedConnections); + + foreach (var mnmRoute in mnmRoutes) + { + var cnmRoute = new CNM.PSVirtualHubRoute + { + Destinations = new List(mnmRoute.Destinations), + DestinationType = mnmRoute.DestinationType, + NextHops = new List(mnmRoute.NextHops), + NextHopType = mnmRoute.NextHopType + }; + + cnmRoutes.Add(cnmRoute); + } + + var cnmRouteTable = new CNM.PSVirtualHubRouteTable + { + Routes = cnmRoutes, + Connections = cnmAttachedConnections, + Name = mnmRouteTableV2.Name + }; + + cnmRouteTables.Add(cnmRouteTable); + } + + cnmRouteTablesProp.SetValue(cnmObj, cnmRouteTables); + } + + private static void MapRouteTablesToRouteTableV2s(CnmType cnmObj, MnmType mnmObj) + { + string psRouteTablesPropName = "RouteTables"; + string mnmRouteTableV2sPropName = "VirtualHubRouteTableV2S"; + + var mnmRouteTableV2sProp = typeof(MnmType).GetProperty(mnmRouteTableV2sPropName); + + List mnmRouteTables = new List(); + + var cnmValue = (ICollection)typeof(CnmType).GetProperty(psRouteTablesPropName).GetValue(cnmObj); + foreach (var cnmRouteTableV2 in cnmValue) + { + var cnmRoutes = cnmRouteTableV2.Routes; + var cnmAttachedConnections = (ICollection)cnmRouteTableV2.Connections; + + List mnmRoutes = new List(); + var mnmAttachedConnections = new List(cnmAttachedConnections); + + foreach (var cnmRoute in cnmRoutes) + { + var mnmRoute = new MNM.VirtualHubRouteV2 + { + Destinations = new List(cnmRoute.Destinations), + DestinationType = cnmRoute.DestinationType, + NextHops = new List(cnmRoute.NextHops), + NextHopType = cnmRoute.NextHopType + }; + + mnmRoutes.Add(mnmRoute); + } + + var mnmRouteTable = new MNM.VirtualHubRouteTableV2 + { + Routes = mnmRoutes, + AttachedConnections = mnmAttachedConnections, + Name = cnmRouteTableV2.Name + }; + + mnmRouteTables.Add(mnmRouteTable); + } + + mnmRouteTableV2sProp.SetValue(mnmObj, mnmRouteTables); + } + + private static void Initialize() + { + var config = new MapperConfiguration(cfg => + { + cfg.AddProfile(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Map request error exceptions between SDK and PowerShell + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Managed Service Identity + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Route Filter + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Nat Gateway + cfg.CreateMap() + .ForMember( + dest => dest.PublicIPAddresses, + opt => opt.MapFrom(src => src.PublicIpAddresses) + ) + .ForMember( + dest => dest.PublicIPPrefixes, + opt => opt.MapFrom(src => src.PublicIpPrefixes) + ); + cfg.CreateMap() + .ForMember( + dest => dest.PublicIpAddresses, + opt => opt.MapFrom(src => src.PublicIPAddresses) + ) + .ForMember( + dest => dest.PublicIpPrefixes, + opt => opt.MapFrom(src => src.PublicIPPrefixes) + ); + cfg.CreateMap(); + cfg.CreateMap(); + + // Bgp Service Community + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Virtual Network Encryption + cfg.CreateMap(); + cfg.CreateMap(); + + // Subnet + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember(dest => dest.AddressPrefix, opt => opt.Ignore()) + .ForMember(dest => dest.AddressPrefixes, opt => opt.Ignore()) + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ) + .ForMember( + dest => dest.IPAllocations, + opt => opt.MapFrom(src => src.IpAllocations) + ) + .AfterMap((src, dest) => + { + if (GeneralUtilities.HasMoreThanOneElement(src.AddressPrefix)) + { + dest.AddressPrefixes = src.AddressPrefix; + } + else + { + dest.AddressPrefix = src.AddressPrefix?.FirstOrDefault(); + } + }); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember(dest => dest.AddressPrefix, opt => opt.Ignore()) + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ) + .ForMember( + dest => dest.IpAllocations, + opt => opt.MapFrom(src => src.IPAllocations) + ) + .AfterMap((src, dest) => + { + if (src.AddressPrefixes != null && src.AddressPrefixes.Any()) + { + dest.AddressPrefix = src.AddressPrefixes?.ToList(); + } + else if (!string.IsNullOrEmpty(src.AddressPrefix)) + { + dest.AddressPrefix = new List { src.AddressPrefix }; + } + }); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // TestPrivateIpAddressAvailability + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // Available endpoint services + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // Available subnet delegations + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // Available subnet aliases + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // VirtualNetwork Peering + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.RemoteAddressSpace, + opt => opt.MapFrom(src => src.PeeredRemoteAddressSpace) + ); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.PeeredRemoteAddressSpace, + opt => opt.MapFrom(src => src.RemoteAddressSpace) + ); + + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.PeerCompleteVnets, + opt => opt.MapFrom(src => src.PeerCompleteVnets) + ); + + // MMM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.PeerCompleteVnets, + opt => opt.MapFrom(src => src.PeerCompleteVnets) + ); + + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.LocalSubnetNames, + opt => opt.MapFrom(src => src.LocalSubnetNames) + ); + + // MMM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.LocalSubnetNames, + opt => opt.MapFrom(src => src.LocalSubnetNames) + ); + + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.RemoteSubnetNames, + opt => opt.MapFrom(src => src.RemoteSubnetNames) + ); + + // MMM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.RemoteSubnetNames, + opt => opt.MapFrom(src => src.RemoteSubnetNames) + ); + /* + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.RemoteVirtualNetworkAddressSpace, + opt => opt.MapFrom(src => src.RemoteVirtualNetworkAddressSpace) + ); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.RemoteVirtualNetworkAddressSpace, + opt => opt.MapFrom(src => src.RemoteVirtualNetworkAddressSpace) + ); + */ + + // VirtualNetwork + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IPAllocations, + opt => opt.MapFrom(src => src.IpAllocations) + ); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IpAllocations, + opt => opt.MapFrom(src => src.IPAllocations) + ) + .ForMember( + dest => dest.ExtendedLocation, + opt => opt.MapFrom(src => + (src.ExtendedLocation == null ? null : new PSExtendedLocation(src.ExtendedLocation.Name))) + ); + cfg.CreateMap(); + cfg.CreateMap(); + + // PublicIpAddress + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.IPConfiguration, + opt => opt.MapFrom(src => src.IpConfiguration) + ) + .ForMember( + dest => dest.IPTags, + opt => opt.MapFrom(src => src.IpTags) + ) + .ForMember( + dest => dest.IPAddress, + opt => opt.MapFrom(src => src.IpAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.IPTagType, + opt => opt.MapFrom(src => src.IpTagType) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.IpConfiguration, + opt => opt.MapFrom(src => src.IPConfiguration) + ) + .ForMember( + dest => dest.IpTags, + opt => opt.MapFrom(src => src.IPTags) + ) + .ForMember( + dest => dest.IpAddress, + opt => opt.MapFrom(src => src.IPAddress) + ) + .ForMember( + dest => dest.ExtendedLocation, + opt => opt.MapFrom(src => + src.ExtendedLocation == null ? null : new PSExtendedLocation(src.ExtendedLocation.Name))) + .ForMember( + dest => dest.DdosSettings, + opt => opt.MapFrom(src => + (src.DdosSettings ?? new MNM.DdosSettings())) + ); + cfg.CreateMap() + .ForMember( + dest => dest.IpTagType, + opt => opt.MapFrom(src => src.IPTagType) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // PublicIpPrefix + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.IPTags, + opt => opt.MapFrom(src => src.IpTags) + ); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IPTagType, + opt => opt.MapFrom(src => src.IpTagType) + ); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.IpTags, + opt => opt.MapFrom(src => src.IPTags) + ); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IpTagType, + opt => opt.MapFrom(src => src.IPTagType) + ); + cfg.CreateMap(); + + // CustomIpPrefix + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.CustomIPPrefixParent, + opt => opt.MapFrom(src => src.CustomIpPrefixParent) + ) + .ForMember( + dest => dest.ChildCustomIPPrefixes, + opt => opt.MapFrom(src => src.ChildCustomIpPrefixes) + ) + .ForMember( + dest => dest.PublicIPPrefixes, + opt => opt.MapFrom(src => src.PublicIpPrefixes) + ); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.CustomIpPrefixParent, + opt => opt.MapFrom(src => src.CustomIPPrefixParent) + ) + .ForMember( + dest => dest.ChildCustomIpPrefixes, + opt => opt.MapFrom(src => src.ChildCustomIPPrefixes) + ) + .ForMember( + dest => dest.PublicIpPrefixes, + opt => opt.MapFrom(src => src.PublicIPPrefixes) + ); + + // NetworkInterface + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ) + .ForMember( + dest => dest.ExtendedLocation, + opt => opt.MapFrom(src => + (src.ExtendedLocation == null ? null : new PSExtendedLocation(src.ExtendedLocation.Name))) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Usage + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // NetworkWatcher + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // PacketCapture + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Topology + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // ViewNsgRules + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // IpFlowVerify + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // NextHop + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.NextHopIPAddress, + opt => opt.MapFrom(src => src.NextHopIpAddress) + ); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.NextHopIpAddress, + opt => opt.MapFrom(src => src.NextHopIPAddress) + ); + + // Troubleshoot + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // FlowLog + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // CheckConnectivity + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.AvgLatencyInMS, + opt => opt.MapFrom(src => src.AvgLatencyInMs) + ) + .ForMember( + dest => dest.MinLatencyInMS, + opt => opt.MapFrom(src => src.MinLatencyInMs) + ) + .ForMember( + dest => dest.MaxLatencyInMS, + opt => opt.MapFrom(src => src.MaxLatencyInMs) + ); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.AvgLatencyInMs, + opt => opt.MapFrom(src => src.AvgLatencyInMS) + ) + .ForMember( + dest => dest.MinLatencyInMs, + opt => opt.MapFrom(src => src.MinLatencyInMS) + ) + .ForMember( + dest => dest.MaxLatencyInMs, + opt => opt.MapFrom(src => src.MaxLatencyInMS) + ); + cfg.CreateMap(); + cfg.CreateMap(); + + // AvailableProvidersList + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // AzureReachabilityReport + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // ConnectionMonitor + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.PreferHttps, + opt => opt.MapFrom(src => src.PreferHTTPS) + ); + cfg.CreateMap() + .ForMember( + dest => dest.RoundTripTimeMS, + opt => opt.MapFrom(src => src.RoundTripTimeMs) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.PreferHTTPS, + opt => opt.MapFrom(src => src.PreferHttps) + ); + cfg.CreateMap() + .ForMember( + dest => dest.RoundTripTimeMs, + opt => opt.MapFrom(src => src.RoundTripTimeMS) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // NetworkConfigurationDiagnostic + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // LoadBalancer + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + + // FrontendIpConfiguration + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // BackendAddressPool + // CNM to MNM + cfg.CreateMap(); + + // LoadBalancerBackendAddress + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.IPAddress, + opt => opt.MapFrom(src => src.IpAddress) + ); + + // LoadBalancerBackendAddress + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.IpAddress, + opt => opt.MapFrom(src => src.IPAddress) + ); + + // InboundNatRulePortMapping + // CNM to MNM + cfg.CreateMap(); + + // InboundNatRulePortMapping + // MNM to CNM + cfg.CreateMap(); + + // LoadBalancerHealthPerRule + // CNM to MNM + cfg.CreateMap(); + + // LoadBalancerHealthPerRule + // MNM to CNM + cfg.CreateMap(); + + // LoadBalancerHealthPerRulePerBackendAddress + // CNM to MNM + cfg.CreateMap(); + + // LoadBalancerHealthPerRulePerBackendAddress + // MNM to CNM + cfg.CreateMap(); + + // ExpressRouteFailoverSingleTestDetails + // CNM to MNM + cfg.CreateMap(); + + // ExpressRouteFailoverSingleTestDetails + // MNM to CNM + cfg.CreateMap(); + + // ExpressRouteFailoverRedundantRoute + // CNM to MNM + cfg.CreateMap(); + + // ExpressRouteFailoverRedundantRoute + // MNM to CNM + cfg.CreateMap(); + + // FailoverConnectionDetails + // CNM to MNM + cfg.CreateMap(); + + // FailoverConnectionDetails + // MNM to CNM + cfg.CreateMap(); + + // ExpressRouteFailoverTestDetails + // CNM to MNM + cfg.CreateMap(); + + // ExpressRouteFailoverTestDetails + // MNM to CNM + cfg.CreateMap(); + + // ExpressRouteFailoverCircuitResourceDetails + // CNM to MNM + cfg.CreateMap(); + + // ExpressRouteFailoverCircuitResourceDetails + // MNM to CNM + cfg.CreateMap(); + + // ExpressRouteFailoverConnectionResourceDetails + // CNM to MNM + cfg.CreateMap(); + + // ExpressRouteFailoverConnectionResourceDetails + // MNM to CNM + cfg.CreateMap(); + + // NatRulePortMapping + // CNM to MNM + cfg.CreateMap(); + + // NatRulePortMapping + // MNM to CNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // LoadBalancingRule + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // Probes + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // InboundNatRules + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // InboundNatPools + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // OutboundRules + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // NetworkSecurityGroups + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // NetworkSecurityRule + // CNM to MNM + cfg.CreateMap() + .AfterMap((src, dest) => + { + MapSecurityRuleCommandToManagement(src, dest); + }); + + cfg.CreateMap() + .AfterMap((src, dest) => + { + MapSecurityRuleManagementToCommand(src, dest); + }); + + // RouteTable + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // Route + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.NextHopIPAddress, + opt => opt.MapFrom(src => src.NextHopIpAddress) + ); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.NextHopIpAddress, + opt => opt.MapFrom(src => src.NextHopIPAddress) + ); + + // EffectiveRouteTable + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.NextHopIPAddress, + opt => opt.MapFrom(src => src.NextHopIpAddress) + ); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.NextHopIpAddress, + opt => opt.MapFrom(src => src.NextHopIPAddress) + ); + + // EffectiveNetworkSecurityGroup + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .AfterMap((src, dest) => + { + MapSecurityRuleCommandToManagement(src, dest); + }); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .AfterMap((src, dest) => + { + MapSecurityRuleManagementToCommand(src, dest); + }); + + // ExpressRoutePortsLocation + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + + // ExpressRoutePort + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // ExpressRouteCircuit + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.AzureAsn, + opt => opt.MapFrom(src => src.AzureASN) + ) + .ForMember( + dest => dest.PeerAsn, + opt => opt.MapFrom(src => src.PeerASN) + ); + + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.AzureASN, + opt => opt.MapFrom(src => src.AzureAsn) + ) + .ForMember( + dest => dest.PeerASN, + opt => opt.MapFrom(src => src.PeerAsn) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IPAddress, + opt => opt.MapFrom(src => src.IpAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // ExpressRouteCircuitPeering + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.CustomerAsn, + opt => opt.MapFrom(src => src.CustomerASN) + ); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.CustomerASN, + opt => opt.MapFrom(src => src.CustomerAsn) + ); + cfg.CreateMap(); + + // Express Route Circuit Connection + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // Peer Express Route Circuit Connection + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // ExpressRouteServiceProvider + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IpAddress, + opt => opt.MapFrom(src => src.IPAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + + // ExpressRouteCircuitAuthorization + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // ExpressRouteCrossConnection + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.AzureAsn, + opt => opt.MapFrom(src => src.AzureASN) + ) + .ForMember( + dest => dest.PeerAsn, + opt => opt.MapFrom(src => src.PeerASN) + ); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.AzureASN, + opt => opt.MapFrom(src => src.AzureAsn) + ) + .ForMember( + dest => dest.PeerASN, + opt => opt.MapFrom(src => src.PeerAsn) + ); + + // ExpressRouteCrossConnectionPeering + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Gateways + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ) + .ForMember( + dest => dest.EnablePrivateIPAddress, + opt => opt.MapFrom(src => src.EnablePrivateIpAddress) + ) + .ForMember( + dest => dest.Active, + opt => opt.MapFrom(src => src.ActiveActive) + ) + .ForMember( + dest => dest.EnableHighBandwidthVpnGateway, + opt => opt.MapFrom(src => src.EnableAdvancedConnectivity) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.GatewayIPAddress, + opt => opt.MapFrom(src => src.GatewayIpAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.GatewayCustomBgpIPAddresses, + opt => opt.MapFrom(src => src.GatewayCustomBgpIpAddresses) + ) + .ForMember( + dest => dest.UseLocalAzureIPAddress, + opt => opt.MapFrom(src => src.UseLocalAzureIpAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember(d => d.VngClientConnectionConfigurations, opt => opt.MapFrom(s => s.ClientConnectionConfigurations)); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .AfterMap((src, dest) => + { + dest.BgpPeeringAddresses = dest.BgpPeeringAddresses.Count == 0 ? null : dest.BgpPeeringAddresses; + }); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.PublicIPAddress, + opt => opt.MapFrom(src => src.PublicIpAddress) + ) + .ForMember( + dest => dest.PrivateIPAddress, + opt => opt.MapFrom(src => src.PrivateIpAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.DefaultBgpIPAddresses, + opt => opt.MapFrom(src => src.DefaultBgpIpAddresses) + ) + .ForMember( + dest => dest.CustomBgpIPAddresses, + opt => opt.MapFrom(src => src.CustomBgpIpAddresses) + ) + .ForMember( + dest => dest.TunnelIPAddresses, + opt => opt.MapFrom(src => src.TunnelIpAddresses) + ); + cfg.CreateMap() + .ForMember( + dest => dest.PropertiesType, + opt => opt.MapFrom(src => src.VirtualNetworkGatewayNatRulePropertiesType) + ) + .ForMember( + dest => dest.IPConfigurationId, + opt => opt.MapFrom(src => src.IpConfigurationId) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IPConfigurationId, + opt => opt.MapFrom(src => src.IpconfigurationId) + ) + .ForMember( + dest => dest.CustomBgpIPAddress, + opt => opt.MapFrom(src => src.CustomBgpIpAddress) + ); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ) + .ForMember( + dest => dest.EnablePrivateIpAddress, + opt => opt.MapFrom(src => src.EnablePrivateIPAddress) + ) + .ForMember( + dest => dest.ActiveActive, + opt => opt.MapFrom(src => src.Active) + ) + .ForMember( + dest => dest.EnableAdvancedConnectivity, + opt => opt.MapFrom(src => src.EnableHighBandwidthVpnGateway) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.GatewayIpAddress, + opt => opt.MapFrom(src => src.GatewayIPAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.GatewayCustomBgpIpAddresses, + opt => opt.MapFrom(src => src.GatewayCustomBgpIPAddresses) + ) + .ForMember( + dest => dest.UseLocalAzureIpAddress, + opt => opt.MapFrom(src => src.UseLocalAzureIPAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember(d => d.ClientConnectionConfigurations, opt => opt.MapFrom(s => s.VngClientConnectionConfigurations)); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.PublicIpAddress, + opt => opt.MapFrom(src => src.PublicIPAddress) + ) + .ForMember( + dest => dest.PrivateIpAddress, + opt => opt.MapFrom(src => src.PrivateIPAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.DefaultBgpIpAddresses, + opt => opt.MapFrom(src => src.DefaultBgpIPAddresses) + ) + .ForMember( + dest => dest.CustomBgpIpAddresses, + opt => opt.MapFrom(src => src.CustomBgpIPAddresses) + ) + .ForMember( + dest => dest.TunnelIpAddresses, + opt => opt.MapFrom(src => src.TunnelIPAddresses) + ); + cfg.CreateMap() + .ForMember( + dest => dest.VirtualNetworkGatewayNatRulePropertiesType, + opt => opt.MapFrom(src => src.PropertiesType) + ) + .ForMember( + dest => dest.IpConfigurationId, + opt => opt.MapFrom(src => src.IPConfigurationId) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IpconfigurationId, + opt => opt.MapFrom(src => src.IPConfigurationId) + ) + .ForMember( + dest => dest.CustomBgpIpAddress, + opt => opt.MapFrom(src => src.CustomBgpIPAddress) + ); + + // Application Gateways + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .AfterMap((src, dest) => + { + dest.CipherSuites = src.CipherSuites == null ? null : dest.CipherSuites; + dest.DisabledSslProtocols = src.DisabledSslProtocols == null ? null : dest.DisabledSslProtocols; + }); + cfg.CreateMap() + .ForMember( + dest => dest.VerifyClientCertIssuerDn, + opt => opt.MapFrom(src => src.VerifyClientCertIssuerDN) + ) + .ForMember( + dest => dest.VerifyClientAuthMode, + opt => opt.MapFrom(src => src.VerifyClientAuthMode) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .AfterMap((src, dest) => dest.StatusCodes = (src.StatusCodes == null) ? null : dest.StatusCodes); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IPAddress, + opt => opt.MapFrom(src => src.IpAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap().ForMember( + dest => dest.Password, + opt => opt.ResolveUsing(src => src.Password?.ConvertToString())); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.ClientCertIssuerDn, + opt => opt.MapFrom(src => src.ClientCertIssuerDN) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IPConfiguration, + opt => opt.MapFrom(src => src.IpConfiguration) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.RequestBodyInspectLimitInKb, + opt => opt.MapFrom(src => src.RequestBodyInspectLimitInKB) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .AfterMap((src, dest) => dest.Rules = (src.Rules == null) ? null : dest.Rules); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .AfterMap((src, dest) => + { + dest.CipherSuites = src.CipherSuites == null ? null : dest.CipherSuites; + dest.DisabledSslProtocols = src.DisabledSslProtocols == null ? null : dest.DisabledSslProtocols; + }); cfg.CreateMap() .ForMember( dest => dest.VerifyClientCertIssuerDN, @@ -1567,1014 +1567,1014 @@ private static void Initialize() dest => dest.VerifyClientAuthMode, opt => opt.MapFrom(src => src.VerifyClientAuthMode) ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .AfterMap((src, dest) => dest.StatusCodes = (src.StatusCodes == null) ? null : dest.StatusCodes); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IpAddress, - opt => opt.MapFrom(src => src.IPAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap().ForMember( - dest => dest.Password, - opt => opt.ResolveUsing(src => src.Password?.ConvertToSecureString())); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.ClientCertIssuerDN, - opt => opt.MapFrom(src => src.ClientCertIssuerDn) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IpConfiguration, - opt => opt.MapFrom(src => src.IPConfiguration) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.RequestBodyInspectLimitInKB, - opt => opt.MapFrom(src => src.RequestBodyInspectLimitInKb) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .AfterMap((src, dest) => dest.Rules = (src.Rules == null) ? null : dest.Rules); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Application Security Groups - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - //// DDoS protection plan - - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // Service Endpoint Policy - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // Service Endpoint Policy Definition - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - // Network Profile - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ); - - cfg.CreateMap(); - cfg.CreateMap(); - - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ); - cfg.CreateMap(); - cfg.CreateMap(); - - //// VirtualWan - cfg.CreateMap() - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ) - .AfterMap((src, dest) => - { - MapRouteTablesToRouteTableV2s(src, dest); - }); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.PropertiesType, - opt => opt.MapFrom(src => src.VirtualWANType) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.NextHopIPAddress, - opt => opt.MapFrom(src => src.NextHopIpAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ); - cfg.CreateMap() - .ForMember( - dest => dest.PropertiesType, - opt => opt.MapFrom(src => src.VpnGatewayNatRulePropertiesType) - ); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.PublicIPAddress, - opt => opt.MapFrom(src => src.PublicIpAddress) - ) - .ForMember( - dest => dest.PrivateIPAddress, - opt => opt.MapFrom(src => src.PrivateIpAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.UseLocalAzureIPAddress, - opt => opt.MapFrom(src => src.UseLocalAzureIpAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.IPAddress, - opt => opt.MapFrom(src => src.IpAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.UseLocalAzureIPAddress, - opt => opt.MapFrom(src => src.UseLocalAzureIpAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.IPAddress, - opt => opt.MapFrom(src => src.IpAddress) - ) - .AfterMap((src, dest) => - { - if (src.BgpSettings != null) - { - dest.BgpProperties = new MNM.BgpSettings(src.BgpSettings.Asn, src.BgpSettings.BgpPeeringAddress, src.BgpSettings.PeerWeight); - } - }); - - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - cfg.CreateMap() - .ForMember( - dest => dest.VirtualWANType, - opt => opt.MapFrom(src => src.PropertiesType) - ); - cfg.CreateMap() - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ) - .AfterMap((src, dest) => - { - MapRouteTableV2sToRouteTables(src, dest); - }); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.NextHopIpAddress, - opt => opt.MapFrom(src => src.NextHopIPAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ); - cfg.CreateMap() - .ForMember( - dest => dest.VpnGatewayNatRulePropertiesType, - opt => opt.MapFrom(src => src.PropertiesType) - ); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.PublicIpAddress, - opt => opt.MapFrom(src => src.PublicIPAddress) - ) - .ForMember( - dest => dest.PrivateIpAddress, - opt => opt.MapFrom(src => src.PrivateIPAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.UseLocalAzureIpAddress, - opt => opt.MapFrom(src => src.UseLocalAzureIPAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.IpAddress, - opt => opt.MapFrom(src => src.IPAddress) - ) - .AfterMap((src, dest) => - { - if (src.BgpProperties != null) - { - dest.BgpSettings = new CNM.PSBgpSettings() - { - Asn = src.BgpProperties.Asn, - BgpPeeringAddress = src.BgpProperties.BgpPeeringAddress, - PeerWeight = src.BgpProperties.PeerWeight - }; - } - }); - - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.UseLocalAzureIpAddress, - opt => opt.MapFrom(src => src.UseLocalAzureIPAddress) - ); - cfg.CreateMap() - .ForMember( - dest => dest.IpAddress, - opt => opt.MapFrom(src => src.IPAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - //// Virtual Wan Custom Routing - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.NextHopIPAddress, - opt => opt.MapFrom(src => src.NextHopIpAddress) - ); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.NextHopIpAddress, - opt => opt.MapFrom(src => src.NextHopIPAddress) - ); - cfg.CreateMap(); - - //// Virtual Hub Routing Intent - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - - //// Virtual Hub Route Map - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap (); - cfg.CreateMap (); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Virtual wan Point to site - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.AllocatedIpAddresses, - opt => opt.MapFrom(src => src.AllocatedIPAddresses) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.AllocatedIPAddresses, - opt => opt.MapFrom(src => src.AllocatedIpAddresses) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // SecurityPartnerProviders - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - - // Azure Firewalls - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ) - .ForMember( - dest => dest.ManagementIPConfiguration, - opt => opt.MapFrom(src => src.ManagementIpConfiguration) - ) - .AfterMap((src, dest) => - { - dest.AdditionalProperties = new Dictionary() - { - { "ThreatIntel.Whitelist.FQDNs", src.ThreatIntelWhitelist?.FQDNs?.Aggregate((result, item) => result + "," + item) }, - { "ThreatIntel.Whitelist.IpAddresses", src.ThreatIntelWhitelist?.IpAddresses?.Aggregate((result, item) => result + "," + item) }, - { "Network.SNAT.PrivateRanges", src.PrivateRange?.Aggregate((result, item) => result + "," + item) }, - { "Network.FTP.AllowActiveFTP", src.AllowActiveFTP }, - { "Network.DNS.EnableProxy", src.DNSEnableProxy }, - { "Network.DNS.Servers", src.DNSServer?.Aggregate((result, item) => result + "," + item) }, - { "Network.AdditionalLogs.EnableFatFlowLogging", src.EnableFatFlowLogging }, - { "Network.AdditionalLogs.EnableDnstapLogging", src.EnableDnstapLogging }, - { "Network.Logging.EnableUDPLogOptimization", src.EnableUDPLogOptimization }, - { "Network.RouteServerInfo.RouteServerID", src.RouteServerId }, - }.Where(kvp => kvp.Value != null).ToDictionary(key => key.Key, val => val.Value); // TODO: remove after backend code is refactored - }); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IPPrefixes, - opt => opt.MapFrom(src => src.IpPrefixes) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.SourceIPGroups, - opt => opt.MapFrom(src => src.SourceIpGroups) - ); - cfg.CreateMap() - .ForMember( - dest => dest.SourceIPGroups, - opt => opt.MapFrom(src => src.SourceIpGroups) - ); - cfg.CreateMap() - .ForMember( - dest => dest.SourceIPGroups, - opt => opt.MapFrom(src => src.SourceIpGroups) - ) - .ForMember( - dest => dest.DestinationIPGroups, - opt => opt.MapFrom(src => src.DestinationIpGroups) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ) - .ForMember( - dest => dest.ManagementIpConfiguration, - opt => opt.MapFrom(src => src.ManagementIPConfiguration) - ) - .AfterMap((src, dest) => - { - // TODO: refactor after backend is refactored - dest.ThreatIntelWhitelist = new CNM.PSAzureFirewallThreatIntelWhitelist(); - try - { - dest.ThreatIntelWhitelist.FQDNs = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("ThreatIntel.Whitelist.FQDNs", StringComparison.OrdinalIgnoreCase)).Value?.Split(',').Select(str => str.Trim()).ToArray(); - } - catch (PSArgumentException) - { - dest.ThreatIntelWhitelist.FQDNs = null; - } - try - { - dest.ThreatIntelWhitelist.IpAddresses = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("ThreatIntel.Whitelist.IpAddresses", StringComparison.OrdinalIgnoreCase)).Value?.Split(',').Select(str => str.Trim()).ToArray(); - } - catch (PSArgumentException) - { - dest.ThreatIntelWhitelist.IpAddresses = null; - } - try - { - dest.PrivateRange = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.SNAT.PrivateRanges", StringComparison.OrdinalIgnoreCase)).Value?.Split(',').Select(str => str.Trim()).ToArray(); - } - catch (PSArgumentException) - { - dest.PrivateRange = null; - } - dest.AllowActiveFTP = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.FTP.AllowActiveFTP", StringComparison.OrdinalIgnoreCase)).Value; - dest.DNSEnableProxy = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.DNS.EnableProxy", StringComparison.OrdinalIgnoreCase)).Value; - dest.EnableFatFlowLogging = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.AdditionalLogs.EnableFatFlowLogging", StringComparison.OrdinalIgnoreCase)).Value; - dest.EnableDnstapLogging = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.AdditionalLogs.EnableDnstapLogging", StringComparison.OrdinalIgnoreCase)).Value; - dest.EnableUDPLogOptimization = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.Logging.EnableUDPLogOptimization", StringComparison.OrdinalIgnoreCase)).Value; - dest.RouteServerId = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.RouteServerInfo.RouteServerID", StringComparison.OrdinalIgnoreCase)).Value; - try - { - dest.DNSServer = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.DNS.Servers", StringComparison.OrdinalIgnoreCase)).Value?.Split(',').Select(str => str.Trim()).ToArray(); - } - catch (PSArgumentException) - { - dest.DNSServer = null; - } - }); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.IpPrefixes, - opt => opt.MapFrom(src => src.IPPrefixes) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.SourceIpGroups, - opt => opt.MapFrom(src => src.SourceIPGroups) - ); - cfg.CreateMap() - .ForMember( - dest => dest.SourceIpGroups, - opt => opt.MapFrom(src => src.SourceIPGroups) - ); - cfg.CreateMap() - .ForMember( - dest => dest.SourceIpGroups, - opt => opt.MapFrom(src => src.SourceIPGroups) - ) - .ForMember( - dest => dest.DestinationIpGroups, - opt => opt.MapFrom(src => src.DestinationIPGroups) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Azure Firewall FQDN Tags - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - cfg.CreateMap(); - - // Azure Firewall Policies - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap().AfterMap((src, dst) => - { - dst.AutoLearnPrivateRanges = string.IsNullOrEmpty(src.AutoLearnPrivateRanges) ? "Disabled" : src.AutoLearnPrivateRanges; - }); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap().ForCtorParam("dnsSettings", opt => - { - opt.MapFrom(src => src.DnsSettings == null ? null : new MNM.DnsSettings(src.DnsSettings.Servers, src.DnsSettings.EnableProxy, null)); - }).AfterMap((src, dst) => - { - dst.Sql = src.SqlSetting == null ? null : new MNM.FirewallPolicySQL(src.SqlSetting.AllowSqlRedirect); - }); - cfg.CreateMap().ForCtorParam("dnsSettings", opt => - { - opt.MapFrom(src => src.DnsSettings == null ? null : new MNM.DnsSettings(src.DnsSettings.Servers, src.DnsSettings.EnableProxy, null)); - }).AfterMap((src, dst) => - { - dst.Sql = src.SqlSetting == null ? null : new MNM.FirewallPolicySQL(src.SqlSetting.AllowSqlRedirect); - }); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap().AfterMap((src, dst) => - { - dst.AutoLearnPrivateRanges = string.IsNullOrEmpty(src.AutoLearnPrivateRanges) ? "Disabled" : src.AutoLearnPrivateRanges; - }); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap().AfterMap((src, dst) => - { - dst.SqlSetting = src.Sql == null ? null : new CNM.PSAzureFirewallPolicySqlSetting { AllowSqlRedirect = src.Sql.AllowSqlRedirect }; - }); - cfg.CreateMap().AfterMap((src, dst) => - { - dst.SqlSetting = src.Sql == null ? null : new CNM.PSAzureFirewallPolicySqlSetting { AllowSqlRedirect = src.Sql.AllowSqlRedirect }; - }); - - // Virtual Network Tap - // CNM to MNM - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - - cfg.CreateMap() - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ); - cfg.CreateMap() - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - cfg.CreateMap(); - cfg.CreateMap(); - - cfg.CreateMap().AfterMap((src, dest) => - { - dest.ActionsRequired = src.ActionRequired; - }); - cfg.CreateMap().AfterMap((src, dest) => - { - dest.ActionRequired = src.ActionsRequired; - }); - - cfg.CreateMap() - .ForMember( - dest => dest.LoadBalancerFrontendIPConfigurations, - opt => opt.MapFrom(src => src.LoadBalancerFrontendIpConfigurations) - ) - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ); - cfg.CreateMap() - .ForMember( - dest => dest.LoadBalancerFrontendIpConfigurations, - opt => opt.MapFrom(src => src.LoadBalancerFrontendIPConfigurations) - ) - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ); - - cfg.CreateMap(); - cfg.CreateMap().AfterMap((src, dest) => - { - dest.PublicIPAddress = null; - }); - - - cfg.CreateMap(); - cfg.CreateMap(); - - cfg.CreateMap(); - cfg.CreateMap(); - - cfg.CreateMap(); - cfg.CreateMap(); - - // Bastion - // CNM to MNM - cfg.CreateMap() - .ForMember( - dest => dest.IPConfigurations, - opt => opt.MapFrom(src => src.IpConfigurations) - ).ForMember( - dest => dest.EnableIPConnect, - opt => opt.MapFrom(src => src.EnableIpConnect) - ); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.IpConfigurations, - opt => opt.MapFrom(src => src.IPConfigurations) - ).ForMember( - dest => dest.EnableIpConnect, - opt => opt.MapFrom(src => src.EnableIPConnect) - ); - cfg.CreateMap(); - - // Virtual Router - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.PeerIP, - opt => opt.MapFrom(src => src.PeerIp) - ); - cfg.CreateMap() - .ForMember( - dest => dest.PeerIP, - opt => opt.MapFrom(src => src.PeerIp) - ); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap() - .ForMember( - dest => dest.PeerIp, - opt => opt.MapFrom(src => src.PeerIP) - ); - cfg.CreateMap() - .ForMember( - dest => dest.PeerIp, - opt => opt.MapFrom(src => src.PeerIP) - ); - cfg.CreateMap() - .ForMember( - dest => dest.PeerIp, - opt => opt.MapFrom(src => src.PeerIP) - ); - cfg.CreateMap(); - cfg.CreateMap(); - - // IpGroup - cfg.CreateMap() - .ForMember( - dest => dest.IPAddresses, - opt => opt.MapFrom(src => src.IpAddresses) - ); - cfg.CreateMap() - .ForMember( - dest => dest.IpAddresses, - opt => opt.MapFrom(src => src.IPAddresses) - ); - - // IpAllocation - cfg.CreateMap() - .ForMember( - dest => dest.PropertiesType, - opt => opt.MapFrom(src => src.IpAllocationType) - ); - cfg.CreateMap(); - - // Network Virtual Appliance & Sites - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.PublicIPAddress, - opt => opt.MapFrom(src => src.PublicIpAddress) - ) - .ForMember( - dest => dest.PrivateIPAddress, - opt => opt.MapFrom(src => src.PrivateIpAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.Subnet, - opt => opt.MapFrom(src => new MNM.NvaInVnetSubnetReferenceProperties { Id = src.Subnet.Id}) - ) - .ForMember( - dest => dest.Type, - opt => opt.MapFrom(src => src.NicType != null ? src.NicType : new List()) - ) - .ForMember( - dest => dest.Name, - opt => opt.MapFrom(src => src.Name) - ); - - - // MNM to CNM - // Where CNM - models from Powershell - // MNM - models from Sdk - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.PublicIpAddress, - opt => opt.MapFrom(src => src.PublicIPAddress) - ) - .ForMember( - dest => dest.PrivateIpAddress, - opt => opt.MapFrom(src => src.PrivateIPAddress) - ); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember( - dest => dest.Subnet, - opt => opt.MapFrom(src => src.Subnet != null ? new CNM.PSResourceId { Id = src.Subnet.Id } : null)) - .ForMember( - dest => dest.NicType, - opt => opt.MapFrom(src => src.Type != null && src.Type.Count > 0 ? src.Type.ToList() : new List())) - .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name)); - - // NetworkManager - // CNM to MNMs - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - cfg.CreateMap() - .ForMember(dest => dest.ConnectivityCapabilities, opt => opt.MapFrom(src => src.ConnectivityCapability)); - cfg.CreateMap() - .ForMember(dest => dest.ConnectivityCapability, opt => opt.MapFrom(src => src.ConnectivityCapabilities)); - - cfg.CreateMap(); - cfg.CreateMap(); - - - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // IpamPool - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - // VnetVerifier - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // IpamPool - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // VnetVerifier - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - - // Virtual Network Appliance - // CNM to MNM - cfg.CreateMap(); - cfg.CreateMap(); - - // MNM to CNM - cfg.CreateMap(); - cfg.CreateMap(); - }); - _mapper = config.CreateMapper(); - } - } -} + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .AfterMap((src, dest) => dest.StatusCodes = (src.StatusCodes == null) ? null : dest.StatusCodes); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IpAddress, + opt => opt.MapFrom(src => src.IPAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap().ForMember( + dest => dest.Password, + opt => opt.ResolveUsing(src => src.Password?.ConvertToSecureString())); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.ClientCertIssuerDN, + opt => opt.MapFrom(src => src.ClientCertIssuerDn) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IpConfiguration, + opt => opt.MapFrom(src => src.IPConfiguration) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.RequestBodyInspectLimitInKB, + opt => opt.MapFrom(src => src.RequestBodyInspectLimitInKb) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .AfterMap((src, dest) => dest.Rules = (src.Rules == null) ? null : dest.Rules); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Application Security Groups + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + //// DDoS protection plan + + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // Service Endpoint Policy + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // Service Endpoint Policy Definition + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + // Network Profile + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ); + + cfg.CreateMap(); + cfg.CreateMap(); + + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ); + cfg.CreateMap(); + cfg.CreateMap(); + + //// VirtualWan + cfg.CreateMap() + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ) + .AfterMap((src, dest) => + { + MapRouteTablesToRouteTableV2s(src, dest); + }); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.PropertiesType, + opt => opt.MapFrom(src => src.VirtualWANType) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.NextHopIPAddress, + opt => opt.MapFrom(src => src.NextHopIpAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ); + cfg.CreateMap() + .ForMember( + dest => dest.PropertiesType, + opt => opt.MapFrom(src => src.VpnGatewayNatRulePropertiesType) + ); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.PublicIPAddress, + opt => opt.MapFrom(src => src.PublicIpAddress) + ) + .ForMember( + dest => dest.PrivateIPAddress, + opt => opt.MapFrom(src => src.PrivateIpAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.UseLocalAzureIPAddress, + opt => opt.MapFrom(src => src.UseLocalAzureIpAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.IPAddress, + opt => opt.MapFrom(src => src.IpAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.UseLocalAzureIPAddress, + opt => opt.MapFrom(src => src.UseLocalAzureIpAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.IPAddress, + opt => opt.MapFrom(src => src.IpAddress) + ) + .AfterMap((src, dest) => + { + if (src.BgpSettings != null) + { + dest.BgpProperties = new MNM.BgpSettings(src.BgpSettings.Asn, src.BgpSettings.BgpPeeringAddress, src.BgpSettings.PeerWeight); + } + }); + + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + cfg.CreateMap() + .ForMember( + dest => dest.VirtualWANType, + opt => opt.MapFrom(src => src.PropertiesType) + ); + cfg.CreateMap() + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ) + .AfterMap((src, dest) => + { + MapRouteTableV2sToRouteTables(src, dest); + }); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.NextHopIpAddress, + opt => opt.MapFrom(src => src.NextHopIPAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ); + cfg.CreateMap() + .ForMember( + dest => dest.VpnGatewayNatRulePropertiesType, + opt => opt.MapFrom(src => src.PropertiesType) + ); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.PublicIpAddress, + opt => opt.MapFrom(src => src.PublicIPAddress) + ) + .ForMember( + dest => dest.PrivateIpAddress, + opt => opt.MapFrom(src => src.PrivateIPAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.UseLocalAzureIpAddress, + opt => opt.MapFrom(src => src.UseLocalAzureIPAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.IpAddress, + opt => opt.MapFrom(src => src.IPAddress) + ) + .AfterMap((src, dest) => + { + if (src.BgpProperties != null) + { + dest.BgpSettings = new CNM.PSBgpSettings() + { + Asn = src.BgpProperties.Asn, + BgpPeeringAddress = src.BgpProperties.BgpPeeringAddress, + PeerWeight = src.BgpProperties.PeerWeight + }; + } + }); + + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.UseLocalAzureIpAddress, + opt => opt.MapFrom(src => src.UseLocalAzureIPAddress) + ); + cfg.CreateMap() + .ForMember( + dest => dest.IpAddress, + opt => opt.MapFrom(src => src.IPAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + //// Virtual Wan Custom Routing + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.NextHopIPAddress, + opt => opt.MapFrom(src => src.NextHopIpAddress) + ); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.NextHopIpAddress, + opt => opt.MapFrom(src => src.NextHopIPAddress) + ); + cfg.CreateMap(); + + //// Virtual Hub Routing Intent + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + + //// Virtual Hub Route Map + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap (); + cfg.CreateMap (); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Virtual wan Point to site + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.AllocatedIpAddresses, + opt => opt.MapFrom(src => src.AllocatedIPAddresses) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.AllocatedIPAddresses, + opt => opt.MapFrom(src => src.AllocatedIpAddresses) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // SecurityPartnerProviders + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + + // Azure Firewalls + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ) + .ForMember( + dest => dest.ManagementIPConfiguration, + opt => opt.MapFrom(src => src.ManagementIpConfiguration) + ) + .AfterMap((src, dest) => + { + dest.AdditionalProperties = new Dictionary() + { + { "ThreatIntel.Whitelist.FQDNs", src.ThreatIntelWhitelist?.FQDNs?.Aggregate((result, item) => result + "," + item) }, + { "ThreatIntel.Whitelist.IpAddresses", src.ThreatIntelWhitelist?.IpAddresses?.Aggregate((result, item) => result + "," + item) }, + { "Network.SNAT.PrivateRanges", src.PrivateRange?.Aggregate((result, item) => result + "," + item) }, + { "Network.FTP.AllowActiveFTP", src.AllowActiveFTP }, + { "Network.DNS.EnableProxy", src.DNSEnableProxy }, + { "Network.DNS.Servers", src.DNSServer?.Aggregate((result, item) => result + "," + item) }, + { "Network.AdditionalLogs.EnableFatFlowLogging", src.EnableFatFlowLogging }, + { "Network.AdditionalLogs.EnableDnstapLogging", src.EnableDnstapLogging }, + { "Network.Logging.EnableUDPLogOptimization", src.EnableUDPLogOptimization }, + { "Network.RouteServerInfo.RouteServerID", src.RouteServerId }, + }.Where(kvp => kvp.Value != null).ToDictionary(key => key.Key, val => val.Value); // TODO: remove after backend code is refactored + }); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IPPrefixes, + opt => opt.MapFrom(src => src.IpPrefixes) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.SourceIPGroups, + opt => opt.MapFrom(src => src.SourceIpGroups) + ); + cfg.CreateMap() + .ForMember( + dest => dest.SourceIPGroups, + opt => opt.MapFrom(src => src.SourceIpGroups) + ); + cfg.CreateMap() + .ForMember( + dest => dest.SourceIPGroups, + opt => opt.MapFrom(src => src.SourceIpGroups) + ) + .ForMember( + dest => dest.DestinationIPGroups, + opt => opt.MapFrom(src => src.DestinationIpGroups) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ) + .ForMember( + dest => dest.ManagementIpConfiguration, + opt => opt.MapFrom(src => src.ManagementIPConfiguration) + ) + .AfterMap((src, dest) => + { + // TODO: refactor after backend is refactored + dest.ThreatIntelWhitelist = new CNM.PSAzureFirewallThreatIntelWhitelist(); + try + { + dest.ThreatIntelWhitelist.FQDNs = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("ThreatIntel.Whitelist.FQDNs", StringComparison.OrdinalIgnoreCase)).Value?.Split(',').Select(str => str.Trim()).ToArray(); + } + catch (PSArgumentException) + { + dest.ThreatIntelWhitelist.FQDNs = null; + } + try + { + dest.ThreatIntelWhitelist.IpAddresses = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("ThreatIntel.Whitelist.IpAddresses", StringComparison.OrdinalIgnoreCase)).Value?.Split(',').Select(str => str.Trim()).ToArray(); + } + catch (PSArgumentException) + { + dest.ThreatIntelWhitelist.IpAddresses = null; + } + try + { + dest.PrivateRange = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.SNAT.PrivateRanges", StringComparison.OrdinalIgnoreCase)).Value?.Split(',').Select(str => str.Trim()).ToArray(); + } + catch (PSArgumentException) + { + dest.PrivateRange = null; + } + dest.AllowActiveFTP = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.FTP.AllowActiveFTP", StringComparison.OrdinalIgnoreCase)).Value; + dest.DNSEnableProxy = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.DNS.EnableProxy", StringComparison.OrdinalIgnoreCase)).Value; + dest.EnableFatFlowLogging = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.AdditionalLogs.EnableFatFlowLogging", StringComparison.OrdinalIgnoreCase)).Value; + dest.EnableDnstapLogging = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.AdditionalLogs.EnableDnstapLogging", StringComparison.OrdinalIgnoreCase)).Value; + dest.EnableUDPLogOptimization = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.Logging.EnableUDPLogOptimization", StringComparison.OrdinalIgnoreCase)).Value; + dest.RouteServerId = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.RouteServerInfo.RouteServerID", StringComparison.OrdinalIgnoreCase)).Value; + try + { + dest.DNSServer = src.AdditionalProperties?.SingleOrDefault(kvp => kvp.Key.Equals("Network.DNS.Servers", StringComparison.OrdinalIgnoreCase)).Value?.Split(',').Select(str => str.Trim()).ToArray(); + } + catch (PSArgumentException) + { + dest.DNSServer = null; + } + }); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.IpPrefixes, + opt => opt.MapFrom(src => src.IPPrefixes) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.SourceIpGroups, + opt => opt.MapFrom(src => src.SourceIPGroups) + ); + cfg.CreateMap() + .ForMember( + dest => dest.SourceIpGroups, + opt => opt.MapFrom(src => src.SourceIPGroups) + ); + cfg.CreateMap() + .ForMember( + dest => dest.SourceIpGroups, + opt => opt.MapFrom(src => src.SourceIPGroups) + ) + .ForMember( + dest => dest.DestinationIpGroups, + opt => opt.MapFrom(src => src.DestinationIPGroups) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Azure Firewall FQDN Tags + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + cfg.CreateMap(); + + // Azure Firewall Policies + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap().AfterMap((src, dst) => + { + dst.AutoLearnPrivateRanges = string.IsNullOrEmpty(src.AutoLearnPrivateRanges) ? "Disabled" : src.AutoLearnPrivateRanges; + }); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap().ForCtorParam("dnsSettings", opt => + { + opt.MapFrom(src => src.DnsSettings == null ? null : new MNM.DnsSettings(src.DnsSettings.Servers, src.DnsSettings.EnableProxy, null)); + }).AfterMap((src, dst) => + { + dst.Sql = src.SqlSetting == null ? null : new MNM.FirewallPolicySQL(src.SqlSetting.AllowSqlRedirect); + }); + cfg.CreateMap().ForCtorParam("dnsSettings", opt => + { + opt.MapFrom(src => src.DnsSettings == null ? null : new MNM.DnsSettings(src.DnsSettings.Servers, src.DnsSettings.EnableProxy, null)); + }).AfterMap((src, dst) => + { + dst.Sql = src.SqlSetting == null ? null : new MNM.FirewallPolicySQL(src.SqlSetting.AllowSqlRedirect); + }); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap().AfterMap((src, dst) => + { + dst.AutoLearnPrivateRanges = string.IsNullOrEmpty(src.AutoLearnPrivateRanges) ? "Disabled" : src.AutoLearnPrivateRanges; + }); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap().AfterMap((src, dst) => + { + dst.SqlSetting = src.Sql == null ? null : new CNM.PSAzureFirewallPolicySqlSetting { AllowSqlRedirect = src.Sql.AllowSqlRedirect }; + }); + cfg.CreateMap().AfterMap((src, dst) => + { + dst.SqlSetting = src.Sql == null ? null : new CNM.PSAzureFirewallPolicySqlSetting { AllowSqlRedirect = src.Sql.AllowSqlRedirect }; + }); + + // Virtual Network Tap + // CNM to MNM + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + + cfg.CreateMap() + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ); + cfg.CreateMap() + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + cfg.CreateMap(); + cfg.CreateMap(); + + cfg.CreateMap().AfterMap((src, dest) => + { + dest.ActionsRequired = src.ActionRequired; + }); + cfg.CreateMap().AfterMap((src, dest) => + { + dest.ActionRequired = src.ActionsRequired; + }); + + cfg.CreateMap() + .ForMember( + dest => dest.LoadBalancerFrontendIPConfigurations, + opt => opt.MapFrom(src => src.LoadBalancerFrontendIpConfigurations) + ) + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ); + cfg.CreateMap() + .ForMember( + dest => dest.LoadBalancerFrontendIpConfigurations, + opt => opt.MapFrom(src => src.LoadBalancerFrontendIPConfigurations) + ) + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ); + + cfg.CreateMap(); + cfg.CreateMap().AfterMap((src, dest) => + { + dest.PublicIPAddress = null; + }); + + + cfg.CreateMap(); + cfg.CreateMap(); + + cfg.CreateMap(); + cfg.CreateMap(); + + cfg.CreateMap(); + cfg.CreateMap(); + + // Bastion + // CNM to MNM + cfg.CreateMap() + .ForMember( + dest => dest.IPConfigurations, + opt => opt.MapFrom(src => src.IpConfigurations) + ).ForMember( + dest => dest.EnableIPConnect, + opt => opt.MapFrom(src => src.EnableIpConnect) + ); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.IpConfigurations, + opt => opt.MapFrom(src => src.IPConfigurations) + ).ForMember( + dest => dest.EnableIpConnect, + opt => opt.MapFrom(src => src.EnableIPConnect) + ); + cfg.CreateMap(); + + // Virtual Router + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.PeerIP, + opt => opt.MapFrom(src => src.PeerIp) + ); + cfg.CreateMap() + .ForMember( + dest => dest.PeerIP, + opt => opt.MapFrom(src => src.PeerIp) + ); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap() + .ForMember( + dest => dest.PeerIp, + opt => opt.MapFrom(src => src.PeerIP) + ); + cfg.CreateMap() + .ForMember( + dest => dest.PeerIp, + opt => opt.MapFrom(src => src.PeerIP) + ); + cfg.CreateMap() + .ForMember( + dest => dest.PeerIp, + opt => opt.MapFrom(src => src.PeerIP) + ); + cfg.CreateMap(); + cfg.CreateMap(); + + // IpGroup + cfg.CreateMap() + .ForMember( + dest => dest.IPAddresses, + opt => opt.MapFrom(src => src.IpAddresses) + ); + cfg.CreateMap() + .ForMember( + dest => dest.IpAddresses, + opt => opt.MapFrom(src => src.IPAddresses) + ); + + // IpAllocation + cfg.CreateMap() + .ForMember( + dest => dest.PropertiesType, + opt => opt.MapFrom(src => src.IpAllocationType) + ); + cfg.CreateMap(); + + // Network Virtual Appliance & Sites + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.PublicIPAddress, + opt => opt.MapFrom(src => src.PublicIpAddress) + ) + .ForMember( + dest => dest.PrivateIPAddress, + opt => opt.MapFrom(src => src.PrivateIpAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.Subnet, + opt => opt.MapFrom(src => new MNM.NvaInVnetSubnetReferenceProperties { Id = src.Subnet.Id}) + ) + .ForMember( + dest => dest.Type, + opt => opt.MapFrom(src => src.NicType != null ? src.NicType : new List()) + ) + .ForMember( + dest => dest.Name, + opt => opt.MapFrom(src => src.Name) + ); + + + // MNM to CNM + // Where CNM - models from Powershell + // MNM - models from Sdk + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.PublicIpAddress, + opt => opt.MapFrom(src => src.PublicIPAddress) + ) + .ForMember( + dest => dest.PrivateIpAddress, + opt => opt.MapFrom(src => src.PrivateIPAddress) + ); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember( + dest => dest.Subnet, + opt => opt.MapFrom(src => src.Subnet != null ? new CNM.PSResourceId { Id = src.Subnet.Id } : null)) + .ForMember( + dest => dest.NicType, + opt => opt.MapFrom(src => src.Type != null && src.Type.Count > 0 ? src.Type.ToList() : new List())) + .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name)); + + // NetworkManager + // CNM to MNMs + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + cfg.CreateMap() + .ForMember(dest => dest.ConnectivityCapabilities, opt => opt.MapFrom(src => src.ConnectivityCapability)); + cfg.CreateMap() + .ForMember(dest => dest.ConnectivityCapability, opt => opt.MapFrom(src => src.ConnectivityCapabilities)); + + cfg.CreateMap(); + cfg.CreateMap(); + + + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // IpamPool + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + // VnetVerifier + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // IpamPool + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // VnetVerifier + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + // Virtual Network Appliance + // CNM to MNM + cfg.CreateMap(); + cfg.CreateMap(); + + // MNM to CNM + cfg.CreateMap(); + cfg.CreateMap(); + }); + _mapper = config.CreateMapper(); + } + } +}