internal static ExpressRouteCircuitListResult DeserializeExpressRouteCircuitListResult(JsonElement element) { Optional <IReadOnlyList <ExpressRouteCircuitData> > 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 <ExpressRouteCircuitData> array = new List <ExpressRouteCircuitData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(ExpressRouteCircuitData.DeserializeExpressRouteCircuitData(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new ExpressRouteCircuitListResult(Optional.ToList(value), nextLink.Value)); }
// TODO: we should try to create using template after new `Azure.ResourceManager.Resource` is available //public async Task CreateVm( // string resourceGroupName, // string location, // string virtualMachineName, // string storageAccountName, // string networkInterfaceName, // string networkSecurityGroupName, // string diagnosticsStorageAccountName, // string deploymentName, // string adminPassword) //{ // string deploymentParams = "{" + // "\"resourceGroupName\": {\"value\": \"" + resourceGroupName + "\"}," + // "\"location\": {\"value\": \"" + location + "\"}," + // "\"virtualMachineName\": { \"value\": \"" + virtualMachineName + "\"}," + // "\"virtualMachineSize\": { \"value\": \"Standard_DS1_v2\"}," + // "\"adminUsername\": { \"value\": \"netanalytics32\"}," + // "\"storageAccountName\": { \"value\": \"" + storageAccountName + "\"}," + // "\"routeTableName\": { \"value\": \"" + resourceGroupName + "RT\"}," + // "\"virtualNetworkName\": { \"value\": \"" + resourceGroupName + "-vnet\"}," + // "\"networkInterfaceName\": { \"value\": \"" + networkInterfaceName + "\"}," + // "\"networkSecurityGroupName\": { \"value\": \"" + networkSecurityGroupName + "\"}," + // "\"adminPassword\": { \"value\": \"" + adminPassword + "\"}," + // "\"storageAccountType\": { \"value\": \"Premium_LRS\"}," + // "\"diagnosticsStorageAccountName\": { \"value\": \"" + diagnosticsStorageAccountName + "\"}," + // "\"diagnosticsStorageAccountId\": { \"value\": \"Microsoft.Storage/storageAccounts/" + diagnosticsStorageAccountName + "\"}," + // "\"diagnosticsStorageAccountType\": { \"value\": \"Standard_LRS\"}," + // "\"addressPrefix\": { \"value\": \"10.17.3.0/24\"}," + // "\"subnetName\": { \"value\": \"default\"}, \"subnetPrefix\": { \"value\": \"10.17.3.0/24\"}," + // "\"publicIpAddressName\": { \"value\": \"" + virtualMachineName + "-ip\"}," + // "\"publicIpAddressType\": { \"value\": \"Dynamic\"}" + // "}"; // string templateString = File.ReadAllText(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "TestData", "DeploymentTemplate.json")); // DeploymentProperties deploymentProperties = new DeploymentProperties(DeploymentMode.Incremental) // { // Template = templateString, // Parameters = deploymentParams // }; // Deployment deploymentModel = new Deployment(deploymentProperties); // Operation<DeploymentExtended> deploymentWait = await resourcesClient.Deployments.CreateOrUpdateAsync(resourceGroupName, deploymentName, deploymentModel); // await deploymentWait.WaitForCompletionAsync(); //} // TODO: we should decide after preview whehter we need to support compute resources like vmss in Network SDK //public async Task CreateVmss(ResourcesManagementClient resourcesClient, string resourceGroupName, string deploymentName) //{ // string templateString = File.ReadAllText(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "TestData", "VmssDeploymentTemplate.json")); // DeploymentProperties deploymentProperties = new DeploymentProperties(DeploymentMode.Incremental) // { // Template = templateString // }; // Deployment deploymentModel = new Deployment(deploymentProperties); // Operation<DeploymentExtended> deploymentWait = await resourcesClient.Deployments.CreateOrUpdateAsync(resourceGroupName, deploymentName, deploymentModel); // await deploymentWait.WaitForCompletionAsync(); //} public async Task <ExpressRouteCircuit> CreateDefaultExpressRouteCircuit(Resources.ResourceGroup resourceGroup, string circuitName, string location) { var sku = new ExpressRouteCircuitSku { Name = "Premium_MeteredData", Tier = "Premium", Family = "MeteredData" }; var provider = new ExpressRouteCircuitServiceProviderProperties { BandwidthInMbps = Convert.ToInt32(ExpressRouteTests.Circuit_BW), PeeringLocation = ExpressRouteTests.Circuit_Location, ServiceProviderName = ExpressRouteTests.Circuit_Provider }; var circuit = new ExpressRouteCircuitData() { Location = location, Tags = { { "key", "value" } }, Sku = sku, ServiceProviderProperties = provider }; // Put circuit var circuitCollection = resourceGroup.GetExpressRouteCircuits(); Operation <ExpressRouteCircuit> circuitOperation = await circuitCollection.CreateOrUpdateAsync(true, circuitName, circuit); Response <ExpressRouteCircuit> circuitResponse = await circuitOperation.WaitForCompletionAsync(); Assert.AreEqual("Succeeded", circuitResponse.Value.Data.ProvisioningState.ToString()); Response <ExpressRouteCircuit> getCircuitResponse = await circuitCollection.GetAsync(circuitName); return(getCircuitResponse); }
ExpressRouteCircuit IOperationSource <ExpressRouteCircuit> .CreateResult(Response response, CancellationToken cancellationToken) { using var document = JsonDocument.Parse(response.ContentStream); var data = ExpressRouteCircuitData.DeserializeExpressRouteCircuitData(document.RootElement); return(new ExpressRouteCircuit(_armClient, data)); }