SqlVirtualMachine.Autorest/custom/Update-AzSqlVM.ps1


# ----------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code
# is regenerated.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Updates a SQL virtual machine.
.Description
Updates a SQL virtual machine.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.ISqlVirtualMachineIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.Api20220801Preview.ISqlVirtualMachine
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <ISqlVirtualMachineIdentity>: Identity Parameter
  [AvailabilityGroupListenerName <String>]: Name of the availability group listener.
  [Id <String>]: Resource identity path
  [ResourceGroupName <String>]: Name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
  [SqlVirtualMachineGroupName <String>]: Name of the SQL virtual machine group.
  [SqlVirtualMachineName <String>]: Name of the SQL virtual machine.
  [SubscriptionId <String>]: Subscription ID that identifies an Azure subscription.
 
.Link
https://learn.microsoft.com/powershell/module/az.sqlvirtualmachine/update-azsqlvm
#>

function Update-AzSqlVM {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.Api20220801Preview.ISqlVirtualMachine])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Alias('SqlVirtualMachineName', 'SqlVMName')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Path')]
    [System.String]
    # Name of the SQL virtual machine.
    ${Name},

    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Path')]
    [System.String]
    # Name of the resource group that contains the resource.
    # You can obtain this value from the Azure Resource Manager API or the portal.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription ID that identifies an Azure subscription.
    ${SubscriptionId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.ISqlVirtualMachineIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.SqlServerLicenseType])]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.SqlServerLicenseType]
    # SQL Server license type.
    ${LicenseType},
    
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.String]
    # SQL image offer.
    # Examples include SQL2016-WS2016, SQL2017-WS2016.
    ${Offer},
    
    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.SqlImageSku])]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.SqlImageSku]
    # SQL Server edition type.
    ${Sku},
    
    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.SqlManagementMode])]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.SqlManagementMode]
    # SQL Server Management type.
    ${SqlManagementType},
    
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.Api20220801Preview.ISqlVirtualMachineUpdateTags]))]
    [System.Collections.Hashtable]
    # Resource tags.
    ${Tag},
    
    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.BackupScheduleType])]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.BackupScheduleType]
    # Backup schedule type.
    ${AutoBackupSettingBackupScheduleType},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Include or exclude system databases from auto backup.
    ${AutoBackupSettingBackupSystemDb},

    [Parameter()]
    [AllowEmptyCollection()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.AutoBackupDaysOfWeek])]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.AutoBackupDaysOfWeek[]]
    # Days of the week for the backups when FullBackupFrequency is set to Weekly.
    ${AutoBackupSettingDaysOfWeek},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Enable or disable autobackup on SQL virtual machine.
    ${AutoBackupSettingEnable},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Enable or disable encryption for backup on SQL virtual machine.
    ${AutoBackupSettingEnableEncryption},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.FullBackupFrequencyType])]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.FullBackupFrequencyType]
    # Frequency of full backups.
    # In both cases, full backups begin during the next scheduled time window.
    ${AutoBackupSettingFullBackupFrequency},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Int32]
    # Start time of a given day during which full backups can take place.
    # 0-23 hours.
    ${AutoBackupSettingFullBackupStartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Int32]
    # Duration of the time window of a given day during which full backups can take place.
    # 1-23 hours.
    ${AutoBackupSettingFullBackupWindowHour},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Int32]
    # Frequency of log backups.
    # 5-60 minutes.
    ${AutoBackupSettingLogBackupFrequency},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Security.SecureString]
    # Password for encryption on backup.
    ${AutoBackupSettingPassword},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Int32]
    # Retention period of backup: 1-90 days.
    ${AutoBackupSettingRetentionPeriod},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.String]
    # Storage account key where backup will be taken to.
    ${AutoBackupSettingStorageAccessKey},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.String]
    # Storage account url where backup will be taken to.
    ${AutoBackupSettingStorageAccountUrl},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.String]
    # Storage container name where backup will be taken to.
    ${AutoBackupSettingStorageContainerName},
    
    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.DayOfWeek])]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.DayOfWeek]
    # Day of week to apply the patch on.
    ${AutoPatchingSettingDayOfWeek},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Enable or disable autopatching on SQL virtual machine.
    ${AutoPatchingSettingEnable},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Int32]
    # Duration of patching.
    ${AutoPatchingSettingMaintenanceWindowDuration},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Int32]
    # Hour of the day when patching is initiated.
    # Local VM time.
    ${AutoPatchingSettingMaintenanceWindowStartingHour},
    
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Enable or disable SQL best practices Assessment feature on SQL virtual machine.
    ${AssessmentSettingEnable},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Run SQL best practices Assessment immediately on SQL virtual machine.
    ${AssessmentSettingRunImmediately},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.AssessmentDayOfWeek])]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.AssessmentDayOfWeek]
    # Day of the week to run assessment.
    ${ScheduleDayOfWeek},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Enable or disable assessment schedule on SQL virtual machine.
    ${ScheduleEnable},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Int32]
    # Occurrence of the DayOfWeek day within a month to schedule assessment.
    # Takes values: 1,2,3,4 and -1.
    # Use -1 for last DayOfWeek day of the month
    ${ScheduleMonthlyOccurrence},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.String]
    # Time of the day in HH:mm format.
    # Eg.
    # 17:30
    ${ScheduleStartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Int32]
    # Number of weeks to schedule between 2 assessment runs.
    # Takes value from 1-6
    ${ScheduleWeeklyInterval},
    
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.String]
    # ARM resource id of the SQL virtual machine group this SQL virtual machine is or will be part of.
    ${SqlVirtualMachineGroupResourceId},
    
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.String]
    # ARM Resource id of underlying virtual machine created from SQL marketplace image.
    ${VirtualMachineResourceId},    
    
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Security.SecureString]
    # Cluster bootstrap account password.
    ${WsfcDomainCredentialsClusterBootstrapAccountPassword},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Security.SecureString]
    # Cluster operator account password.
    ${WsfcDomainCredentialsClusterOperatorAccountPassword},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Security.SecureString]
    # SQL service account password.
    ${WsfcDomainCredentialsSqlServiceAccountPassword},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.String]
    # Domain credentials for setting up Windows Server Failover Cluster for SQL availability group.
    ${WsfcStaticIP},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Enable automatic upgrade of Sql IaaS extension Agent.
    ${EnableAutomaticUpgrade},    
    
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.String]
    # The client Id of the Managed Identity to query Microsoft Graph API.
    # An empty string must be used for the system assigned Managed Identity
    ${ManagedIdentityClientId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
    [System.String]
    # Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).
    ${IdentityType},    
    
    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Runtime')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Runtime')]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

