InstancePool IOperationSource <InstancePool> .CreateResult(Response response, CancellationToken cancellationToken) { using var document = JsonDocument.Parse(response.ContentStream); var data = InstancePoolData.DeserializeInstancePoolData(document.RootElement); return(new InstancePool(_armClient, data)); }
internal static InstancePoolListResult DeserializeInstancePoolListResult(JsonElement element) { Optional <IReadOnlyList <InstancePoolData> > 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 <InstancePoolData> array = new List <InstancePoolData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(InstancePoolData.DeserializeInstancePoolData(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new InstancePoolListResult(Optional.ToList(value), nextLink.Value)); }
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); }