From a80f91ed44a222b39980c37c6ffec662c22b860e Mon Sep 17 00:00:00 2001 From: Chrissy LeMaire Date: Fri, 18 Oct 2024 10:48:49 +0200 Subject: [PATCH] fix scripts --- .aider/fix-tests.ps1 | 31 +++ .aider/prompts/errors.md | 0 .aider/prompts/fix-errors.json | 374 +++++++++++++++++++++++++++++++++ .aider/prompts/fix-template.md | 6 + .aider/prompts/types.md | 137 ++++++++++++ 5 files changed, 548 insertions(+) create mode 100644 .aider/fix-tests.ps1 create mode 100644 .aider/prompts/errors.md create mode 100644 .aider/prompts/fix-errors.json create mode 100644 .aider/prompts/fix-template.md create mode 100644 .aider/prompts/types.md diff --git a/.aider/fix-tests.ps1 b/.aider/fix-tests.ps1 new file mode 100644 index 0000000000..92c64c2ee6 --- /dev/null +++ b/.aider/fix-tests.ps1 @@ -0,0 +1,31 @@ +param ( + [int]$First = 1000, + [int]$Skip = 0 +) +$testerrors = Get-Content /workspace/.aider/prompts/fix-errors.json | ConvertFrom-Json + +$promptTemplate = Get-Content /workspace/.aider/prompts/fix-template.md +$commands = $testerrors | Select-Object -First $First -Skip $Skip +$added = @() + +foreach ($command in $commands) { + $cmdName = $command.Command + $filename = "/workspace/tests/$cmdName.Tests.ps1" + Write-Host "Processing $cmdName" + + if (-not (Test-Path $filename)) { + Write-Warning "No tests found for $cmdName" + Write-Warning "$filename not found" + continue + } + + $cmdPrompt = $promptTemplate -replace "--CMDNAME--", $cmdName + + # Run Aider in non-interactive mode with auto-confirmation + if ($added -notcontains $cmdName) { + $added += $cmdName + aider --message "$cmdPrompt" --file $filename --sonnet --no-stream --cache-prompts --read /workspace/.aider/prompts/conventions.md /workspace/.aider/prompts/types.md /workspace/.aider/prompts/errors.md + } else { + aider --message "$cmdPrompt" --sonnet --no-stream --cache-prompts --read /workspace/.aider/prompts/conventions.md /workspace/.aider/prompts/types.md + } +} \ No newline at end of file diff --git a/.aider/prompts/errors.md b/.aider/prompts/errors.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.aider/prompts/fix-errors.json b/.aider/prompts/fix-errors.json new file mode 100644 index 0000000000..85cace293b --- /dev/null +++ b/.aider/prompts/fix-errors.json @@ -0,0 +1,374 @@ +[ + { + "Command": "Get-DbatoolsError", + "ErrorMessage": "Expected: 'Test error' But was: 'Error connecting to [nothing]: The network path was not found'", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbatoolsError.Tests.ps1", + "LineNumber": 40 + }, + { + "Command": "Get-DbatoolsLog", + "ErrorMessage": "RuntimeException: Cannot index into a null array.", + "FilePath": "C:\\github\\dbatools\\public\\Get-DbatoolsLog.ps1", + "LineNumber": 136 + }, + { + "Command": "Get-DbatoolsLog", + "ErrorMessage": "Expected 'Error', but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbatoolsLog.Tests.ps1", + "LineNumber": 82 + }, + { + "Command": "Remove-DbaReplPublication", + "ErrorMessage": "Expected command to have a parameter SqlInstance, but it wasn't mandatory and was of type [Dataplat.Dbatools.Parameter.DbaInstanceParameter[]].", + "FilePath": "C:\\github\\dbatools\\tests\\Remove-DbaReplPublication.Tests.ps1", + "LineNumber": 14 + }, + { + "Command": "Remove-DbaReplPublication", + "ErrorMessage": "Expected command to have a parameter Database, of type [System.String[]], but it was of type [System.String].", + "FilePath": "C:\\github\\dbatools\\tests\\Remove-DbaReplPublication.Tests.ps1", + "LineNumber": 20 + }, + { + "Command": "Remove-DbaReplPublication", + "ErrorMessage": "Expected command to have a parameter InputObject, of type [System.Object], but it was of type [Microsoft.SqlServer.Replication.Publication[]].", + "FilePath": "C:\\github\\dbatools\\tests\\Remove-DbaReplPublication.Tests.ps1", + "LineNumber": 26 + }, + { + "Command": "Register-DbatoolsConfig", + "ErrorMessage": "ArgumentException: Could not find type [Config[]]. Make sure that the assembly that contains that type is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Register-DbatoolsConfig.Tests.ps1", + "LineNumber": 8 + }, + { + "Command": "Remove-DbaReplArticle", + "ErrorMessage": "Expected command to have a parameter SqlInstance, which is mandatory and of type [Dataplat.Dbatools.Parameter.DbaInstanceParameter[]].", + "FilePath": "C:\\github\\dbatools\\tests\\Remove-DbaReplArticle.Tests.ps1", + "LineNumber": 14 + }, + { + "Command": "Remove-DbaReplArticle", + "ErrorMessage": "Expected command to have a parameter InputObject, of type [System.Management.Automation.PSObject], but it was of type [Microsoft.SqlServer.Replication.Article[]].", + "FilePath": "C:\\github\\dbatools\\tests\\Remove-DbaReplArticle.Tests.ps1", + "LineNumber": 32 + }, + { + "Command": "Get-XpDirTreeRestoreFile", + "ErrorMessage": "Method invocation failed because [System.Management.Automation.PSCustomObject] does not contain a method named 'ExecuteWithResults'.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-XpDirTreeRestoreFile.Tests.ps1", + "LineNumber": 78 + }, + { + "Command": "Unregister-DbatoolsConfig", + "ErrorMessage": "ArgumentException: Could not find type [ConfigScope]. Make sure that the assembly that contains that type is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Unregister-DbatoolsConfig.Tests.ps1", + "LineNumber": 7 + }, + { + "Command": "Reset-DbatoolsConfig", + "ErrorMessage": "ArgumentException: Could not find type [Config[]]. Make sure that the assembly that contains that type is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Reset-DbatoolsConfig.Tests.ps1", + "LineNumber": 9 + }, + { + "Command": "Remove-DbaPfDataCollectorSet", + "ErrorMessage": "Expected 'Long Running Queries', but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\Remove-DbaPfDataCollectorSet.Tests.ps1", + "LineNumber": 44 + }, + { + "Command": "Export-DbaUser", + "ErrorMessage": "ArgumentException: Could not find type [ScriptingOptions]. Ensure that the assembly is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Export-DbaUser.Tests.ps1", + "LineNumber": 202 + }, + { + "Command": "Get-DbaLogin", + "ErrorMessage": "Expected 'testlogin1_229811432' to be found in collection, but it was not found.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbaLogin.Tests.ps1", + "LineNumber": 189 + }, + { + "Command": "Get-DbaSpConfigure", + "ErrorMessage": "Expected 16, but got 69.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbaSpConfigure.Tests.ps1", + "LineNumber": 40 + }, + { + "Command": "Get-DbaSpConfigure", + "ErrorMessage": "Expected 14, but got 67.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbaSpConfigure.Tests.ps1", + "LineNumber": 50 + }, + { + "Command": "Install-DbaWhoIsActive", + "ErrorMessage": "ValidationMetadataException: The argument is null or empty.", + "FilePath": "C:\\github\\dbatools\\tests\\Install-DbaWhoIsActive.Tests.ps1", + "LineNumber": 183 + }, + { + "Command": "Install-DbaWhoIsActive", + "ErrorMessage": "Expected a value, but got $null or empty.", + "FilePath": "C:\\github\\dbatools\\tests\\Install-DbaWhoIsActive.Tests.ps1", + "LineNumber": 249 + }, + { + "Command": "Stop-DbaExternalProcess", + "ErrorMessage": "Expected 'localhost', but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\Stop-DbaExternalProcess.Tests.ps1", + "LineNumber": 51 + }, + { + "Command": "Update-DbaInstance", + "ErrorMessage": "ParameterBindingValidationException: Cannot bind argument to parameter 'ReferenceObject' because it is null.", + "FilePath": "C:\\github\\dbatools\\tests\\Update-DbaInstance.Tests.ps1", + "LineNumber": 27 + }, + { + "Command": "Update-DbaInstance", + "ErrorMessage": "Path to SQL Server updates folder is not set.", + "FilePath": "C:\\github\\dbatools\\public\\Update-DbaInstance.ps1", + "LineNumber": 515 + }, + { + "Command": "Export-DbaCredential", + "ErrorMessage": "ArgumentException: Could not find type [Credential[]]. Ensure that the assembly is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Export-DbaCredential.Tests.ps1", + "LineNumber": 38 + }, + { + "Command": "Find-DbaAgentJob", + "ErrorMessage": "Expected a value, but got $null or empty.", + "FilePath": "C:\\github\\dbatools\\tests\\Find-DbaAgentJob.Tests.ps1", + "LineNumber": 135 + }, + { + "Command": "Get-DbaAgentAlert", + "ErrorMessage": "CommandNotFoundException: The term 'C:\\github\\dbatools\\tests\\..\\functions\\Get-DbaAgentAlert.ps1' is not recognized.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbaAgentAlert.Tests.ps1", + "LineNumber": 6 + }, + { + "Command": "Get-DbaAgentLog", + "ErrorMessage": "Expected $true, but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbaAgentLog.Tests.ps1", + "LineNumber": 33 + }, + { + "Command": "Add-DbaDbRoleMember", + "ErrorMessage": "ParameterBindingValidationException: Cannot bind argument to parameter 'SqlInstance' because it is null.", + "FilePath": "C:\\github\\dbatools\\tests\\Add-DbaDbRoleMember.Tests.ps1", + "LineNumber": 33 + }, + { + "Command": "Remove-DbaDatabase", + "ErrorMessage": "ParameterBindingValidationException: Cannot bind argument to parameter 'InputObject' because it is null.", + "FilePath": "C:\\github\\dbatools\\tests\\Add-DbaExtendedProperty.Tests.ps1", + "LineNumber": 41 + }, + { + "Command": "Export-DbaDbRole", + "ErrorMessage": "ArgumentException: Could not find type [ScriptingOptions]. Ensure that the assembly is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Export-DbaDbRole.Tests.ps1", + "LineNumber": 127 + }, + { + "Command": "Export-DbaInstance", + "ErrorMessage": "ArgumentException: Could not find type [ScriptingOptions]. Ensure that the assembly is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Export-DbaInstance.Tests.ps1", + "LineNumber": 20 + }, + { + "Command": "Export-DbaLogin", + "ErrorMessage": "ParameterBindingValidationException: Cannot validate argument on parameter 'Name'. The argument is null.", + "FilePath": "C:\\github\\dbatools\\tests\\Export-DbaLogin.Tests.ps1", + "LineNumber": 176 + }, + { + "Command": "Get-DbaAgentSchedule", + "ErrorMessage": "Win32Exception: The system cannot find the file specified.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbaAgentSchedule.Tests.ps1", + "LineNumber": 28 + }, + { + "Command": "Grant-DbaAgPermission", + "ErrorMessage": "Expected 'Success', but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\Grant-DbaAgPermission.Tests.ps1", + "LineNumber": 48 + }, + { + "Command": "Copy-DbaAgentAlert", + "ErrorMessage": "Expected @('Skipped', 'Skipped'), but got 'Skipped'.", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaAgentAlert.Tests.ps1", + "LineNumber": 91 + }, + { + "Command": "Copy-DbaAgentOperator", + "ErrorMessage": "Expected 2, but got 4.", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaAgentOperator.Tests.ps1", + "LineNumber": 60 + }, + { + "Command": "Copy-DbaAgentProxy", + "ErrorMessage": "Expected 1, but got 2.", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaAgentProxy.Tests.ps1", + "LineNumber": 70 + }, + { + "Command": "New-DbaAgentAlert", + "ErrorMessage": "Expected Get-DbaAgentAlert to be called 1 times exactly, but was called 0 times.", + "FilePath": "C:\\github\\dbatools\\tests\\New-DbaAgentAlert.Tests.ps1", + "LineNumber": 133 + }, + { + "Command": "New-DbaAvailabilityGroup", + "ErrorMessage": "Expected 'dbatoolsci_addag_agroupdb', but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\New-DbaAvailabilityGroup.Tests.ps1", + "LineNumber": 127 + }, + { + "Command": "Revoke-DbaAgPermission", + "ErrorMessage": "Expected 'Success', but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\Revoke-DbaAgPermission.Tests.ps1", + "LineNumber": 51 + }, + { + "Command": "Copy-DbaCustomError", + "ErrorMessage": "Expected @('60000:'us_english'', '60000:'Français''), but got @(60000:'us_english', 60000:'Français').", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaCustomError.Tests.ps1", + "LineNumber": 50 + }, + { + "Command": "Copy-DbaCustomError", + "ErrorMessage": "Expected @('60000:'us_english'', '60000:'Français''), but got @(60000:'us_english', 60000:'Français').", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaCustomError.Tests.ps1", + "LineNumber": 56 + }, + { + "Command": "Copy-DbaDatabase", + "ErrorMessage": "Expected 'Source' to be found in collection @($null), but it was not found.", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaDatabase.Tests.ps1", + "LineNumber": 41 + }, + { + "Command": "Copy-DbaDatabase", + "ErrorMessage": "Expected $false, but got $true.", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaDatabase.Tests.ps1", + "LineNumber": 86 + }, + { + "Command": "Copy-DbaDatabase", + "ErrorMessage": "Expected strings to be the same, but they were different.", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaDatabase.Tests.ps1", + "LineNumber": 154 + }, + { + "Command": "Copy-DbaResourceGovernor", + "ErrorMessage": "Expected 'Successful', but got @('Skipped', 'Successful').", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaResourceGovernor.Tests.ps1", + "LineNumber": 97 + }, + { + "Command": "Copy-DbaResourceGovernor", + "ErrorMessage": "Expected 'dbatoolsci_fnRG', but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaResourceGovernor.Tests.ps1", + "LineNumber": 103 + }, + { + "Command": "Get-DbaDbMailProfile", + "ErrorMessage": "Expected a value, but got $null or empty.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbaDbMailProfile.Tests.ps1", + "LineNumber": 58 + }, + { + "Command": "Get-DbaDbMailProfile", + "ErrorMessage": "Expected 'Profile for system email', but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbaDbMailProfile.Tests.ps1", + "LineNumber": 68 + }, + { + "Command": "Get-DbaDbMailProfile", + "ErrorMessage": "Expected a value, but got $null or empty.", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbaDbMailProfile.Tests.ps1", + "LineNumber": 73 + }, + { + "Command": "Get-DbaDbMailProfile", + "ErrorMessage": "Expected $null, but got .", + "FilePath": "C:\\github\\dbatools\\tests\\Get-DbaDbMailProfile.Tests.ps1", + "LineNumber": 86 + }, + { + "Command": "Add-DbaComputerCertificate", + "ErrorMessage": "ArgumentException: Could not find type [X509Certificate2[]]. Make sure that the assembly that contains that type is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Add-DbaComputerCertificate.Tests.ps1", + "LineNumber": 85 + }, + { + "Command": "Backup-DbaDatabase", + "ErrorMessage": "Import-Module : The specified module 'dbatools' was not loaded because no valid module file was found in any module directory.", + "FilePath": "C:\\github\\dbatools\\tests\\Backup-DbaDatabase.Tests.ps1", + "LineNumber": 6 + }, + { + "Command": "Backup-DbaDatabase", + "ErrorMessage": "Expected 'C:\\Temp\\backups\\master', but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\Backup-DbaDatabase.Tests.ps1", + "LineNumber": 284 + }, + { + "Command": "Backup-DbaDatabase", + "ErrorMessage": "Expected $true, but got $false.", + "FilePath": "C:\\github\\dbatools\\tests\\Backup-DbaDatabase.Tests.ps1", + "LineNumber": 306 + }, + { + "Command": "Backup-DbaDatabase", + "ErrorMessage": "Expected like wildcard '*PesterTest.bak' to match $null, but it did not match.", + "FilePath": "C:\\github\\dbatools\\tests\\Backup-DbaDatabase.Tests.ps1", + "LineNumber": 368 + }, + { + "Command": "Backup-DbaDatabase", + "ErrorMessage": "RuntimeException: Cannot index into a null array.", + "FilePath": "C:\\github\\dbatools\\tests\\Backup-DbaDatabase.Tests.ps1", + "LineNumber": 419 + }, + { + "Command": "Backup-DbaDatabase", + "ErrorMessage": "RuntimeException: You cannot call a method on a null-valued expression.", + "FilePath": "C:\\github\\dbatools\\tests\\Backup-DbaDatabase.Tests.ps1", + "LineNumber": 426 + }, + { + "Command": "Backup-DbaDatabase", + "ErrorMessage": "Expected 'CERTIFICATE', but got $null.", + "FilePath": "C:\\github\\dbatools\\tests\\Backup-DbaDatabase.Tests.ps1", + "LineNumber": 508 + }, + { + "Command": "Add-DbaRegServer", + "ErrorMessage": "ArgumentException: Could not find type [Server[]]. Ensure that the assembly that contains that type is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Add-DbaRegServer.Tests.ps1", + "LineNumber": 40 + }, + { + "Command": "Copy-DbaXESessionTemplate", + "ErrorMessage": "Expected a value, but got $null or empty.", + "FilePath": "C:\\github\\dbatools\\tests\\Copy-DbaXESessionTemplate.Tests.ps1", + "LineNumber": 29 + }, + { + "Command": "Export-DbatoolsConfig", + "ErrorMessage": "ArgumentException: Could not find type [Config[]]. Ensure that the assembly that contains that type is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Export-DbatoolsConfig.Tests.ps1", + "LineNumber": 33 + }, + { + "Command": "Export-DbatoolsConfig", + "ErrorMessage": "ArgumentException: Could not find type [ConfigScope]. Ensure that the assembly that contains that type is loaded.", + "FilePath": "C:\\github\\dbatools\\tests\\Export-DbatoolsConfig.Tests.ps1", + "LineNumber": 34 + } +] diff --git a/.aider/prompts/fix-template.md b/.aider/prompts/fix-template.md new file mode 100644 index 0000000000..0028498d86 --- /dev/null +++ b/.aider/prompts/fix-template.md @@ -0,0 +1,6 @@ +I recently migrated the dbatools test library from Pester v4 to Pester v5. Many tests pass but many don't and I think ther are some scoping issues. +Analyze the Pester test files for the dbatools PowerShell module along with their errors and line numbers. + +If there are any type errors, refer to types.md for a replace map. + +Analyze and update: /workspace/tests/--CMDNAME--.Tests.ps1 \ No newline at end of file diff --git a/.aider/prompts/types.md b/.aider/prompts/types.md new file mode 100644 index 0000000000..699c1fa184 --- /dev/null +++ b/.aider/prompts/types.md @@ -0,0 +1,137 @@ +| Name | FullName | +|----------------------------------|-----------------------------------------------------| +| MessageLevel[] | Dataplat.Dbatools.Message.MessageLevel[] | +| Certificate[] | Microsoft.SqlServer.Management.Smo.Certificate[] | +| Char | System.Char | +| TemporalHistoryRetentionPeriodUnit | Microsoft.SqlServer.Management.Smo.TemporalHistoryRetentionPeriodUnit | +| MailAccount[] | Microsoft.SqlServer.Management.Smo.Mail.MailAccount[] | +| Byte[] | System.Byte[] | +| DatabaseEncryptionKey[] | Microsoft.SqlServer.Management.Smo.DatabaseEncryptionKey[] | +| Sequence[] | Microsoft.SqlServer.Management.Smo.Sequence[] | +| Version | System.Version | +| Table[] | Microsoft.SqlServer.Management.Smo.Table[] | +| LockEscalationType | Microsoft.SqlServer.Management.Smo.LockEscalationType | +| String | System.String | +| X509Certificate2 | System.Security.Cryptography.X509Certificates.X509Certificate2 | +| Transfer | Microsoft.SqlServer.Management.Smo.Transfer | +| Endpoint[] | Microsoft.SqlServer.Management.Smo.Endpoint[] | +| PSCredential | System.Management.Automation.PSCredential | +| ManagementConnectionType | Dataplat.Dbatools.Connection.ManagementConnectionType | +| Int32[] | System.Int32[] | +| DateTime | System.DateTime | +| Config[] | Dataplat.Dbatools.Configuration.Config[] | +| DbaInstanceParameter | Dataplat.Dbatools.Parameter.DbaInstanceParameter | +| WSManSessionOptions | Microsoft.Management.Infrastructure.Options.WSManSessionOptions | +| ExtendedProperty[] | Microsoft.SqlServer.Management.Smo.ExtendedProperty[] | +| Object[] | System.Object[] | +| AlertCategory[] | Microsoft.SqlServer.Management.Smo.Agent.AlertCategory[] | +| CommandType | System.Data.CommandType | +| MessageLevel | Dataplat.Dbatools.Message.MessageLevel | +| SecureString | System.Security.SecureString | +| CompletionResult | Microsoft.SqlServer.Management.Smo.Agent.CompletionResult | +| ErrorCategory | System.Management.Automation.ErrorCategory | +| Credential[] | Microsoft.SqlServer.Management.Smo.Credential[] | +| JobSchedule[] | Microsoft.SqlServer.Management.Smo.Agent.JobSchedule[] | +| PSCredential[] | System.Management.Automation.PSCredential[] | +| AvailabilityDatabase[] | Microsoft.SqlServer.Management.Smo.AvailabilityDatabase[] | +| Job[] | Microsoft.SqlServer.Management.Smo.Agent.Job[] | +| Database | Microsoft.SqlServer.Management.Smo.Database | +| CompatibilityLevel | Microsoft.SqlServer.Management.Smo.CompatibilityLevel | +| ProxyAccount[] | Microsoft.SqlServer.Management.Smo.Agent.ProxyAccount[] | +| String[] | System.String[] | +| Nullable`1 | System.Nullable`1[[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] | +| SelectScriptPropertyParameter[] | Dataplat.Dbatools.Parameter.SelectScriptPropertyParameter[] | +| Login[] | Microsoft.SqlServer.Management.Smo.Login[] | +| SelectAliasParameter[] | Dataplat.Dbatools.Parameter.SelectAliasParameter[] | +| AvailabilityReplica | Microsoft.SqlServer.Management.Smo.AvailabilityReplica | +| Double | System.Double | +| SelectScriptMethodParameter[] | Dataplat.Dbatools.Parameter.SelectScriptMethodParameter[] | +| RegisteredServer[] | Microsoft.SqlServer.Management.RegisteredServers.RegisteredServer[] | +| Alert[] | Microsoft.SqlServer.Management.Smo.Agent.Alert[] | +| MasterKey[] | Microsoft.SqlServer.Management.Smo.MasterKey[] | +| BigInteger | System.Numerics.BigInteger | +| FileInfo[] | System.IO.FileInfo[] | +| AbortAfterWait | Microsoft.SqlServer.Management.Smo.AbortAfterWait | +| View[] | Microsoft.SqlServer.Management.Smo.View[] | +| DbaDateTime | Dataplat.Dbatools.Utility.DbaDateTime | +| SqlMail[] | Microsoft.SqlServer.Management.Smo.Mail.SqlMail[] | +| X509Certificate2[] | System.Security.Cryptography.X509Certificates.X509Certificate2[] | +| PSObject | System.Management.Automation.PSObject | +| ScriptingOptions | Microsoft.SqlServer.Management.Smo.ScriptingOptions | +| ServerGroup[] | Microsoft.SqlServer.Management.RegisteredServers.ServerGroup[] | +| Exception | System.Exception | +| Target[] | Microsoft.SqlServer.Management.XEvent.Target[] | +| DbaCmConnectionParameter[] | Dataplat.Dbatools.Parameter.DbaCmConnectionParameter[] | +| MaintenancePriority | Dataplat.Dbatools.Maintenance.MaintenancePriority | +| ErrorRecord | System.Management.Automation.ErrorRecord | +| SwitchParameter[] | System.Management.Automation.SwitchParameter[] | +| PSModuleInfo | System.Management.Automation.PSModuleInfo | +| DurabilityType | Microsoft.SqlServer.Management.Smo.DurabilityType | +| DbaInstanceConfidenceLevel | Dataplat.Dbatools.Discovery.DbaInstanceConfidenceLevel | +| PSObject[] | System.Management.Automation.PSObject[] | +| StringCollection | System.Collections.Specialized.StringCollection | +| Int64 | System.Int64 | +| DbaInstanceParameter[] | Dataplat.Dbatools.Parameter.DbaInstanceParameter[] | +| Database[] | Microsoft.SqlServer.Management.Smo.Database[] | +| Job | Microsoft.SqlServer.Management.Smo.Agent.Job | +| Server[] | Microsoft.SqlServer.Management.Smo.Server[] | +| AvailabilityGroupListener[] | Microsoft.SqlServer.Management.Smo.AvailabilityGroupListener[] | +| Guid | System.Guid | +| MailProfile[] | Microsoft.SqlServer.Management.Smo.Mail.MailProfile[] | +| SwitchParameter | System.Management.Automation.SwitchParameter | +| AvailabilityReplica[] | Microsoft.SqlServer.Management.Smo.AvailabilityReplica[] | +| ResourcePool[] | Microsoft.SqlServer.Management.Smo.ResourcePool[] | +| ExternalTableDistributionType | Microsoft.SqlServer.Management.Smo.ExternalTableDistributionType | +| Single | System.Single | +| RemoteDataArchiveMigrationState | Microsoft.SqlServer.Management.Smo.RemoteDataArchiveMigrationState | +| SqlSmoObject[] | Microsoft.SqlServer.Management.Smo.SqlSmoObject[] | +| ScriptBlock | System.Management.Automation.ScriptBlock | +| ConfigScope | Dataplat.Dbatools.Configuration.ConfigScope | +| RunspaceContainer[] | Dataplat.Dbatools.Runspace.RunspaceContainer[] | +| PartitionScheme[] | Microsoft.SqlServer.Management.Smo.PartitionScheme[] | +| FileInfo | System.IO.FileInfo | +| NamedSmoObject[] | Microsoft.SqlServer.Management.Smo.NamedSmoObject[] | +| ExternalTableRejectType | Microsoft.SqlServer.Management.Smo.ExternalTableRejectType | +| TimeSpan | System.TimeSpan | +| ServerConnection | Microsoft.SqlServer.Management.Common.ServerConnection | +| ServerRole[] | Microsoft.SqlServer.Management.Smo.ServerRole[] | +| DbaSelectParameter[] | Dataplat.Dbatools.Parameter.DbaSelectParameter[] | +| ScheduleBase[] | Microsoft.SqlServer.Management.Smo.Agent.ScheduleBase[] | +| IPAddress | System.Net.IPAddress | +| Object | System.Object | +| Session[] | Microsoft.SqlServer.Management.XEvent.Session[] | +| AsymmetricKey[] | Microsoft.SqlServer.Management.Smo.AsymmetricKey[] | +| Column[] | Microsoft.SqlServer.Management.Smo.Column[] | +| JobCategory[] | Microsoft.SqlServer.Management.Smo.Agent.JobCategory[] | +| Int32 | System.Int32 | +| Operator[] | Microsoft.SqlServer.Management.Smo.Agent.Operator[] | +| UInt32[] | System.UInt32[] | +| PartitionFunction[] | Microsoft.SqlServer.Management.Smo.PartitionFunction[] | +| AvailabilityGroup | Microsoft.SqlServer.Management.Smo.AvailabilityGroup | +| Version[] | System.Version[] | +| Boolean | System.Boolean | +| DbaInstanceDiscoveryType | Dataplat.Dbatools.Discovery.DbaInstanceDiscoveryType | +| JobServer[] | Microsoft.SqlServer.Management.Smo.Agent.JobServer[] | +| PSSession | System.Management.Automation.Runspaces.PSSession | +| DComSessionOptions | Microsoft.Management.Infrastructure.Options.DComSessionOptions | +| DwTableDistributionType | Microsoft.SqlServer.Management.Smo.DwTableDistributionType | +| TableViewBase[] | Microsoft.SqlServer.Management.Smo.TableViewBase[] | +| Hashtable | System.Collections.Hashtable | +| AvailabilityGroup[] | Microsoft.SqlServer.Management.Smo.AvailabilityGroup[] | +| Type | System.Type | +| UserDefinedFunction[] | Microsoft.SqlServer.Management.Smo.UserDefinedFunction[] | +| ConfigurationValueType | Dataplat.Dbatools.Configuration.ConfigurationValueType | +| ManagementConnectionType[] | Dataplat.Dbatools.Connection.ManagementConnectionType[] | +| Check[] | Microsoft.SqlServer.Management.Smo.Check[] | +| IPAddress[] | System.Net.IPAddress[] | +| User[] | Microsoft.SqlServer.Management.Smo.User[] | +| SqlBulkCopy | Microsoft.Data.SqlClient.SqlBulkCopy | +| WorkloadGroup[] | Microsoft.SqlServer.Management.Smo.WorkloadGroup[] | +| MessageLevelModifier[] | Dataplat.Dbatools.Message.MessageLevelModifier[] | +| ErrorRecord[] | System.Management.Automation.ErrorRecord[] | +| LinkedServer[] | Microsoft.SqlServer.Management.Smo.LinkedServer[] | +| Server | Microsoft.SqlServer.Management.Smo.Server | +| DbaInstanceScanType[] | Dataplat.Dbatools.Discovery.DbaInstanceScanType[] | +| ResourceGovernor[] | Microsoft.SqlServer.Management.Smo.ResourceGovernor[] | +| Hashtable[] | System.Collections.Hashtable[] | +