InstanceFailoverGroup IOperationSource <InstanceFailoverGroup> .CreateResult(Response response, CancellationToken cancellationToken) { using var document = JsonDocument.Parse(response.ContentStream); var data = InstanceFailoverGroupData.DeserializeInstanceFailoverGroupData(document.RootElement); return(new InstanceFailoverGroup(_armClient, data)); }
internal static InstanceFailoverGroupListResult DeserializeInstanceFailoverGroupListResult(JsonElement element) { Optional <IReadOnlyList <InstanceFailoverGroupData> > 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 <InstanceFailoverGroupData> array = new List <InstanceFailoverGroupData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(InstanceFailoverGroupData.DeserializeInstanceFailoverGroupData(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new InstanceFailoverGroupListResult(Optional.ToList(value), nextLink.Value)); }
private async Task <InstanceFailoverGroupResource> CreateInstanceFailoverGroup(string locationName, string instanceFailoverGroupName) { // create PrimaryManagedInstance(WestUS2) and PartnerManagedInstance(NorthEurope) string primaryManagedInstanceName = Recording.GenerateAssetName("managed-instance-primary-"); string partnerManagedInstanceName = Recording.GenerateAssetName("managed-instance-partner-"); string managedInstanceName1 = Recording.GenerateAssetName("managed-instance-"); string managedInstanceName2 = Recording.GenerateAssetName("managed-instance-"); string networkSecurityGroupName1 = Recording.GenerateAssetName("network-security-group-"); string networkSecurityGroupName2 = Recording.GenerateAssetName("network-security-group-"); string routeTableName1 = Recording.GenerateAssetName("route-table-"); string routeTableName2 = Recording.GenerateAssetName("route-table-"); string vnetName1 = Recording.GenerateAssetName("vnet-"); string vnetName2 = Recording.GenerateAssetName("vnet-"); Task[] tasks = new Task[] { CreateDefaultManagedInstance(managedInstanceName1, networkSecurityGroupName1, routeTableName1, vnetName1, AzureLocation.WestUS2, _resourceGroup), CreateDefaultManagedInstance(managedInstanceName2, networkSecurityGroupName2, routeTableName2, vnetName2, AzureLocation.WestUS2, _resourceGroup), }; Task.WaitAll(tasks); string primaryManagedInstanceId = (await _resourceGroup.GetManagedInstances().GetAsync(primaryManagedInstanceName)).Value.Data.Id.ToString(); string partnerManagedInstanceId = (await _resourceGroup.GetManagedInstances().GetAsync(partnerManagedInstanceName)).Value.Data.Id.ToString(); // create InstanceFailoverGroup InstanceFailoverGroupReadWriteEndpoint instanceFailoverGroupReadWriteEndpoint = new InstanceFailoverGroupReadWriteEndpoint(ReadWriteEndpointFailoverPolicy.Automatic); instanceFailoverGroupReadWriteEndpoint.FailoverWithDataLossGracePeriodMinutes = 60; InstanceFailoverGroupData data = new InstanceFailoverGroupData() { ReadWriteEndpoint = instanceFailoverGroupReadWriteEndpoint, ManagedInstancePairs = { new ManagedInstancePairInfo(primaryManagedInstanceId, partnerManagedInstanceId), }, }; var instanceFailoverGroupLro = await _resourceGroup.GetInstanceFailoverGroups(locationName).CreateOrUpdateAsync(WaitUntil.Completed, instanceFailoverGroupName, data); return(instanceFailoverGroupLro.Value); }