function Resolve-ConfigurationDataParameterSecrets { [CmdletBinding()] Param( [Parameter(Mandatory=$true)] [System.Collections.Hashtable] $ConfigurationData, [Parameter(Mandatory=$false)] [hashtable] $ProviderSettings = @{} ) $ResolvedConfigurationData = $ConfigurationData.Clone() if($ResolvedConfigurationData.ContainsKey("Parameters")){ $ResolvedConfigurationData.Parameters = $ResolvedConfigurationData.Parameters.Clone() foreach($Parameter in @($ResolvedConfigurationData.Parameters.GetEnumerator())){ $Definition = $Parameter.Value if(-not (Test-ConfigurationDataMap -Value $Definition)){ continue } $Definition = $Definition.Clone() $ResolvedConfigurationData.Parameters[$Parameter.Name] = $Definition $TypeName = [string](Get-ConfigurationDataMapValue -Map $Definition -Key "Type" -DefaultValue "") if($TypeName -notin @("credential", "secureString")){ continue } $ExpectedType = $TypeName.ToLowerInvariant() foreach($ValueKey in @("Value", "DefaultValue")){ if((Test-ConfigurationDataMapContainsKey -Map $Definition -Key $ValueKey) -and (Test-ConfigurationDataSecretReference -Value $Definition[$ValueKey])){ $Definition[$ValueKey] = Resolve-ConfigurationDataSecretReference -Reference $Definition[$ValueKey] -ExpectedType $ExpectedType -ProviderSettings $ProviderSettings } } } } return $ResolvedConfigurationData }