Implement Filter functionality in Function

This commit is contained in:
Wes Carroll
2019-02-20 16:18:08 -05:00
parent 51c806a971
commit 390404249c
+49 -17
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,20 +35,34 @@ function Get-ZertoVra {
} }
process { process {
if ( $ipconfigurationtypes ) { switch ( $PSCmdlet.ParameterSetName ) {
$uri = "{0}/ipconfigurationtypes" -f $baseUri "filter" {
$returnObject = Invoke-ZertoRestRequest -uri $uri $filter = Get-ZertoApiFilter -filterTable $PSBoundParameters
} elseif ( $statuses ) { $uri = "{0}{1}" -f $baseUri, $filter
$uri = "{0}/statuses" -f $baseUri $returnObject = Invoke-ZertoRestRequest -uri $uri
$returnObject = Invoke-ZertoRestRequest -uri $uri }
} elseif ( $PSCmdlet.ParameterSetName -eq "vraIdentifierifier" ) {
$returnObject = foreach ( $vraId in $vraIdentifier ) { "ipConfigurationTypes" {
$uri = "{0}/{1}" -f $baseUri, $vraId $uri = "{0}/ipconfigurationtypes" -f $baseUri
Invoke-ZertoRestRequest -uri $uri $returnObject = Invoke-ZertoRestRequest -uri $uri
}
"statuses" {
$uri = "{0}/statuses" -f $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
"vraIdentifierifier" {
$returnObject = foreach ( $vraId in $vraIdentifier ) {
$uri = "{0}/{1}" -f $baseUri, $vraId
Invoke-ZertoRestRequest -uri $uri
}
}
default {
$uri = $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
} }
} else {
$uri = $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
} }
} }