Skip to content

Conversation

@JiaSeng-v
Copy link
Contributor

@JiaSeng-v JiaSeng-v commented Feb 10, 2026

Description

Preannouncement PR: #####

Mandatory Checklist

  • SHOULD update ChangeLog.md file(s) appropriately
    • Update src/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.
      • A snippet outlining the change(s) made in the PR should be written under the ## Upcoming Release header in the past tense.
    • Should not change ChangeLog.md if no new release is required, such as fixing test case only.
  • SHOULD regenerate markdown help files if there is cmdlet API change. Instruction
  • SHOULD have proper test coverage for changes in pull request.
  • SHOULD NOT adjust version of module manually in pull request

Copilot AI review requested due to automatic review settings February 10, 2026 03:03
@JiaSeng-v JiaSeng-v added Contains Breaking Change This PR contains breaking change autorest v4 migration pr migrating module from generated by autorest.powershell v3 to v4 labels Feb 10, 2026
@azure-client-tools-bot-prd
Copy link

Thanks for your contribution! The pull request validation has started. Please revisit this comment for updated status.

@github-actions
Copy link

To the author of the pull request,
This PR was labeled "Contains Breaking Change" because breaking changes have been detected by the static analysis pipeline.

  • According to our policy, breaking changes can only take place during major release and they must be preannounced.
  • Please follow our guide on the detailed steps.
  • Required: Please fill in the task below to facilitate our contact,you will receive notifications related to breaking changes.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Az.SqlVirtualMachine AutoRest project from PowerShell generator v3 to v4, regenerating module artifacts (cmdlet help, docs, manifest, and tests) to match the new generator output and updated cmdlet shapes.

Changes:

  • Regenerated cmdlet help/docs and module manifest for the AutoRest v4 output (including new JSON input parameter sets and identity parameter changes).
  • Updated/removed generated model-cmdlets and refreshed examples to reflect the new surface area.
  • Updated test assets (recordings/env) and solution/project scaffolding associated with the AutoRest module.

Reviewed changes

Copilot reviewed 69 out of 74 changed files in this pull request and generated 20 comments.