process {
    try {
        $hasInputObject = $PSBoundParameters.Remove('InputObject')

        $hasLicenseType = $PSBoundParameters.Remove('LicenseType')
        $hasOffer = $PSBoundParameters.Remove('Offer')
        $hasSku = $PSBoundParameters.Remove('Sku')
        $hasSqlManagementType = $PSBoundParameters.Remove('SqlManagementType')
        $hasTag = $PSBoundParameters.Remove('Tag')
        $hasAutoBackupSettingBackupScheduleType = $PSBoundParameters.Remove('AutoBackupSettingBackupScheduleType')
        $hasAutoBackupSettingBackupSystemDb = $PSBoundParameters.Remove('AutoBackupSettingBackupSystemDb')
        $hasAutoBackupSettingDaysOfWeek = $PSBoundParameters.Remove('AutoBackupSettingDaysOfWeek')
        $hasAutoBackupSettingEnable = $PSBoundParameters.Remove('AutoBackupSettingEnable')
        $hasAutoBackupSettingEnableEncryption = $PSBoundParameters.Remove('AutoBackupSettingEnableEncryption')
        $hasAutoBackupSettingFullBackupFrequency = $PSBoundParameters.Remove('AutoBackupSettingFullBackupFrequency')
        $hasAutoBackupSettingFullBackupStartTime = $PSBoundParameters.Remove('AutoBackupSettingFullBackupStartTime')
        $hasAutoBackupSettingFullBackupWindowHour = $PSBoundParameters.Remove('AutoBackupSettingFullBackupWindowHour')
        $hasAutoBackupSettingLogBackupFrequency = $PSBoundParameters.Remove('AutoBackupSettingLogBackupFrequency')
        $hasAutoBackupSettingPassword = $PSBoundParameters.Remove('AutoBackupSettingPassword')
        $hasAutoBackupSettingRetentionPeriod = $PSBoundParameters.Remove('AutoBackupSettingRetentionPeriod')
        $hasAutoBackupSettingStorageAccessKey = $PSBoundParameters.Remove('AutoBackupSettingStorageAccessKey')
        $hasAutoBackupSettingStorageAccountUrl = $PSBoundParameters.Remove('AutoBackupSettingStorageAccountUrl')
        $hasAutoBackupSettingStorageContainerName = $PSBoundParameters.Remove('AutoBackupSettingStorageContainerName')
        $hasAutoPatchingSettingDayOfWeek = $PSBoundParameters.Remove('AutoPatchingSettingDayOfWeek')
        $hasAutoPatchingSettingEnable = $PSBoundParameters.Remove('AutoPatchingSettingEnable')
        $hasAutoPatchingSettingMaintenanceWindowDuration = $PSBoundParameters.Remove('AutoPatchingSettingMaintenanceWindowDuration')
        $hasAutoPatchingSettingMaintenanceWindowStartingHour = $PSBoundParameters.Remove('AutoPatchingSettingMaintenanceWindowStartingHour')
        $hasAssessmentSettingEnable = $PSBoundParameters.Remove('AssessmentSettingEnable')
        $hasAssessmentSettingRunImmediately = $PSBoundParameters.Remove('AssessmentSettingRunImmediately')
        $hasScheduleDayOfWeek = $PSBoundParameters.Remove('ScheduleDayOfWeek')
        $hasScheduleEnable = $PSBoundParameters.Remove('ScheduleEnable')
        $hasScheduleMonthlyOccurrence = $PSBoundParameters.Remove('ScheduleMonthlyOccurrence')
        $hasScheduleStartTime = $PSBoundParameters.Remove('ScheduleStartTime')
        $hasScheduleWeeklyInterval = $PSBoundParameters.Remove('ScheduleWeeklyInterval')
        $hasSqlVirtualMachineGroupResourceId = $PSBoundParameters.Remove('SqlVirtualMachineGroupResourceId')
        $hasVirtualMachineResourceId = $PSBoundParameters.Remove('VirtualMachineResourceId')
        $hasWsfcDomainCredentialsClusterBootstrapAccountPassword = $PSBoundParameters.Remove('WsfcDomainCredentialsClusterBootstrapAccountPassword')
        $hasWsfcDomainCredentialsClusterOperatorAccountPassword = $PSBoundParameters.Remove('WsfcDomainCredentialsClusterOperatorAccountPassword')
        $hasWsfcDomainCredentialsSqlServiceAccountPassword = $PSBoundParameters.Remove('WsfcDomainCredentialsSqlServiceAccountPassword')
        $hasWsfcStaticIP = $PSBoundParameters.Remove('WsfcStaticIP')
        $hasEnableAutomaticUpgrade = $PSBoundParameters.Remove('EnableAutomaticUpgrade')
        $hasManagedIdentityClientId = $PSBoundParameters.Remove('ManagedIdentityClientId')
        $hasIdentityType = $PSBoundParameters.Remove('IdentityType')
        
        $hasAsJob = $PSBoundParameters.Remove('AsJob')
        $null = $PSBoundParameters.Remove('WhatIf')
        $null = $PSBoundParameters.Remove('Confirm')

        if($hasInputObject){
            $sqlvm = Get-AzSqlVM -InputObject $InputObject @PSBoundParameters
        }else{
            $sqlvm = Get-AzSqlVM @PSBoundParameters
        }
        $null = $PSBoundParameters.Remove('InputObject')
        $null = $PSBoundParameters.Remove('ResourceGroupName')
        $null = $PSBoundParameters.Remove('Name')
        $null = $PSBoundParameters.Remove('SubscriptionId')
        
        if ($hasLicenseType) {
            $sqlvm.SqlServerLicenseType = $LicenseType
        }
        if ($hasOffer) {
            $sqlvm.SqlImageOffer = $Offer
        }
        if ($hasSku) {
            $sqlvm.SqlImageSku = $Sku
        }
        if ($hasSqlManagementType) {
            $sqlvm.SqlManagement = $SqlManagementType
        }
        if ($hasTag) {
            $sqlvm.Tag = $Tag
        }
        if ($hasAutoBackupSettingBackupScheduleType) {
            $sqlvm.AutoBackupSettingBackupScheduleType=$AutoBackupSettingBackupScheduleType
        }
        if ($hasAutoBackupSettingBackupSystemDb) {
            $sqlvm.AutoBackupSettingBackupSystemDb=$AutoBackupSettingBackupSystemDb
        }
        if ($hasAutoBackupSettingDaysOfWeek) {
            $sqlvm.AutoBackupSettingDaysOfWeek=$AutoBackupSettingDaysOfWeek
        }
        if ($hasAutoBackupSettingEnable) {
            $sqlvm.AutoBackupSettingEnable=$AutoBackupSettingEnable
        }
        if ($hasAutoBackupSettingEnableEncryption) {
            $sqlvm.AutoBackupSettingEnableEncryption=$AutoBackupSettingEnableEncryption
        }
        if ($hasAutoBackupSettingFullBackupFrequency) {
            $sqlvm.AutoBackupSettingFullBackupFrequency=$AutoBackupSettingFullBackupFrequency
        }
        if ($hasAutoBackupSettingFullBackupStartTime) {
            $sqlvm.AutoBackupSettingFullBackupStartTime=$AutoBackupSettingFullBackupStartTime
        }
        if ($hasAutoBackupSettingFullBackupWindowHour) {
            $sqlvm.AutoBackupSettingFullBackupWindowHour=$AutoBackupSettingFullBackupWindowHour
        }
        if ($hasAutoBackupSettingLogBackupFrequency) {
            $sqlvm.AutoBackupSettingLogBackupFrequency=$AutoBackupSettingLogBackupFrequency
        }
        if ($hasAutoBackupSettingPassword) {
            $sqlvm.AutoBackupSettingPassword=$AutoBackupSettingPassword
        }
        if ($hasAutoBackupSettingRetentionPeriod) {
            $sqlvm.AutoBackupSettingRetentionPeriod=$AutoBackupSettingRetentionPeriod
        }
        if ($hasAutoBackupSettingStorageAccessKey) {
            $sqlvm.AutoBackupSettingStorageAccessKey=$AutoBackupSettingStorageAccessKey
        }
        if ($hasAutoBackupSettingStorageAccountUrl) {
            $sqlvm.AutoBackupSettingStorageAccountUrl=$AutoBackupSettingStorageAccountUrl
        }
        if ($hasAutoBackupSettingStorageContainerName) {
            $sqlvm.AutoBackupSettingStorageContainerName=$AutoBackupSettingStorageContainerName
        }
        if ($hasAutoPatchingSettingDayOfWeek) {
            $sqlvm.AutoPatchingSettingDayOfWeek = $AutoPatchingSettingDayOfWeek
        }
        if ($hasAutoPatchingSettingEnable) {
            $sqlvm.AutoPatchingSettingEnable = $AutoPatchingSettingEnable
        }
        if ($hasAutoPatchingSettingMaintenanceWindowDuration) {
            $sqlvm.AutoPatchingSettingMaintenanceWindowDuration = $AutoPatchingSettingMaintenanceWindowDuration
        }
        if ($hasAutoPatchingSettingMaintenanceWindowStartingHour) {
            $sqlvm.AutoPatchingSettingMaintenanceWindowStartingHour = $AutoPatchingSettingMaintenanceWindowStartingHour
        }
        if ($hasAssessmentSettingEnable) {
            $sqlvm.AssessmentSettingEnable=$AssessmentSettingEnable
        }
        if ($hasAssessmentSettingRunImmediately) {
            $sqlvm.AssessmentSettingRunImmediately=$AssessmentSettingRunImmediately
        }
        if ($hasScheduleDayOfWeek) {
            $sqlvm.ScheduleDayOfWeek=$ScheduleDayOfWeek
        }
        if ($hasScheduleEnable) {
            $sqlvm.ScheduleEnable=$ScheduleEnable
        }
        if ($hasScheduleMonthlyOccurrence) {
            $sqlvm.ScheduleMonthlyOccurrence=$ScheduleMonthlyOccurrence
        }
        if ($hasScheduleStartTime) {
            $sqlvm.ScheduleStartTime=$ScheduleStartTime
        }
        if ($hasScheduleWeeklyInterval) {
            $sqlvm.ScheduleWeeklyInterval=$ScheduleWeeklyInterval
        }
        if ($hasSqlVirtualMachineGroupResourceId) {
            $sqlvm.GroupResourceId=$SqlVirtualMachineGroupResourceId
        }
        if ($hasVirtualMachineResourceId) {
            $sqlvm.VirtualMachineResourceId=$VirtualMachineResourceId
        }
        if ($hasWsfcDomainCredentialsClusterBootstrapAccountPassword) {
            $sqlvm.WsfcDomainCredentialsClusterBootstrapAccountPassword=$WsfcDomainCredentialsClusterBootstrapAccountPassword
        }
        if ($hasWsfcDomainCredentialsClusterOperatorAccountPassword) {
            $sqlvm.WsfcDomainCredentialsClusterOperatorAccountPassword=$WsfcDomainCredentialsClusterOperatorAccountPassword
        }
        if ($hasWsfcDomainCredentialsSqlServiceAccountPassword) {
            $sqlvm.WsfcDomainCredentialsSqlServiceAccountPassword=$WsfcDomainCredentialsSqlServiceAccountPassword
        }
        if ($hasWsfcStaticIP) {
            $sqlvm.WsfcStaticIP=$WsfcStaticIP
        }
        if ($hasEnableAutomaticUpgrade) {
            $sqlvm.EnableAutomaticUpgrade=$EnableAutomaticUpgrade
        }
        if ($hasManagedIdentityClientId) {
            $sqlvm.AzureAdAuthenticationSettingClientId=$ManagedIdentityClientId
        }
        if ($hasIdentityType -and !$hasManagedIdentityClientId) {
            $sqlvm.AzureAdAuthenticationSettingClientId='' #system assigned MI scenario
        }
        if ($hasAsJob) {
            $PSBoundParameters.Add('AsJob', $true)
        }

        if ($hasManagedIdentityClientId -or $hasIdentityType)
        {
            Assert-AzSqlVMEntraAuth -ResourceGroupName $sqlVM.ResourceGroupName -Name $sqlVM.Name -ManagedIdentityClientId $ManagedIdentityClientId -IdentityType $IdentityType
        }
        if ($PSCmdlet.ShouldProcess("SQL virtual machine $($sqlvm.Name)", "Update")) {
            Az.SqlVirtualMachine.internal\New-AzSqlVM -InputObject $sqlvm -Parameter $sqlvm @PSBoundParameters
        }        

    } catch {
        throw
    }
}
}

