Files
ZertoApiWrapper/ZertoApiWrapper/Public/Get-ZertoVra.ps1
T
2019-04-16 22:46:21 -04:00

123 lines
3.9 KiB
PowerShell

<# .ExternalHelp ./en-us/ZertoApiWrapper-help.xml #>
function Get-ZertoVra {
[cmdletbinding(
DefaultParameterSetName = "main"
)]
param(
[Parameter(
ParameterSetName = "ipConfigurationTypes",
HelpMessage = "Returns Valid VRA IP configuration types"
)]
[switch]$ipconfigurationtypes,
[Parameter(
ParameterSetName = "statuses",
HelpMessage = "Returns Valid VRA statuses"
)]
[switch]$statuses,
[Parameter(
ParameterSetName = "vraIdentifier",
HelpMessage = "Returns information for provided VRA identifier(s)"
)]
[ValidateNotNullOrEmpty()]
[Alias("vraId")]
[string[]]$vraIdentifier,
[Parameter(
ParameterSetName = "filter",
HelpMessage = "VRA Name to return information for."
)]
[ValidateNotNullOrEmpty()]
[string]$vraName,
[Parameter(
ParameterSetName = "filter",
HelpMessage = "Search for VRAs in a specific status"
)]
[ValidateNotNullOrEmpty()]
[string]$status,
[Parameter(
ParameterSetName = "filter",
HelpMessage = "Search for VRAs of a specific version"
)]
[ValidateNotNullOrEmpty()]
[string]$vraVersion,
[Parameter(
ParameterSetName = "filter",
HelpMessage = "Search for VRAs paired to a specific host version"
)]
[ValidateNotNullOrEmpty()]
[string]$hostVersion,
[Parameter(
ParameterSetName = "filter",
HelpMessage = "Search for a VRA with the specified IP address"
)]
[ValidateNotNullOrEmpty()]
[string]$ipAddress,
[Parameter(
ParameterSetName = "filter",
HelpMessage = "Search for VRAs belonging to a specific group"
)]
[ValidateNotNullOrEmpty()]
[string]$vraGroup,
[Parameter(
ParameterSetName = "filter",
HelpMessage = "Search for VRAs on a specific datastore"
)]
[ValidateNotNullOrEmpty()]
[string]$datastoreName,
[Parameter(
ParameterSetName = "filter",
HelpMessage = "Search for VRAs on a specific datastore cluster"
)]
[ValidateNotNullOrEmpty()]
[string]$datastoreClusterName,
[Parameter(
ParameterSetName = "filter",
HelpMessage = "Search for VRAs on a specific network"
)]
[ValidateNotNullOrEmpty()]
[string]$networkName
)
begin {
$baseUri = "vras"
$returnObject = @()
}
process {
# Process based on ParameterSetName
switch ( $PSCmdlet.ParameterSetName ) {
# When called without params, return all VRAs
"main" {
$uri = $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
# When vra ids are provided, return for each id provided
"vraIdentifier" {
$returnObject = foreach ( $vraId in $vraIdentifier ) {
$uri = "{0}/{1}" -f $baseUri, $vraId
Invoke-ZertoRestRequest -uri $uri
}
}
# When filter is requested, search based on provided data.
"filter" {
$filter = Get-ZertoApiFilter -filterTable $PSBoundParameters
$uri = "{0}{1}" -f $baseUri, $filter
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
# When a different ParameterSetName is requested, query against that name
default {
$uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName.ToLower()
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
}
}
end {
return $returnObject
}
}