Show a summary per file
File Description
src/SqlVirtualMachine/SqlVirtualMachine/help/Update-AzSqlVMGroup.md Updated reference help (synopsis/syntax/params) for regenerated cmdlet shape.
src/SqlVirtualMachine/SqlVirtualMachine/help/Update-AzSqlVM.md Updated reference help and examples for regenerated cmdlet shape.
src/SqlVirtualMachine/SqlVirtualMachine/help/Start-AzSqlVMAssessment.md Updated reference help content.
src/SqlVirtualMachine/SqlVirtualMachine/help/Remove-AzSqlVMGroup.md Updated reference help content.
src/SqlVirtualMachine/SqlVirtualMachine/help/Remove-AzSqlVM.md Updated reference help content.
src/SqlVirtualMachine/SqlVirtualMachine/help/Remove-AzAvailabilityGroupListener.md Updated reference help, including new identity-based parameter set.
src/SqlVirtualMachine/SqlVirtualMachine/help/New-AzSqlVirtualMachineMultiSubnetIPConfigurationObject.md Removed help for removed model-cmdlet.
src/SqlVirtualMachine/SqlVirtualMachine/help/New-AzSqlVirtualMachineAgReplicaObject.md Removed help for removed model-cmdlet.
src/SqlVirtualMachine/SqlVirtualMachine/help/New-AzSqlVMGroup.md Updated reference help for regenerated cmdlet shape and JSON parameter sets.
src/SqlVirtualMachine/SqlVirtualMachine/help/New-AzSqlVM.md Updated reference help for regenerated cmdlet shape.
src/SqlVirtualMachine/SqlVirtualMachine/help/New-AzAvailabilityGroupListener.md Updated reference help for regenerated cmdlet shape.
src/SqlVirtualMachine/SqlVirtualMachine/help/Invoke-AzSqlVMTroubleshoot.md Updated reference help and added JSON parameter sets.
src/SqlVirtualMachine/SqlVirtualMachine/help/Invoke-AzRedeploySqlVM.md Updated reference help content.
src/SqlVirtualMachine/SqlVirtualMachine/help/Get-AzSqlVMGroup.md Updated reference help content and output type.
src/SqlVirtualMachine/SqlVirtualMachine/help/Get-AzSqlVM.md Updated reference help content and output type.
src/SqlVirtualMachine/SqlVirtualMachine/help/Get-AzAvailabilityGroupListener.md Updated reference help and added identity-based parameter set.
src/SqlVirtualMachine/SqlVirtualMachine/help/Az.SqlVirtualMachine.md Updated module landing page content to reflect cmdlet list changes.
src/SqlVirtualMachine/SqlVirtualMachine/help/Assert-AzSqlVMEntraAuth.md Updated reference help and examples for identity-related parameter changes.
src/SqlVirtualMachine/SqlVirtualMachine/ChangeLog.md Added an upcoming release note for the change.
src/SqlVirtualMachine/SqlVirtualMachine/Az.SqlVirtualMachine.psd1 Updated module manifest (generation date, dependencies, exports).
src/SqlVirtualMachine/SqlVirtualMachine.sln Updated solution structure/configurations to include AutoRest project grouping.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/test/utils.ps1 Minor test env setup script formatting update.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/test/env.json Updated test environment identifiers/values used by recordings/tests.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/test/Remove-AzAvailabilityGroupListener.Tests.ps1 Updated test to use new model type name (non-Api-versioned).
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/test/Invoke-AzSqlVMTroubleshoot.Recording.json Updated test recording payload/URIs and recorded responses.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/test/Get-AzSqlVMGroup.Tests.ps1 Updated test to use new model type name (non-Api-versioned).
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/test/Get-AzSqlVMGroup.Recording.json Updated test recordings and recorded responses.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/test/Get-AzSqlVM.Tests.ps1 Updated test to use new model type name (non-Api-versioned).
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/test/Get-AzAvailabilityGroupListener.Tests.ps1 Updated test to use new model type name (non-Api-versioned).
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/test/Get-AzAvailabilityGroupListener.Recording.json Updated test recordings and recorded responses.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/resources/README.md Added non-packaged resources folder documentation.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/generate-info.json Updated generation identifier.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/examples/Update-AzSqlVM.md Updated examples to match new identity parameter usage.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/examples/New-AzSqlVirtualMachineMultiSubnetIPConfigurationObject.md Removed examples for removed model-cmdlet.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/examples/New-AzSqlVirtualMachineAgReplicaObject.md Removed examples for removed model-cmdlet.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/examples/Assert-AzSqlVMEntraAuth.md Updated examples to match new identity parameter usage.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Update-AzSqlVMGroup.md Updated generated docs for regenerated cmdlet shape.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Update-AzSqlVM.md Updated generated docs and examples for regenerated cmdlet shape.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Start-AzSqlVMAssessment.md Updated generated docs content.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Remove-AzSqlVMGroup.md Updated generated docs content.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Remove-AzSqlVM.md Updated generated docs content.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Remove-AzAvailabilityGroupListener.md Updated generated docs with new identity-based parameter set.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/New-AzSqlVirtualMachineMultiSubnetIPConfigurationObject.md Removed generated docs for removed model-cmdlet.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/New-AzSqlVirtualMachineAgReplicaObject.md Removed generated docs for removed model-cmdlet.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/New-AzSqlVMGroup.md Updated generated docs for regenerated cmdlet shape and JSON parameter sets.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/New-AzSqlVM.md Updated generated docs for regenerated cmdlet shape.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/New-AzAvailabilityGroupListener.md Updated generated docs for regenerated cmdlet shape.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Invoke-AzSqlVMTroubleshoot.md Updated generated docs and added JSON parameter sets.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Invoke-AzRedeploySqlVM.md Updated generated docs content.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Get-AzSqlVMGroup.md Updated generated docs content and output type.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Get-AzSqlVM.md Updated generated docs content and output type.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Get-AzAvailabilityGroupListener.md Updated generated docs with new identity-based parameter set.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Az.SqlVirtualMachine.md Updated generated module landing page content.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/docs/Assert-AzSqlVMEntraAuth.md Updated generated docs to reflect identity parameter changes.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/custom/autogen-model-cmdlets/New-AzSqlVirtualMachineMultiSubnetIPConfigurationObject.ps1 Removed generated model-cmdlet implementation.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/custom/autogen-model-cmdlets/New-AzSqlVirtualMachineAgReplicaObject.ps1 Removed generated model-cmdlet implementation.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/custom/Update-AzSqlVMGroup.ps1 Updated custom wrapper cmdlet types for regenerated models.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/custom/Update-AzSqlVM.ps1 Updated custom wrapper cmdlet types and identity parameter handling.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/custom/New-AzSqlVM.ps1 Updated custom wrapper cmdlet types and identity parameter handling.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/custom/New-AzAvailabilityGroupListener.ps1 Updated custom wrapper cmdlet types for regenerated models and parameters.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/custom/Assert-AzSqlVMEntraAuth.ps1 Updated custom cmdlet identity validation parameter handling.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/README.md Updated AutoRest config and directives for v4 generation.
src/SqlVirtualMachine/SqlVirtualMachine.Autorest/Properties/AssemblyInfo.cs Added assembly metadata file for generated AutoRest module.

