internal static RouteTableListResult DeserializeRouteTableListResult(JsonElement element) { Optional <IReadOnlyList <RouteTableData> > 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 <RouteTableData> array = new List <RouteTableData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(RouteTableData.DeserializeRouteTableData(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new RouteTableListResult(Optional.ToList(value), nextLink.Value)); }
RouteTable IOperationSource <RouteTable> .CreateResult(Response response, CancellationToken cancellationToken) { using var document = JsonDocument.Parse(response.ContentStream); var data = RouteTableData.DeserializeRouteTableData(document.RootElement); return(new RouteTable(_armClient, data)); }
public async Task EmptyRouteTableTest() { string resourceGroupName = Recording.GenerateAssetName("csmrg"); string location = TestEnvironment.Location; var resourceGroup = await CreateResourceGroup(resourceGroupName); string routeTableName = Recording.GenerateAssetName("azsmnet"); var routeTable = new RouteTableData() { Location = location, }; // Put RouteTable var routeTableCollection = resourceGroup.GetRouteTables(); var putRouteTableResponseOperation = await routeTableCollection.CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, routeTable); Response <RouteTable> putRouteTableResponse = await putRouteTableResponseOperation.WaitForCompletionAsync();; Assert.AreEqual("Succeeded", putRouteTableResponse.Value.Data.ProvisioningState.ToString()); // Get RouteTable Response <RouteTable> getRouteTableResponse = await routeTableCollection.GetAsync(routeTableName); Assert.AreEqual(routeTableName, getRouteTableResponse.Value.Data.Name); Assert.False(getRouteTableResponse.Value.Data.Routes.Any()); // List RouteTable AsyncPageable <RouteTable> listRouteTableResponseAP = routeTableCollection.GetAllAsync(); List <RouteTable> listRouteTableResponse = await listRouteTableResponseAP.ToEnumerableAsync(); Has.One.EqualTo(listRouteTableResponse); Assert.AreEqual(getRouteTableResponse.Value.Data.Name, listRouteTableResponse.First().Data.Name); Assert.AreEqual(getRouteTableResponse.Value.Id, listRouteTableResponse.First().Id); // Delete RouteTable var deleteOperation = await getRouteTableResponse.Value.DeleteAsync(WaitUntil.Completed); await deleteOperation.WaitForCompletionResponseAsync();; // Verify delete listRouteTableResponseAP = routeTableCollection.GetAllAsync(); listRouteTableResponse = await listRouteTableResponseAP.ToEnumerableAsync(); Assert.IsEmpty(listRouteTableResponse); }
protected async Task initialize() { ArmClient armClient = new ArmClient(new DefaultAzureCredential()); Subscription subscription = await armClient.GetDefaultSubscriptionAsync(); ResourceGroupCollection rgCollection = subscription.GetResourceGroups(); // With the collection, we can create a new resource group with an specific name string rgName = "myRgName"; AzureLocation location = AzureLocation.WestUS2; ResourceGroup resourceGroup = await rgCollection.CreateOrUpdate(true, rgName, new ResourceGroupData(location)).WaitForCompletionAsync(); this.resourceGroup = resourceGroup; //1. create NetworkSecurityGroup NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = AzureLocation.WestUS2, }; string networkSecurityGroupName = "myNetworkSecurityGroup"; var networkSecurityGroup = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(true, networkSecurityGroupName, networkSecurityGroupData); //2. create Route table RouteTableData routeTableData = new RouteTableData() { Location = AzureLocation.WestUS2, }; string routeTableName = "myRouteTable"; var routeTable = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(true, routeTableName, routeTableData); //3. create vnet(subnet binding NetworkSecurityGroup and RouteTable) var vnetData = new VirtualNetworkData() { Location = AzureLocation.WestUS2, AddressSpace = new AddressSpace() { AddressPrefixes = { "10.10.0.0/16", } }, Subnets = { new SubnetData() { Name = "ManagedInstance", AddressPrefix = "10.10.2.0/24", Delegations = { new Delegation() { ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", Type = "Microsoft.Sql" } }, RouteTable = new RouteTableData() { Id = routeTable.Value.Data.Id.ToString() }, NetworkSecurityGroup = new NetworkSecurityGroupData() { Id = networkSecurityGroup.Value.Data.Id.ToString() }, } }, }; string vnetName = "myVnet"; var vnet = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(true, vnetName, vnetData); string subnetId = $"{vnet.Value.Data.Id}/subnets/ManagedInstance"; //4. create ManagedInstance ManagedInstanceData data = new ManagedInstanceData(AzureLocation.WestUS2) { AdministratorLogin = "******", AdministratorLoginPassword = "******", SubnetId = subnetId, PublicDataEndpointEnabled = false, MaintenanceConfigurationId = "/subscriptions/0000-0000-0000-0000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default", ProxyOverride = new ManagedInstanceProxyOverride("Proxy") { }, TimezoneId = "UTC", StorageAccountType = new StorageAccountType("GRS"), ZoneRedundant = false, }; string managedInstanceName = "myManagedInstance"; var managedInstanceLro = await resourceGroup.GetManagedInstances().CreateOrUpdateAsync(true, managedInstanceName, data); managedInstance = managedInstanceLro.Value; }
public async Task CreateOrUpdate() { #region Snippet:Managing_Sql_CreateAManagedInstance //1. create NetworkSecurityGroup NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = AzureLocation.WestUS2, }; string networkSecurityGroupName = "myNetworkSecurityGroup"; var networkSecurityGroup = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(WaitUntil.Completed, networkSecurityGroupName, networkSecurityGroupData); //2. create Route table RouteTableData routeTableData = new RouteTableData() { Location = AzureLocation.WestUS2, }; string routeTableName = "myRouteTable"; var routeTable = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, routeTableData); //3. create vnet(subnet binding NetworkSecurityGroup and RouteTable) var vnetData = new VirtualNetworkData() { Location = AzureLocation.WestUS2, Subnets = { new SubnetData() { Name = "ManagedInstance", AddressPrefix = "10.10.2.0/24", Delegations = { new Delegation() { ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", ResourceType = "Microsoft.Sql" } }, RouteTable = new RouteTableData() { Id = routeTable.Value.Data.Id }, NetworkSecurityGroup = new NetworkSecurityGroupData() { Id = networkSecurityGroup.Value.Data.Id }, } }, }; vnetData.AddressPrefixes.Add("10.10.0.0/16"); string vnetName = "myVnet"; var vnet = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, vnetName, vnetData); string subnetId = $"{vnet.Value.Data.Id}/subnets/ManagedInstance"; //4. create ManagedInstance ManagedInstanceData data = new ManagedInstanceData(AzureLocation.WestUS2) { AdministratorLogin = "******", AdministratorLoginPassword = "******", SubnetId = subnetId, PublicDataEndpointEnabled = false, MaintenanceConfigurationId = "/subscriptions/0000-0000-0000-0000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default", ProxyOverride = new ManagedInstanceProxyOverride("Proxy") { }, TimezoneId = "UTC", ZoneRedundant = false, }; string managedInstanceName = "myManagedInstance"; var managedInstanceLro = await resourceGroup.GetManagedInstances().CreateOrUpdateAsync(WaitUntil.Completed, managedInstanceName, data); ManagedInstanceResource managedInstance = managedInstanceLro.Value; #endregion }
/// <summary> /// create a defaut managed instance. /// defaut vnet AddressPrefixes = 10.10.0.0/16 /// </summary> /// <param name="managedInstanceName"></param> /// <param name="location"></param> /// <param name="resourceGroup"></param> /// <returns></returns> protected async Task <ManagedInstance> CreateDefaultManagedInstance(string managedInstanceName, string networkSecurityGroupName, string routeTableName, string vnetName, Location location, ResourceGroup resourceGroup) { //1. create NetworkSecurityGroup NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = location, }; var networkSecurityGroup = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(networkSecurityGroupName, networkSecurityGroupData); //2. create Route table RouteTableData routeTableData = new RouteTableData() { Location = location, }; var routeTable = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(routeTableName, routeTableData); //3. create vnet(subnet bind NetworkSecurityGroup and RouteTable) var vnetData = new VirtualNetworkData() { Location = location, AddressSpace = new AddressSpace() { AddressPrefixes = { "10.10.0.0/16", } }, Subnets = { new SubnetData() { Name = "subnet01", AddressPrefix = "10.10.1.0/24", }, new SubnetData() { Name = "ManagedInstance", AddressPrefix = "10.10.2.0/24", Delegations = { new Delegation() { ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", Type = "Microsoft.Sql" } }, RouteTable = new RouteTableData() { Id = routeTable.Value.Data.Id.ToString() }, NetworkSecurityGroup = new NetworkSecurityGroupData() { Id = networkSecurityGroup.Value.Data.Id.ToString() }, } }, }; var vnet = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(vnetName, vnetData); string subnetId = $"{vnet.Value.Data.Id}/subnets/ManagedInstance"; //4. create ManagedInstance ManagedInstanceData data = new ManagedInstanceData(location) { AdministratorLogin = $"admin-{managedInstanceName}", AdministratorLoginPassword = CreateGeneralPassword(), SubnetId = subnetId, PublicDataEndpointEnabled = false, MaintenanceConfigurationId = "/subscriptions/db1ab6f0-4769-4b27-930e-01e2ef9c123c/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default", ProxyOverride = new ManagedInstanceProxyOverride("Proxy") { }, TimezoneId = "UTC", StorageAccountType = new StorageAccountType("GRS"), ZoneRedundant = false, }; var managedInstanceLro = await resourceGroup.GetManagedInstances().CreateOrUpdateAsync(managedInstanceName, data); var managedInstance = managedInstanceLro.Value; return(managedInstance); }
public async Task RouteTableApiTest() { string resourceGroupName = Recording.GenerateAssetName("csmrg"); string location = TestEnvironment.Location; var resourceGroup = await CreateResourceGroup(resourceGroupName); string routeTableName = Recording.GenerateAssetName("azsmnet"); string route1Name = Recording.GenerateAssetName("azsmnet"); string route2Name = Recording.GenerateAssetName("azsmnet"); var routeTable = new RouteTableData() { Location = location, }; // Add a route var route1 = new RouteData() { AddressPrefix = "192.168.1.0/24", Name = route1Name, NextHopIPAddress = "23.108.1.1", NextHopType = RouteNextHopType.VirtualAppliance }; routeTable.Routes.Add(route1); // Put RouteTable var routeTableCollection = resourceGroup.GetRouteTables(); var putRouteTableResponseOperation = await routeTableCollection.CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, routeTable); Response <RouteTable> putRouteTableResponse = await putRouteTableResponseOperation.WaitForCompletionAsync();; Assert.AreEqual("Succeeded", putRouteTableResponse.Value.Data.ProvisioningState.ToString()); // Get RouteTable Response <RouteTable> getRouteTableResponse = await routeTableCollection.GetAsync(routeTableName); Assert.AreEqual(routeTableName, getRouteTableResponse.Value.Data.Name); Assert.AreEqual(1, getRouteTableResponse.Value.Data.Routes.Count); Assert.AreEqual(route1Name, getRouteTableResponse.Value.Data.Routes[0].Name); Assert.AreEqual("192.168.1.0/24", getRouteTableResponse.Value.Data.Routes[0].AddressPrefix); Assert.AreEqual("23.108.1.1", getRouteTableResponse.Value.Data.Routes[0].NextHopIPAddress); Assert.AreEqual(RouteNextHopType.VirtualAppliance, getRouteTableResponse.Value.Data.Routes[0].NextHopType); // Add another route var route2 = new RouteData() { AddressPrefix = "10.0.1.0/24", Name = route2Name, NextHopType = RouteNextHopType.VnetLocal }; getRouteTableResponse.Value.Data.Routes.Add(route2); await routeTableCollection.CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, getRouteTableResponse.Value.Data); getRouteTableResponse = await routeTableCollection.GetAsync(routeTableName); Assert.AreEqual(routeTableName, getRouteTableResponse.Value.Data.Name); Assert.AreEqual(2, getRouteTableResponse.Value.Data.Routes.Count); Assert.AreEqual(route2Name, getRouteTableResponse.Value.Data.Routes[1].Name); Assert.AreEqual("10.0.1.0/24", getRouteTableResponse.Value.Data.Routes[1].AddressPrefix); Assert.True(string.IsNullOrEmpty(getRouteTableResponse.Value.Data.Routes[1].NextHopIPAddress)); Assert.AreEqual(RouteNextHopType.VnetLocal, getRouteTableResponse.Value.Data.Routes[1].NextHopType); // Delete a route getRouteTableResponse.Value.Data.Routes.RemoveAt(0); await routeTableCollection.CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, getRouteTableResponse.Value.Data); getRouteTableResponse = await routeTableCollection.GetAsync(routeTableName); Assert.AreEqual(routeTableName, getRouteTableResponse.Value.Data.Name); Assert.AreEqual(1, getRouteTableResponse.Value.Data.Routes.Count); Assert.AreEqual(route2Name, getRouteTableResponse.Value.Data.Routes[0].Name); Assert.AreEqual("10.0.1.0/24", getRouteTableResponse.Value.Data.Routes[0].AddressPrefix); Assert.True(string.IsNullOrEmpty(getRouteTableResponse.Value.Data.Routes[0].NextHopIPAddress)); Assert.AreEqual(RouteNextHopType.VnetLocal, getRouteTableResponse.Value.Data.Routes[0].NextHopType); // Delete RouteTable var deleteOperation = await getRouteTableResponse.Value.DeleteAsync(WaitUntil.Completed); await deleteOperation.WaitForCompletionResponseAsync();; // Verify delete AsyncPageable <RouteTable> listRouteTableResponseAP = routeTableCollection.GetAllAsync(); List <RouteTable> listRouteTableResponse = await listRouteTableResponseAP.ToEnumerableAsync(); Assert.IsEmpty(listRouteTableResponse); }
public async Task SubnetRouteTableTest() { string resourceGroupName = Recording.GenerateAssetName("csmrg"); string location = TestEnvironment.Location; var resourceGroup = await CreateResourceGroup(resourceGroupName); string routeTableName = Recording.GenerateAssetName("azsmnet"); string route1Name = Recording.GenerateAssetName("azsmnet"); var routeTable = new RouteTableData() { Location = location, }; var route1 = new RouteData() { AddressPrefix = "192.168.1.0/24", Name = route1Name, NextHopIPAddress = "23.108.1.1", NextHopType = RouteNextHopType.VirtualAppliance }; routeTable.Routes.Add(route1); // Put RouteTable var routeTableCollection = resourceGroup.GetRouteTables(); var putRouteTableResponseOperation = await routeTableCollection.CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, routeTable); Response <RouteTable> putRouteTableResponse = await putRouteTableResponseOperation.WaitForCompletionAsync();; Assert.AreEqual("Succeeded", putRouteTableResponse.Value.Data.ProvisioningState.ToString()); // Get RouteTable Response <RouteTable> getRouteTableResponse = await routeTableCollection.GetAsync(routeTableName); // Verify that the subnet reference is null Assert.IsEmpty(getRouteTableResponse.Value.Data.Subnets); // Create Vnet with subnet and add a route table string vnetName = Recording.GenerateAssetName("azsmnet"); string subnetName = Recording.GenerateAssetName("azsmnet"); var vnet = new VirtualNetworkData() { Location = location, AddressSpace = new AddressSpace() { AddressPrefixes = { "10.0.0.0/16", } }, DhcpOptions = new DhcpOptions() { DnsServers = { "10.1.1.1", "10.1.2.4" } }, Subnets = { new SubnetData() { Name = subnetName, AddressPrefix = "10.0.0.0/24", RouteTable = new RouteTableData() { Id = getRouteTableResponse.Value.Id, } } } }; var putVnetResponseOperation = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, vnetName, vnet); Response <VirtualNetwork> putVnetResponse = await putVnetResponseOperation.WaitForCompletionAsync();; Assert.AreEqual("Succeeded", putVnetResponse.Value.Data.ProvisioningState.ToString()); Response <Subnet> getSubnetResponse = await putVnetResponse.Value.GetSubnets().GetAsync(subnetName); Assert.AreEqual(getSubnetResponse.Value.Data.RouteTable.Id, getRouteTableResponse.Value.Id.ToString()); // Get RouteTable getRouteTableResponse = await routeTableCollection.GetAsync(routeTableName); Assert.AreEqual(1, getRouteTableResponse.Value.Data.Subnets.Count); Assert.AreEqual(getSubnetResponse.Value.Id.ToString(), getRouteTableResponse.Value.Data.Subnets[0].Id); }
private async Task <InstancePoolResource> CreateInstancePool(string instancePoolName) { //Prerequisites: 1. create NetworkSecurityGroup string networkSecurityGroupName = SessionRecording.GenerateAssetName("networkSecurityGroup-"); NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = AzureLocation.WestUS2, }; var networkSecurityGroup = await _resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(WaitUntil.Completed, networkSecurityGroupName, networkSecurityGroupData); //2. create Route table string routeTableName = SessionRecording.GenerateAssetName("routeTable-"); RouteTableData routeTableData = new RouteTableData() { Location = AzureLocation.WestUS2, }; var routeTable = await _resourceGroup.GetRouteTables().CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, routeTableData); //3. create Virtual network string vnetName = SessionRecording.GenerateAssetName("vnet-"); var vnetData = new VirtualNetworkData() { Location = "westus2", Subnets = { new SubnetData() { Name = "subnet01", AddressPrefix = "10.10.1.0/24", }, new SubnetData() { Name = "ManagedInstance", AddressPrefix = "10.10.2.0/24", Delegations = { new Delegation() { ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", ResourceType = "Microsoft.Sql" } }, RouteTable = new RouteTableData() { Id = routeTable.Value.Data.Id }, NetworkSecurityGroup = new NetworkSecurityGroupData() { Id = networkSecurityGroup.Value.Data.Id }, } }, }; vnetData.AddressPrefixes.Add("10.10.0.0/16"); var vnet = await _resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, vnetName, vnetData); string subnetId = $"{vnet.Value.Data.Id.ToString()}/subnets/ManagedInstance"; InstancePoolData data = new InstancePoolData(AzureLocation.WestUS2) { Sku = new SqlSku("GP_Gen5", "GeneralPurpose", null, "Gen5", null), LicenseType = InstancePoolLicenseType.LicenseIncluded, Location = AzureLocation.WestUS2, SubnetId = subnetId, VCores = 8, }; var instancePoolLro = await _resourceGroup.GetInstancePools().CreateOrUpdateAsync(WaitUntil.Completed, instancePoolName, data); return(instancePoolLro.Value); }
public async Task GlobalSetUp() { var rgLro = await GlobalClient.GetDefaultSubscriptionAsync().Result.GetResourceGroups().CreateOrUpdateAsync(SessionRecording.GenerateAssetName("Sql-RG-"), new ResourceGroupData(Location.WestUS2)); ResourceGroup resourceGroup = rgLro.Value; _resourceGroupIdentifier = resourceGroup.Id; //Prerequisites: 1. create NetworkSecurityGroup string networkSecurityGroupName = SessionRecording.GenerateAssetName("networkSecurityGroup-"); NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = Location.WestUS2, }; var networkSecurityGroup = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(networkSecurityGroupName, networkSecurityGroupData); //2. create Route table string routeTableName = SessionRecording.GenerateAssetName("routeTable-"); RouteTableData routeTableData = new RouteTableData() { Location = Location.WestUS2, }; var routeTable = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(routeTableName, routeTableData); //3. create Virtual network string vnetName = SessionRecording.GenerateAssetName("vnet-"); var vnetData = new VirtualNetworkData() { Location = "westus2", AddressSpace = new AddressSpace() { AddressPrefixes = { "10.10.0.0/16", } }, Subnets = { new SubnetData() { Name = "subnet01", AddressPrefix = "10.10.1.0/24", }, new SubnetData() { Name = "ManagedInstance", AddressPrefix = "10.10.2.0/24", Delegations = { new Delegation() { ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", Type = "Microsoft.Sql" } }, RouteTable = new RouteTableData() { Id = routeTable.Value.Data.Id.ToString() }, NetworkSecurityGroup = new NetworkSecurityGroupData() { Id = networkSecurityGroup.Value.Data.Id.ToString() }, } }, }; var vnet = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(vnetName, vnetData); SubnetId = $"{vnet.Value.Data.Id.ToString()}/subnets/ManagedInstance"; await StopSessionRecordingAsync(); }
public async Task RoutesHopTypeTest() { string resourceGroupName = Recording.GenerateAssetName("csmrg"); string location = TestEnvironment.Location; var resourceGroup = await CreateResourceGroup(resourceGroupName); string routeTableName = Recording.GenerateAssetName("azsmnet"); string route1Name = Recording.GenerateAssetName("azsmnet"); string route2Name = Recording.GenerateAssetName("azsmnet"); string route3Name = Recording.GenerateAssetName("azsmnet"); string route4Name = Recording.GenerateAssetName("azsmnet"); var routeTable = new RouteTableData() { Location = location, }; // Add a route var route1 = new RouteData() { AddressPrefix = "192.168.1.0/24", Name = route1Name, NextHopIpAddress = "23.108.1.1", NextHopType = RouteNextHopType.VirtualAppliance }; routeTable.Routes.Add(route1); // Put RouteTable var routeTableContainer = resourceGroup.GetRouteTables(); var putRouteTableResponseOperation = await routeTableContainer.CreateOrUpdateAsync(routeTableName, routeTable); Response <RouteTable> putRouteTableResponse = await putRouteTableResponseOperation.WaitForCompletionAsync();; Assert.AreEqual("Succeeded", putRouteTableResponse.Value.Data.ProvisioningState.ToString()); // Get RouteTable Response <RouteTable> getRouteTableResponse = await routeTableContainer.GetAsync(routeTableName); Assert.AreEqual(routeTableName, getRouteTableResponse.Value.Data.Name); Assert.AreEqual(1, getRouteTableResponse.Value.Data.Routes.Count); Assert.AreEqual(route1Name, getRouteTableResponse.Value.Data.Routes[0].Name); // Add another route var route2 = new RouteData() { AddressPrefix = "10.0.1.0/24", Name = route2Name, NextHopType = RouteNextHopType.VnetLocal }; await getRouteTableResponse.Value.GetRoutes().CreateOrUpdateAsync(route2Name, route2); // Add another route var route3 = new RouteData() { AddressPrefix = "0.0.0.0/0", Name = route3Name, NextHopType = RouteNextHopType.Internet }; await getRouteTableResponse.Value.GetRoutes().CreateOrUpdateAsync(route3Name, route3); // Add another route var route4 = new RouteData() { AddressPrefix = "10.0.2.0/24", Name = route4Name, NextHopType = RouteNextHopType.None }; await getRouteTableResponse.Value.GetRoutes().CreateOrUpdateAsync(route4Name, route4); getRouteTableResponse = await routeTableContainer.GetAsync(routeTableName); Assert.AreEqual(routeTableName, getRouteTableResponse.Value.Data.Name); Assert.AreEqual(4, getRouteTableResponse.Value.Data.Routes.Count); Assert.AreEqual(route2Name, getRouteTableResponse.Value.Data.Routes[1].Name); Assert.AreEqual(RouteNextHopType.VirtualAppliance, getRouteTableResponse.Value.Data.Routes[0].NextHopType); Assert.AreEqual(RouteNextHopType.VnetLocal, getRouteTableResponse.Value.Data.Routes[1].NextHopType); Assert.AreEqual(RouteNextHopType.Internet, getRouteTableResponse.Value.Data.Routes[2].NextHopType); Assert.AreEqual(RouteNextHopType.None, getRouteTableResponse.Value.Data.Routes[3].NextHopType); // Delete RouteTable await getRouteTableResponse.Value.DeleteAsync(); // Verify delete AsyncPageable <RouteTable> listRouteTableResponseAP = routeTableContainer.GetAllAsync(); List <RouteTable> listRouteTableResponse = await listRouteTableResponseAP.ToEnumerableAsync(); Assert.IsEmpty(listRouteTableResponse); }