Private/Resolve-CloudProvider.ps1
|
function Resolve-CloudProvider { [CmdletBinding()] param( [string]$Provider, [string]$ParameterSetName ) if (-not [string]::IsNullOrWhiteSpace($Provider)) { if ($Provider -notin @('Azure', 'AWS', 'GCP')) { throw [System.ArgumentException]::new( "Provider '$Provider' is not supported. Valid values are Azure, AWS, and GCP." ) } if (-not [string]::IsNullOrWhiteSpace($ParameterSetName)) { Assert-ProviderParameterSet -Provider $Provider -ParameterSetName $ParameterSetName } return $Provider } $providerFromParameterSet = switch ($ParameterSetName) { 'Azure' { 'Azure' } 'AWS' { 'AWS' } 'GCP' { 'GCP' } default { $null } } if (-not [string]::IsNullOrWhiteSpace($providerFromParameterSet)) { return $providerFromParameterSet } $currentProvider = Get-CurrentCloudProvider if (-not [string]::IsNullOrWhiteSpace($currentProvider)) { return $currentProvider } throw [System.ArgumentException]::new( "No provider was supplied and no current provider is set. Pass -Provider or run 'Connect-Cloud -Provider <Azure|AWS|GCP>' first." ) } |