public override void ExecuteCmdlet() { var sslSettings = new PsApiManagementSslSetting(); if (FrontendProtocol != null && FrontendProtocol.Count > 0) { sslSettings.FrontendProtocol = FrontendProtocol; } if (BackendProtocol != null && BackendProtocol.Count > 0) { sslSettings.BackendProtocol = BackendProtocol; } if (CipherSuite != null && CipherSuite.Count > 0) { sslSettings.CipherSuite = CipherSuite; } if (ServerProtocol != null && ServerProtocol.Count > 0) { sslSettings.ServerProtocol = ServerProtocol; } WriteObject(sslSettings); }
public static Dictionary <string, string> MapPsApiManagementSslSetting(PsApiManagementSslSetting sslSettings) { if (sslSettings == null) { return(null); } var customProperties = new Dictionary <string, string>(); if (sslSettings.FrontendProtocol != null) { foreach (DictionaryEntry frontend in sslSettings.FrontendProtocol) { customProperties.Add(GetSslKey(Constants.FrontendProtocolSettingPrefix, frontend.Key), frontend.Value.ToString()); } } if (sslSettings.BackendProtocol != null) { foreach (DictionaryEntry backend in sslSettings.BackendProtocol) { customProperties.Add(GetSslKey(Constants.BackendProtocolSettingPrefix, backend.Key), backend.Value.ToString()); } } if (sslSettings.CipherSuite != null) { foreach (DictionaryEntry cipherSuite in sslSettings.CipherSuite) { customProperties.Add(GetSslKey(Constants.CipherSettingPrefix, cipherSuite.Key), cipherSuite.Value.ToString()); } } if (sslSettings.ServerProtocol != null) { foreach (DictionaryEntry serverProtocol in sslSettings.ServerProtocol) { customProperties.Add(GetSslKey(Constants.ServerSettingPrefix, serverProtocol.Key), serverProtocol.Value.ToString()); } } return(customProperties); }
public PsApiManagement CreateApiManagementService( string resourceGroupName, string serviceName, string location, string organization, string administratorEmail, Dictionary <string, string> tags, bool enableClientCertificate, PsApiManagementSku sku = PsApiManagementSku.Developer, int?capacity = null, PsApiManagementVpnType vpnType = PsApiManagementVpnType.None, PsApiManagementVirtualNetwork virtualNetwork = null, PsApiManagementRegion[] additionalRegions = null, PsApiManagementCustomHostNameConfiguration[] customHostnameConfigurations = null, PsApiManagementSystemCertificate[] systemCertificates = null, PsApiManagementSslSetting sslSettings = null, bool createSystemResourceIdentity = false, string[] userAssignedIdentity = null) { string skuType = Mappers.MapSku(sku); if (capacity == null) { capacity = (sku == PsApiManagementSku.Consumption ? 0 : 1); } var skuProperties = new ApiManagementServiceSkuProperties(skuType, capacity.Value); var parameters = new ApiManagementServiceResource { Location = location, PublisherEmail = administratorEmail, PublisherName = organization, VirtualNetworkType = Mappers.MapVirtualNetworkType(vpnType), Sku = skuProperties, Tags = tags }; if (virtualNetwork != null) { parameters.VirtualNetworkConfiguration = new VirtualNetworkConfiguration { SubnetResourceId = virtualNetwork.SubnetResourceId }; } if (additionalRegions != null && additionalRegions.Any()) { parameters.AdditionalLocations = additionalRegions .Select(region => new AdditionalLocation { Location = region.Location, Sku = new ApiManagementServiceSkuProperties() { Name = Mappers.MapSku(region.Sku), Capacity = region.Capacity }, VirtualNetworkConfiguration = region.VirtualNetwork == null ? null : new VirtualNetworkConfiguration { SubnetResourceId = region.VirtualNetwork.SubnetResourceId } }) .ToList(); } if (customHostnameConfigurations != null) { parameters.HostnameConfigurations = BuildHostNameConfiguration(customHostnameConfigurations); } if (systemCertificates != null) { parameters.Certificates = new List <CertificateConfiguration>(); foreach (var systemCertificate in systemCertificates) { var certificateConfig = systemCertificate.GetCertificateConfiguration(); parameters.Certificates.Add(certificateConfig); } } if (sslSettings != null) { parameters.CustomProperties = Mappers.MapPsApiManagementSslSetting(sslSettings); } if (enableClientCertificate) { parameters.EnableClientCertificate = enableClientCertificate; } parameters.Identity = Mappers.MapAssignedIdentity(createSystemResourceIdentity, userAssignedIdentity); var apiManagementResource = Client.ApiManagementService.CreateOrUpdate(resourceGroupName, serviceName, parameters); return(new PsApiManagement(apiManagementResource)); }
public PsApiManagement CreateApiManagementService( string resourceGroupName, string serviceName, string location, string organization, string administratorEmail, Dictionary <string, string> tags, bool enableClientCertificate, PsApiManagementSku sku = PsApiManagementSku.Developer, int?capacity = null, PsApiManagementVpnType vpnType = PsApiManagementVpnType.None, PsApiManagementVirtualNetwork virtualNetwork = null, PsApiManagementRegion[] additionalRegions = null, PsApiManagementCustomHostNameConfiguration[] customHostnameConfigurations = null, PsApiManagementSystemCertificate[] systemCertificates = null, PsApiManagementSslSetting sslSettings = null, bool createSystemResourceIdentity = false, string[] userAssignedIdentity = null, string[] zone = null, bool?disableGateway = null, string minimalControlPlaneApiVersion = null, string publicNetworkAccess = null, string publicIpAddressId = null) { string skuType = Mappers.MapSku(sku); if (capacity == null) { capacity = (sku == PsApiManagementSku.Consumption ? 0 : 1); } var skuProperties = new ApiManagementServiceSkuProperties(skuType, capacity.Value); var parameters = new ApiManagementServiceResource { Location = location, PublisherEmail = administratorEmail, PublisherName = organization, VirtualNetworkType = Mappers.MapVirtualNetworkType(vpnType), Sku = skuProperties, Tags = tags }; if (virtualNetwork != null) { parameters.VirtualNetworkConfiguration = new VirtualNetworkConfiguration { SubnetResourceId = virtualNetwork.SubnetResourceId }; } if (additionalRegions != null && additionalRegions.Any()) { parameters.AdditionalLocations = additionalRegions .Select(region => region.GetAdditionalLocation()) .ToList(); } if (customHostnameConfigurations != null) { parameters.HostnameConfigurations = BuildHostNameConfiguration(customHostnameConfigurations); } if (systemCertificates != null) { parameters.Certificates = new List <CertificateConfiguration>(); foreach (var systemCertificate in systemCertificates) { var certificateConfig = systemCertificate.GetCertificateConfiguration(); parameters.Certificates.Add(certificateConfig); } } if (sslSettings != null) { parameters.CustomProperties = Mappers.MapPsApiManagementSslSetting(sslSettings); } if (enableClientCertificate) { parameters.EnableClientCertificate = enableClientCertificate; } if (zone != null) { parameters.Zones = zone; } if (disableGateway != null && disableGateway.HasValue) { parameters.DisableGateway = disableGateway.Value; } if (!string.IsNullOrWhiteSpace(minimalControlPlaneApiVersion)) { parameters.ApiVersionConstraint = new ApiVersionConstraint() { MinApiVersion = minimalControlPlaneApiVersion }; } if (publicIpAddressId != null) { parameters.PublicIpAddressId = publicIpAddressId; } if (publicNetworkAccess != null) { parameters.PublicNetworkAccess = publicNetworkAccess; } parameters.Identity = Mappers.MapAssignedIdentity(createSystemResourceIdentity, userAssignedIdentity); var apiManagementResource = Client.ApiManagementService.CreateOrUpdate(resourceGroupName, serviceName, parameters); return(new PsApiManagement(apiManagementResource)); }