From e314e2a947e42ca13412e2ef773db9c84c6034f0 Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:12:32 -0400 Subject: [PATCH 01/14] Update to use locally set variable to avoid additional API Call --- ZertoApiWrapper/Public/Get-ZertoUnprotectedVm.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ZertoApiWrapper/Public/Get-ZertoUnprotectedVm.ps1 b/ZertoApiWrapper/Public/Get-ZertoUnprotectedVm.ps1 index 7c0b260..b69aa27 100644 --- a/ZertoApiWrapper/Public/Get-ZertoUnprotectedVm.ps1 +++ b/ZertoApiWrapper/Public/Get-ZertoUnprotectedVm.ps1 @@ -1,6 +1,6 @@ <# .ExternalHelp ./en-us/ZertoApiWrapper-help.xml #> function Get-ZertoUnprotectedVm { [cmdletbinding()] - $uri = "virtualizationsites/{0}/vms" -f $(Get-ZertoLocalSite).siteidentifier + $uri = "virtualizationsites/{0}/vms" -f $script:zvmLocalInfo.siteidentifier Invoke-ZertoRestRequest -uri $uri } From 460b57b3e403fb72c70bb3a1c302eaa3ec13086a Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:12:57 -0400 Subject: [PATCH 02/14] Convert switches to bools --- ZertoApiWrapper/Public/Remove-ZertoVpg.ps1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ZertoApiWrapper/Public/Remove-ZertoVpg.ps1 b/ZertoApiWrapper/Public/Remove-ZertoVpg.ps1 index f5b10f9..3645ec7 100644 --- a/ZertoApiWrapper/Public/Remove-ZertoVpg.ps1 +++ b/ZertoApiWrapper/Public/Remove-ZertoVpg.ps1 @@ -8,13 +8,13 @@ function Remove-ZertoVpg { )] [string]$vpgName, [Parameter( - HelpMessage = "Use this switch to keep the recovery volumes at the target site. If the virtual machines in the deleted VPG are reprotected, these volumes can be used as preseeded volumes to speed up the initial synchronization of the new VPG." + HelpMessage = "Use this parameter to keep the recovery volumes at the target site, by setting it to True. If the virtual machines in the deleted VPG are reprotected, these volumes can be used as preseeded volumes to speed up the initial synchronization of the new VPG. Default is to remove Recovery Volumes" )] - [switch]$keepRecoveryVolumes, + [bool]$keepRecoveryVolumes = $false, [Parameter( - HelpMessage = "Use this switch to force delete the VPG." + HelpMessage = "Use this parameter to force delete the VPG, by setting this parameter equal to true." )] - [switch]$force + [bool]$force = $false ) begin { From 4d35a38a753fb473fdfcf590d588156f1635644c Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:14:15 -0400 Subject: [PATCH 03/14] Create New-ZertoVpg function --- ZertoApiWrapper/Public/New-ZertoVpg.ps1 | 262 ++++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 ZertoApiWrapper/Public/New-ZertoVpg.ps1 diff --git a/ZertoApiWrapper/Public/New-ZertoVpg.ps1 b/ZertoApiWrapper/Public/New-ZertoVpg.ps1 new file mode 100644 index 0000000..720a116 --- /dev/null +++ b/ZertoApiWrapper/Public/New-ZertoVpg.ps1 @@ -0,0 +1,262 @@ +function New-ZertoVpg { + [cmdletbinding()] + param( + [Parameter( + HelpMessage = "Name of the VPG", + Mandatory = $true + )] + [string]$vpgName, + [Parameter( + HelpMessage = "VPG Priority. High, Medium, or Low." + )] + [ValidateSet("High", "Medium", "Low")] + [string]$vpgPriority = "Medium", + [Parameter( + HelpMessage = "Journal History in Hours. Min 1 hour, Max 720 Hours (30 days)" + )] + [ValidateRange(1, 720)] + [int]$journalHistoryInHours = 24, + [Parameter( + HelpMessage = "Name(s) of the VM(s) to be protected.", + Mandatory = $true + )] + [ValidateNotNullOrEmpty()][string[]]$protectedVm, + [Parameter( + HelpMessage = "Name of the site where the VM(s) will be recoveryed", + Mandatory = $true + )] + [string]$recoverySite, + [Parameter( + HelpMessage = "Name of the cluster where the VM(s) will be recovered.", + ParameterSetName = "recoveryClusterDatastore", + Mandatory = $true + )] + [Parameter( + HelpMessage = "Name of the cluster where the VM(s) will be recovered.", + ParameterSetName = "recoveryClusterDatastoreCluster", + Mandatory = $true + )] + [string]$recoveryCluster, + [Parameter( + HelpMessage = "Name of the host where the VM(s) will be recovered.", + ParameterSetName = "recoveryHostDatastore", + Mandatory = $true + )] + [Parameter( + HelpMessage = "Name of the host where the VM(s) will be recovered.", + ParameterSetName = "recoveryHostDatastoreCluster", + Mandatory = $true + )] + [string]$recoveryHost, + [Parameter( + HelpMessage = "Name of the resource pool where the VM(s) will be recovered.", + ParameterSetName = "recoveryResourcePoolDatastore", + Mandatory = $true + )] + [Parameter( + HelpMessage = "Name of the resource pool where the VM(s) will be recovered.", + ParameterSetName = "recoveryResourcePoolDatastoreCluster", + Mandatory = $true + )] + [string]$recoveryResourcePool, + [Parameter( + HelpMessage = "Name of the datastore where the VM(s), Volume(s), and Journal(s) will reside.", + ParameterSetName = "recoveryClusterDatastore", + Mandatory = $true + )] + [Parameter( + HelpMessage = "Name of the datastore where the VM(s), Volume(s), and Journal(s) will reside.", + ParameterSetName = "recoveryHostDatastore", + Mandatory = $true + )] + [Parameter( + HelpMessage = "Name of the datastore where the VM(s), Volume(s), and Journal(s) will reside.", + ParameterSetName = "recoveryResourcePoolDatastore", + Mandatory = $true + )] + [string]$datastore, + [Parameter( + HelpMessage = "Name of the datastore cluster where the VM(s), Volume(s), and Journal(s) will reside.", + ParameterSetName = "recoveryClusterDatastoreCluster", + Mandatory = $true + )] + [Parameter( + HelpMessage = "Name of the datastore cluster where the VM(s), Volume(s), and Journal(s) will reside.", + ParameterSetName = "recoveryHostDatastoreCluster", + Mandatory = $true + )] + [Parameter( + HelpMessage = "Name of the datastore cluster where the VM(s), Volume(s), and Journal(s) will reside.", + ParameterSetName = "recoveryResourcePoolDatastoreCluster", + Mandatory = $true + )] + [string]$datastoreCluster, + [Parameter( + HelpMessage = "Name of folder at recovery location where the recovered virtual machine(s) will be created.", + Mandatory = $true + )] + [string]$recoveryFolder, + [Parameter( + HelpMessage = "RPO alert" + )] + [ValidateRange(60, 864200)][Int32]$rpoInSeconds = 300, + [Parameter( + HelpMessage = "Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months" + )] + [ValidateSet(0, 43200, 131040, 262080, 294560, 252600)][int]$testIntervalInMinutes = 262080, + [Parameter( + HelpMessage = "Service profile name to use." + )] + [string]$serviceProfile, + [Parameter( + HelpMessage = "Turn on or off WAN and Journal Compression. Default is turned on." + )] + [bool]$useWanCompression = $true, + [Parameter( + HelpMessage = "Name of ZORG to use." + )] + [String]$zorg, + [Parameter( + HelpMessage = "Name of the network to use during a Failover Live \ Move VPG operation.", + Mandatory = $true + )] + [String]$recoveryNetwork, + [Parameter( + HelpMessage = "Name of the network to use during a Failover Test operation", + Mandatory = $true + )] + [string]$testNetwork + ) + + begin { + $identifiersTable = @{} + $identifiersTable['recoverySiteIdentifier'] = $(Get-ZertoPeerSite -peerName $recoverySite).siteIdentifier + $peerSiteNetworks = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -networks) + $identifiersTable['failoverNetworkIdentifier'] = $peerSiteNetworks | Where-Object {$_.VirtualizationNetworkName -like $recoveryNetwork} | Select-Object -ExpandProperty NetworkIdentifier + $identifiersTable['testNetworkIdentifier'] = $peerSiteNetworks | Where-Object {$_.VirtualizationNetworkName -like $testNetwork} | Select-Object -ExpandProperty NetworkIdentifier + $identifiersTable['folderIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -folders | Where-Object {$_.FolderName -like $recoveryFolder}).folderIdentifier + if ($PSBoundParameters.ContainsKey("zorg")) { + $identifiersTable['zorgIdentifier'] = $(Get-ZertoZorg | Where-Object {$_.ZorgName -like $zorg}).ZorgIdentifier + } + if ($PSBoundParameters.ContainsKey("serviceProfile")) { + $identifiersTable['serviceProfileIdentifier'] = $(Get-ZertoServiceProfile -siteIdentifier $identifiersTable['recoverySiteIdentifier'] | Where-Object {$_.ServiceProfileName -like $serviceProfile}).serviceProfileIdentifier + } + switch ($PSCmdlet.ParameterSetName) { + "recoveryClusterDatastoreCluster" { + $identifiersTable['clusterIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -hostclusters | Where-Object {$_.VirtualizationClusterName -like $recoveryCluster}).ClusterIdentifier + $identifiersTable['datastoreClusterIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -datastoreclusters | Where-Object {$_.DatastoreClusterName -like $datastoreCluster}).DatastoreClusterIdentifier + } + + "recoveryClusterDatastore" { + $identifiersTable['clusterIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -hostclusters | Where-Object {$_.VirtualizationClusterName -like $recoveryCluster}).ClusterIdentifier + $identifiersTable['datastoreIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -datastores | Where-Object {$_.DatastoreName -like $datastore}).DatastoreIdentifier + } + + "recoveryHostDatastoreCluster" { + $identifiersTable['recoveryHostIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -hosts | Where-Object {$_.VirtualizationHostName -like $recoveryHost}).HostIdentifier + $identifiersTable['datastoreClusterIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -datastoreclusters | Where-Object {$_.DatastoreClusterName -like $datastoreCluster}).DatastoreClusterIdentifier + } + + "recoveryHostDatastore" { + $identifiersTable['recoveryHostIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -hosts | Where-Object {$_.VirtualizationHostName -like $recoveryHost}).HostIdentifier + $identifiersTable['datastoreIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -datastores | Where-Object {$_.DatastoreName -like $datastore}).DatastoreIdentifier + } + + "recoveryResourcePoolDatastoreCluster" { + $identifiersTable['recoveryResourcePoolIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -resourcepools | Where-Object {$_.ResourcePoolName -like $recoveryResourcePool}).ResourcePoolIdentifier + $identifiersTable['datastoreClusterIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -datastoreclusters | Where-Object {$_.DatastoreClusterName -like $datastoreCluster}).DatastoreClusterIdentifier + } + + "recoveryResourcePoolDatastore" { + $identifiersTable['recoveryResourcePoolIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -resourcepools | Where-Object {$_.ResourcePoolName -like $recoveryResourcePool}).ResourcePoolIdentifier + $identifiersTable['datastoreIdentifier'] = $(Get-ZertoVirtualizationSite -siteIdentifier $identifiersTable['recoverySiteIdentifier'] -datastores | Where-Object {$_.DatastoreName -like $datastore}).DatastoreIdentifier + } + } + $unprotectedVms = Get-ZertoUnprotectedVm + $protectedVms = Get-ZertoProtectedVm + $vmIdentifiers = @() + $vmIdentifiers = foreach ($vm in $protectedVm) { + $vmIdentifier = $unprotectedVms | Where-Object {$_.vmName -like $vm} | Select-Object -ExpandProperty vmIdentifier + if ( -not $vmIdentifier) { + $results = $protectedVms | Where-Object {$_.VmName -like $vm} | Select-Object -ExpandProperty vmIdentifier + if ($results.count -eq 3) { + Write-Warning "$vm is already a part of 3 VPGs and cannot be part of an additional VPG. Skipping $vm" + continue + } elseif ($results.count -eq 0) { + Write-Warning "$vm not found. Skipping $vm" + continue + } else { + $vmIdentifier = $results | Select-Object -First 1 + } + } + $returnObject = New-Object PSObject + $returnObject | Add-Member -MemberType NoteProperty -Name "VmIdentifier" -Value $vmIdentifier + $returnObject + } + } + + process { + $baseUri = "vpgsettings" + $vpgSettingsIdentifier = Invoke-ZertoRestRequest -uri $baseUri -body "{}" -method "POST" + $baseSettings = Get-ZertoVpgSetting -vpgSettingsIdentifier $vpgSettingsIdentifier + $baseSettings.basic.name = $vpgName + $baseSettings.basic.journalHistoryInHours = $journalHistoryInHours + $baseSettings.basic.Priority = $vpgPriority + $baseSettings.basic.recoverySiteIdentifier = $identifiersTable['recoverySiteIdentifier'] + $baseSettings.basic.RpoInSeconds = $rpoInSeconds + if ($identifiersTable.ContainsKey('serviceProfileIdentifier')) { + $baseSettings.basic.ServiceProfileIdentifier = $identifiersTable['serviceProfileIdentifier'] + } + $baseSettings.basic.TestIntervalInMinutes = $testIntervalInMinutes + $baseSettings.basic.useWanCompression = $useWanCompression + if ($identifiersTable.ContainsKey('zorgIdentifier')) { + $baseSettings.basic.ZorgIdentifier = $identifiersTable['zorgIdentifier'] + } + $baseSettings.Networks.Failover.Hypervisor.DefaultNetworkIdentifier = $identifiersTable['failoverNetworkIdentifier'] + $baseSettings.Networks.FailoverTest.Hypervisor.DefaultNetworkIdentifier = $identifiersTable['testNetworkIdentifier'] + $baseSettings.Recovery.DefaultFolderIdentifier = $identifiersTable['folderIdentifier'] + switch ($PSCmdlet.ParameterSetName) { + "recoveryClusterDatastoreCluster" { + $baseSettings.Recovery.DefaultDatastoreClusterIdentifier = $identifiersTable['datastoreClusterIdentifier'] + $baseSettings.Recovery.DefaultHostClusterIdentifier = $identifiersTable['clusterIdentifier'] + } + + "recoveryClusterDatastore" { + $baseSettings.Recovery.DefaultHostClusterIdentifier = $identifiersTable['clusterIdentifier'] + $baseSettings.Recovery.DefaultDatastoreIdentifier = $identifiersTable['datastoreIdentifier'] + } + + "recoveryHostDatastoreCluster" { + $baseSettings.Recovery.DefaultDatastoreClusterIdentifier = $identifiersTable['datastoreClusterIdentifier'] + $baseSettings.Recovery.DefaultHostIdentifier = $identifiersTable['hostIdentifier'] + } + + "recoveryHostDatastore" { + $baseSettings.Recovery.DefaultHostIdentifier = $identifiersTable['hostIdentifier'] + $baseSettings.Recovery.DefaultDatastoreIdentifier = $identifiersTable['datastoreIdentifier'] + } + + "recoveryResourcePoolDatastoreCluster" { + $baseSettings.Recovery.ResourcePoolIdentifier = $identifiersTable['recoveryResourcePoolIdentifier'] + $baseSettings.Recovery.DefaultDatastoreClusterIdentifier = $identifiersTable['datastoreClusterIdentifier'] + } + + "recoveryResourcePoolDatastore" { + $baseSettings.Recovery.ResourcePoolIdentifier = $identifiersTable['recoveryResourcePoolIdentifier'] + $baseSettings.Recovery.DefaultDatastoreIdentifier = $identifiersTable['datastoreIdentifier'] + } + } + If ($vmIdentifiers.count -eq 1) { + $basesettings.Vms = @() + $baseSettings.Vms += $vmIdentifiers + } else { + $baseSettings.Vms = $vmIdentifiers + } + $settingsURI = "{0}/{1}" -f $baseUri, $vpgSettingsIdentifier + Invoke-ZertoRestRequest -uri $settingsURI -body $($baseSettings | ConvertTo-Json -Depth 10) -method "PUT" | Out-Null + } + + end { + return $vpgSettingsIdentifier.toString() + } +} \ No newline at end of file From c25941ea83dc8f91212245dc99802afa96ffa28c Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:14:37 -0400 Subject: [PATCH 04/14] Create Save-ZertoVpgSettings to Commit VPG Settings Object --- .../Public/Save-ZertoVpgSettings.ps1 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 ZertoApiWrapper/Public/Save-ZertoVpgSettings.ps1 diff --git a/ZertoApiWrapper/Public/Save-ZertoVpgSettings.ps1 b/ZertoApiWrapper/Public/Save-ZertoVpgSettings.ps1 new file mode 100644 index 0000000..157393f --- /dev/null +++ b/ZertoApiWrapper/Public/Save-ZertoVpgSettings.ps1 @@ -0,0 +1,19 @@ +function Save-ZertoVpgSettings { + [cmdletbinding( + SupportsShouldProcess = $true + )] + param( + [Parameter( + HelpMessage = "VpgSettings Identifier to save", + Mandatory = $true, + ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true + )] + [string]$vpgSettingsIdentifier + ) + + $baseUri = "vpgsettings/{0}/commit" -f $vpgSettingsIdentifier + if ($PSCmdlet.ShouldProcess("Commiting VPG Settings with Settigns identifier $vpgSettingsIdentifier")) { + Invoke-ZertoRestRequest -uri $baseUri -method "POST" + } +} \ No newline at end of file From 37352169bb2f8c94e885816942692d1980445b9c Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:23:44 -0400 Subject: [PATCH 05/14] Add external help information --- ZertoApiWrapper/Public/New-ZertoVpg.ps1 | 1 + ZertoApiWrapper/Public/Save-ZertoVpgSettings.ps1 | 1 + 2 files changed, 2 insertions(+) diff --git a/ZertoApiWrapper/Public/New-ZertoVpg.ps1 b/ZertoApiWrapper/Public/New-ZertoVpg.ps1 index 720a116..083d9b9 100644 --- a/ZertoApiWrapper/Public/New-ZertoVpg.ps1 +++ b/ZertoApiWrapper/Public/New-ZertoVpg.ps1 @@ -1,3 +1,4 @@ +<# .ExternalHelp ./en-us/ZertoApiWrapper-help.xml #> function New-ZertoVpg { [cmdletbinding()] param( diff --git a/ZertoApiWrapper/Public/Save-ZertoVpgSettings.ps1 b/ZertoApiWrapper/Public/Save-ZertoVpgSettings.ps1 index 157393f..015a79e 100644 --- a/ZertoApiWrapper/Public/Save-ZertoVpgSettings.ps1 +++ b/ZertoApiWrapper/Public/Save-ZertoVpgSettings.ps1 @@ -1,3 +1,4 @@ +<# .ExternalHelp ./en-us/ZertoApiWrapper-help.xml #> function Save-ZertoVpgSettings { [cmdletbinding( SupportsShouldProcess = $true From 71a6896112718b7c31e3c698546fe36d687f7859 Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:34:06 -0400 Subject: [PATCH 06/14] Updated Remove-ZertoVpg settings help --- docs/Remove-ZertoVpg.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/Remove-ZertoVpg.md b/docs/Remove-ZertoVpg.md index b689664..1a3b0b4 100644 --- a/docs/Remove-ZertoVpg.md +++ b/docs/Remove-ZertoVpg.md @@ -13,7 +13,8 @@ Deletes a Zerto Virtual Protection Group ## SYNTAX ``` -Remove-ZertoVpg [-vpgName] [-keepRecoveryVolumes] [-force] [-WhatIf] [-Confirm] [] +Remove-ZertoVpg [-vpgName] [-keepRecoveryVolumes ] [-force ] [-WhatIf] [-Confirm] + [] ``` ## DESCRIPTION @@ -38,32 +39,31 @@ Deletes Zerto Virtual Protection Group named "MyVpg". Recovery volumes at the re ## PARAMETERS ### -force -Use this switch to force delete the VPG. +Use this parameter to force delete the VPG, by setting this parameter equal to true. ```yaml -Type: SwitchParameter +Type: Boolean Parameter Sets: (All) Aliases: Required: False Position: Named -Default value: None +Default value: False Accept pipeline input: False Accept wildcard characters: False ``` ### -keepRecoveryVolumes -Use this switch to keep the recovery volumes at the target site. -If the virtual machines in the deleted VPG are reprotected, these volumes can be used as preseeded volumes to speed up the initial synchronization of the new VPG. +Use this parameter to keep the recovery volumes at the target site, by setting it to True. If the virtual machines in the deleted VPG are re-protected, these volumes can be used as pre-seed volumes to speed up the initial synchronization of the new VPG. Default is to remove Recovery Volumes ```yaml -Type: SwitchParameter +Type: Boolean Parameter Sets: (All) Aliases: Required: False Position: Named -Default value: None +Default value: False Accept pipeline input: False Accept wildcard characters: False ``` @@ -115,8 +115,7 @@ Accept wildcard characters: False ``` ### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. -For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS @@ -127,4 +126,5 @@ For more information, see about_CommonParameters (http://go.microsoft.com/fwlink ## NOTES ## RELATED LINKS + [Zerto REST API VPG End Point Documentation](http://s3.amazonaws.com/zertodownload_docs/Latest/Zerto%20Virtual%20Replication%20Zerto%20Virtual%20Manager%20%28ZVM%29%20-%20vSphere%20Online%20Help/RestfulAPIs/StatusAPIs.5.100.html#) From c3dbc79607e1bd9dd221e2bc81bba8a61ee5aa29 Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:39:22 -0400 Subject: [PATCH 07/14] Create Save-ZertoVpgSettings.md --- docs/Save-ZertoVpgSettings.md | 91 +++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs/Save-ZertoVpgSettings.md diff --git a/docs/Save-ZertoVpgSettings.md b/docs/Save-ZertoVpgSettings.md new file mode 100644 index 0000000..68d9b99 --- /dev/null +++ b/docs/Save-ZertoVpgSettings.md @@ -0,0 +1,91 @@ +--- +external help file: ZertoApiWrapper-help.xml +Module Name: ZertoApiWrapper +online version: https://github.com/wcarroll/ZertoApiWrapper/blob/master/docs/Save-ZertoVpgSettings.md +schema: 2.0.0 +--- + +# Save-ZertoVpgSettings + +## SYNOPSIS +Commits the updated Vpg Settings with the configured Vpg Settings Identifier + +## SYNTAX + +``` +Save-ZertoVpgSettings [-vpgSettingsIdentifier] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +Commits the updated Vpg Settings with the configured Vpg Settings Identifier + +## EXAMPLES + +### Example 1 +```powershell +PS C:> Save-ZertoVpgSettings -vpgSettingsIdentifier "MyVpgSettingsIdentifier" +``` + +Commits vpg settings with vpg settings identifier "MyVpgSettingsIdentifier" + +## PARAMETERS + +### -vpgSettingsIdentifier +VpgSettings Identifier to save + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: 0 +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.String +## OUTPUTS + +### System.Object +## NOTES + +## RELATED LINKS +[Zerto REST API VPG Settings End Point Documentation](http://s3.amazonaws.com/zertodownload_docs/Latest/Zerto%20Virtual%20Replication%20Zerto%20Virtual%20Manager%20%28ZVM%29%20-%20vSphere%20Online%20Help/RestfulAPIs/StatusAPIs.5.108.html#) From 67a35956aeabb6596dc91f11fafcd3b3d1597550 Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:39:26 -0400 Subject: [PATCH 08/14] Create New-ZertoVpg.md --- docs/New-ZertoVpg.md | 371 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 371 insertions(+) create mode 100644 docs/New-ZertoVpg.md diff --git a/docs/New-ZertoVpg.md b/docs/New-ZertoVpg.md new file mode 100644 index 0000000..af53eee --- /dev/null +++ b/docs/New-ZertoVpg.md @@ -0,0 +1,371 @@ +--- +external help file: ZertoApiWrapper-help.xml +Module Name: ZertoApiWrapper +online version: https://github.com/wcarroll/ZertoApiWrapper/blob/master/docs/New-ZertoVpg.md +schema: 2.0.0 +--- + +# New-ZertoVpg + +## SYNOPSIS +Creates a New VPG with default settings only. Customization of VM settings can be accomplished with other module level functions. + +## SYNTAX + +### recoveryClusterDatastoreCluster +``` +New-ZertoVpg -vpgName [-vpgPriority ] [-journalHistoryInHours ] -protectedVm + -recoverySite -recoveryCluster -datastoreCluster -recoveryFolder + [-rpoInSeconds ] [-testIntervalInMinutes ] [-serviceProfile ] + [-useWanCompression ] [-zorg ] -recoveryNetwork -testNetwork + [] +``` + +### recoveryClusterDatastore +``` +New-ZertoVpg -vpgName [-vpgPriority ] [-journalHistoryInHours ] -protectedVm + -recoverySite -recoveryCluster -datastore -recoveryFolder + [-rpoInSeconds ] [-testIntervalInMinutes ] [-serviceProfile ] + [-useWanCompression ] [-zorg ] -recoveryNetwork -testNetwork + [] +``` + +### recoveryHostDatastoreCluster +``` +New-ZertoVpg -vpgName [-vpgPriority ] [-journalHistoryInHours ] -protectedVm + -recoverySite -recoveryHost -datastoreCluster -recoveryFolder + [-rpoInSeconds ] [-testIntervalInMinutes ] [-serviceProfile ] + [-useWanCompression ] [-zorg ] -recoveryNetwork -testNetwork + [] +``` + +### recoveryHostDatastore +``` +New-ZertoVpg -vpgName [-vpgPriority ] [-journalHistoryInHours ] -protectedVm + -recoverySite -recoveryHost -datastore -recoveryFolder + [-rpoInSeconds ] [-testIntervalInMinutes ] [-serviceProfile ] + [-useWanCompression ] [-zorg ] -recoveryNetwork -testNetwork + [] +``` + +### recoveryResourcePoolDatastoreCluster +``` +New-ZertoVpg -vpgName [-vpgPriority ] [-journalHistoryInHours ] -protectedVm + -recoverySite -recoveryResourcePool -datastoreCluster -recoveryFolder + [-rpoInSeconds ] [-testIntervalInMinutes ] [-serviceProfile ] + [-useWanCompression ] [-zorg ] -recoveryNetwork -testNetwork + [] +``` + +### recoveryResourcePoolDatastore +``` +New-ZertoVpg -vpgName [-vpgPriority ] [-journalHistoryInHours ] -protectedVm + -recoverySite -recoveryResourcePool -datastore -recoveryFolder + [-rpoInSeconds ] [-testIntervalInMinutes ] [-serviceProfile ] + [-useWanCompression ] [-zorg ] -recoveryNetwork -testNetwork + [] +``` + +## DESCRIPTION +{{ Fill in the Description }} + +## EXAMPLES + +### Example 1 +```powershell +PS C:> {{ Add example code here }} +``` + +{{ Add example description here }} + +## PARAMETERS + +### -datastore +Name of the datastore where the VM(s), Volume(s), and Journal(s) will reside. + +```yaml +Type: String +Parameter Sets: recoveryClusterDatastore, recoveryHostDatastore, recoveryResourcePoolDatastore +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -datastoreCluster +Name of the datastore cluster where the VM(s), Volume(s), and Journal(s) will reside. + +```yaml +Type: String +Parameter Sets: recoveryClusterDatastoreCluster, recoveryHostDatastoreCluster, recoveryResourcePoolDatastoreCluster +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -journalHistoryInHours +Journal History in Hours. +Min 1 hour, Max 720 Hours (30 days) + +```yaml +Type: Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -protectedVm +Name(s) of the VM(s) to be protected. + +```yaml +Type: String[] +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -recoveryCluster +Name of the cluster where the VM(s) will be recovered. + +```yaml +Type: String +Parameter Sets: recoveryClusterDatastoreCluster, recoveryClusterDatastore +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -recoveryFolder +Name of folder at recovery location where the recovered virtual machine(s) will be created. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -recoveryHost +Name of the host where the VM(s) will be recovered. + +```yaml +Type: String +Parameter Sets: recoveryHostDatastoreCluster, recoveryHostDatastore +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -recoveryNetwork +Name of the network to use during a Failover Live \ Move VPG operation. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -recoveryResourcePool +Name of the resource pool where the VM(s) will be recovered. + +```yaml +Type: String +Parameter Sets: recoveryResourcePoolDatastoreCluster, recoveryResourcePoolDatastore +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -recoverySite +Name of the site where the VM(s) will be recoveryed + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -rpoInSeconds +RPO alert + +```yaml +Type: Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -serviceProfile +Service profile name to use. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -testIntervalInMinutes +Minimum test interval for this VPG. +Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months + +```yaml +Type: Int32 +Parameter Sets: (All) +Aliases: +Accepted values: 0, 43200, 131040, 262080, 294560, 252600 + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -testNetwork +Name of the network to use during a Failover Test operation + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -useWanCompression +Turn on or off WAN and Journal Compression. +Default is turned on. + +```yaml +Type: Boolean +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -vpgName +Name of the VPG + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -vpgPriority +VPG Priority. +High, Medium, or Low. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: +Accepted values: High, Medium, Low + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -zorg +Name of ZORG to use. + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None +## OUTPUTS + +### System.String +## NOTES + +## RELATED LINKS +[Zerto REST API VPG Settings End Point Documentation](http://s3.amazonaws.com/zertodownload_docs/Latest/Zerto%20Virtual%20Replication%20Zerto%20Virtual%20Manager%20%28ZVM%29%20-%20vSphere%20Online%20Help/RestfulAPIs/StatusAPIs.5.108.html#) \ No newline at end of file From 4ae33a920b2a183cdf2cd3c7556af18620bd3e59 Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:43:59 -0400 Subject: [PATCH 09/14] Update test interval valid values. --- ZertoApiWrapper/Public/New-ZertoVpg.ps1 | 2 +- docs/New-ZertoVpg.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ZertoApiWrapper/Public/New-ZertoVpg.ps1 b/ZertoApiWrapper/Public/New-ZertoVpg.ps1 index 083d9b9..4d485b6 100644 --- a/ZertoApiWrapper/Public/New-ZertoVpg.ps1 +++ b/ZertoApiWrapper/Public/New-ZertoVpg.ps1 @@ -102,7 +102,7 @@ function New-ZertoVpg { )] [ValidateRange(60, 864200)][Int32]$rpoInSeconds = 300, [Parameter( - HelpMessage = "Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months" + HelpMessage = "Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months, 262080: 6 Months, 294560: 9 Months, 252600: 12 Months" )] [ValidateSet(0, 43200, 131040, 262080, 294560, 252600)][int]$testIntervalInMinutes = 262080, [Parameter( diff --git a/docs/New-ZertoVpg.md b/docs/New-ZertoVpg.md index af53eee..507e8b6 100644 --- a/docs/New-ZertoVpg.md +++ b/docs/New-ZertoVpg.md @@ -263,7 +263,7 @@ Accept wildcard characters: False ### -testIntervalInMinutes Minimum test interval for this VPG. -Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months +Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months, 262080: 6 Months, 294560: 9 Months, 252600: 12 Months ```yaml Type: Int32 From 34ec49f01e1f7db9f85f8b88187d02f25ca8331a Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:47:56 -0400 Subject: [PATCH 10/14] Update help messages. --- ZertoApiWrapper/Public/New-ZertoVpg.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ZertoApiWrapper/Public/New-ZertoVpg.ps1 b/ZertoApiWrapper/Public/New-ZertoVpg.ps1 index 4d485b6..783a9a7 100644 --- a/ZertoApiWrapper/Public/New-ZertoVpg.ps1 +++ b/ZertoApiWrapper/Public/New-ZertoVpg.ps1 @@ -8,12 +8,12 @@ function New-ZertoVpg { )] [string]$vpgName, [Parameter( - HelpMessage = "VPG Priority. High, Medium, or Low." + HelpMessage = "VPG Priority. High, Medium, or Low. Default value is Medium" )] [ValidateSet("High", "Medium", "Low")] [string]$vpgPriority = "Medium", [Parameter( - HelpMessage = "Journal History in Hours. Min 1 hour, Max 720 Hours (30 days)" + HelpMessage = "Journal History in Hours. Min 1 hour, Max 720 Hours (30 days). Default value is 24 hours" )] [ValidateRange(1, 720)] [int]$journalHistoryInHours = 24, From 5a55cc8ee3b767616ffbf24807dd89c7b9fcbbf8 Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Sun, 10 Mar 2019 22:48:15 -0400 Subject: [PATCH 11/14] Update parameters with default values --- docs/New-ZertoVpg.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/New-ZertoVpg.md b/docs/New-ZertoVpg.md index 507e8b6..71fd1c9 100644 --- a/docs/New-ZertoVpg.md +++ b/docs/New-ZertoVpg.md @@ -121,7 +121,7 @@ Aliases: Required: False Position: Named -Default value: None +Default value: 24 Accept pipeline input: False Accept wildcard characters: False ``` @@ -241,7 +241,7 @@ Aliases: Required: False Position: Named -Default value: None +Default value: 300 Accept pipeline input: False Accept wildcard characters: False ``` @@ -273,7 +273,7 @@ Accepted values: 0, 43200, 131040, 262080, 294560, 252600 Required: False Position: Named -Default value: None +Default value: 262080 Accept pipeline input: False Accept wildcard characters: False ``` @@ -304,7 +304,7 @@ Aliases: Required: False Position: Named -Default value: None +Default value: True Accept pipeline input: False Accept wildcard characters: False ``` @@ -336,7 +336,7 @@ Accepted values: High, Medium, Low Required: False Position: Named -Default value: None +Default value: Medium Accept pipeline input: False Accept wildcard characters: False ``` From 03ce7e52442a76a32884a5bbe65058e0d3b636ce Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Mon, 11 Mar 2019 08:55:04 -0400 Subject: [PATCH 12/14] Corrected spelling errors --- docs/Edit-ZertoVra.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Edit-ZertoVra.md b/docs/Edit-ZertoVra.md index 3a80509..ab0db64 100644 --- a/docs/Edit-ZertoVra.md +++ b/docs/Edit-ZertoVra.md @@ -24,7 +24,7 @@ It is possible to update the Bandwidth group with the -groupName setting. If the It is possible to update the static IP address, default gateway, or subnetmask. -It is suggested that you use Get-ZertoVra to get the vraIdentifer prameter. +It is suggested that you use Get-ZertoVra to get the vraIdentifer parameter. ## EXAMPLES From b2497bd35ae9236dcc1725aec70456472a48332e Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Mon, 11 Mar 2019 09:22:22 -0400 Subject: [PATCH 13/14] Complete New-ZertoVpg Help Markdown --- docs/New-ZertoVpg.md | 92 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 89 insertions(+), 3 deletions(-) diff --git a/docs/New-ZertoVpg.md b/docs/New-ZertoVpg.md index 71fd1c9..1ceb1fb 100644 --- a/docs/New-ZertoVpg.md +++ b/docs/New-ZertoVpg.md @@ -67,16 +67,101 @@ New-ZertoVpg -vpgName [-vpgPriority ] [-journalHistoryInHours < ``` ## DESCRIPTION -{{ Fill in the Description }} +Creates a New VPG with minimal default settings only. If additional configuration is desired, the VPG settings identifier will be returned and can be passed to other VPG modifying functions to include additional details. + +Finally, to save the settings, you need to pass the Vpg Settings Identifier to the `Save-ZertoVpgSettings` function to commit the the VPG. ## EXAMPLES ### Example 1 ```powershell -PS C:> {{ Add example code here }} +PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryCluster "Recovery Cluster Name" -recoveryDatastoreCluster "Datastore Cluster Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" ``` -{{ Add example description here }} +Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the compute cluster "Recovery Cluster Name" on the datastore cluster "Datastore Cluster Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + +- VpgPriority: Medium +- JournalHistoryInHours: 24 +- RpoInSeconds: 300 +- TestIntervalInMinutes: 262080 +- UseWanCompression: True +- ServiceProfile: Null +- Zorg: Null + +### Example 2 +```powershell +PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryCluster "Recovery Cluster Name" -recoveryDatastore "Datastore Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" +``` + +Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the compute cluster "Recovery Cluster Name" on the datastore named "Datastore Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + +- VpgPriority: Medium +- JournalHistoryInHours: 24 +- RpoInSeconds: 300 +- TestIntervalInMinutes: 262080 +- UseWanCompression: True +- ServiceProfile: Null +- Zorg: Null + +### Example 3 +```powershell +PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryHost "Recovery Host Name" -recoveryDatastore "Datastore Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" +``` + +Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the compute host "Recovery Cluster Name" on the datastore named "Datastore Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + +- VpgPriority: Medium +- JournalHistoryInHours: 24 +- RpoInSeconds: 300 +- TestIntervalInMinutes: 262080 +- UseWanCompression: True +- ServiceProfile: Null +- Zorg: Null + +### Example 4 +```powershell +PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryHost "Recovery Host Name" -recoveryClusterDatastore "Datastore Cluster Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" +``` + +Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the compute host "Recovery Name" on the datastore named "Datastore Cluster Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + +- VpgPriority: Medium +- JournalHistoryInHours: 24 +- RpoInSeconds: 300 +- TestIntervalInMinutes: 262080 +- UseWanCompression: True +- ServiceProfile: Null +- Zorg: Null + +### Example 5 +```powershell +PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryResourcePool "Recovery Resource Pool Name" -recoveryDatastore "Datastore Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" +``` + +Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the resource pool "Recovery Resource Pool Name" on the datastore named "Datastore Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + +- VpgPriority: Medium +- JournalHistoryInHours: 24 +- RpoInSeconds: 300 +- TestIntervalInMinutes: 262080 +- UseWanCompression: True +- ServiceProfile: Null +- Zorg: Null + +### Example 5 +```powershell +PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryResourcePool "Recovery Resource Pool Name" -recoveryDatastoreCluster "Datastore Cluster Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" +``` + +Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the resource pool "Recovery Resource Pool Name" on the datastore cluster named "Datastore Cluster Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + +- VpgPriority: Medium +- JournalHistoryInHours: 24 +- RpoInSeconds: 300 +- TestIntervalInMinutes: 262080 +- UseWanCompression: True +- ServiceProfile: Null +- Zorg: Null ## PARAMETERS @@ -365,6 +450,7 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ## OUTPUTS ### System.String +Vpg Settings Identifier ## NOTES ## RELATED LINKS From 1aa4804a066d92636ba9ce7cb4e2a1bcc27d59ac Mon Sep 17 00:00:00 2001 From: Wes Carroll Date: Mon, 11 Mar 2019 09:27:01 -0400 Subject: [PATCH 14/14] Update ZertoApiWrapper-help.xml --- .../Public/en-us/ZertoApiWrapper-help.xml | 1689 ++++++++++++++++- 1 file changed, 1678 insertions(+), 11 deletions(-) diff --git a/ZertoApiWrapper/Public/en-us/ZertoApiWrapper-help.xml b/ZertoApiWrapper/Public/en-us/ZertoApiWrapper-help.xml index 031d44a..b2cf3fb 100644 --- a/ZertoApiWrapper/Public/en-us/ZertoApiWrapper-help.xml +++ b/ZertoApiWrapper/Public/en-us/ZertoApiWrapper-help.xml @@ -513,7 +513,7 @@ Updates a VRA with updated settings using the Zerto VRA end point. It is possible to update the Bandwidth group with the -groupName setting. If the group does not currently exist, it will be created. It is possible to update the static IP address, default gateway, or subnetmask. - It is suggested that you use Get-ZertoVra to get the vraIdentifer prameter. + It is suggested that you use Get-ZertoVra to get the vraIdentifer parameter. @@ -7866,6 +7866,1537 @@ + + + New-ZertoVpg + New + ZertoVpg + + Creates a New VPG with default settings only. Customization of VM settings can be accomplished with other module level functions. + + + + Creates a New VPG with minimal default settings only. If additional configuration is desired, the VPG settings identifier will be returned and can be passed to other VPG modifying functions to include additional details. + Finally, to save the settings, you need to pass the Vpg Settings Identifier to the `Save-ZertoVpgSettings` function to commit the the VPG. + + + + New-ZertoVpg + + datastore + + Name of the datastore where the VM(s), Volume(s), and Journal(s) will reside. + + String + + String + + + None + + + journalHistoryInHours + + Journal History in Hours. Min 1 hour, Max 720 Hours (30 days) + + Int32 + + Int32 + + + 24 + + + protectedVm + + Name(s) of the VM(s) to be protected. + + String[] + + String[] + + + None + + + recoveryCluster + + Name of the cluster where the VM(s) will be recovered. + + String + + String + + + None + + + recoveryFolder + + Name of folder at recovery location where the recovered virtual machine(s) will be created. + + String + + String + + + None + + + recoveryNetwork + + Name of the network to use during a Failover Live \ Move VPG operation. + + String + + String + + + None + + + recoverySite + + Name of the site where the VM(s) will be recoveryed + + String + + String + + + None + + + rpoInSeconds + + RPO alert + + Int32 + + Int32 + + + 300 + + + serviceProfile + + Service profile name to use. + + String + + String + + + None + + + testIntervalInMinutes + + Minimum test interval for this VPG. Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months, 262080: 6 Months, 294560: 9 Months, 252600: 12 Months + + + 0 + 43200 + 131040 + 262080 + 294560 + 252600 + + Int32 + + Int32 + + + 262080 + + + testNetwork + + Name of the network to use during a Failover Test operation + + String + + String + + + None + + + useWanCompression + + Turn on or off WAN and Journal Compression. Default is turned on. + + Boolean + + Boolean + + + True + + + vpgName + + Name of the VPG + + String + + String + + + None + + + vpgPriority + + VPG Priority. High, Medium, or Low. + + + High + Medium + Low + + String + + String + + + Medium + + + zorg + + Name of ZORG to use. + + String + + String + + + None + + + + New-ZertoVpg + + datastore + + Name of the datastore where the VM(s), Volume(s), and Journal(s) will reside. + + String + + String + + + None + + + journalHistoryInHours + + Journal History in Hours. Min 1 hour, Max 720 Hours (30 days) + + Int32 + + Int32 + + + 24 + + + protectedVm + + Name(s) of the VM(s) to be protected. + + String[] + + String[] + + + None + + + recoveryFolder + + Name of folder at recovery location where the recovered virtual machine(s) will be created. + + String + + String + + + None + + + recoveryHost + + Name of the host where the VM(s) will be recovered. + + String + + String + + + None + + + recoveryNetwork + + Name of the network to use during a Failover Live \ Move VPG operation. + + String + + String + + + None + + + recoverySite + + Name of the site where the VM(s) will be recoveryed + + String + + String + + + None + + + rpoInSeconds + + RPO alert + + Int32 + + Int32 + + + 300 + + + serviceProfile + + Service profile name to use. + + String + + String + + + None + + + testIntervalInMinutes + + Minimum test interval for this VPG. Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months, 262080: 6 Months, 294560: 9 Months, 252600: 12 Months + + + 0 + 43200 + 131040 + 262080 + 294560 + 252600 + + Int32 + + Int32 + + + 262080 + + + testNetwork + + Name of the network to use during a Failover Test operation + + String + + String + + + None + + + useWanCompression + + Turn on or off WAN and Journal Compression. Default is turned on. + + Boolean + + Boolean + + + True + + + vpgName + + Name of the VPG + + String + + String + + + None + + + vpgPriority + + VPG Priority. High, Medium, or Low. + + + High + Medium + Low + + String + + String + + + Medium + + + zorg + + Name of ZORG to use. + + String + + String + + + None + + + + New-ZertoVpg + + datastore + + Name of the datastore where the VM(s), Volume(s), and Journal(s) will reside. + + String + + String + + + None + + + journalHistoryInHours + + Journal History in Hours. Min 1 hour, Max 720 Hours (30 days) + + Int32 + + Int32 + + + 24 + + + protectedVm + + Name(s) of the VM(s) to be protected. + + String[] + + String[] + + + None + + + recoveryFolder + + Name of folder at recovery location where the recovered virtual machine(s) will be created. + + String + + String + + + None + + + recoveryNetwork + + Name of the network to use during a Failover Live \ Move VPG operation. + + String + + String + + + None + + + recoveryResourcePool + + Name of the resource pool where the VM(s) will be recovered. + + String + + String + + + None + + + recoverySite + + Name of the site where the VM(s) will be recoveryed + + String + + String + + + None + + + rpoInSeconds + + RPO alert + + Int32 + + Int32 + + + 300 + + + serviceProfile + + Service profile name to use. + + String + + String + + + None + + + testIntervalInMinutes + + Minimum test interval for this VPG. Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months, 262080: 6 Months, 294560: 9 Months, 252600: 12 Months + + + 0 + 43200 + 131040 + 262080 + 294560 + 252600 + + Int32 + + Int32 + + + 262080 + + + testNetwork + + Name of the network to use during a Failover Test operation + + String + + String + + + None + + + useWanCompression + + Turn on or off WAN and Journal Compression. Default is turned on. + + Boolean + + Boolean + + + True + + + vpgName + + Name of the VPG + + String + + String + + + None + + + vpgPriority + + VPG Priority. High, Medium, or Low. + + + High + Medium + Low + + String + + String + + + Medium + + + zorg + + Name of ZORG to use. + + String + + String + + + None + + + + New-ZertoVpg + + datastoreCluster + + Name of the datastore cluster where the VM(s), Volume(s), and Journal(s) will reside. + + String + + String + + + None + + + journalHistoryInHours + + Journal History in Hours. Min 1 hour, Max 720 Hours (30 days) + + Int32 + + Int32 + + + 24 + + + protectedVm + + Name(s) of the VM(s) to be protected. + + String[] + + String[] + + + None + + + recoveryCluster + + Name of the cluster where the VM(s) will be recovered. + + String + + String + + + None + + + recoveryFolder + + Name of folder at recovery location where the recovered virtual machine(s) will be created. + + String + + String + + + None + + + recoveryNetwork + + Name of the network to use during a Failover Live \ Move VPG operation. + + String + + String + + + None + + + recoverySite + + Name of the site where the VM(s) will be recoveryed + + String + + String + + + None + + + rpoInSeconds + + RPO alert + + Int32 + + Int32 + + + 300 + + + serviceProfile + + Service profile name to use. + + String + + String + + + None + + + testIntervalInMinutes + + Minimum test interval for this VPG. Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months, 262080: 6 Months, 294560: 9 Months, 252600: 12 Months + + + 0 + 43200 + 131040 + 262080 + 294560 + 252600 + + Int32 + + Int32 + + + 262080 + + + testNetwork + + Name of the network to use during a Failover Test operation + + String + + String + + + None + + + useWanCompression + + Turn on or off WAN and Journal Compression. Default is turned on. + + Boolean + + Boolean + + + True + + + vpgName + + Name of the VPG + + String + + String + + + None + + + vpgPriority + + VPG Priority. High, Medium, or Low. + + + High + Medium + Low + + String + + String + + + Medium + + + zorg + + Name of ZORG to use. + + String + + String + + + None + + + + New-ZertoVpg + + datastoreCluster + + Name of the datastore cluster where the VM(s), Volume(s), and Journal(s) will reside. + + String + + String + + + None + + + journalHistoryInHours + + Journal History in Hours. Min 1 hour, Max 720 Hours (30 days) + + Int32 + + Int32 + + + 24 + + + protectedVm + + Name(s) of the VM(s) to be protected. + + String[] + + String[] + + + None + + + recoveryFolder + + Name of folder at recovery location where the recovered virtual machine(s) will be created. + + String + + String + + + None + + + recoveryHost + + Name of the host where the VM(s) will be recovered. + + String + + String + + + None + + + recoveryNetwork + + Name of the network to use during a Failover Live \ Move VPG operation. + + String + + String + + + None + + + recoverySite + + Name of the site where the VM(s) will be recoveryed + + String + + String + + + None + + + rpoInSeconds + + RPO alert + + Int32 + + Int32 + + + 300 + + + serviceProfile + + Service profile name to use. + + String + + String + + + None + + + testIntervalInMinutes + + Minimum test interval for this VPG. Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months, 262080: 6 Months, 294560: 9 Months, 252600: 12 Months + + + 0 + 43200 + 131040 + 262080 + 294560 + 252600 + + Int32 + + Int32 + + + 262080 + + + testNetwork + + Name of the network to use during a Failover Test operation + + String + + String + + + None + + + useWanCompression + + Turn on or off WAN and Journal Compression. Default is turned on. + + Boolean + + Boolean + + + True + + + vpgName + + Name of the VPG + + String + + String + + + None + + + vpgPriority + + VPG Priority. High, Medium, or Low. + + + High + Medium + Low + + String + + String + + + Medium + + + zorg + + Name of ZORG to use. + + String + + String + + + None + + + + New-ZertoVpg + + datastoreCluster + + Name of the datastore cluster where the VM(s), Volume(s), and Journal(s) will reside. + + String + + String + + + None + + + journalHistoryInHours + + Journal History in Hours. Min 1 hour, Max 720 Hours (30 days) + + Int32 + + Int32 + + + 24 + + + protectedVm + + Name(s) of the VM(s) to be protected. + + String[] + + String[] + + + None + + + recoveryFolder + + Name of folder at recovery location where the recovered virtual machine(s) will be created. + + String + + String + + + None + + + recoveryNetwork + + Name of the network to use during a Failover Live \ Move VPG operation. + + String + + String + + + None + + + recoveryResourcePool + + Name of the resource pool where the VM(s) will be recovered. + + String + + String + + + None + + + recoverySite + + Name of the site where the VM(s) will be recoveryed + + String + + String + + + None + + + rpoInSeconds + + RPO alert + + Int32 + + Int32 + + + 300 + + + serviceProfile + + Service profile name to use. + + String + + String + + + None + + + testIntervalInMinutes + + Minimum test interval for this VPG. Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months, 262080: 6 Months, 294560: 9 Months, 252600: 12 Months + + + 0 + 43200 + 131040 + 262080 + 294560 + 252600 + + Int32 + + Int32 + + + 262080 + + + testNetwork + + Name of the network to use during a Failover Test operation + + String + + String + + + None + + + useWanCompression + + Turn on or off WAN and Journal Compression. Default is turned on. + + Boolean + + Boolean + + + True + + + vpgName + + Name of the VPG + + String + + String + + + None + + + vpgPriority + + VPG Priority. High, Medium, or Low. + + + High + Medium + Low + + String + + String + + + Medium + + + zorg + + Name of ZORG to use. + + String + + String + + + None + + + + + + datastore + + Name of the datastore where the VM(s), Volume(s), and Journal(s) will reside. + + String + + String + + + None + + + datastoreCluster + + Name of the datastore cluster where the VM(s), Volume(s), and Journal(s) will reside. + + String + + String + + + None + + + journalHistoryInHours + + Journal History in Hours. Min 1 hour, Max 720 Hours (30 days) + + Int32 + + Int32 + + + 24 + + + protectedVm + + Name(s) of the VM(s) to be protected. + + String[] + + String[] + + + None + + + recoveryCluster + + Name of the cluster where the VM(s) will be recovered. + + String + + String + + + None + + + recoveryFolder + + Name of folder at recovery location where the recovered virtual machine(s) will be created. + + String + + String + + + None + + + recoveryHost + + Name of the host where the VM(s) will be recovered. + + String + + String + + + None + + + recoveryNetwork + + Name of the network to use during a Failover Live \ Move VPG operation. + + String + + String + + + None + + + recoveryResourcePool + + Name of the resource pool where the VM(s) will be recovered. + + String + + String + + + None + + + recoverySite + + Name of the site where the VM(s) will be recoveryed + + String + + String + + + None + + + rpoInSeconds + + RPO alert + + Int32 + + Int32 + + + 300 + + + serviceProfile + + Service profile name to use. + + String + + String + + + None + + + testIntervalInMinutes + + Minimum test interval for this VPG. Minimum test interval for this VPG. Valid values are 0: Off, 43200: 1 Month, 131040: 3 Months, 262080: 6 Months, 294560: 9 Months, 252600: 12 Months + + Int32 + + Int32 + + + 262080 + + + testNetwork + + Name of the network to use during a Failover Test operation + + String + + String + + + None + + + useWanCompression + + Turn on or off WAN and Journal Compression. Default is turned on. + + Boolean + + Boolean + + + True + + + vpgName + + Name of the VPG + + String + + String + + + None + + + vpgPriority + + VPG Priority. High, Medium, or Low. + + String + + String + + + Medium + + + zorg + + Name of ZORG to use. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.String + + + Vpg Settings Identifier + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryCluster "Recovery Cluster Name" -recoveryDatastoreCluster "Datastore Cluster Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" + + Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the compute cluster "Recovery Cluster Name" on the datastore cluster "Datastore Cluster Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + - VpgPriority: Medium + - JournalHistoryInHours: 24 + - RpoInSeconds: 300 + - TestIntervalInMinutes: 262080 + - UseWanCompression: True + - ServiceProfile: Null + - Zorg: Null + + + + -------------------------- Example 2 -------------------------- + PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryCluster "Recovery Cluster Name" -recoveryDatastore "Datastore Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" + + Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the compute cluster "Recovery Cluster Name" on the datastore named "Datastore Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + - VpgPriority: Medium + - JournalHistoryInHours: 24 + - RpoInSeconds: 300 + - TestIntervalInMinutes: 262080 + - UseWanCompression: True + - ServiceProfile: Null + - Zorg: Null + + + + -------------------------- Example 3 -------------------------- + PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryHost "Recovery Host Name" -recoveryDatastore "Datastore Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" + + Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the compute host "Recovery Cluster Name" on the datastore named "Datastore Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + - VpgPriority: Medium + - JournalHistoryInHours: 24 + - RpoInSeconds: 300 + - TestIntervalInMinutes: 262080 + - UseWanCompression: True + - ServiceProfile: Null + - Zorg: Null + + + + -------------------------- Example 4 -------------------------- + PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryHost "Recovery Host Name" -recoveryClusterDatastore "Datastore Cluster Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" + + Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the compute host "Recovery Name" on the datastore named "Datastore Cluster Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + - VpgPriority: Medium + - JournalHistoryInHours: 24 + - RpoInSeconds: 300 + - TestIntervalInMinutes: 262080 + - UseWanCompression: True + - ServiceProfile: Null + - Zorg: Null + + + + -------------------------- Example 5 -------------------------- + PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryResourcePool "Recovery Resource Pool Name" -recoveryDatastore "Datastore Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" + + Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the resource pool "Recovery Resource Pool Name" on the datastore named "Datastore Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + - VpgPriority: Medium + - JournalHistoryInHours: 24 + - RpoInSeconds: 300 + - TestIntervalInMinutes: 262080 + - UseWanCompression: True + - ServiceProfile: Null + - Zorg: Null + + + + -------------------------- Example 5 -------------------------- + PS C:> New-ZertoVpg -vpgName "MyVpg" -protectedVm "WebServer01", "AppServer01", "DatabaseServer01" -recoverySite "Recovery Site" -recoveryFolder "Recovered VMs" -recoveryResourcePool "Recovery Resource Pool Name" -recoveryDatastoreCluster "Datastore Cluster Name" -testNetwork "Test Bubble Network" -recoveryNetwork "VM Network" + + Creates a VPG Settings Object for a VPG called "MyVpg" and protecting Virtual Machines "WebServer01", "AppServer01", and "DatabaseServer01" targeting site "Recovery Site." The Virtual machines will be placed on the resource pool "Recovery Resource Pool Name" on the datastore cluster named "Datastore Cluster Name." When the virtual machines are created at the recovery site, they will be created in the folder "Recovered VMs." Finally, the network to be used during a live event will be "VM Network" and during a test operation will be "VM Network." Other values set will be the defaults, such as: + - VpgPriority: Medium + - JournalHistoryInHours: 24 + - RpoInSeconds: 300 + - TestIntervalInMinutes: 262080 + - UseWanCompression: True + - ServiceProfile: Null + - Zorg: Null + + + + + + Online Version: + https://github.com/wcarroll/ZertoApiWrapper/blob/master/docs/New-ZertoVpg.md + + + Zerto REST API VPG Settings End Point Documentation + http://s3.amazonaws.com/zertodownload_docs/Latest/Zerto%20Virtual%20Replication%20Zerto%20Virtual%20Manager%20%28ZVM%29%20-%20vSphere%20Online%20Help/RestfulAPIs/StatusAPIs.5.108.html# + + + Remove-ZertoVpg @@ -7896,10 +9427,11 @@ force - Use this switch to force delete the VPG. + Use this parameter to force delete the VPG, by setting this parameter equal to true. + Boolean - SwitchParameter + Boolean False @@ -7907,10 +9439,11 @@ keepRecoveryVolumes - Use this switch to keep the recovery volumes at the target site. If the virtual machines in the deleted VPG are reprotected, these volumes can be used as preseeded volumes to speed up the initial synchronization of the new VPG. + Use this parameter to keep the recovery volumes at the target site, by setting it to True. If the virtual machines in the deleted VPG are re-protected, these volumes can be used as pre-seed volumes to speed up the initial synchronization of the new VPG. Default is to remove Recovery Volumes + Boolean - SwitchParameter + Boolean False @@ -7943,11 +9476,11 @@ force - Use this switch to force delete the VPG. + Use this parameter to force delete the VPG, by setting this parameter equal to true. - SwitchParameter + Boolean - SwitchParameter + Boolean False @@ -7955,11 +9488,11 @@ keepRecoveryVolumes - Use this switch to keep the recovery volumes at the target site. If the virtual machines in the deleted VPG are reprotected, these volumes can be used as preseeded volumes to speed up the initial synchronization of the new VPG. + Use this parameter to keep the recovery volumes at the target site, by setting it to True. If the virtual machines in the deleted VPG are re-protected, these volumes can be used as pre-seed volumes to speed up the initial synchronization of the new VPG. Default is to remove Recovery Volumes - SwitchParameter + Boolean - SwitchParameter + Boolean False @@ -8141,6 +9674,140 @@ + + + Save-ZertoVpgSettings + Save + ZertoVpgSettings + + Commits the updated Vpg Settings with the configured Vpg Settings Identifier + + + + Commits the updated Vpg Settings with the configured Vpg Settings Identifier + + + + Save-ZertoVpgSettings + + vpgSettingsIdentifier + + VpgSettings Identifier to save + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + vpgSettingsIdentifier + + VpgSettings Identifier to save + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:> Save-ZertoVpgSettings -vpgSettingsIdentifier "MyVpgSettingsIdentifier" + + Commits vpg settings with vpg settings identifier "MyVpgSettingsIdentifier" + + + + + + Online Version: + https://github.com/wcarroll/ZertoApiWrapper/blob/master/docs/Save-ZertoVpgSettings.md + + + Zerto REST API VPG Settings End Point Documentation + http://s3.amazonaws.com/zertodownload_docs/Latest/Zerto%20Virtual%20Replication%20Zerto%20Virtual%20Manager%20%28ZVM%29%20-%20vSphere%20Online%20Help/RestfulAPIs/StatusAPIs.5.108.html# + + + Set-ZertoAlert