diff --git a/ZertoApiWrapper/Public/Get-ZertoVpgSetting.ps1 b/ZertoApiWrapper/Public/Get-ZertoVpgSetting.ps1 index a5b8f53..39a59e3 100644 --- a/ZertoApiWrapper/Public/Get-ZertoVpgSetting.ps1 +++ b/ZertoApiWrapper/Public/Get-ZertoVpgSetting.ps1 @@ -9,6 +9,7 @@ function Get-ZertoVpgSetting { ParameterSetName = "vpgSettingsIdentifier", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, + ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] @@ -16,6 +17,7 @@ function Get-ZertoVpgSetting { ParameterSetName = "backup", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, + ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] @@ -23,6 +25,7 @@ function Get-ZertoVpgSetting { ParameterSetName = "dayOfWeek", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, + ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] @@ -30,6 +33,7 @@ function Get-ZertoVpgSetting { ParameterSetName = "retentionPeriod", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, + ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] @@ -37,6 +41,7 @@ function Get-ZertoVpgSetting { ParameterSetName = "schedulerPeriod", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, + ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] @@ -44,12 +49,14 @@ function Get-ZertoVpgSetting { ParameterSetName = "basic", ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, + ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [Parameter( ParameterSetName = "bootGroup", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -57,6 +64,7 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "journal", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -64,6 +72,7 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "networks", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -71,6 +80,7 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "priority", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -78,6 +88,7 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "recovery", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -85,6 +96,7 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "scripting", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -92,6 +104,7 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "vms", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -99,6 +112,7 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "vmIdentifier", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -106,6 +120,7 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "nics", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -113,6 +128,7 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "nicIdentifier", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -120,6 +136,7 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "volumes", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." @@ -127,13 +144,14 @@ function Get-ZertoVpgSetting { [Parameter( ParameterSetName = "volumeIdentifier", ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $true, Mandatory = $true, HelpMessage = "The identifier of the VPG settings object for which information is retrieved." )] [ValidateNotNullOrEmpty()] [Alias("vpgSettingsId", "settingsId")] - [string]$vpgSettingsIdentifier, + [string[]]$vpgSettingsIdentifier, [Parameter( ParameterSetName = "backup", Mandatory = $true, @@ -266,38 +284,98 @@ function Get-ZertoVpgSetting { begin { $baseUri = "vpgSettings" - $returnObject = @() } - #TODO - Update to Switch Logic process { - if ( $PSCmdlet.ParameterSetName -eq "main" ) { - $returnObject = Invoke-ZertoRestRequest -uri $baseUri - } elseif ($PSCmdlet.ParameterSetName -eq "vpgSettingsIdentifier") { - $uri = "{0}/{1}" -f $baseUri, $vpgSettingsIdentifier - $returnObject = Invoke-ZertoRestRequest -uri $uri - } elseif ( $PSCmdlet.ParameterSetName -eq "dayOfWeek" -or $PSCmdlet.ParameterSetName -eq "retentionPeriod" -or $PSCmdlet.ParameterSetName -eq "schedulerPeriod" ) { - $uri = "{0}/{1}/backup/{2}" -f $baseUri, $vpgSettingsIdentifier, $PSCmdlet.ParameterSetName.ToLower() - $returnObject = Invoke-ZertoRestRequest -uri $uri - } elseif ( $PSCmdlet.ParameterSetName -eq "nics" -or $PSCmdlet.ParameterSetName -eq "volumes" ) { - $uri = "{0}/{1}/vms/{2}/{3}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier, $PSCmdlet.ParameterSetName.ToLower() - $returnObject = Invoke-ZertoRestRequest -uri $uri - } elseif ( $PSCmdlet.ParameterSetName -eq "vmIdentifier" ) { - $uri = "{0}/{1}/vms/{2}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier - $returnObject = Invoke-ZertoRestRequest -uri $uri - } elseif ( $PSCmdlet.ParameterSetName -eq "nicIdentifier" ) { - $uri = "{0}/{1}/vms/{2}/nics/{3}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier, $nicIdentifier - $returnObject = Invoke-ZertoRestRequest -uri $uri - } elseif ( $PSCmdlet.ParameterSetName -eq "volumeIdentifier" ) { - $uri = "{0}/{1}/vms/{2}/volumes/{3}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier, $volumeIdentifier - $returnObject = Invoke-ZertoRestRequest -uri $uri - } else { - $uri = "{0}/{1}/{2}" -f $baseUri, $vpgSettingsIdentifier, $PSCmdlet.ParameterSetName.ToLower() - $returnObject = Invoke-ZertoRestRequest -uri $uri + switch ( $PSCmdlet.ParameterSetName ) { + "main" { + Invoke-ZertoRestRequest -uri $baseUri + break + } + + "vpgSettingsIdentifier" { + foreach ($id in $vpgSettingsIdentifier) { + $uri = "{0}/{1}" -f $baseUri, $id + Invoke-ZertoRestRequest -uri $uri + } + break + } + + "dayOfWeek" { + foreach ($id in $vpgSettingsIdentifier) { + $uri = "{0}/{1}/backup/{2}" -f $baseUri, $id, $PSCmdlet.ParameterSetName.ToLower() + Invoke-ZertoRestRequest -uri $uri + } + break + } + + "retentionPeriod" { + foreach ($id in $vpgSettingsIdentifier) { + $uri = "{0}/{1}/backup/{2}" -f $baseUri, $id, $PSCmdlet.ParameterSetName.ToLower() + Invoke-ZertoRestRequest -uri $uri + } + break + } + + "schedulerPeriod" { + foreach ($id in $vpgSettingsIdentifier) { + $uri = "{0}/{1}/backup/{2}" -f $baseUri, $id, $PSCmdlet.ParameterSetName.ToLower() + Invoke-ZertoRestRequest -uri $uri + } + break + } + + "nics" { + foreach ($id in $vpgSettingsIdentifier) { + $uri = "{0}/{1}/vms/{2}/{3}" -f $baseUri, $id, $vmIdentifier, $PSCmdlet.ParameterSetName.ToLower() + Invoke-ZertoRestRequest -uri $uri + } + break + } + + "volumes" { + foreach ($id in $vpgSettingsIdentifier) { + $uri = "{0}/{1}/vms/{2}/{3}" -f $baseUri, $id, $vmIdentifier, $PSCmdlet.ParameterSetName.ToLower() + Invoke-ZertoRestRequest -uri $uri + } + break + } + + "vmIdentifier" { + foreach ($id in $vpgSettingsIdentifier) { + $uri = "{0}/{1}/vms/{2}" -f $baseUri, $id, $vmIdentifier + Invoke-ZertoRestRequest -uri $uri + } + break + } + + "nicIdentifier" { + foreach ($id in $vpgSettingsIdentifier) { + $uri = "{0}/{1}/vms/{2}/nics/{3}" -f $baseUri, $id, $vmIdentifier, $nicIdentifier + Invoke-ZertoRestRequest -uri $uri + } + break + } + + "volumeIdentifier" { + foreach ($id in $vpgSettingsIdentifier) { + $uri = "{0}/{1}/vms/{2}/volumes/{3}" -f $baseUri, $id, $vmIdentifier, $volumeIdentifier + Invoke-ZertoRestRequest -uri $uri + } + break + } + + default { + foreach ($id in $vpgSettingsIdentifier) { + $uri = "{0}/{1}/{2}" -f $baseUri, $id, $PSCmdlet.ParameterSetName.ToLower() + Invoke-ZertoRestRequest -uri $uri + } + break + } } } end { - return $returnObject + #Nothing to do! } }