# Managed Object - SrmProtectionGroup

Property of
  SrmFaultDatastoreAlreadyProtected, SrmFaultVmAlreadyProtectedEx, SrmFaultVmNotAssociated, SrmProtectionGroupDetails, SrmProtectionGroupPeer, SrmProtectionGroupVmProtectionInfo, SrmRecoveryPlanInfo, SrmVvolFaultGroupProtectionOverlapped, SrmVvolFaultGroupStateMissmatch, SrmVvolFaultVmPiggybackError, SrmVvolUnprotectedVmInfo
Parameter to
  AddProtectionGroup, CreateRecoveryPlan, RemoveProtectionGroup, RemoveProtectionGroupFromRecoveryPlan
Returned by
  GetNewProtectionGroup, GetProtectionGroup, ListChildProtectionGroups, ListProtectionGroups
See also
  SrmFolder, SrmProtectionGroupFolder, SrmProtectionGroupInfo, SrmProtectionGroupPeer, SrmProtectionGroupPlaceholderVmInfo, SrmProtectionGroupPlaceholderVmLocation, SrmProtectionGroupProtectedVm, SrmProtectionGroupProtectionState, SrmProtectionGroupRecoveryLocationSettings, SrmProtectionGroupVmProtectionInfo, SrmProtectionGroupVmProtectionSpec, SrmProtectionTask, SrmRecoveryPlan, SrmStorageProviderGroupDetails, SrmVvolGroupDetails
Since
  SRM API 2.0

## Managed Object Description

External Interface to Site Recovery Manager - Protection.

This interface works only on the locally connected site except where specified.

Properties

Name | Type | Description
--- | --- | ---
None

Methods

Methods defined in this Managed Object
AddDatastores, AssociateVms, CheckConfigured, GetAbrGroupDetails, GetInfo, GetPeer, GetPlaceholderVmInfo, GetProtectionState, GetRecoveryLocationSettings, GetVvolGroupDetails, ListAssociatedVms, ListProtectedDatastores, ListProtectedVms, MoveProtectionGroup_Task, ProtectionGroupGetOperationalLocation, ProtectionGroupGetParentFolder, ProtectionGroupListRecoveryPlans, ProtectionGroupQueryVmProtection, ProtectVms, ReconfigureRecoveryLocationSettings_Task, ReconfigureVvolProtectionGroup, RecreatePlaceholder_Task, RemoveDatastores, UnassociateVms, UnprotectVms

# AddDatastores

Adds datastores to the protection group. Virtual machines on those datastores can be additionally protected by the protection group. This can be done by calling protectVms method from this interface.

Required Privileges
  VcDr.ProtectionProfile.com.vmware.vcDr.Edit
Since
  SRM API 7.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
datastores* P | vim.Datastore[] | The list of datastores that will be added to the protection group. Since SRM API 7.0

*Need not be set P Required privilege: datastores

Return Value

Type | Description
--- | ---
None

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
vmodl.fault.NotSupported | Thrown if this group is not array based.
vim.fault.ConcurrentAccess |
SrmFaultInvalidArgument | Thrown if the list of datastores is empty or null.
SrmFaultInvalidState | In case of exception from the SRM. For example the datastore is already protected by another protection group.
SrmFaultReplicationProviderFault | Generic fault describing if the {@code ReplicationProvider} rejected the operation.

Events

Type
None

# AssociateVms

Associate the specified VMs with this group (VR only).

In order to protect a VirtualMachine, the VirtualMachine has to be associated with the group first.

Required Privileges
  VcDr.ProtectionProfile.com.vmware.vcDr.Edit

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
vms P | vim.VirtualMachine[] | The list of virtual machines to associate with. Since SRM API 2.0

P Required privilege: vms

Return Value

Type | Description
--- | ---
None

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
vim.fault.ConcurrentAccess |
SrmFaultInvalidArgument | Thrown if the list of virtual machines is empty or null.
SrmFaultInvalidState | Thrown if a specified VM is already associated with another group.

Events

Type
None

# CheckConfigured

Checks if in this group: there are not configured VMs there are configuration issues detected since the group was created or modified there are protected VMs that needs configuration (if Placeholder VM needs repair or there are unresolved devices).

