SqlServerDsc.psd1

@{
    # Script module or binary module file associated with this manifest.
    RootModule           = 'SqlServerDsc.psm1'

    # Version number of this module.
    ModuleVersion        = '16.3.0'

    # ID used to uniquely identify this module
    GUID                 = '693ee082-ed36-45a7-b490-88b07c86b42f'

    # Author of this module
    Author               = 'DSC Community'

    # Company or vendor of this module
    CompanyName          = 'DSC Community'

    # Copyright statement for this module
    Copyright            = 'Copyright the DSC Community contributors. All rights reserved.'

    # Description of the functionality provided by this module
    Description          = 'Module with DSC resources for deployment and configuration of Microsoft SQL Server.'

    # Minimum version of the Windows PowerShell engine required by this module
    PowerShellVersion    = '5.0'

    # Minimum version of the common language runtime (CLR) required by this module
    CLRVersion           = '4.0'

    # Functions to export from this module
    FunctionsToExport    = @('Add-SqlDscNode','Add-SqlDscTraceFlag','Complete-SqlDscFailoverCluster','Complete-SqlDscImage','Connect-SqlDscDatabaseEngine','ConvertFrom-SqlDscDatabasePermission','ConvertFrom-SqlDscServerPermission','ConvertTo-SqlDscDatabasePermission','ConvertTo-SqlDscServerPermission','Disable-SqlDscAudit','Disconnect-SqlDscDatabaseEngine','Enable-SqlDscAudit','Get-SqlDscAudit','Get-SqlDscDatabasePermission','Get-SqlDscManagedComputer','Get-SqlDscManagedComputerService','Get-SqlDscPreferredModule','Get-SqlDscServerPermission','Get-SqlDscStartupParameter','Get-SqlDscTraceFlag','Import-SqlDscPreferredModule','Initialize-SqlDscRebuildDatabase','Install-SqlDscServer','Invoke-SqlDscQuery','New-SqlDscAudit','Remove-SqlDscAudit','Remove-SqlDscNode','Remove-SqlDscTraceFlag','Repair-SqlDscServer','Set-SqlDscAudit','Set-SqlDscDatabasePermission','Set-SqlDscServerPermission','Set-SqlDscStartupParameter','Set-SqlDscTraceFlag','Test-SqlDscIsDatabasePrincipal','Test-SqlDscIsLogin','Test-SqlDscIsSupportedFeature','Uninstall-SqlDscServer')

    # Cmdlets to export from this module
    CmdletsToExport      = @()

    # Variables to export from this module
    VariablesToExport    = @()

    # Aliases to export from this module
    AliasesToExport      = @()

    DscResourcesToExport = @('SqlAudit','SqlDatabasePermission','SqlPermission','SqlAG','SqlAGDatabase','SqlAgentAlert','SqlAgentFailsafe','SqlAgentOperator','SqlAGListener','SqlAGReplica','SqlAlias','SqlAlwaysOnService','SqlConfiguration','SqlDatabase','SqlDatabaseDefaultLocation','SqlDatabaseMail','SqlDatabaseObjectPermission','SqlDatabaseRole','SqlDatabaseUser','SqlEndpoint','SqlEndpointPermission','SqlLogin','SqlMaxDop','SqlMemory','SqlProtocol','SqlProtocolTcpIp','SqlReplication','SqlRole','SqlRS','SqlRSSetup','SqlScript','SqlScriptQuery','SqlSecureConnection','SqlServiceAccount','SqlSetup','SqlTraceFlag','SqlWaitForAG','SqlWindowsFirewall')

    RequiredAssemblies   = @()

    # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
    PrivateData          = @{

        PSData = @{
            # Set to a prerelease string value if the release should be a prerelease.
            Prerelease   = ''

            # Tags applied to this module. These help with module discovery in online galleries.
            Tags         = @('DesiredStateConfiguration', 'DSC', 'DSCResourceKit', 'DSCResource')

            # A URL to the license for this module.
            LicenseUri   = 'https://github.com/dsccommunity/SqlServerDsc/blob/main/LICENSE'

            # A URL to the main website for this project.
            ProjectUri   = 'https://github.com/dsccommunity/SqlServerDsc'

            # A URL to an icon representing this module.
            IconUri      = 'https://dsccommunity.org/images/DSC_Logo_300p.png'

            # ReleaseNotes of this module
            ReleaseNotes = '## [16.3.0] - 2023-04-26
 
### Remove
 
- SqlServerDsc.Common
  - Removed the function `Invoke-Query`. It is replaced by the command
    `Invoke-SqlDscQuery` ([issue #1902](https://github.com/dsccommunity/SqlServerDsc/issues/1902)).
 
### Added
 
- New public commands:
  - `Disconnect-SqlDscDatabaseEngine` - Disconnects from a SQL Server instance
    that was previously connected to using `Connect-SqlDscDatabaseEngine`.
  - `Test-SqlDscIsSupportedFeature` - Evaluates if a feature is supported by a specific
    Microsoft SQL Server major version. _This command must be extended with_
    _a full list of when features were added and removed in each major_
    _version to fully work_.
- New private commands:
  - `ConvertTo-RedactedText` - Used to redact sensitive information from
    text that then can be used in console output like verbose messages.
  - `Get-FileVersionInformation` - Returns the version information
    for a file.
  - `Assert-Feature` - Throws an exception if a feature is not supported
    for a specific Microsoft SQL Server major version.
- SqlServerDsc.Common
  - `Connect-SQL`.
    - Add new parameter `Encrypt`.
- `Connect-SqlDscDatabaseEngine`
  - Add new parameter `Encrypt`.
- `Invoke-SqlDscQuery`
  - Add new parameter `Encrypt`.
 
### Changed
 
- Now able to use [DbaTools](https://dbatools.io) as a preferred module
  (with some restrictions).
- Gitversion no longer evaluates bumping major version using the word "major".
- Update private commands:
  - `Assert-SetupActionProperties` was changed to throw
    an exception when a feature is not supported (calls `Assert-Feature`).
    The private command is indirectly used by the setup action commands.
  - `Invoke-SetupAction` was changed to expand environment variables that
    is passed as the media path.
- SqlSetup
  - Update to support checking non-supported features using the command
    `SqlDscIsSupportedFeature` ([issue #1872](https://github.com/dsccommunity/SqlServerDsc/issues/1872)).
- Update SqlServerDsc.Common Module:
  - `Connect-SQL` - Function will now wait for the SMO Status property to be
    ''Online'' or throw an exception if time exceeds the statement timeout.
- SqlRS
  - Now uses the command `Invoke-SqlDscQuery` instead of `Invoke-SqlCmd`
   ([issue #1917](https://github.com/dsccommunity/SqlServerDsc/issues/1917)).
  - The parameter `Encrypt` has changed so that `Mandatory` or `Strict`
    will turn on encryption when connecting to the database instance.
- SqlDatabaseMail
  - Update integration tests to verify multiple instances of SqlDatabaseMail
    in the same configuration ([issue #1871](https://github.com/dsccommunity/SqlServerDsc/issues/1871)).
  - Changed comparison logic to use `Compare-DscParameterState` ([issue #1871](https://github.com/dsccommunity/SqlServerDsc/issues/1871)).
  - Return the correct profile name and mail server name from the current
    state ([issue #1871](https://github.com/dsccommunity/SqlServerDsc/issues/1871)).
- `Invoke-SqlDscQuery`
  - Now shows the correct instance name when called using a server object
    ([issue #1918](https://github.com/dsccommunity/SqlServerDsc/issues/1918)).
  - Correctly outputs query in verbose message when parameter `RedactText`
    is not passed.
- `Import-SqlDscPreferredModule`
  - Better handle preferred module and re-uses logic in `Get-SqlDscPreferredModule`.
 
'


        } # End of PSData hashtable

    } # End of PrivateData hashtable
}