diff --git a/ZertoApiWrapper/Public/Get-ZertoTask.ps1 b/ZertoApiWrapper/Public/Get-ZertoTask.ps1 index 09d4ef1..f485d63 100644 --- a/ZertoApiWrapper/Public/Get-ZertoTask.ps1 +++ b/ZertoApiWrapper/Public/Get-ZertoTask.ps1 @@ -1,21 +1,45 @@ function Get-ZertoTask { [cmdletbinding( DefaultParameterSetName = "main" )] param ( - [Parameter( ParameterSetName = "taskIdentifier" )] + [Parameter( + ParameterSetName = "taskIdentifier", + HelpMessage = "The identifier(s) for which task information is to be returned." + )] [string[]]$taskIdentifier, - [Parameter( ParameterSetName = "types" )] + [Parameter( + ParameterSetName = "types", + HelpMessage = "Returns all task types." + )] [switch]$types, - [Parameter ( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Tasks started before this time (inclusive) are displayed. Valid formats include: 'yyyy-MM-ddTHH:mm:ss.fffZ', 'yyyy-MM-ddTHH:mm:ssZ', 'yyyy-MM-ddTHH:mmZ', 'yyyy-MM-ddTHHZ', 'yyyy-MM-dd', 'yyyy-MM', 'yyyy'. Adding Z to the end of the time sets the time to UTC." + )] [string]$startedBeforeDate, - [Parameter ( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Tasks started after this time (inclusive) are displayed. Valid formats include: 'yyyy-MM-ddTHH:mm:ss.fffZ', 'yyyy-MM-ddTHH:mm:ssZ', 'yyyy-MM-ddTHH:mmZ', 'yyyy-MM-ddTHHZ', 'yyyy-MM-dd', 'yyyy-MM', 'yyyy'. Adding Z to the end of the time sets the time to UTC." + )] [string]$startedAfterDate, - [Parameter ( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Tasks completed after this time (inclusive) are displayed. Valid formats include: 'yyyy-MM-ddTHH:mm:ss.fffZ', 'yyyy-MM-ddTHH:mm:ssZ', 'yyyy-MM-ddTHH:mmZ', 'yyyy-MM-ddTHHZ', 'yyyy-MM-dd', 'yyyy-MM', 'yyyy'. Adding Z to the end of the time sets the time to UTC." + )] [string]$completedAfterDate, - [Parameter ( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Tasks completed before this time (inclusive) are displayed. Valid formats include: 'yyyy-MM-ddTHH:mm:ss.fffZ', 'yyyy-MM-ddTHH:mm:ssZ', 'yyyy-MM-ddTHH:mmZ', 'yyyy-MM-ddTHHZ', 'yyyy-MM-dd', 'yyyy-MM', 'yyyy'. Adding Z to the end of the time sets the time to UTC." + )] [string]$completedBeforeDate, - [Parameter ( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The type of task. For the description of the tasks, refer to the Zerto Virtual Replication documentation about monitoring tasks. Please see Zerto API Documentation for possible types and values." + )] [string]$type, - [Parameter ( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The status of the task. Possible values are: '1' or 'InProgress', '3' or 'Paused', '4' or 'Failed', '6' or 'Completed', '7' or 'Cancelling'" + )] [string]$status ) @@ -25,17 +49,22 @@ function Get-ZertoTask { } process { + # Process based on ParameterSetName switch ( $PSCmdlet.ParameterSetName ) { + + # If function is called without parameters, return all events. "main" { $returnObject = Invoke-ZertoRestRequest -uri $baseUri } + # If function is called with Filter ParameterSetName, build filter and return results "filter" { $filter = Get-ZertoApiFilter -filterTable $PSBoundParameters $uri = "{0}{1}" -f $baseUri, $filter $returnObject = Invoke-ZertoRestRequest -uri $uri } + # If taskIdentifier(s) is supplied, return information for each id supplied. "taskIdentifier" { $returnObject = foreach ( $id in $taskIdentifier ) { $uri = "{0}/{1}" -f $baseUri, $id @@ -43,8 +72,9 @@ function Get-ZertoTask { } } + # If a different ParameterSetName is supplied, use that to build the URI and submit. default { - $uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName + $uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName.ToLower() $returnObject = Invoke-ZertoRestRequest -uri $uri } } diff --git a/ZertoApiWrapper/Public/Get-ZertoVirtualizationSite.ps1 b/ZertoApiWrapper/Public/Get-ZertoVirtualizationSite.ps1 index ff86f67..b4cbb11 100644 --- a/ZertoApiWrapper/Public/Get-ZertoVirtualizationSite.ps1 +++ b/ZertoApiWrapper/Public/Get-ZertoVirtualizationSite.ps1 @@ -1,37 +1,121 @@ function Get-ZertoVirtualizationSite { [cmdletbinding( DefaultParameterSetName = "main" )] param( - [Parameter( ParameterSetName = "siteIdentifier", Mandatory = $true )] - [Parameter( ParameterSetName = "datastoreClusters", Mandatory = $true )] - [Parameter( ParameterSetName = "datastores", Mandatory = $true )] - [Parameter( ParameterSetName = "hostClusters", Mandatory = $true )] - [Parameter( ParameterSetName = "hosts", Mandatory = $true )] - [Parameter( ParameterSetName = "networks", Mandatory = $true )] - [Parameter( ParameterSetName = "resourcePools", Mandatory = $true )] - [Parameter( ParameterSetName = "vms", Mandatory = $true )] - [Parameter( ParameterSetName = "devices", Mandatory = $true )] - [Parameter( ParameterSetName = "folders", Mandatory = $true )] + [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." + )] [string]$siteIdentifier, - [Parameter( ParameterSetName = "datastoreClusters", Mandatory = $true )] + [Parameter( + ParameterSetName = "datastoreClusters", + Mandatory = $true, + HelpMessage = "When selected, will return all datastore clusters at the specified site." + )] [switch]$datastoreClusters, - [Parameter( ParameterSetName = "datastores", Mandatory = $true )] + [Parameter( + ParameterSetName = "datastores", + Mandatory = $true, + HelpMessage = "When selected, will return all datastores at the specified site." + )] [switch]$datastores, - [Parameter( ParameterSetName = "devices", Mandatory = $true )] + [Parameter( + ParameterSetName = "devices", + Mandatory = $true, + HelpMessage = "When selected, will return all devices at the specified site." + )] [switch]$devices, - [Parameter( ParameterSetName = "devices", Mandatory = $false )] - [Parameter( ParameterSetName = "hosts", Mandatory = $false )] + [Parameter( + ParameterSetName = "devices", + andatory = $false, + HelpMessage = "The identifier of the host for which to return all devices." + )] + [Parameter( + ParameterSetName = "hosts", + andatory = $false, + HelpMessage = "The identifier of the host at the selected site to return information for only one host." + )] [string]$hostIdentifier, - [Parameter( ParameterSetName = "folders", Mandatory = $true )] + [Parameter( + ParameterSetName = "folders", + Mandatory = $true, + HelpMessage = "Return all folders at the selected site." + )] [switch]$folders, - [Parameter( ParameterSetName = "hostClusters", Mandatory = $true )] + [Parameter( + ParameterSetName = "hostClusters", + Mandatory = $true, + HelpMessage = "Return all host clusters at the selected site." + )] [switch]$hostClusters, - [Parameter( ParameterSetName = "hosts", Mandatory = $true )] + [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 )] + [Parameter( + ParameterSetName = "networks", + Mandatory = $true, + HelpMessage = "Return all networks at the selected site." + )] [switch]$networks, - [Parameter( ParameterSetName = "resourcePools", Mandatory = $true )] + [Parameter( + ParameterSetName = "resourcePools", + Mandatory = $true, + HelpMessage = "Return all resource pools at the selected site." + )] [switch]$resourcePools, - [Parameter( ParameterSetName = "vms", Mandatory = $true )] + [Parameter( + ParameterSetName = "vms", + Mandatory = $true, + HelpMessage = "Return all VMs at the selected site." + )] [switch]$vms ) @@ -41,11 +125,16 @@ function Get-ZertoVirtualizationSite { } process { + # Return information based on ParameterSetName invoked. switch ( $PSCmdlet.ParameterSetName ) { + + # If no ParameterSetName is specified, return all data "main" { $returnObject = Invoke-ZertoRestRequest -uri $baseUri } + # If devices is specified along with a hostId, build return just that host information, otherwise return all devices at the site + #TODO - remove foreach, only one siteIdentifier can be specified. "devices" { $returnObject = foreach ( $id in $siteIdentifier ) { if ( $PSBoundParameters.ContainsKey( "hostIdentifier" ) ) { @@ -57,6 +146,7 @@ function Get-ZertoVirtualizationSite { } } + # 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 @@ -66,11 +156,13 @@ function Get-ZertoVirtualizationSite { $returnObject = Invoke-ZertoRestRequest -uri $uri } + # If siteIdentifier is specified, return information for that site. "siteIdentifier" { $uri = "{0}/{1}" -f $baseUri, $id $returnObject = Invoke-ZertoRestRequest -uri $uri } + # 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() $returnObject = Invoke-ZertoRestRequest -uri $uri diff --git a/ZertoApiWrapper/Public/Get-ZertoVolume.ps1 b/ZertoApiWrapper/Public/Get-ZertoVolume.ps1 index fe13667..624566a 100644 --- a/ZertoApiWrapper/Public/Get-ZertoVolume.ps1 +++ b/ZertoApiWrapper/Public/Get-ZertoVolume.ps1 @@ -1,15 +1,30 @@ function Get-ZertoVolume { [cmdletbinding( DefaultParameterSetName = "main" )] param( - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The type of volume. Please see Zerto API Documentation for possible values." + )] [string]$volumeType, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The identifier of the VPG." + )] [string]$vpgIdentifier, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The identifier of the datastore." + )] [string]$datastoreIdentifier, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The identifier of the protected virtual machine." + )] [string]$protectedVmIdentifier, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The identifier of the owning virtual machine." + )] [string]$owningVmIdentifier ) @@ -19,13 +34,17 @@ function Get-ZertoVolume { } process { + # Process based on ParameterSetName switch ( $PSCmdlet.ParameterSetName ) { + + # If a filter is defined, build the query string and return selected information "filter" { $filter = Get-ZertoApiFilter -filterTable $PSBoundParameters $uri = "{0}{1}" -f $baseUri, $filter $returnObject = Invoke-ZertoRestRequest -uri $uri } + # Default action is to return all Volumes. default { $returnObject = Invoke-ZertoRestRequest -uri $baseUri } diff --git a/ZertoApiWrapper/Public/Get-ZertoVpg.ps1 b/ZertoApiWrapper/Public/Get-ZertoVpg.ps1 index 158a5b4..0a761cd 100644 --- a/ZertoApiWrapper/Public/Get-ZertoVpg.ps1 +++ b/ZertoApiWrapper/Public/Get-ZertoVpg.ps1 @@ -1,56 +1,145 @@ function Get-ZertoVpg { [cmdletbinding( DefaultParameterSetName = "main" )] param( - [Parameter( ParameterSetName = "protectionGroupIdentifier", Mandatory = $true )] - [Parameter( ParameterSetName = "checkpoints", Mandatory = $true )] - [Parameter( ParameterSetName = "stats", Mandatory = $true )] + [Parameter( + ParameterSetName = "protectionGroupIdentifier", + Mandatory = $true, + HelpMessage = "The identifier(s) of the Virtual Protection Group to return" + )] + [Parameter( + ParameterSetName = "checkpoints", + Mandatory = $true, + HelpMessage = "The identifier(s) of the Virtual Protection Group to return" + )] + [Parameter( + ParameterSetName = "stats", + Mandatory = $true, + HelpMessage = "The identifier(s) of the Virtual Protection Group to return" + )] [string[]]$protectionGroupIdentifier, - [Parameter( ParameterSetName = "checkpoints", Mandatory = $true )] + [Parameter( + ParameterSetName = "checkpoints", + Mandatory = $true, + HelpMessage = "Return checkpoints for the selected Virtual Protection Group." + )] [switch]$checkpoints, - [Parameter ( ParameterSetName = "checkpoints")] + [Parameter( + ParameterSetName = "checkpoints", + HelpMessage = "Return checkpoints after the specified start date. Valid formats include: 'yyyy-MM-ddTHH:mm:ss.fffZ', 'yyyy-MM-ddTHH:mm:ssZ', 'yyyy-MM-ddTHH:mmZ', 'yyyy-MM-ddTHHZ', 'yyyy-MM-dd', 'yyyy-MM', 'yyyy'. Adding Z to the end of the time sets the time to UTC." + )] [string]$startDate, - [Parameter ( ParameterSetName = "checkpoints")] + [Parameter( + ParameterSetName = "checkpoints", + HelpMessage = "Return checkpoints before the specified start date. Valid formats include: 'yyyy-MM-ddTHH:mm:ss.fffZ', 'yyyy-MM-ddTHH:mm:ssZ', 'yyyy-MM-ddTHH:mmZ', 'yyyy-MM-ddTHHZ', 'yyyy-MM-dd', 'yyyy-MM', 'yyyy'. Adding Z to the end of the time sets the time to UTC." + )] [string]$endDate, - [Parameter( ParameterSetName = "stats", Mandatory = $true )] + [Parameter( + ParameterSetName = "stats", Mandatory = $true, + HelpMessage = "Return earliest and latest checkpoints for the selected Virtual Protection Group" + )] [switch]$checkpointsStats, - [Parameter( ParameterSetName = "entityTypes", Mandatory = $true )] + [Parameter( + ParameterSetName = "entityTypes", + Mandatory = $true, + HelpMessage = "Return Valid VPG entityTypes" + )] [switch]$entityTypes, - [Parameter( ParameterSetName = "failoverCommitPolicies", Mandatory = $true )] + [Parameter( + ParameterSetName = "failoverCommitPolicies", + Mandatory = $true, + HelpMessage = "Valid Failover Commit Policies" + )] [switch]$failoverCommitPolicies, - [Parameter( ParameterSetName = "failoverShutdownPolicies", Mandatory = $true )] + [Parameter( + ParameterSetName = "failoverShutdownPolicies", + Mandatory = $true, + HelpMessage = "Valid Failover Shutdown Policies" + )] [switch]$failoverShutdownPolicies, - [Parameter( ParameterSetName = "priorities", Mandatory = $true )] + [Parameter( + ParameterSetName = "priorities", + Mandatory = $true, + HelpMessage = "Valid VPG priorities" + )] [switch]$priorities, - [Parameter( ParameterSetName = "retentionPolicies", Mandatory = $true )] + [Parameter( + ParameterSetName = "retentionPolicies", + Mandatory = $true, + HelpMessage = "Valid retention policies" + )] [switch]$retentionPolicies, - [Parameter( ParameterSetName = "statuses", Mandatory = $true )] + [Parameter( + ParameterSetName = "statuses", + Mandatory = $true, + HelpMessage = "Valid VPG statuses" + )] [switch]$statuses, - [Parameter( ParameterSetName = "subStatuses", Mandatory = $true )] + [Parameter( + ParameterSetName = "subStatuses", + Mandatory = $true, + HelpMessage = "Valid VPG sub statuses" + )] [switch]$subStatuses, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The name of the VPG." + )] [string]$name, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The status of the VPG. Please use 'Get-ZertoVpg -statuses' for valid values" + )] [string]$status, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The substatus of the VPG. Please use 'Get-ZertoVpg -substatuses' for valid values" + )] [string]$subStatus, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The protected site environment. This filter behaves in the same way as the sourceType filter. Please see Zerto API Documentation for vaild values and discriptions." + )] [string]$protectedSiteType, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The recovery site environment. This filter behaves in the same way as the sourceType filter. Please see Zerto API Documentation for vaild values and discriptions." + )] [string]$recoverySiteType, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The identifier of the protected site where the VPG virtual machines are protected." + )] [string]$protectedSiteIdentifier, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The identifier of the protected site where the VPG virtual machines are recovered." + )] [string]$recoverySiteIdentifier, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The ZORG for this VPG." + )] [string]$organizationName, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The internal identifier for the ZORG." + )] [string]$zorgIdentifier, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The VPG priority. Possible values are: '0' or 'Low', '1' or 'Medium', '2' or 'High'" + )] [string]$priority, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "The identifier of the service profile to use for the VPG when a Zerto Cloud Manager is used." + )] [string]$serviceProfileIdentifier, - [Parameter( ParameterSetName = "filter" )] - [string]$backupEnabled + [Parameter( + ParameterSetName = "filter", + HelpMessage = "If backup is enabled." + )] + [switch]$backupEnabled ) begin { $baseUri = "vpgs" @@ -58,11 +147,15 @@ function Get-ZertoVpg { } Process { + # Process based on ParameterSetName switch ( $PSCmdlet.ParameterSetName ) { + + # When called with no parameters, return all values "main" { $returnObject = Invoke-ZertoRestRequest -uri $baseUri } + # When called with protectionGroupIdentifier, query for each id provided "protectionGroupIdentifier" { $returnObject = foreach ( $vpgId in $protectionGroupIdentifier ) { $uri = "{0}/{1}" -f $baseUri, $vpgId @@ -70,6 +163,7 @@ function Get-ZertoVpg { } } + # When checkpoints is called, determine if a filter is needed and query with or without the filter. "checkpoints" { $filter = $false if ( $PSBoundParameters.ContainsKey("startDate") -or $PSBoundParameters.ContainsKey("endDate") ) { @@ -92,6 +186,7 @@ function Get-ZertoVpg { } } + # When stats are requested "stats" { $returnObject = foreach ( $id in $protectionGroupIdentifier ) { $uri = "{0}/{1}/checkpoints/stats" -f $baseUri, $id @@ -99,12 +194,14 @@ function Get-ZertoVpg { } } + # When filtering for VPGs build query string and return events "filter" { $filter = Get-ZertoApiFilter -filterTable $PSBoundParameters $uri = "{0}{1}" -f $baseUri, $filter $returnObject = Invoke-ZertoRestRequest -uri $uri } + # Default is to build URI based on ParameterSetName and return results. default { $uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName.ToLower() $returnObject = Invoke-ZertoRestRequest -uri $uri diff --git a/ZertoApiWrapper/Public/Get-ZertoVpgSetting.ps1 b/ZertoApiWrapper/Public/Get-ZertoVpgSetting.ps1 index 3a19c94..6dd9a51 100644 --- a/ZertoApiWrapper/Public/Get-ZertoVpgSetting.ps1 +++ b/ZertoApiWrapper/Public/Get-ZertoVpgSetting.ps1 @@ -8,209 +8,249 @@ function Get-ZertoVpgSetting { ParameterSetName = "vpgSettingsIdentifier", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "backup", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "dayOfWeek", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "retentionPeriod", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "schedulerPeriod", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "basic", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "bootGroup", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "journal", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "networks", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "priority", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "recovery", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "scripting", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "vms", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "vmIdentifier", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "nics", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "nicIdentifier", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "volumes", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "volumeIdentifier", ValueFromPipeline = $true, ValueFromRemainingArguments = $true, - Mandatory = $true + Mandatory = $true, + HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [string]$vpgSettingsIdentifier, [Parameter( ParameterSetName = "backup", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Return backup information for VPG identifier specified" )] [switch]$backup, [Parameter( ParameterSetName = "dayOfWeek", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get the day of week a backup is scheduled" )] [switch]$dayOfWeek, [Parameter( ParameterSetName = "retentionPeriod", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get the retention period for a backup" )] [switch]$retentionPeriod, [Parameter( ParameterSetName = "schedulerPeriod", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get the backup schedule" )] [switch]$schedulerPeriod, [Parameter( ParameterSetName = "basic", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get VPG Basic Settings" )] [switch]$basic, [Parameter( ParameterSetName = "bootGroup", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get VPG Boot Settings" )] [switch]$bootgroup, [Parameter( ParameterSetName = "journal", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get VPG Journal Settings" )] [switch]$journal, [Parameter( ParameterSetName = "networks", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get VPG Network Settings" )] [switch]$networks, [Parameter( ParameterSetName = "priority", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get VPG Priority Settings" )] [switch]$priority, [Parameter( ParameterSetName = "recovery", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get VPG Recovery Settings" )] [switch]$rcovery, [Parameter( ParameterSetName = "scripting", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get VPG Recovery Settings" )] [switch]$scripting, [Parameter( ParameterSetName = "vms", - Mandatory = $true )] + Mandatory = $true, + HelpMessage = "Get all settings for all VMs in a VPG." + )] [switch]$vms, [Parameter( ParameterSetName = "vmIdentifier", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Get all settings for selected VM" )] [Parameter( ParameterSetName = "nics", - Mandatory = $true + Mandatory = $true, + HelpMessage = "VM Identifier" )] [Parameter( ParameterSetName = "volumes", - Mandatory = $true + Mandatory = $true, + HelpMessage = "VM Identifier" )] [Parameter( ParameterSetName = "nicIdentifier", - Mandatory = $true + Mandatory = $true, + HelpMessage = "VM Identifier" )] [Parameter( ParameterSetName = "volumeIdentifier", - Mandatory = $true + Mandatory = $true, + HelpMessage = "VM Identifier" )] [string]$vmIdentifier, [Parameter( ParameterSetName = "nics", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Return NIC information for all NICs of the specified VM" )] [switch]$nics, [Parameter( ParameterSetName = "nicIdentifier", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Return NIC information for specified NIC of the specified VM" )] [string]$nicIdentifier, [Parameter( ParameterSetName = "volumes", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Return Volume information for all volumes of the specified VM" )] [switch]$volumes, [Parameter( ParameterSetName = "volumeIdentifier", - Mandatory = $true + Mandatory = $true, + HelpMessage = "Return volume information for the specified volume of the specified VM" )] [string]$volumeIdentifier ) @@ -220,6 +260,7 @@ function Get-ZertoVpgSetting { $returnObject = @() } + #TODO - Update to Switch Logic process { if ( $PSCmdlet.ParameterSetName -eq "main" ) { $returnObject = Invoke-ZertoRestRequest -uri $baseUri diff --git a/ZertoApiWrapper/Public/Get-ZertoVra.ps1 b/ZertoApiWrapper/Public/Get-ZertoVra.ps1 index 93cb641..4ddf114 100644 --- a/ZertoApiWrapper/Public/Get-ZertoVra.ps1 +++ b/ZertoApiWrapper/Public/Get-ZertoVra.ps1 @@ -3,29 +3,65 @@ function Get-ZertoVra { DefaultParameterSetName = "main" )] param( - [Parameter( ParameterSetName = "ipConfigurationTypes" )] + [Parameter( + ParameterSetName = "ipConfigurationTypes", + HelpMessage = "Returns Valid VRA IP configuration types" + )] [switch]$ipconfigurationtypes, - [Parameter( ParameterSetName = "statuses" )] + [Parameter( + ParameterSetName = "statuses", + HelpMessage = "Returns Valid VRA statuses" + )] [switch]$statuses, - [Parameter( ParameterSetName = "vraIdentifier" )] + [Parameter( + ParameterSetName = "vraIdentifier", + HelpMessage = "Returns information for provided VRA identifier(s)" + )] [string[]]$vraIdentifier, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "VRA Name to return information for." + )] [string]$vraName, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Search for VRAs in a specific status" + )] [string]$status, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Search for VRAs of a specific version" + )] [string]$vraVersion, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Search for VRAs paired to a specific host version" + )] [string]$hostVersion, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Search for a VRA with the specified IP address" + )] [string]$ipAddress, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Search for VRAs belonging to a specific group" + )] [string]$vraGroup, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Search for VRAs on a specific datastore" + )] [string]$datastoreName, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Search for VRAs on a specific datastore cluster" + )] [string]$datastoreClusterName, - [Parameter( ParameterSetName = "filter" )] + [Parameter( + ParameterSetName = "filter", + HelpMessage = "Search for VRAs on a specific network" + )] [string]$networkName ) @@ -35,23 +71,17 @@ function Get-ZertoVra { } process { + + # Process based on ParameterSetName 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 - $returnObject = Invoke-ZertoRestRequest -uri $uri - } - - "statuses" { - $uri = "{0}/statuses" -f $baseUri + + # 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 "vraIdentifierifier" { $returnObject = foreach ( $vraId in $vraIdentifier ) { $uri = "{0}/{1}" -f $baseUri, $vraId @@ -59,8 +89,16 @@ function Get-ZertoVra { } } + # 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 = $baseUri + $uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName.ToLower() $returnObject = Invoke-ZertoRestRequest -uri $uri } } diff --git a/ZertoApiWrapper/Public/Get-ZertoZorg.ps1 b/ZertoApiWrapper/Public/Get-ZertoZorg.ps1 index 311f8f2..89b6662 100644 --- a/ZertoApiWrapper/Public/Get-ZertoZorg.ps1 +++ b/ZertoApiWrapper/Public/Get-ZertoZorg.ps1 @@ -1,7 +1,10 @@ function Get-ZertoZorg { [cmdletbinding( DefaultParameterSetName = "default" )] param( - [Parameter( ParameterSetName = "zorgIdentifier" )] + [Parameter( + ParameterSetName = "zorgIdentifier", + HelpMessage = "Identifier(s) of the ZORG." + )] [string[]]$zorgIdentifier ) diff --git a/ZertoApiWrapper/Public/Get-ZsspSession.ps1 b/ZertoApiWrapper/Public/Get-ZsspSession.ps1 index 997e115..4b5e441 100644 --- a/ZertoApiWrapper/Public/Get-ZsspSession.ps1 +++ b/ZertoApiWrapper/Public/Get-ZsspSession.ps1 @@ -1,7 +1,10 @@ function Get-ZertoZsspSession { [cmdletbinding( DefaultParameterSetName = "default" )] param( - [Parameter( ParameterSetName = "zsspSessionIdentifier" )] + [Parameter( + ParameterSetName = "zsspSessionIdentifier", + HelpMessage = "ZSSP Session Id(s) to get information." + )] [string[]]$zsspSessionIdentifier )