Required Privileges
  System.View
Since
  SRM API 5.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
xsd:boolean | Returns true if the group is configured and ready to use.

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
vmodl.fault.NotSupported | Thrown if this group is not a VR, SAN or a vVol group.
SrmFaultInvalidState | Thrown if this group is not on the protected site and cannot get information about its remote object.

Events

Type
None

# GetAbrGroupDetails

Get ABR specific details for this protection group.

Required Privileges
  System.View
Since
  SRM API 12.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
SrmStorageProviderGroupDetails |

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
vmodl.fault.NotSupported | When the protection group is not a ABR group.

Events

Type
None

# GetInfo

Retrieve basic information about this protection group.

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
SrmProtectionGroupInfo | The basic information about this group.

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# GetPeer

Retrieve the peer protection group.

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
SrmProtectionGroupPeer | The peer protection group from the remote site.

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# GetPlaceholderVmInfo

Return information for the placeholder VM for the specified protected VM.

Required Privileges
  System.View
Since
  SRM API 11.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
protectedVm P | SrmProtectionGroupProtectedVm | Since SRM API 11.0

P Required privilege: protectedVm

Return Value

Type | Description
--- | ---
SrmProtectionGroupPlaceholderVmInfo |

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
SrmFaultInvalidArgument |

Events

Type
None

# GetProtectionState

Get the current state of the protection group.

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
SrmProtectionGroupProtectionState | The state of the protection group.

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# GetRecoveryLocationSettings

Return the recovery location settings for the specified protected VM.

Required Privileges
  System.View
Since
  SRM API 11.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
protectedVm P | SrmProtectionGroupProtectedVm | Since SRM API 11.0

P Required privilege: protectedVm

Return Value

Type | Description
--- | ---
SrmProtectionGroupRecoveryLocationSettings |

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
SrmFaultInvalidArgument |

Events

Type
None

# GetVvolGroupDetails

Get vVol specific details for this protection group.

Required Privileges
  System.View
Since
  SRM API 10.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
SrmVvolGroupDetails |

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
vmodl.fault.NotSupported | When the protection group is not a vVol group.

Events

Type
None

# ListAssociatedVms

Retrieve the list of VMs currently associated with this group (VR only).

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
vim.VirtualMachine[] | The list of associated VMs.

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# ListProtectedDatastores

Retrieve a list of the Datastores protected by this protection group.

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
vim.Datastore[] | An array of all datastores protected by this group.

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# ListProtectedVms

Retrieve the list of VMs currently protected in this group and information about their placeholder VM and protection state.

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
SrmProtectionGroupProtectedVm[] | The list of protected VMs.

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# MoveProtectionGroup_Task

Moves this ProtectionGroup to a different folder.

Required Privileges
  VcDr.ProtectionProfile.com.vmware.vcDr.Edit
Since
  SRM API 11.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
destination P | ManagedObjectReference to a SrmFolder | the folder which will become the new parent folder of this group. Since SRM API 11.0

P Required privilege: destination

Return Value

Type | Description
--- | ---
ManagedObjectReference to a SrmExtApiTask |

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# ProtectionGroupGetOperationalLocation

Return the effective location of this protection group for the purposes of determining when various operations should be run.

Required Privileges
  System.View
Since
  SRM API 5.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
xsd:string |

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# ProtectionGroupGetParentFolder

Parent folder.

Required Privileges
  System.View
Since
  SRM API 3.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
ManagedObjectReference to a SrmProtectionGroupFolder |

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# ProtectionGroupListRecoveryPlans

Retrieve a list of all the Recovery Plans this protection group is a member of.

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.

Return Value

Type | Description
--- | ---
ManagedObjectReference[] to a SrmRecoveryPlan[] | All the Recovery Plans this Protection group is a member of.

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# ProtectionGroupQueryVmProtection

Determine whether the following VMs can be protected or are currently protected.

In order to protect a VirtualMachine, the VirtualMachine's folder, resource pool, and network must be mapped to the recovery site. A list of the currently configured mappings is available ListInventoryMappings

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
vms P | vim.VirtualMachine[] | The list of virtual machines to look into. Since SRM API 2.0

