@@ -56,26 +56,28 @@ function Update-AzMySqlFlexibleServer {
5656 [System.String ]
5757 ${ReplicationRole} ,
5858
59- [Parameter (HelpMessage = ' The name of the sku, typically, tier + family + cores, e.g. B_Gen4_1, GP_Gen5_8. ' )]
59+ [Parameter (HelpMessage = ' The name of the sku, typically, tier + family + cores, e.g. Burstable_B1ms, Standard_D2ds_v4 ' )]
6060 [Microsoft.Azure.PowerShell.Cmdlets.MySql.Category (' Body' )]
6161 [System.String ]
6262 ${Sku} ,
6363
64- [Parameter (HelpMessage = ' The tier of the particular SKU, e.g. Basic .' )]
64+ [Parameter (HelpMessage = ' The tier of the particular SKU. Accepted values: Burstable, GeneralPurpose, Memory Optimized. Default: Burstable .' )]
6565 [ArgumentCompleter ([Microsoft.Azure.PowerShell.Cmdlets.MySql.Support.SkuTier ])]
6666 [Microsoft.Azure.PowerShell.Cmdlets.MySql.Category (' Body' )]
6767 [Microsoft.Azure.PowerShell.Cmdlets.MySql.Support.SkuTier ]
6868 ${SkuTier} ,
6969
7070 [Parameter (HelpMessage = ' Enable or disable high availability feature.' )]
7171 [ArgumentCompleter ([Microsoft.Azure.PowerShell.Cmdlets.MySql.Support.HaEnabledEnum ])]
72+ [Validateset (' Enabled' , ' Disabled' )]
7273 [Microsoft.Azure.PowerShell.Cmdlets.MySql.Category (' Body' )]
7374 [Microsoft.Azure.PowerShell.Cmdlets.MySql.Support.HaEnabledEnum ]
7475 # Enable HA or not for a server.
7576 ${HaEnabled} ,
7677
7778 [Parameter (HelpMessage = ' Enable ssl enforcement or not when connect to server.' )]
7879 [ArgumentCompleter ([Microsoft.Azure.PowerShell.Cmdlets.MySql.Support.SslEnforcementEnum ])]
80+ [Validateset (' Enabled' , ' Disabled' )]
7981 [Microsoft.Azure.PowerShell.Cmdlets.MySql.Category (' Body' )]
8082 [Microsoft.Azure.PowerShell.Cmdlets.MySql.Support.SslEnforcementEnum ]
8183 ${SslEnforcement} ,
@@ -103,6 +105,11 @@ function Update-AzMySqlFlexibleServer {
103105 [System.Collections.Hashtable ]
104106 ${Tag} ,
105107
108+ [Parameter (HelpMessage = ' Period of time (UTC) designated for maintenance. Examples: "Sun:23:30" to schedule on Sunday, 11:30pm UTC. To set back to default pass in "Disabled"' )]
109+ [Microsoft.Azure.PowerShell.Cmdlets.MySql.Category (' Body' )]
110+ [System.String ]
111+ ${MaintenanceWindow} ,
112+
106113 [Parameter (HelpMessage = ' The credentials, account, tenant, and subscription used for communication with Azure.' )]
107114 [Alias (' AzureRMContext' , ' AzureCredential' )]
108115 [ValidateNotNull ()]
@@ -181,6 +188,40 @@ function Update-AzMySqlFlexibleServer {
181188 $null = $PSBoundParameters.Remove (' StorageAutogrow' )
182189 }
183190
191+ if ($PSBoundParameters.ContainsKey (' MaintenanceWindow' )) {
192+
193+ $PSBoundParameters.MaintenanceWindowDayOfWeek = $null
194+ $PSBoundParameters.MaintenanceWindowStartHour = $null
195+ $PSBoundParameters.MaintenanceWindowStartMinute = $null
196+
197+ if ($PSBoundParameters.MaintenanceWindow.ToLower () -eq " disabled" ){
198+ $PSBoundParameters.MaintenanceWindowDayOfWeek = 0
199+ $PSBoundParameters.MaintenanceWindowStartHour = 0
200+ $PSBoundParameters.MaintenanceWindowStartMinute = 0
201+ $PSBoundParameters.MaintenanceWindowCustomWindow = " Disabled"
202+ }
203+ else {
204+ $ParsedWindow = $PSBoundParameters.MaintenanceWindow -split " :"
205+ $DaytoNumber = @ {Mon = 1 ; Tue = 2 ; Wed = 3 ; Thur = 4 ; Fri = 5 ; Sat = 6 ; Sun = 0 }
206+
207+ if ($ParsedWindow.Length -ge 1 ){
208+ $PSBoundParameters.MaintenanceWindowDayOfWeek = $DaytoNumber [$ParsedWindow [0 ]]
209+ }
210+
211+ if ($ParsedWindow.Length -ge 2 ){
212+ $PSBoundParameters.MaintenanceWindowStartHour = $ParsedWindow [1 ]
213+ }
214+
215+ if ($ParsedWindow.Length -ge 3 ){
216+ $PSBoundParameters.MaintenanceWindowStartMinute = $ParsedWindow [2 ]
217+ }
218+
219+ $PSBoundParameters.MaintenanceWindowCustomWindow = " Enabled"
220+ }
221+
222+ $null = $PSBoundParameters.Remove (' MaintenanceWindow' )
223+ }
224+
184225 Az.MySql.internal\Update-AzMySqlFlexibleServer @PSBoundParameters
185226 } catch {
186227 throw
0 commit comments