# SIG # Begin signature block
# MIInzgYJKoZIhvcNAQcCoIInvzCCJ7sCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBPRqt+xnPPhNGg
# 0AEjKQyQHpT2a7pNHLfDmoanI7ULEKCCDYUwggYDMIID66ADAgECAhMzAAADri01
# UchTj1UdAAAAAAOuMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMjMxMTE2MTkwODU5WhcNMjQxMTE0MTkwODU5WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQD0IPymNjfDEKg+YyE6SjDvJwKW1+pieqTjAY0CnOHZ1Nj5irGjNZPMlQ4HfxXG
# yAVCZcEWE4x2sZgam872R1s0+TAelOtbqFmoW4suJHAYoTHhkznNVKpscm5fZ899
# QnReZv5WtWwbD8HAFXbPPStW2JKCqPcZ54Y6wbuWV9bKtKPImqbkMcTejTgEAj82
# 6GQc6/Th66Koka8cUIvz59e/IP04DGrh9wkq2jIFvQ8EDegw1B4KyJTIs76+hmpV
# M5SwBZjRs3liOQrierkNVo11WuujB3kBf2CbPoP9MlOyyezqkMIbTRj4OHeKlamd
# WaSFhwHLJRIQpfc8sLwOSIBBAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhx/vdKmXhwc4WiWXbsf0I53h8T8w
# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh
# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMTgzNjAfBgNVHSMEGDAW
# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v
# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw
# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx
# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB
# AGrJYDUS7s8o0yNprGXRXuAnRcHKxSjFmW4wclcUTYsQZkhnbMwthWM6cAYb/h2W
# 5GNKtlmj/y/CThe3y/o0EH2h+jwfU/9eJ0fK1ZO/2WD0xi777qU+a7l8KjMPdwjY
# 0tk9bYEGEZfYPRHy1AGPQVuZlG4i5ymJDsMrcIcqV8pxzsw/yk/O4y/nlOjHz4oV
# APU0br5t9tgD8E08GSDi3I6H57Ftod9w26h0MlQiOr10Xqhr5iPLS7SlQwj8HW37
# ybqsmjQpKhmWul6xiXSNGGm36GarHy4Q1egYlxhlUnk3ZKSr3QtWIo1GGL03hT57
# xzjL25fKiZQX/q+II8nuG5M0Qmjvl6Egltr4hZ3e3FQRzRHfLoNPq3ELpxbWdH8t
# Nuj0j/x9Crnfwbki8n57mJKI5JVWRWTSLmbTcDDLkTZlJLg9V1BIJwXGY3i2kR9i
# 5HsADL8YlW0gMWVSlKB1eiSlK6LmFi0rVH16dde+j5T/EaQtFz6qngN7d1lvO7uk
# 6rtX+MLKG4LDRsQgBTi6sIYiKntMjoYFHMPvI/OMUip5ljtLitVbkFGfagSqmbxK
# 7rJMhC8wiTzHanBg1Rrbff1niBbnFbbV4UDmYumjs1FIpFCazk6AADXxoKCo5TsO
# zSHqr9gHgGYQC2hMyX9MGLIpowYCURx3L7kUiGbOiMwaMIIHejCCBWKgAwIBAgIK
# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw
# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD
# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG
# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la
# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc
# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D
# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+
# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk
# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6
# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd
# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL
# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd
# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3
# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS
# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI
# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL
# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD
# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv
# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF
# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h
# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA
# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn
# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7
# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b
# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/
# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy
# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp
# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi
# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb
# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS
# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL
# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX
# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGZ8wghmbAgEBMIGVMH4x
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p
# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAOuLTVRyFOPVR0AAAAA
# A64wDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIE9t
# UQeFMwOlnty0mQx8HNL/3fhBUrgWPTwWGNCQRx0hMEIGCisGAQQBgjcCAQwxNDAy
# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20wDQYJKoZIhvcNAQEBBQAEggEAs6OLsg3LHW4Z+wpJHumNmsErdUqkY5ImFz15
# laRE9W0kxeNvqkCOO/Ap4mOAS05vAJjNc7XheJuXODI/snVbe5LvxKxKKH/l4yt2
# 2YG4MPSFD8coyHndoSmEvpAJtpw8eoUCpIJF9qiyH6a1iNqUv+fV+Q2+cvP3ek43
# er02HNtI4kq8monUP30FqCjquWzfUkQZHc2fM/eLREsWrMOv9jyC/CvideL/AtQn
# Mqpq0lCnjDLR1qGWUHMfQ0ajJzhp2eEKjvpE01OhH5XE3/z9FWtc2KLSAQPRIjyU
# VRE3pI6ydIFXl6pKl2BncanJqVwtLns9xj7r90OK+kCiP9A3taGCFykwghclBgor
# BgEEAYI3AwMBMYIXFTCCFxEGCSqGSIb3DQEHAqCCFwIwghb+AgEDMQ8wDQYJYIZI
# AWUDBAIBBQAwggFZBgsqhkiG9w0BCRABBKCCAUgEggFEMIIBQAIBAQYKKwYBBAGE
# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCrARcqMYOdaEiaXFAuhhA6mko4w57S4t2O
# t9Js65Bg6gIGZnLOnGsdGBMyMDI0MDcwNDA4MzA1NC4wNDZaMASAAgH0oIHYpIHV
# MIHSMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL
# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsT
# HVRoYWxlcyBUU1MgRVNOOjhENDEtNEJGNy1CM0I3MSUwIwYDVQQDExxNaWNyb3Nv
# ZnQgVGltZS1TdGFtcCBTZXJ2aWNloIIReDCCBycwggUPoAMCAQICEzMAAAHj372b
# mhxogyIAAQAAAeMwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
# UENBIDIwMTAwHhcNMjMxMDEyMTkwNzI5WhcNMjUwMTEwMTkwNzI5WjCB0jELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9z
# b2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMg
# VFNTIEVTTjo4RDQxLTRCRjctQjNCNzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt
# U3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL6k
# DWgeRp+fxSBUD6N/yuEJpXggzBeNG5KB8M9AbIWeEokJgOghlMg8JmqkNsB4Wl1N
# EXR7cL6vlPCsWGLMhyqmscQu36/8h2bx6TU4M8dVZEd6V4U+l9gpte+VF91kOI35
# fOqJ6eQDMwSBQ5c9ElPFUijTA7zV7Y5PRYrS4FL9p494TidCpBEH5N6AO5u8wNA/
# jKO94Zkfjgu7sLF8SUdrc1GRNEk2F91L3pxR+32FsuQTZi8hqtrFpEORxbySgiQB
# P3cH7fPleN1NynhMRf6T7XC1L0PRyKy9MZ6TBWru2HeWivkxIue1nLQb/O/n0j2Q
# Vd42Zf0ArXB/Vq54gQ8JIvUH0cbvyWM8PomhFi6q2F7he43jhrxyvn1Xi1pwHOVs
# bH26YxDKTWxl20hfQLdzz4RVTo8cFRMdQCxlKkSnocPWqfV/4H5APSPXk0r8Cc/c
# Mmva3g4EvupF4ErbSO0UNnCRv7UDxlSGiwiGkmny53mqtAZ7NLePhFtwfxp6ATIo
# jl8JXjr3+bnQWUCDCd5Oap54fGeGYU8KxOohmz604BgT14e3sRWABpW+oXYSCyFQ
# 3SZQ3/LNTVby9ENsuEh2UIQKWU7lv7chrBrHCDw0jM+WwOjYUS7YxMAhaSyOahpb
# udALvRUXpQhELFoO6tOx/66hzqgjSTOEY3pu46BFAgMBAAGjggFJMIIBRTAdBgNV
# HQ4EFgQUsa4NZr41FbehZ8Y+ep2m2YiYqQMwHwYDVR0jBBgwFoAUn6cVXQBeYl2D
# 9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3Nv
# ZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy
# MDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1l
# LVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUB
# Af8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQAD
# ggIBALe+my6p1NPMEW1t70a8Y2hGxj6siDSulGAs4UxmkfzxMAic4j0+GTPbHxk1
# 93mQ0FRPa9dtbRbaezV0GLkEsUWTGF2tP6WsDdl5/lD4wUQ76ArFOencCpK5svE0
# sO0FyhrJHZxMLCOclvd6vAIPOkZAYihBH/RXcxzbiliOCr//3w7REnsLuOp/7vlX
# JAsGzmJesBP/0ERqxjKudPWuBGz/qdRlJtOl5nv9NZkyLig4D5hy9p2Ec1zaotiL
# iHnJ9mlsJEcUDhYj8PnYnJjjsCxv+yJzao2aUHiIQzMbFq+M08c8uBEf+s37YbZQ
# 7XAFxwe2EVJAUwpWjmtJ3b3zSWTMmFWunFr2aLk6vVeS0u1MyEfEv+0bDk+N3jms
# CwbLkM9FaDi7q2HtUn3z6k7AnETc28dAvLf/ioqUrVYTwBrbRH4XVFEvaIQ+i7es
# DQicWW1dCDA/J3xOoCECV68611jriajfdVg8o0Wp+FCg5CAUtslgOFuiYULgcxnq
# zkmP2i58ZEa0rm4LZymHBzsIMU0yMmuVmAkYxbdEDi5XqlZIupPpqmD6/fLjD4ub
# 0SEEttOpg0np0ra/MNCfv/tVhJtz5wgiEIKX+s4akawLfY+16xDB64Nm0HoGs/Gy
# 823ulIm4GyrUcpNZxnXvE6OZMjI/V1AgSAg8U/heMWuZTWVUMIIHcTCCBVmgAwIB
# AgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UE
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0
# IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1
# WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
# cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCC
# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O
# 1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZn
# hUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t
# 1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxq
# D89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmP
# frVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSW
# rAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv
# 231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zb
# r17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYcten
# IPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQc
# xWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17a
# j54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQAB
# MCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQU
# n6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEw
# QTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9E
# b2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQB
# gjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/
# MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJ
# oEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01p
# Y1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYB
# BQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9v
# Q2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3h
# LB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x
# 5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74p
# y27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1A
# oL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbC
# HcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB
# 9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNt
# yo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3
# rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcV
# v7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A24
# 5oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lw
# Y1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCAtQwggI9AgEBMIIBAKGB2KSB1TCB
# 0jELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMk
# TWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1U
# aGFsZXMgVFNTIEVTTjo4RDQxLTRCRjctQjNCNzElMCMGA1UEAxMcTWljcm9zb2Z0
# IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAPYiXu8ORQ4hvKcuE
# 7GK0COgxWnqggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
# cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAN
# BgkqhkiG9w0BAQUFAAIFAOowaOMwIhgPMjAyNDA3MDQwODE4NDNaGA8yMDI0MDcw
# NTA4MTg0M1owdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6jBo4wIBADAHAgEAAgIP
# TzAHAgEAAgITfjAKAgUA6jG6YwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEE
# AYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GB
# AHiIJlleFDKk/9E1o5r4PLVdOg7UQf8bNpHqDFAJsJcQRw82dyShkyNvua4XeDu8
# L4i1VUqo67Ih+EwBiuXa2r1SzCyADnXIJ8AURUuoDz8R6cHeFzvbq5uWb/6ePu9D
# r6AetezruU4ZqnJgYoALuBNPwEifO2Mkon9PgibXvf5vMYIEDTCCBAkCAQEwgZMw
# fDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMd
# TWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAHj372bmhxogyIAAQAA
# AeMwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRAB
# BDAvBgkqhkiG9w0BCQQxIgQgrMNjmlHqzwNT6QeAxtlBtWujBgzdBtk38SCsKmGR
# UcwwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCAz1COr5bD+ZPdEgQjWvcIW
# uDJcQbdgq8Ndj0xyMuYmKjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD
# QSAyMDEwAhMzAAAB49+9m5ocaIMiAAEAAAHjMCIEIFQz5MGZZJSVQyFhzVorF17i
# ncw+XD7WMO6QjcGP8rZ8MA0GCSqGSIb3DQEBCwUABIICAAEeOGVXlWFH3jxsXpjL
# XH4TNoPLVgae/48qPsJT1vv2WPgy3KSUYXFO7fgrBsnS9vwL0O2MRvPMbgHaYbUB
# tj+9vhx4Chy9F0Oin3ywxDWI1npRhZ0jOoJ+SG1v0kl08km1khT9O6LxsZnoE7lg
# /iRKpCjl1dYm+0Rs92XdoXfWGdsZ5q/edexGup9CcHfS0Pu4QmwJBlIaz3VeKC7j
# bz/Mrf0MIlnHm5Jwkui2WECd4j83SwBEimIKzUi9YfzX7EHCuIhnRV+Vzzcx3jWK
# ixjWb1XGR/4sE5CzKwTehLJrJHJrOJRmnEMc7+iAS43M92YcMIlX43DvHJv3UqDL
# 2WF9LSNbf43nBxkf3stxH0DPiHq+TzwPB3T69cVbzwzyO4P3MSBoMXmaE9YLQW9R
# ttXYcIXtwYRtoI4RXcKl/z8/rPdLuFBhhyysPsvDF7pn9fxYXwV/X1gLzsUltZAI
# gguYa3YcmhHTjifpQk2PHyMvMmE20t4uwj6bcPPy1kzB+w6GwOFshF31Yos0j0d2
# 3xdUNAmCPF8xJzoehsOGlf8M84KxkZrOJtF8AER+lsmYG9+7Pto8RN5bA9pXdXa6
# aJLf31Z3nYhwyHFcg9AYsNnrBOwGW+xuywbLgwk6tnpEuNv2/CuA8w3tUxkHgDOy
# +ZLtMlinv6mq4BVWyWRv/rCl
# SIG # End signature block