function Resolve-DSCConfigurationData { [CmdletBinding()] Param( [Parameter(Mandatory=$true, ValueFromPipeline=$true)] [System.Collections.Hashtable] $ConfigurationData, [Parameter(Mandatory=$false)] [hashtable] $ProviderSettings = @{}, [Parameter(Mandatory=$false)] [string] $ProviderSettingsPath, [Parameter(Mandatory=$false)] [switch] $SkipSecrets ) process { if(-not [string]::IsNullOrWhiteSpace($ProviderSettingsPath)){ if(-not (Test-Path -Path $ProviderSettingsPath -PathType Leaf)){ throw "Provider settings file [$ProviderSettingsPath] was not found." } $ProviderSettings = Import-PowerShellDataFile -Path $ProviderSettingsPath } if(-not $SkipSecrets){ Unlock-ConfigurationDataSecretManagementVault -ProviderSettings $ProviderSettings $ConfigurationData = Resolve-ConfigurationDataParameterSecrets -ConfigurationData $ConfigurationData -ProviderSettings $ProviderSettings } $Context = New-ConfigurationDataResolutionContext -ConfigurationData $ConfigurationData return Resolve-ConfigurationDataValue -Value $ConfigurationData -Context $Context } }