/// <summary> /// Updates managed instance link /// </summary> /// <param name="model">The input parameters for the update operation</param> /// <returns>The updated Azure Sql Managed Instance Link</returns> internal AzureSqlManagedInstanceLinkModel UpdateManagedInstanceLink(AzureSqlManagedInstanceLinkModel model) { var resp = Communicator.Update(model.ResourceGroupName, model.InstanceName, model.Name, new Management.Sql.Models.DistributedAvailabilityGroup { ReplicationMode = model.ReplicationMode, }); return(CreateManagedInstanceLinkModelFromResponse(model.ResourceGroupName, model.InstanceName, resp)); }
/// <summary> /// Creates a new managed instance link /// </summary> /// <param name="model">The input parameters for the create/update operation</param> /// <returns>The upserted Azure Sql Managed Instance Link</returns> internal AzureSqlManagedInstanceLinkModel CreateManagedInstanceLink(AzureSqlManagedInstanceLinkModel model) { var resp = Communicator.CreateOrUpdate(model.ResourceGroupName, model.InstanceName, model.Name, new Management.Sql.Models.DistributedAvailabilityGroup { TargetDatabase = model.TargetDatabase, SourceEndpoint = model.SourceEndpoint, PrimaryAvailabilityGroupName = model.PrimaryAvailabilityGroupName, SecondaryAvailabilityGroupName = model.SecondaryAvailabilityGroupName, }); return(CreateManagedInstanceLinkModelFromResponse(model.ResourceGroupName, model.InstanceName, resp)); }
/// <summary> /// Convert a Management.Sql.Models.DistributedAvailabilityGroup to AzureSqlManagedInstanceLinkModel /// </summary> /// <param name="resp">The management client distributed availiability group response to convert</param> /// <returns>The converted managed instance link model</returns> private static AzureSqlManagedInstanceLinkModel CreateManagedInstanceLinkModelFromResponse(string resourceGroupName, string instanceName, Management.Sql.Models.DistributedAvailabilityGroup managedInstanceLink) { AzureSqlManagedInstanceLinkModel managedInstanceLinkModel = new AzureSqlManagedInstanceLinkModel() { ResourceGroupName = resourceGroupName, InstanceName = instanceName, Id = managedInstanceLink.Id, Type = managedInstanceLink.Type, Name = managedInstanceLink.Name, TargetDatabase = managedInstanceLink.TargetDatabase, SourceEndpoint = managedInstanceLink.SourceEndpoint, ReplicationMode = managedInstanceLink.ReplicationMode, PrimaryAvailabilityGroupName = managedInstanceLink.PrimaryAvailabilityGroupName, SecondaryAvailabilityGroupName = managedInstanceLink.SecondaryAvailabilityGroupName, DistributedAvailabilityGroupId = managedInstanceLink.DistributedAvailabilityGroupId, SourceReplicaId = managedInstanceLink.SourceReplicaId, TargetReplicaId = managedInstanceLink.TargetReplicaId, LinkState = managedInstanceLink.LinkState, LastHardenedLsn = managedInstanceLink.LastHardenedLsn, }; return(managedInstanceLinkModel); }