Implement Filter functionality in Function

This commit is contained in:
Wes Carroll
2019-02-20 16:18:08 -05:00
parent 51c806a971
commit 390404249c
+40 -8
View File
@@ -1,14 +1,32 @@
function Get-ZertoVra { function Get-ZertoVra {
[cmdletbinding( [cmdletbinding(
DefaultParameterSetName = "Default" DefaultParameterSetName = "main"
)] )]
param( param(
[Parameter( ParameterSetName = "ipConfig" )] [Parameter( ParameterSetName = "ipConfigurationTypes" )]
[switch]$ipconfigurationtypes, [switch]$ipconfigurationtypes,
[Parameter( ParameterSetName = "Statuses" )] [Parameter( ParameterSetName = "statuses" )]
[switch]$statuses, [switch]$statuses,
[Parameter( ParameterSetName = "vraIdentifier" )] [Parameter( ParameterSetName = "vraIdentifier" )]
[string[]]$vraIdentifier [string[]]$vraIdentifier,
[Parameter( ParameterSetName = "filter" )]
[string]$vraName,
[Parameter( ParameterSetName = "filter" )]
[string]$status,
[Parameter( ParameterSetName = "filter" )]
[string]$vraVersion,
[Parameter( ParameterSetName = "filter" )]
[string]$hostVersion,
[Parameter( ParameterSetName = "filter" )]
[string]$ipAddress,
[Parameter( ParameterSetName = "filter" )]
[string]$vraGroup,
[Parameter( ParameterSetName = "filter" )]
[string]$datastoreName,
[Parameter( ParameterSetName = "filter" )]
[string]$datastoreClusterName,
[Parameter( ParameterSetName = "filter" )]
[string]$networkName
) )
begin { begin {
@@ -17,22 +35,36 @@ function Get-ZertoVra {
} }
process { process {
if ( $ipconfigurationtypes ) { switch ( $PSCmdlet.ParameterSetName ) {
"filter" {
$filter = Get-ZertoApiFilter -filterTable $PSBoundParameters
$uri = "{0}{1}" -f $baseUri, $filter
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
"ipConfigurationTypes" {
$uri = "{0}/ipconfigurationtypes" -f $baseUri $uri = "{0}/ipconfigurationtypes" -f $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri $returnObject = Invoke-ZertoRestRequest -uri $uri
} elseif ( $statuses ) { }
"statuses" {
$uri = "{0}/statuses" -f $baseUri $uri = "{0}/statuses" -f $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri $returnObject = Invoke-ZertoRestRequest -uri $uri
} elseif ( $PSCmdlet.ParameterSetName -eq "vraIdentifierifier" ) { }
"vraIdentifierifier" {
$returnObject = foreach ( $vraId in $vraIdentifier ) { $returnObject = foreach ( $vraId in $vraIdentifier ) {
$uri = "{0}/{1}" -f $baseUri, $vraId $uri = "{0}/{1}" -f $baseUri, $vraId
Invoke-ZertoRestRequest -uri $uri Invoke-ZertoRestRequest -uri $uri
} }
} else { }
default {
$uri = $baseUri $uri = $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri $returnObject = Invoke-ZertoRestRequest -uri $uri
} }
} }
}
end { end {
return $returnObject return $returnObject