function Resolve-ConfigurationDataParameterSecrets { [CmdletBinding()] Param( [Parameter(Mandatory=$true)] [System.Collections.Hashtable] $ConfigurationData, [Parameter(Mandatory=$false)] [hashtable] $ProviderSettings = @{}, [Parameter(Mandatory=$false)] [switch] $UseDummySecrets ) $ResolvedConfigurationData = $ConfigurationData.Clone() $Context = New-ConfigurationDataResolutionContext -ConfigurationData $ResolvedConfigurationData 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", "string")){ continue } $ExpectedType = $TypeName.ToLowerInvariant() foreach($ValueKey in @("Value", "DefaultValue")){ if((Test-ConfigurationDataMapContainsKey -Map $Definition -Key $ValueKey) -and (Test-ConfigurationDataSecretReference -Value $Definition[$ValueKey])){ $SecretReference = $Definition[$ValueKey] if($UseDummySecrets){ $Definition[$ValueKey] = New-ConfigurationDataDummySecretValue -ExpectedType $ExpectedType -Reference $SecretReference -ParameterName $Parameter.Name }else{ $Definition[$ValueKey] = Resolve-ConfigurationDataSecretReference -Reference $SecretReference -ExpectedType $ExpectedType -ProviderSettings $ProviderSettings -Context $Context } if($ExpectedType -eq "credential" -and $UseDummySecrets -and (Test-ConfigurationDataMapContainsKey -Map $SecretReference -Key "Domain")){ $Domain = Get-ConfigurationDataMapValue -Map $SecretReference -Key "Domain" $Domain = Resolve-ConfigurationDataValue -Value $Domain -Context $Context $Definition[$ValueKey] = ConvertTo-ConfigurationDataDomainCredential -Credential $Definition[$ValueKey] -Domain ([string]$Domain) } } } } } return $ResolvedConfigurationData }