P Required privilege: vms

Return Value

Type | Description
--- | ---
SrmProtectionGroupVmProtectionInfo[] | The protection status of the VMs.

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
SrmFaultInvalidArgument | Thrown if the list of virtual machines is empty or null.

Events

Type
None

# ProtectVms

Protect the specified VMs.

In order to protect a VirtualMachine, the VirtualMachine's folder, resource pool, and network must be mapped to the recovery site. This can be done using the VmProtectionSpec#recoverySpec or use the global inventory mappings. A list of currently configured mappings is available ListInventoryMappings

Required Privileges
  VcDr.ProtectionProfile.com.vmware.vcDr.Edit

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
vms P | SrmProtectionGroupVmProtectionSpec[] | The list of virtual machines to protect. If some of the virtual machines from the list or all of them are already protected, the operation will succeed. Since SRM API 2.0

P Required privilege: vms

Return Value

Type | Description
--- | ---
ManagedObjectReference to a SrmProtectionTask | A task object to monitor for the status of the requested VMs.

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
SrmFaultInvalidArgument | Thrown if the list of virtual machines is empty or null. If a task fails, its error field (ProtectionTask#getResult#error) may contain one of: SrmFaultConnectionDownFault if the remote SRM could not be reached. SrmFaultCannotProtectFTSecondaryVm if the VM is a fault tolerance secondary VM. SrmFaultDeviceBackingConflict if the caller specified a device locator, or explicitly excluded, a device which the provider would like to protect. SrmFaultDevicesNotResolved if any of the VM's devices were neither protected by the provider, nor was a backing locator provided. by the caller, nor was the device explicitly excluded SrmFaultInsufficientLicensesFault If there were not enough licenses available to protect the VMs. drextapi.fault.DpxSrmProtectionDeactivatedFault If there is expired subscription for SRM protect/reprotect operations. drextapi.InvalidState if the group we are trying to protect into is not in the 'active' state. SrmFaultProductionVmDeleted if the VM to be protected did not exist on VC. SrmFaultReplicationProviderFault if the replication provider rejected the operation SrmFaultVmAlreadyProtectedEx if the VM was already protected in another group. vim.fault.ConcurrentAccess if the group was modified during the operation.

Events

Type
None

# ReconfigureRecoveryLocationSettings_Task

Reconfigure recovery location settings for the specified protected VM. This method should be invoked on the protection site only.

Required Privileges
  VcDr.ProtectionProfile.com.vmware.vcDr.Edit
Since
  SRM API 11.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
protectedVm P | SrmProtectionGroupProtectedVm | The protected VM which settings will be updated. Since SRM API 11.0
recoveryLocationSettings P | SrmProtectionGroupRecoveryLocationSettings | The new settings to apply. Since SRM API 11.0

P Required privilege - see tooltip for details

Return Value

Type | Description
--- | ---
ManagedObjectReference to a SrmExtApiTask |

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
SrmFaultInvalidArgument |

Events

Type
None

# ReconfigureVvolProtectionGroup

Reconfigure settings for this group. For a vVol ProtectionGroup this method can reconfigure the name, description, and replication groups.

Required Privileges
  VcDr.ProtectionProfile.com.vmware.vcDr.Edit
Since
  SRM API 10.0

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
name* P | xsd:string | The new name of this protection group. Since SRM API 10.0
description* P | xsd:string | Sets a new description for this protection group. Since SRM API 10.0
replicationGroups* P | vim.vm.replication.ReplicationGroupId[] | Replication groups that will be configured for this group. Since SRM API 10.0

*Need not be set P Required privilege - see tooltip for details

Return Value

Type | Description
--- | ---
None

Faults

Type | Description
--- | ---
vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
vmodl.fault.NotSupported | When the protection group is not a vVol group.
vim.fault.ConcurrentAccess |
SrmFaultDuplicateName | Thrown if there are multiple protection groups that have the specified name.
SrmFaultInvalidArgument | Thrown if the name parameter is empty string.
SrmFaultInvalidState | Thrown if the operation is not allowed in the current state.
SrmFaultReplicationProviderFault | Generic fault describing if the {@code ReplicationProvider} rejected the operation.
SrmFaultStringArgumentTooLong | Thrown if the size of either name or description of the Protection Group is too long.

Events

Type
None

# RecreatePlaceholder_Task

Recreate a placeholder VM.

Called when the placeholder needs to be recreated due to one of these reasons:

- Placeholder creation failed.
- Placeholder was deleted.
- Placeholder inventory was lost or needs to be reentered - one use case for this is when production vm was a template but then gets converted to a VM. This method can be called only on the recovery site. It does not need primary site to be up for succesful completion. This method requires Resource.com.vmware.vcDr.RecoveryUse on the host, resorce pool, datastore, and folder.
  Required Privileges
    VcDr.ProtectionProfile.com.vmware.vcDr.Edit
  Since
    SRM API 11.0

  Parameters

  Name | Type | Description
  --- | --- | ---
  _this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
  protectedVm P | SrmProtectionGroupProtectedVm | The protectedVm for which the placeholder VM will be recreated. Since SRM API 11.0
  placeholderVmLocation P | SrmProtectionGroupPlaceholderVmLocation | The new location for the placeholder VM. Since SRM API 11.0

  P Required privilege - see tooltip for details

  Return Value

  Type | Description
  --- | ---
  ManagedObjectReference to a SrmExtApiTask |

  Faults

  Type | Description
  --- | ---
  vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
  SrmFaultInvalidArgument |

  Events

  Type
  None

  # RemoveDatastores

  Removes datastores from the protection group. Virtual machines on those datastore can no more be protected by the protection group.
  Required Privileges
    VcDr.ProtectionProfile.com.vmware.vcDr.Edit
  Since
    SRM API 7.0

  Parameters

  Name | Type | Description
  --- | --- | ---
  _this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
  datastores* P | vim.Datastore[] | The list of datastores that will be added to the protection group. Since SRM API 7.0

  *Need not be set P Required privilege: datastores

  Return Value

  Type | Description
  --- | ---
  None

  Faults

  Type | Description
  --- | ---
  vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
  vmodl.fault.NotSupported | Thrown if this group is not array based.
  vim.fault.ConcurrentAccess |
  SrmFaultInvalidArgument | Thrown if the list of datastores is empty or null.
  SrmFaultInvalidState | Thrown if the function tries to remove the last datastore from the protection group.
  SrmFaultReplicationProviderFault | Generic fault describing if the {@code ReplicationProvider} rejected the operation.

  Events

  Type
  None

  # UnassociateVms

  Unassociate the specified VMs with this group (VR only).
  Required Privileges
    VcDr.ProtectionProfile.com.vmware.vcDr.Edit

  Parameters

  Name | Type | Description
  --- | --- | ---
  _this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
  vms P | vim.VirtualMachine[] | The list of virtual machines to unassociate with. Since SRM API 2.0

  P Required privilege: vms

  Return Value

  Type | Description
  --- | ---
  None

  Faults

  Type | Description
  --- | ---
  vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
  vim.fault.ConcurrentAccess |
  SrmFaultInvalidArgument | Thrown if the list of virtual machines is empty or null.
  SrmFaultInvalidState | Thrown if a specified VM is being protected or is not associated with this group.

  Events

  Type
  None

  # UnprotectVms

  Unprotect the specified VMs.
  Required Privileges
    VcDr.ProtectionProfile.com.vmware.vcDr.Edit

  Parameters

  Name | Type | Description
  --- | --- | ---
  _this | ManagedObjectReference | A reference to the SrmProtectionGroup used to make the method call.
  vms P | vim.VirtualMachine[] | The list of virtual machines to unprotect. Since SRM API 2.0

  P Required privilege: vms

  Return Value

  Type | Description
  --- | ---
  ManagedObjectReference to a SrmProtectionTask | A task object to monitor for the status of the requested VMs.

  Faults

  Type | Description
  --- | ---
  vmodl.RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.
  SrmFaultInvalidArgument | Thrown if the list of virtual machines is empty or null.
  SrmFaultInvalidState | Thrown if a specified VM is not being protected.

  Events

  Type
  None