Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,12 @@ public void TestCreateUpdateManagedInstanceWithMinimalTlsVersion()
{
RunPowerShellTest("Test-CreateUpdateManagedInstanceWithMinimalTlsVersion");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateManagedInstanceWithMaintenanceConfigurationId()
{
RunPowerShellTest("Test-CreateManagedInstanceWithMaintenanceConfigurationId");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -389,4 +389,47 @@ function Test-CreateUpdateManagedInstanceWithMinimalTlsVersion
{
Remove-AzSqlInstance -ResourceGroupName $rgName -Name $managedInstanceName -Force
}
}

<#
.SYNOPSIS
Tests creating a managed instance with MaintenanceConfigurationId
.DESCRIPTION
SmokeTest
#>
function Test-CreateManagedInstanceWithMaintenanceConfigurationId
{
# Setup
$rg = Create-ResourceGroupForTest "westeurope"
$vnetName = "cl_maintenance_configuration"
$subnetName = "ManagedInstance"

# Setup VNET
$virtualNetwork1 = CreateAndGetVirtualNetworkForManagedInstance $vnetName $subnetName $rg.Location
$subnetId = $virtualNetwork1.Subnets.where({ $_.Name -eq $subnetName })[0].Id

$managedInstanceName = Get-ManagedInstanceName
$version = "12.0"
$credentials = Get-ServerCredential
$licenseType = "BasePrice"
$storageSizeInGB = 32
$vCore = 8
$skuName = "GP_Gen5"
$maintenanceConfigurationId = "/subscriptions/a295933f-f7f5-4994-a109-8fa51241a5d6/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/MI_Sat_12AM_6AM"


try
{
$managedInstance1 = New-AzSqlInstance -ResourceGroupName $rg.ResourceGroupName -Name $managedInstanceName `
-Location $rg.Location -AdministratorCredential $credentials -SubnetId $subnetId `
-LicenseType $licenseType -StorageSizeInGB $storageSizeInGB -Vcore $vCore -SkuName $skuName -AssignIdentity `
-MaintenanceConfigurationId $maintenanceConfigurationId

Assert-AreEqual $managedInstance1.ManagedInstanceName $managedInstanceName
Assert-AreEqual $managedInstance1.MaintenanceConfigurationId "MI_Sat_12AM_6AM"
}
finally
{
Remove-ResourceGroupForTest $rg
}
}

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/Sql/Sql/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
-->
## Upcoming Release
* Fixed issues where Set-AzSqlDatabaseAudit were not support Hyperscale database and database edition cannot be determined
* Added MaintenanceConfigurationId to 'New-AzSqlInstance' and 'Set-AzSqlInstance'

## Version 2.11.1
* Added DiffBackupIntervalInHours to `Set-AzSqlDatabaseBackupShortTermRetentionPolicy`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,13 @@ public class NewAzureSqlManagedInstance : ManagedInstanceCmdletBase
[ValidateSet("Local", "Zone", "Geo")]
public string BackupStorageRedundancy { get; set; }

/// <summary>
/// Gets or sets the managed instance maintenance configuration id
/// </summary>
[Parameter(Mandatory = false,
HelpMessage = "The Maintenance configuration id for the Sql Azure Managed Instance.")]
public string MaintenanceConfigurationId { get; set; }

/// <summary>
/// Gets or sets whether or not to run this cmdlet in the background as a job
/// </summary>
Expand Down Expand Up @@ -475,7 +482,8 @@ public override void ExecuteCmdlet()
DnsZonePartner = this.DnsZonePartner,
InstancePoolName = this.InstancePoolName,
MinimalTlsVersion = this.MinimalTlsVersion,
BackupStorageRedundancy = this.BackupStorageRedundancy
BackupStorageRedundancy = this.BackupStorageRedundancy,
MaintenanceConfigurationId = this.MaintenanceConfigurationId
});
return newEntity;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,13 @@ public class SetAzureSqlManagedInstance : ManagedInstanceCmdletBase
[PSArgumentCompleter(Constants.ComputeGenerationGen5)]
public string ComputeGeneration { get; set; }

/// <summary>
/// Gets or sets the managed instance maintenance configuration id
/// </summary>
[Parameter(Mandatory = false,
HelpMessage = "The Maintenance configuration id for the Sql Azure Managed Instance.")]
public string MaintenanceConfigurationId { get; set; }

/// <summary>
/// Gets or sets whether or not to run this cmdlet in the background as a job
/// </summary>
Expand Down Expand Up @@ -282,7 +289,8 @@ protected override IEnumerable<AzureSqlManagedInstanceModel> ApplyUserInputToMod
Tags = TagsConversionHelper.CreateTagDictionary(Tag, validate: true),
Identity = model.FirstOrDefault().Identity ?? ResourceIdentityHelper.GetIdentityObjectFromType(this.AssignIdentity.IsPresent),
InstancePoolName = this.InstancePoolName,
MinimalTlsVersion = this.MinimalTlsVersion
MinimalTlsVersion = this.MinimalTlsVersion,
MaintenanceConfigurationId = this.MaintenanceConfigurationId
});
return updateData;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,5 +139,10 @@ public class AzureSqlManagedInstanceModel
/// Gets or sets the managed instance backup storage redundancy
/// </summary>
public string BackupStorageRedundancy { get; set; }

/// <summary>
/// Gets or sets the managed instance maintenance configuration id
/// </summary>
public string MaintenanceConfigurationId { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,8 @@ public AzureSqlManagedInstanceModel UpsertManagedInstance(AzureSqlManagedInstanc
string.Format("/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Sql/instancePools/{2}",
Context.Subscription.Id, model.ResourceGroupName, model.InstancePoolName): null,
MinimalTlsVersion = model.MinimalTlsVersion,
StorageAccountType = MapExternalBackupStorageRedundancyToInternal(model.BackupStorageRedundancy)
StorageAccountType = MapExternalBackupStorageRedundancyToInternal(model.BackupStorageRedundancy),
MaintenanceConfigurationId = model.MaintenanceConfigurationId
});

return CreateManagedInstanceModelFromResponse(resp);
Expand Down Expand Up @@ -216,6 +217,7 @@ private static AzureSqlManagedInstanceModel CreateManagedInstanceModelFromRespon
new ResourceIdentifier(resp.InstancePoolId).ResourceName : null;
managedInstance.MinimalTlsVersion = resp.MinimalTlsVersion;
managedInstance.BackupStorageRedundancy = MapInternalBackupStorageRedundancyToExternal(resp.StorageAccountType);
managedInstance.MaintenanceConfigurationId = resp.MaintenanceConfigurationId;

Management.Internal.Resources.Models.Sku sku = new Management.Internal.Resources.Models.Sku();
sku.Name = resp.Sku.Name;
Expand Down
32 changes: 25 additions & 7 deletions src/Sql/Sql/help/New-AzSqlInstance.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ New-AzSqlInstance [-Name] <String> [-ResourceGroupName] <String> -AdministratorC
-Edition <String> -ComputeGeneration <String> [-Collation <String>] [-PublicDataEndpointEnabled]
[-ProxyOverride <String>] [-TimezoneId <String>] [-Tag <Hashtable>] [-AssignIdentity]
[-DnsZonePartner <String>] [-InstancePoolName <String>] [-MinimalTlsVersion <String>]
[-BackupStorageRedundancy <String>] [-AsJob] [-Force] [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
[-Confirm] [<CommonParameters>]
[-BackupStorageRedundancy <String>] [-MaintenanceConfigurationId <String>] [-AsJob] [-Force]
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
```

### NewByInstancePoolParentObjectParameterSet
Expand All @@ -29,16 +29,18 @@ New-AzSqlInstance [-InstancePool] <AzureSqlInstancePoolModel> [-Name] <String>
-AdministratorCredential <PSCredential> [-StorageSizeInGB <Int32>] -VCore <Int32> [-Collation <String>]
[-PublicDataEndpointEnabled] [-ProxyOverride <String>] [-TimezoneId <String>] [-Tag <Hashtable>]
[-AssignIdentity] [-DnsZonePartner <String>] [-MinimalTlsVersion <String>] [-BackupStorageRedundancy <String>]
[-AsJob] [-Force] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
[-MaintenanceConfigurationId <String>] [-AsJob] [-Force] [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
[-Confirm] [<CommonParameters>]
```

### NewByInstancePoolResourceIdParameterSet
```
New-AzSqlInstance [-InstancePoolResourceId] <String> [-Name] <String> -AdministratorCredential <PSCredential>
[-StorageSizeInGB <Int32>] -VCore <Int32> [-Collation <String>] [-PublicDataEndpointEnabled]
[-ProxyOverride <String>] [-TimezoneId <String>] [-Tag <Hashtable>] [-AssignIdentity]
[-DnsZonePartner <String>] [-MinimalTlsVersion <String>] [-BackupStorageRedundancy <String>] [-AsJob] [-Force]
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
[-DnsZonePartner <String>] [-MinimalTlsVersion <String>] [-BackupStorageRedundancy <String>]
[-MaintenanceConfigurationId <String>] [-AsJob] [-Force] [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
[-Confirm] [<CommonParameters>]
```

### NewBySkuNameParameterSetParameter
Expand All @@ -47,8 +49,9 @@ New-AzSqlInstance [-Name] <String> [-ResourceGroupName] <String> -AdministratorC
-Location <String> -SubnetId <String> [-LicenseType <String>] [-StorageSizeInGB <Int32>] -VCore <Int32>
-SkuName <String> [-Collation <String>] [-PublicDataEndpointEnabled] [-ProxyOverride <String>]
[-TimezoneId <String>] [-Tag <Hashtable>] [-AssignIdentity] [-DnsZonePartner <String>]
[-InstancePoolName <String>] [-MinimalTlsVersion <String>] [-BackupStorageRedundancy <String>] [-AsJob]
[-Force] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
[-InstancePoolName <String>] [-MinimalTlsVersion <String>] [-BackupStorageRedundancy <String>]
[-MaintenanceConfigurationId <String>] [-AsJob] [-Force] [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
[-Confirm] [<CommonParameters>]
```

## DESCRIPTION
Expand Down Expand Up @@ -402,6 +405,21 @@ Accept pipeline input: False
Accept wildcard characters: False
```

### -MaintenanceConfigurationId
The Maintenance configuration id for the Sql Azure Managed Instance.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -MinimalTlsVersion
The minimal TLS version to enforce for Managed instance

Expand Down
29 changes: 23 additions & 6 deletions src/Sql/Sql/help/Set-AzSqlInstance.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,28 @@ Sets properties for an Azure SQL Database Managed Instance.
Set-AzSqlInstance [-Name] <String> [-ResourceGroupName] <String> [-AdministratorPassword <SecureString>]
[-Edition <String>] [-LicenseType <String>] [-StorageSizeInGB <Int32>] [-VCore <Int32>]
[-PublicDataEndpointEnabled <Boolean>] [-ProxyOverride <String>] [-Tag <Hashtable>] [-AssignIdentity]
[-InstancePoolName <String>] [-MinimalTlsVersion <String>] [-Force] [-ComputeGeneration <String>] [-AsJob]
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
[-InstancePoolName <String>] [-MinimalTlsVersion <String>] [-Force] [-ComputeGeneration <String>]
[-MaintenanceConfigurationId <String>] [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
[-Confirm] [<CommonParameters>]
```

### SetInstanceFromAzureSqlManagedInstanceModelInstanceDefinition
```
Set-AzSqlInstance [-InputObject] <AzureSqlManagedInstanceModel> [-AdministratorPassword <SecureString>]
[-Edition <String>] [-LicenseType <String>] [-StorageSizeInGB <Int32>] [-VCore <Int32>]
[-PublicDataEndpointEnabled <Boolean>] [-ProxyOverride <String>] [-Tag <Hashtable>] [-AssignIdentity]
[-InstancePoolName <String>] [-MinimalTlsVersion <String>] [-Force] [-ComputeGeneration <String>] [-AsJob]
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
[-InstancePoolName <String>] [-MinimalTlsVersion <String>] [-Force] [-ComputeGeneration <String>]
[-MaintenanceConfigurationId <String>] [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
[-Confirm] [<CommonParameters>]
```

### SetInstanceFromAzureResourceId
```
Set-AzSqlInstance [-ResourceId] <String> [-AdministratorPassword <SecureString>] [-Edition <String>]
[-LicenseType <String>] [-StorageSizeInGB <Int32>] [-VCore <Int32>] [-PublicDataEndpointEnabled <Boolean>]
[-ProxyOverride <String>] [-Tag <Hashtable>] [-AssignIdentity] [-InstancePoolName <String>]
[-MinimalTlsVersion <String>] [-Force] [-ComputeGeneration <String>] [-AsJob]
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
[-MinimalTlsVersion <String>] [-Force] [-ComputeGeneration <String>] [-MaintenanceConfigurationId <String>]
[-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
```

## DESCRIPTION
Expand Down Expand Up @@ -266,6 +268,21 @@ Accept pipeline input: False
Accept wildcard characters: False
```

### -MaintenanceConfigurationId
The Maintenance configuration id for the Sql Azure Managed Instance.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -MinimalTlsVersion
The minimal TLS version to enforce for Managed instance

Expand Down