internal static VirtualNetworkGatewayListResult DeserializeVirtualNetworkGatewayListResult(JsonElement element) { Optional <IReadOnlyList <VirtualNetworkGatewayData> > value = default; Optional <string> nextLink = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <VirtualNetworkGatewayData> array = new List <VirtualNetworkGatewayData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(VirtualNetworkGatewayData.DeserializeVirtualNetworkGatewayData(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new VirtualNetworkGatewayListResult(Optional.ToList(value), nextLink.Value)); }
VirtualNetworkGateway IOperationSource <VirtualNetworkGateway> .CreateResult(Response response, CancellationToken cancellationToken) { using var document = JsonDocument.Parse(response.ContentStream); var data = VirtualNetworkGatewayData.DeserializeVirtualNetworkGatewayData(document.RootElement); return(new VirtualNetworkGateway(_armClient, data)); }
public async Task TroubleshootApiTest() { string resourceGroupName = Recording.GenerateAssetName("azsmnet"); string location = "westus2"; var resourceGroup = CreateResourceGroup(resourceGroupName, location); // CreateVirtualNetworkGateway API // Prerequisite:- Create PublicIPAddress(Gateway Ip) using Put PublicIPAddressResource API string publicIpName = Recording.GenerateAssetName("azsmnet"); string domainNameLabel = Recording.GenerateAssetName("azsmnet"); PublicIPAddressResource nic1publicIp = await CreateDefaultPublicIpAddress(publicIpName, resourceGroupName, domainNameLabel, location); //Prerequisite:-Create Virtual Network using Put VirtualNetworkResource API string vnetName = Recording.GenerateAssetName("azsmnet"); string subnetName = "GatewaySubnet"; await CreateVirtualNetwork(vnetName, subnetName, resourceGroupName, location); Response <SubnetResource> getSubnetResponse = await GetVirtualNetworkCollection(resourceGroupName).Get(vnetName).Value.GetSubnets().GetAsync(subnetName); // CreateVirtualNetworkGateway API string virtualNetworkGatewayName = Recording.GenerateAssetName("azsmnet"); string ipConfigName = Recording.GenerateAssetName("azsmnet"); var virtualNetworkGateway = new VirtualNetworkGatewayData() { Location = location, Tags = { { "key", "value" } }, EnableBgp = false, GatewayDefaultSite = null, GatewayType = VirtualNetworkGatewayType.Vpn, VpnType = VpnType.RouteBased, IpConfigurations = { new VirtualNetworkGatewayIPConfiguration() { Name = ipConfigName, PrivateIPAllocationMethod = IPAllocationMethod.Dynamic, PublicIPAddress = new SubResource() { Id = nic1publicIp.Id }, Subnet = new SubResource() { Id = getSubnetResponse.Value.Id } } }, Sku = new VirtualNetworkGatewaySku() { Name = VirtualNetworkGatewaySkuName.Basic, Tier = VirtualNetworkGatewaySkuTier.Basic } }; var virtualNetworkGatewayCollection = GetVirtualNetworkGatewayCollection(resourceGroupName); var putVirtualNetworkGatewayResponseOperation = await virtualNetworkGatewayCollection.CreateOrUpdateAsync(true, virtualNetworkGatewayName, virtualNetworkGateway); await putVirtualNetworkGatewayResponseOperation.WaitForCompletionAsync();; // GetVirtualNetworkGateway API Response <VirtualNetworkGatewayResource> getVirtualNetworkGatewayResponse = await virtualNetworkGatewayCollection.GetAsync(virtualNetworkGatewayName); //TODO:There is no need to perform a separate create NetworkWatchers operation //Create network Watcher //string networkWatcherName = Recording.GenerateAssetName("azsmnet"); //NetworkWatcherResource properties = new NetworkWatcherResource { Location = location }; //await networkWatcherCollection.CreateOrUpdateAsync(true, resourceGroupName, networkWatcherName, properties); //Create storage //string storageName = Recording.GenerateAssetName("azsmnet"); //var storageParameters = new StorageAccountCreateParameters(new Sku(SkuName.StandardLRS), Kind.Storage, location); //Operation<StorageAccountResource> accountOperation = await StorageManagementClient.StorageAccounts.CreateAsync(resourceGroupName, storageName, storageParameters); //Response<StorageAccountResource> account = await accountOperation.WaitForCompletionAsync();; //TroubleshootingParameters parameters = new TroubleshootingParameters(getVirtualNetworkGatewayResponse.Value.Id, account.Value.Id, "https://nwtestdbdzq4xsvskrei6.blob.core.windows.net/vhds"); ////Get troubleshooting //var networkWatcherCollection = GetNetworkWatcherCollection("NetworkWatcherRG"); //var troubleshootOperation = await networkWatcherCollection.Get("NetworkWatcher_westus2").Value.GetTroubleshootingAsync(parameters); //await troubleshootOperation.WaitForCompletionAsync();; ////Query last troubleshoot //var queryTroubleshootOperation = await networkWatcherCollection.Get("NetworkWatcher_westus2").Value.GetTroubleshootingResultAsync(new QueryTroubleshootingParameters(getVirtualNetworkGatewayResponse.Value.Id)); //await queryTroubleshootOperation.WaitForCompletionAsync();; //TODO: make verification once fixed for troubleshoot API deployed }