public static AdditionalLocation GetAdditionalLocation( this PsApiManagementRegion region) { if (region == null) { return(null); } var additionalLocation = new AdditionalLocation(); additionalLocation.Location = region.Location; additionalLocation.Sku = new ApiManagementServiceSkuProperties() { Name = Mappers.MapSku(region.Sku), Capacity = region.Capacity }; additionalLocation.VirtualNetworkConfiguration = region.VirtualNetwork == null ? null : new VirtualNetworkConfiguration { SubnetResourceId = region.VirtualNetwork.SubnetResourceId }; additionalLocation.Zones = region.Zone; if (region.DisableGateway != null && region.DisableGateway.HasValue) { additionalLocation.DisableGateway = region.DisableGateway; } return(additionalLocation); }
public ApiManagementLongRunningOperation BeginCreateApiManagementService( string resourceGroupName, string serviceName, string location, string organization, string administratorEmail, PsApiManagementSku sku = PsApiManagementSku.Developer, int capacity = 1, PsApiManagementVpnType vpnType = PsApiManagementVpnType.None, IDictionary<string, string> tags = null, PsApiManagementVirtualNetwork virtualNetwork = null, PsApiManagementRegion[] additionalRegions = null) { var parameters = new ApiServiceCreateOrUpdateParameters { Location = location, Properties = new ApiServiceProperties { PublisherEmail = administratorEmail, PublisherName = organization, VpnType = MapVirtualNetworkType(vpnType) }, SkuProperties = new ApiServiceSkuProperties { Capacity = capacity, SkuType = MapSku(sku) }, Tags = tags }; if (virtualNetwork != null) { parameters.Properties.VirtualNetworkConfiguration = new VirtualNetworkConfiguration { Location = virtualNetwork.Location, SubnetResourceId = virtualNetwork.SubnetResourceId }; } if (additionalRegions != null && additionalRegions.Any()) { parameters.Properties.AdditionalRegions = additionalRegions .Select(region => new AdditionalRegion { Location = region.Location, SkuType = MapSku(region.Sku), SkuUnitCount = region.Capacity, VirtualNetworkConfiguration = region.VirtualNetwork == null ? null : new VirtualNetworkConfiguration { Location = region.VirtualNetwork.Location, SubnetResourceId = region.VirtualNetwork.SubnetResourceId } }) .ToList(); } var longrunningResponse = Client.ResourceProvider.BeginCreatingOrUpdating(resourceGroupName, serviceName, parameters); AdjustRetryAfter(longrunningResponse, _client.LongRunningOperationInitialTimeout); return ApiManagementLongRunningOperation.CreateLongRunningOperation("New-AzureRmApiManagement", longrunningResponse); }