186 lines
6.6 KiB
PowerShell
186 lines
6.6 KiB
PowerShell
<# .ExternalHelp ./en-us/ZertoApiWrapper-help.xml #>
|
|
function Get-ZertoVirtualizationSite {
|
|
[cmdletbinding( DefaultParameterSetName = "main" )]
|
|
param(
|
|
[Parameter(
|
|
ParameterSetName = "siteIdentifier",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "datastoreClusters",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "datastores",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "hostClusters",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "hosts",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "networks",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "resourcePools",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "vms",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "devices",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "folders",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "repositories",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[Alias("siteId")]
|
|
[string]$siteIdentifier,
|
|
[Parameter(
|
|
ParameterSetName = "datastoreClusters",
|
|
Mandatory = $true,
|
|
HelpMessage = "When selected, will return all datastore clusters at the specified site."
|
|
)]
|
|
[switch]$datastoreClusters,
|
|
[Parameter(
|
|
ParameterSetName = "datastores",
|
|
Mandatory = $true,
|
|
HelpMessage = "When selected, will return all datastores at the specified site."
|
|
)]
|
|
[switch]$datastores,
|
|
[Parameter(
|
|
ParameterSetName = "devices",
|
|
Mandatory = $true,
|
|
HelpMessage = "When selected, will return all devices at the specified site."
|
|
)]
|
|
[switch]$devices,
|
|
[Parameter(
|
|
ParameterSetName = "devices",
|
|
Mandatory = $false,
|
|
HelpMessage = "The identifier of the host for which to return all devices."
|
|
)]
|
|
[Parameter(
|
|
ParameterSetName = "hosts",
|
|
Mandatory = $false,
|
|
HelpMessage = "The identifier of the host at the selected site to return information for only one host."
|
|
)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[Alias("hostId")]
|
|
[string]$hostIdentifier,
|
|
[Parameter(
|
|
ParameterSetName = "folders",
|
|
Mandatory = $true,
|
|
HelpMessage = "Return all folders at the selected site."
|
|
)]
|
|
[switch]$folders,
|
|
[Parameter(
|
|
ParameterSetName = "hostClusters",
|
|
Mandatory = $true,
|
|
HelpMessage = "Return all host clusters at the selected site."
|
|
)]
|
|
[switch]$hostClusters,
|
|
[Parameter(
|
|
ParameterSetName = "hosts",
|
|
Mandatory = $true,
|
|
HelpMessage = "Return all hosts at the selected site. If a host identifier is provided, return only that host."
|
|
)]
|
|
[switch]$hosts,
|
|
[Parameter(
|
|
ParameterSetName = "networks",
|
|
Mandatory = $true,
|
|
HelpMessage = "Return all networks at the selected site."
|
|
)]
|
|
[switch]$networks,
|
|
[Parameter(
|
|
ParameterSetName = "resourcePools",
|
|
Mandatory = $true,
|
|
HelpMessage = "Return all resource pools at the selected site."
|
|
)]
|
|
[switch]$resourcePools,
|
|
[Parameter(
|
|
ParameterSetName = "vms",
|
|
Mandatory = $true,
|
|
HelpMessage = "Return all VMs at the selected site."
|
|
)]
|
|
[switch]$vms,
|
|
[Parameter(
|
|
ParameterSetName = "repositories",
|
|
Mandatory = $true,
|
|
HelpMessage = "The identifier of the Zerto Virtual Manager site."
|
|
)]
|
|
[switch]$repositories
|
|
)
|
|
|
|
begin {
|
|
|
|
}
|
|
|
|
process {
|
|
# Return information based on ParameterSetName invoked.
|
|
$baseUri = "virtualizationsites"
|
|
switch ( $PSCmdlet.ParameterSetName ) {
|
|
# If no ParameterSetName is specified, return all data
|
|
"main" {
|
|
$uri = $baseUri
|
|
}
|
|
|
|
# If devices is specified along with a hostId, build return just that host information, otherwise return all devices at the site
|
|
"devices" {
|
|
if ( $PSBoundParameters.ContainsKey( "hostIdentifier" ) ) {
|
|
$uri = "{0}/{1}/devices?hostIdentifier={2}" -f $baseUri, $siteIdentifier, $hostIdentifier
|
|
} else {
|
|
$uri = "{0}/{1}/devices" -f $baseUri, $siteIdentifier
|
|
}
|
|
}
|
|
|
|
# If hosts is specified along with a hostID, build and return just that host information, otherwise return all hosts at the site
|
|
"hosts" {
|
|
if ( $PSBoundParameters.ContainsKey( "hostIdentifier" ) ) {
|
|
$uri = "{0}/{1}/hosts/{2}" -f $baseUri, $siteIdentifier, $hostIdentifier
|
|
} else {
|
|
$uri = "{0}/{1}/hosts" -f $baseUri, $siteIdentifier
|
|
}
|
|
}
|
|
|
|
# If siteIdentifier is specified, return information for that site.
|
|
"siteIdentifier" {
|
|
$uri = "{0}/{1}" -f $baseUri, $siteIdentifier
|
|
}
|
|
|
|
# If a different ParameterSetName is selected, use that information to build the URI and return that information
|
|
default {
|
|
$uri = "{0}/{1}/{2}" -f $baseUri, $siteIdentifier, $PSCmdlet.ParameterSetName.ToLower()
|
|
}
|
|
}
|
|
Invoke-ZertoRestRequest -uri $uri
|
|
}
|
|
|
|
end {
|
|
|
|
}
|
|
}
|