Files
ZertoApiWrapper/Functions/Get-ZertoProtectedVm.ps1
T
2019-02-19 16:36:27 -05:00

61 lines
2.0 KiB
PowerShell

function Get-ZertoProtectedVm {
[cmdletbinding( DefaultParameterSetName = "main" )]
param (
[Parameter( ParameterSetName = "vmIdentifier", Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true )]
[string[]]$vmIdentifier,
[Parameter( ParameterSetName = "filter" )]
[string]$vpgName,
[Parameter( ParameterSetName = "filter" )]
[string]$vmName,
[Parameter( ParameterSetName = "filter" )]
[string]$status,
[Parameter( ParameterSetName = "filter" )]
[string]$substatus,
[Parameter( ParameterSetName = "filter" )]
[string]$organizationName,
[Parameter( ParameterSetName = "filter" )]
[string]$priority,
[Parameter( ParameterSetName = "filter" )]
[string]$protectedSiteType,
[Parameter( ParameterSetName = "filter" )]
[string]$recoverySiteType,
[Parameter( ParameterSetName = "filter" )]
[string]$protectedSiteIdentifier,
[Parameter( ParameterSetName = "filter" )]
[string]$recoverySiteIdentifier
)
begin {
$baseUri = "vms"
$returnObject = [System.Collections.ArrayList]@()
}
process {
switch ( $PSCmdlet.ParameterSetName ) {
"main" {
$results = Invoke-ZertoRestRequest -uri $baseUri
$returnObject.Add($results) | Out-Null
}
"vmIdentifier" {
foreach ( $id in $vmIdentifier ) {
$uri = "{0}/{1}" -f $baseUri, $id
$results = Invoke-ZertoRestRequest -uri $uri
$returnObject.Add($results)
}
}
"filter" {
$filter = Get-ZertoApiFilter -filterTable $PSBoundParameters
$uri = "{0}{1}" -f $baseUri, $filter
$results = New-ZertoRestRequest -uri $uri
$returnObject.Add($results) | Out-Null
}
}
}
end {
return $returnObject
}
}