Comment on lines 148 to 149
# [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.IMultiSubnetIPConfiguration[]]
[System.String[]]
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MultiSubnetIPConfiguration is typed as System.String[], but the help/comments indicate users should pass IMultiSubnetIPConfiguration[] via hash tables. This mismatch will break expected object binding and likely produce invalid request bodies. Please align the parameter type with the documented structured model (or update docs + parsing if JSON strings are intended).

Suggested change
# [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.IMultiSubnetIPConfiguration[]]
[System.String[]]
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.IMultiSubnetIPConfiguration[]]

Copilot uses AI. Check for mistakes.
Comment on lines 57 to 60
"Response": {
"StatusCode": 200,
"Headers": {
"Cache-Control": [ "no-cache" ],
"Pragma": [ "no-cache" ],
"x-ms-request-id": [ "72e5e516-2426-411b-9153-47e8bf5cde4c" ],
"Server": [ "Microsoft-HTTPAPI/2.0" ],
"x-ms-ratelimit-remaining-subscription-reads": [ "11996" ],
"x-ms-correlation-request-id": [ "93bd666a-be54-4788-a907-ae8f6317a948" ],
"x-ms-routing-request-id": [ "SOUTHEASTASIA:20230316T095923Z:93bd666a-be54-4788-a907-ae8f6317a948" ],
"Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ],
"X-Content-Type-Options": [ "nosniff" ],
"Date": [ "Thu, 16 Mar 2023 09:59:23 GMT" ]
},
"ContentHeaders": {
"Content-Length": [ "626" ],
"Content-Type": [ "application/json; charset=utf-8" ],
"Expires": [ "-1" ]
},
"Content": "{\"properties\":{\"virtualMachineResourceId\":\"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/azpstest-sqlvm-gp/providers/Microsoft.Compute/virtualMachines/azpstest-sqlvm\",\"provisioningState\":\"Succeeded\",\"sqlImageOffer\":\"SQL2019-WS2019\",\"sqlServerLicenseType\":\"PAYG\",\"sqlManagement\":\"Full\",\"leastPrivilegeMode\":\"NotSet\",\"sqlImageSku\":\"Standard\"},\"location\":\"eastus\",\"id\":\"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/azpstest-sqlvm-gp/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/azpstest-sqlvm\",\"name\":\"azpstest-sqlvm\",\"type\":\"Microsoft.SqlVirtualMachine/sqlVirtualMachines\"}",
"isContentBase64": false
}
},
"Invoke-AzSqlVMTroubleshoot+[NoContext]+TroubleshootViaIdentityExpanded+$POST+https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/azpstest-sqlvm-gp/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/azpstest-sqlvm/troubleshoot?api-version=2022-08-01-preview+2": {
"Request": {
"Method": "POST",
"RequestUri": "https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/azpstest-sqlvm-gp/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/azpstest-sqlvm/troubleshoot?api-version=2022-08-01-preview",
"Content": "{\r\n \"startTimeUtc\": \"2023-03-16T01:10:00.0000000+08:00\",\r\n \"endTimeUtc\": \"2023-03-16T16:30:10.0000000+08:00\",\r\n \"troubleshootingScenario\": \"UnhealthyReplica\"\r\n}",
"isContentBase64": false,
"Headers": {
},
"ContentHeaders": {
"Content-Type": [ "application/json" ],
"Content-Length": [ "163" ]
}
},
"Response": {
"StatusCode": 202,
"Headers": {
"Cache-Control": [ "no-cache" ],
"Pragma": [ "no-cache" ],
"Retry-After": [ "15" ],
"Azure-AsyncOperation": [ "https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/providers/Microsoft.SqlVirtualMachine/locations/eastus/operationTypes/processingtroubleshootoperation/operationResults/89b9a383-2603-4577-8b52-99f3d6783adc?api-version=2022-08-01-preview" ],
"x-ms-request-id": [ "4efb9d54-a14e-4dc1-96d9-1030118b95de" ],
"Server": [ "Microsoft-HTTPAPI/2.0" ],
"x-ms-ratelimit-remaining-subscription-writes": [ "1198" ],
"x-ms-correlation-request-id": [ "4e66ea2b-5e66-42a2-9382-957efab93837" ],
"x-ms-routing-request-id": [ "SOUTHEASTASIA:20230316T095925Z:4e66ea2b-5e66-42a2-9382-957efab93837" ],
"Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ],
"X-Content-Type-Options": [ "nosniff" ],
"Date": [ "Thu, 16 Mar 2023 09:59:24 GMT" ]
},
"ContentHeaders": {
"Content-Length": [ "360" ],
"Content-Type": [ "application/json; charset=utf-8" ],
"Expires": [ "-1" ]
},
"Content": "{\"startTimeUtc\":\"2023-03-15T17:10:00Z\",\"endTimeUtc\":\"2023-03-16T08:30:10Z\",\"troubleshootingScenario\":\"UnhealthyReplica\",\"properties\":{\"unhealthyReplicaInfo\":{\"availabilityGroupName\":\"\"}},\"virtualMachineResourceId\":\"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/azpstest-sqlvm-gp/providers/Microsoft.Compute/virtualMachines/azpstest-sqlvm\"}",
"isContentBase64": false
}
},
"Invoke-AzSqlVMTroubleshoot+[NoContext]+TroubleshootViaIdentityExpanded+$GET+https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/providers/Microsoft.SqlVirtualMachine/locations/eastus/operationTypes/processingtroubleshootoperation/operationResults/89b9a383-2603-4577-8b52-99f3d6783adc?api-version=2022-08-01-preview+3": {
"Request": {
"Method": "GET",
"RequestUri": "https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/providers/Microsoft.SqlVirtualMachine/locations/eastus/operationTypes/processingtroubleshootoperation/operationResults/89b9a383-2603-4577-8b52-99f3d6783adc?api-version=2022-08-01-preview",
"Content": null,
"isContentBase64": false,
"Headers": {
"Authorization": [ "[Filtered]" ],
"x-ms-unique-id": [ "6" ],
"x-ms-client-request-id": [ "c2277cd0-2127-40fd-aac8-fa27f96af3d4" ],
"CommandName": [ "Invoke-AzSqlVMTroubleshoot" ],
"FullCommandName": [ "Invoke-AzSqlVMTroubleshoot_TroubleshootViaIdentityExpanded" ],
"ParameterSetName": [ "__AllParameterSets" ],
"User-Agent": [ "AzurePowershell/v0.0.0", "PSVersion/v7.2.9", "Az.SqlVirtualMachine/0.1.0" ]
},
"ContentHeaders": {
}
},
"Response": {
"StatusCode": 200,
"Headers": {
"Cache-Control": [ "no-cache" ],
"Pragma": [ "no-cache" ],
"Retry-After": [ "15" ],
"x-ms-request-id": [ "b5841ac0-3a0c-4a9d-b923-3b965b1f792e" ],
"Server": [ "Microsoft-HTTPAPI/2.0" ],
"x-ms-ratelimit-remaining-subscription-reads": [ "11995" ],
"x-ms-correlation-request-id": [ "89daffdb-16a3-4aa5-bcb7-e4f8aa590dcb" ],
"x-ms-routing-request-id": [ "SOUTHEASTASIA:20230316T095940Z:89daffdb-16a3-4aa5-bcb7-e4f8aa590dcb" ],
"Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ],
"X-Content-Type-Options": [ "nosniff" ],
"Date": [ "Thu, 16 Mar 2023 09:59:40 GMT" ]
},
"ContentHeaders": {
"Content-Length": [ "107" ],
"Content-Type": [ "application/json; charset=utf-8" ],
"Expires": [ "-1" ]
},
"Content": "{\"name\":\"89b9a383-2603-4577-8b52-99f3d6783adc\",\"status\":\"Succeeded\",\"startTime\":\"2023-03-16T09:59:24.407Z\"}",
"isContentBase64": false
}
},
"Invoke-AzSqlVMTroubleshoot+[NoContext]+TroubleshootViaIdentityExpanded+$GET+https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/providers/Microsoft.SqlVirtualMachine/locations/eastus/operationTypes/processingtroubleshootoperation/operationResults/89b9a383-2603-4577-8b52-99f3d6783adc?api-version=2022-08-01-preview+4": {
"Request": {
"Method": "GET",
"RequestUri": "https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/providers/Microsoft.SqlVirtualMachine/locations/eastus/operationTypes/processingtroubleshootoperation/operationResults/89b9a383-2603-4577-8b52-99f3d6783adc?api-version=2022-08-01-preview",
"Content": null,
"isContentBase64": false,
"Headers": {
"Authorization": [ "[Filtered]" ],
"x-ms-unique-id": [ "7" ],
"x-ms-client-request-id": [ "c2277cd0-2127-40fd-aac8-fa27f96af3d4" ],
"CommandName": [ "Invoke-AzSqlVMTroubleshoot" ],
"FullCommandName": [ "Invoke-AzSqlVMTroubleshoot_TroubleshootViaIdentityExpanded" ],
"ParameterSetName": [ "__AllParameterSets" ],
"User-Agent": [ "AzurePowershell/v0.0.0", "PSVersion/v7.2.9", "Az.SqlVirtualMachine/0.1.0" ]
},
"ContentHeaders": {
}
},
"Response": {
"StatusCode": 200,
"StatusCode": 404,
"Headers": {
"Cache-Control": [ "no-cache" ],
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This recording also captures a 404 response for TroubleshootViaIdentityExpanded (GET SQL VM), but the test expects the Get-AzSqlVM call and subsequent troubleshoot call to succeed. Please re-record with the expected resources present (or adjust tests accordingly).

Copilot uses AI. Check for mistakes.
Comment on lines 10 to 12
## SYNOPSIS
Updates SQL virtual machine group.
Update SQL virtual machine group tags.

Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The synopsis/description now say this cmdlet only updates tags, but it still exposes parameters for cluster/domain/Wsfc configuration updates. Please update the synopsis/description to reflect the full supported updates (or remove/hide non-tag parameters if it truly only supports tags).

Copilot uses AI. Check for mistakes.
### Example 12
```powershell
Update-AzSqlVM -ResourceGroupName 'ResourceGroup01' -Name 'sqlvm1' -IdentityType 'UserAssigned' -ManagedIdentityClientId '11111111-2222-3333-4444-555555555555'
Update-AzSqlVM -ResourceGroupName 'ResourceGroup01' -Name 'sqlvm1' -UserAssignedIdentity 'useridentity1,useridentity2' -ManagedIdentityClientId '11111111-2222-3333-4444-555555555555'
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Example 12 uses -UserAssignedIdentity, but the Update-AzSqlVM custom cmdlet implementation does not define that parameter. Please either add the parameter to the cmdlet or update the example to match supported parameters (for example, -ManagedIdentityClientId with -EnableSystemAssignedIdentity:$false).

Suggested change
Update-AzSqlVM -ResourceGroupName 'ResourceGroup01' -Name 'sqlvm1' -UserAssignedIdentity 'useridentity1,useridentity2' -ManagedIdentityClientId '11111111-2222-3333-4444-555555555555'
Update-AzSqlVM -ResourceGroupName 'ResourceGroup01' -Name 'sqlvm1' -EnableSystemAssignedIdentity $false -ManagedIdentityClientId '11111111-2222-3333-4444-555555555555'

Copilot uses AI. Check for mistakes.
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.Api20220801Preview.IAgReplica[]]
# [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.IAgReplica[]]
[System.String[]]
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AvailabilityGroupConfigurationReplica is typed as System.String[], but the help/comments still describe passing structured IAgReplica[] via hash tables. This mismatch will likely stringify hash tables and break request payloads. Please align the parameter type with the documented model type (or update docs + parsing if JSON strings are intended).

Suggested change
[System.String[]]
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Models.IAgReplica[]]

Copilot uses AI. Check for mistakes.
Comment on lines 17 to 20
Assert-AzSqlVMEntraAuth -Name <String> -ResourceGroupName <String> [-SubscriptionId <String>]
-IdentityType <String> [-ManagedIdentityClientId <String>] [-DefaultProfile <PSObject>] [-AsJob] [-NoWait]
[-WhatIf] [-Confirm] [<CommonParameters>]
[-EnableSystemAssignedIdentity] [-ManagedIdentityClientId <String>] [-DefaultProfile <PSObject>] [-AsJob]
[-NoWait] [-WhatIf] [-Confirm] [<CommonParameters>]
```
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The syntax here shows -EnableSystemAssignedIdentity as optional ([-EnableSystemAssignedIdentity]), but the cmdlet implementation marks it as mandatory. This mismatch will confuse users and make the published help inaccurate. Please align the help with the actual parameter metadata (or make the parameter optional in code, preferably via parameter sets).

Copilot uses AI. Check for mistakes.
Comment on lines 183 to 187
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Runtime')]
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Runtime.SendAsyncStep[]]
# [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Runtime.SendAsyncStep[]]
[System.String[]]
# SendAsync Pipeline Steps to be appended to the front of the pipeline
${HttpPipelineAppend},
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HttpPipelineAppend is typed as System.String[] (commented-out SendAsyncStep[]). This breaks the standard AutoRest runtime pipeline extension mechanism used by test mocking and advanced callers. Please keep this runtime parameter as Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Runtime.SendAsyncStep[].

Copilot uses AI. Check for mistakes.
Comment on lines 190 to 194
[ValidateNotNull()]
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Runtime')]
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Runtime.SendAsyncStep[]]
# [Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Runtime.SendAsyncStep[]]
[System.String[]]
# SendAsync Pipeline Steps to be prepended to the front of the pipeline
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HttpPipelinePrepend is typed as System.String[] (commented-out SendAsyncStep[]). This breaks the standard AutoRest runtime pipeline extension mechanism used by test mocking and advanced callers. Please keep this runtime parameter as Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Runtime.SendAsyncStep[].

Copilot uses AI. Check for mistakes.
Comment on lines 62 to 66
"Response": {
"StatusCode": 200,
"StatusCode": 404,
"Headers": {
"Cache-Control": [ "no-cache" ],
"Pragma": [ "no-cache" ],
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This recording also captures a 404 response for the Get call, while the test expects a successful listener object. Playback will fail until the recordings are regenerated against an environment where the listener exists (or the test expectations are changed).

Copilot uses AI. Check for mistakes.
Comment on lines 64 to 68
"Response": {
"StatusCode": 200,
"StatusCode": 404,
"Headers": {
"Cache-Control": [ "no-cache" ],
"Pragma": [ "no-cache" ],
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Get operation recording now returns StatusCode: 404, but the associated test expects a successful response. This will break playback. Please re-record with a valid SqlVirtualMachineGroup present (or change the test expectation to match intended behavior).

Copilot uses AI. Check for mistakes.
Copilot AI review requested due to automatic review settings February 11, 2026 07:45
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 48 out of 48 changed files in this pull request and generated 7 comments.

Comment on lines 42 to +48
directive:
- remove-operation:
- SqlVirtualMachineGroups_Update
- from: swagger-document
where: $.definitions.SqlVirtualMachineGroupProperties.properties.wsfcDomainProfile
transform: $['x-ms-mutability'] = ["read", "update", "create"]
- from: swagger-document
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new AutoRest directives added here are missing explanatory comments. In this repo’s AutoRest README files, each directive is expected to have a brief comment explaining the purpose/intent (the “why”), especially for swagger-document transforms/removals, to keep future regeneration and maintenance understandable.

Copilot uses AI. Check for mistakes.
- Additional information about change #1
-->
## Upcoming Release
* Improved user experience and consistency. This may introduce breaking changes. Please refer to [here](https://go.microsoft.com/fwlink/?linkid=2340249).
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This Upcoming Release entry is too vague for users (it doesn’t say what actually changed in Az.SqlVirtualMachine) and the link text “here” is not descriptive. Please summarize the concrete user-facing changes (e.g., AutoRest v4 upgrade effects such as parameter type changes/new parameter sets) and use descriptive link text; include related issue references if applicable.

Suggested change
* Improved user experience and consistency. This may introduce breaking changes. Please refer to [here](https://go.microsoft.com/fwlink/?linkid=2340249).
* Updated all `Az.SqlVirtualMachine` cmdlets to use the latest AutoRest v4 PowerShell generator.
- This update improves parameter validation, error messages, and output consistency across cmdlets.
- Some parameters now have more specific types, new parameter sets have been added, and a few parameter aliases have been removed, which may result in breaking changes for existing scripts.
- For a detailed list of behavior changes and migration guidance, see the [Az.SqlVirtualMachine breaking changes and migration guide](https://go.microsoft.com/fwlink/?linkid=2340249).

Copilot uses AI. Check for mistakes.
Comment on lines 100 to 105
[Parameter()]
[ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.SqlManagementMode])]
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.PSArgumentCompleterAttribute("Full","Lightweight","NoAgent")]
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Category('Body')]
[Microsoft.Azure.PowerShell.Cmdlets.SqlVirtualMachine.Support.SqlManagementMode]
[System.String]
# SQL Server Management type.
${SqlManagementType},
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The argument completer suggests "Lightweight", but the supported SqlManagementMode value is "LightWeight" (capital W). Suggesting the wrong casing can lead users to pass an invalid value to the service. Please align the completer values with the generated support enum/constants (and existing tests/recordings) to avoid API errors.

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +7
// 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,
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The license header comment contains doubled quotes (e.g., ""License"", ""AS IS"") which reduces readability and looks like an escaping artifact. Please update these comment strings to the standard Apache 2.0 header wording with normal quotes.

Suggested change
// 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,
// 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,

Copilot uses AI. Check for mistakes.
// 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
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor formatting: "Code Generator.Changes" is missing a space after the period in the comment. Please insert a space so the sentence reads correctly.

Suggested change
// Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code
// Code generated by Microsoft (R) AutoRest Code Generator. Changes may cause incorrect behavior and will be lost if the code

Copilot uses AI. Check for mistakes.
Comment on lines +168 to +169
# $pwd is the password for cluster accounts
$securepwd = ConvertTo-SecureString -String $pwd -AsPlainText -Force
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example uses $pwd without defining it, so the snippet will fail if copied as-is. Please either keep a literal placeholder string (e.g., "****") or show how to set $pwd (for example via Read-Host) before converting to SecureString.

Copilot uses AI. Check for mistakes.
Comment on lines +46 to +47
# $accessKey is a valid access key for the storage account
$storageAccountPrimaryKey = ConvertTo-SecureString -String $accessKey -AsPlainText -Force
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example uses $accessKey without defining it, so the snippet will fail if copied as-is. Please either keep a literal placeholder string (e.g., "****") or show how to set $accessKey before converting to SecureString.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autorest v4 migration pr migrating module from generated by autorest.powershell v3 to v4 Contains Breaking Change This PR contains breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant