exports/Set-CVRecoveryEntity.ps1


# ----------------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.10.2, generator: @autorest/powershell@4.0.708)
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Updating the entity in the recovery group
.Description
Updating the entity in the recovery group
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Commvault.Powershell.Models.ICommvaultPowerShellIdentity
.Inputs
Commvault.Powershell.Models.IRecoveryEntity
.Outputs
Commvault.Powershell.Models.IGenericResp
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODY <IRecoveryEntity>: The payload for the creation of recovery entity
  [BackupSetId <Int64?>]:
  [BackupSetName <String>]:
  [BlockSysrepForRecovery <Boolean?>]:
  [ClientId <Int64?>]:
  [ClientName <String>]:
  [ConnectionDetails <IVMConnectionDetails>]: VMConnectionDetails
    [CsCredsCredentialsName <String>]: username to access the network path
    [CsCredsCredentialsPassword <String>]: password to access the network path
    [CsCredsSavedCredentialsId <Int64?>]:
    [CsCredsSavedCredentialsName <String>]:
    [DomainCredsCredentialsName <String>]: username to access the network path
    [DomainCredsCredentialsPassword <String>]: password to access the network path
    [DomainCredsSavedCredentialsId <Int64?>]:
    [DomainCredsSavedCredentialsName <String>]:
    [GuestCredsCredentialsName <String>]: username to access the network path
    [GuestCredsCredentialsPassword <String>]: password to access the network path
    [GuestCredsSavedCredentialsId <Int64?>]:
    [GuestCredsSavedCredentialsName <String>]:
    [TopologyDetailNetworkGateway <List<IGatewayConnectionInfo>>]:
      [Hostname <String>]: Gateway machine hostname
      [Port <Int64?>]:
    [TopologyDetailServerGroups <List<IIdName>>]:
      [Id <Int64?>]:
      [Name <String>]:
    [VMClientName <String>]: VM client name
    [VMHostName <String>]: VM host name
  [CopyAvailableTime <Int64?>]: Timestamp of the latest backup job start time present in the copy that would be used for recovery. Value would be -1 if no valid copy is present for recovery.
  [EntityId <Int64?>]:
  [EntityName <String>]:
  [ExecutionOrderGroup <Int64?>]: Group ID to group similar entities together
  [ExecutionOrderOrder <Int64?>]: Decides the priority of entites within a group
  [ExecutionOrderPriority <Int64?>]: Decides the priority of group execution
  [Id <Int64?>]: Id of the recovery entity
  [InstalledWorkloads <List<String>>]:
  [InstanceId <Int64?>]:
  [InstanceName <String>]:
  [LastRecoveryJobId <Int64?>]: Last recovery job Id of the entity
  [Name <String>]: Name of the recovery entity
  [OSType <String>]: OS types
  [PostRecoveryActions <List<IDrOperationScript>>]:
    [GuestCredentialsCredentialsName <String>]: username to access the network path
    [GuestCredentialsCredentialsPassword <String>]: password to access the network path
    [GuestCredentialsSavedCredentialsId <Int64?>]:
    [GuestCredentialsSavedCredentialsName <String>]:
    [Guid <String>]: Unique script identifier string
    [OSType <String>]: OS types
    [Path <String>]: The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
    [Reset <Boolean?>]: On set to true, resets the script to empty
    [ScriptContent <String>]: Content of the script to be executed
    [ScriptCredentialsCredentialsName <String>]: username to access the network path
    [ScriptCredentialsCredentialsPassword <String>]: password to access the network path
    [ScriptCredentialsSavedCredentialsId <Int64?>]:
    [ScriptCredentialsSavedCredentialsName <String>]:
    [ScriptName <String>]: Name of the script
    [Type <String>]: The type of path being used for DR operation script
  [PreRecoveryActions <List<IDrOperationScript>>]:
  [RecoveryConfiguration <IRecoveryConfiguration>]: RecoveryConfiguration
    [AzureCreatePublicIP <Boolean?>]: Create a public IP.
    [AzureDeployVMOnlyDuringfailover <Boolean?>]: Select this option to deploy a VM only when a failover operation is requested
    [AzureDestinationVM <String>]: Destination VM
    [AzureDiskType <String>]: Type of the disk
    [AzureOverrideReplicationOptions <IOverrideReplicationOptionsAzure>]: Replication options for Azure
      [AvailabilityZone <String>]: VM availability zone
      [SecurityGroupId <String>]: Security group id
      [SecurityGroupName <String>]: security group name
      [TestFailoverVirtualNetworkDisplayName <String>]: Display Name of network
      [TestFailoverVirtualNetworkId <String>]: Network unique identifier
      [TestFailoverVirtualNetworkName <String>]: Name of the network
      [TestFailoverVirtualNetworkNetworkAddressDetailsNetworkId <String>]: Azure network ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}.
      [TestFailoverVirtualNetworkNetworkAddressDetailsPrivateIPAddress <String>]: Azure private IP address.
      [TestFailoverVirtualNetworkNetworkAddressDetailsPublicIPAddress <String>]: Azure publice IP address.
      [TestFailoverVirtualNetworkNetworkAddressDetailsPublicIPAddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
      [TestFailoverVirtualNetworkNetworkAddressDetailsSubnetId <String>]: Azure subnet ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}/subnets/{Subnet Name}.
      [TestFailoverVirtualNetworkPrivateIPaddress <String>]: Private IP address of the network
      [TestFailoverVirtualNetworkPublicIPAddress <String>]: Public IP address of the network
      [TestFailoverVirtualNetworkPublicIPaddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
      [TestFailoverVirtualNetworkSubnetId <String>]: subnet id of network
      [VirtualNetworkDisplayName <String>]: Display Name of network
      [VirtualNetworkId <String>]: Network unique identifier
      [VirtualNetworkName <String>]: Name of the network
      [VirtualNetworkNetworkAddressDetailsNetworkId <String>]: Azure network ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}.
      [VirtualNetworkNetworkAddressDetailsPrivateIPAddress <String>]: Azure private IP address.
      [VirtualNetworkNetworkAddressDetailsPublicIPAddress <String>]: Azure publice IP address.
      [VirtualNetworkNetworkAddressDetailsPublicIPAddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
      [VirtualNetworkNetworkAddressDetailsSubnetId <String>]: Azure subnet ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}/subnets/{Subnet Name}.
      [VirtualNetworkPrivateIPaddress <String>]: Private IP address of the network
      [VirtualNetworkPublicIPAddress <String>]: Public IP address of the network
      [VirtualNetworkPublicIPaddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
      [VirtualNetworkSubnetId <String>]: subnet id of network
    [AzureRegion <String>]: region of the VM
    [AzureResourceGroup <String>]: Resource group in which the converted virtual machine should be created.
    [AzureRestoreAsManagedVM <Boolean?>]: Restore the VM as a managed disk for the destination VMs.
    [AzureSourceVM <String>]: Source VM
    [AzureSourceVMGuid <String>]: GUID of the source VM
    [AzureStorageAccount <String>]: Azure Standard or Premium general-purpose storage account.
    [AzureTestFailoverVMSize <String>]: Vm size to be used during the test failover operation
    [AzureUnconditionalOverwrite <Boolean?>]: This will replace the instance at the destination if the instance with the same name already exists.
    [AzureVMSize <String>]: VM size
    [CopyPrecedence <Int64?>]: Copy precedence for the copy used for the restore
    [CredentialsSavedCredentialsId <Int64?>]:
    [CredentialsSavedCredentialsName <String>]:
    [DbConfigDatabases <List<IDbRecoveryConfigurationDatabase>>]:
      [DestinationName <String>]: Name of the destination database
      [FileMappings <List<IDbRecoveryConfigurationDatabaseFileMapping>>]:
        [DestinationLogicalName <String>]: Logical name of the file
        [DestinationPhysicalPath <String>]: Physical path of the file
        [SourceLogicalName <String>]: Logical name of the file
        [SourcePhysicalPath <String>]: Physical path of the file
      [Id <Int64?>]: ID of the source database
      [SourceName <String>]: Name of the source database
    [HardwareConfigurationDataDiskConfiguration <List<IDiskConfiguration>>]:
      [DiskSize <Int64?>]: Disk size in bytes
      [DiskType <String>]: Type of disk controller
      [Name <String>]: Name of the disk
      [ProvisioningType <String>]: Disk provisioning type
    [HardwareConfigurationVolumeConfiguration <List<IVolumeConfiguration>>]:
      [Disks <List<IDiskConfiguration>>]:
      [Enabled <Boolean?>]: Determine if volume is enabled or not
      [Name <String>]: Name of the volume
      [TotalSize <Int64?>]: Size for volume in bytes
    [ImageDetailSkipOSDisk <Boolean?>]: Determine if OS disk should be attached to new VM during the disk attach restore
    [ImageDetailsVmCredsCredentialsName <String>]: username to access the network path
    [ImageDetailsVmCredsCredentialsPassword <String>]: password to access the network path
    [ImageDetailsVmCredsSavedCredentialsId <Int64?>]:
    [ImageDetailsVmCredsSavedCredentialsName <String>]:
    [InstanceId <Int64?>]:
    [InstanceName <String>]:
    [MediaAgentId <Int64?>]:
    [MediaAgentName <String>]:
    [Name <String>]: username to access the network path
    [Password <String>]: password to access the network path
    [ServerId <Int64?>]:
    [ServerName <String>]:
    [SystemDiskConfigurationDiskSize <Int64?>]: Disk size in bytes
    [SystemDiskConfigurationDiskType <String>]: Type of disk controller
    [SystemDiskConfigurationName <String>]: Name of the disk
    [SystemDiskConfigurationProvisioningType <String>]: Disk provisioning type
    [VMTemplateGuid <String>]:
    [VMTemplateName <String>]:
  [RecoveryFailureReason <String>]: Reason for last recovery job failure
  [RecoveryGroupId <Int64?>]:
  [RecoveryGroupName <String>]:
  [RecoveryPoint <Int64?>]: Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
  [RecoveryPointDetailEntityRecoveryPoint <Int64?>]: Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
  [RecoveryPointDetailEntityRecoveryPointCategory <String>]: Type of recovery point category that can be selected. Default is Latest
  [RecoveryPointDetailInheritedFrom <String>]: Describes from where the recovery point is inherited from. If not provided, recovery point will be used as if it is set at recovery group level
  [RecoveryPointDetailTimeZoneId <Int64?>]: TimeZone Id of the CS
  [RecoveryStatus <String>]: Status of recovery entity
  [RecoveryStatusNotReadyCategory <String>]: Recovery status not ready category
  [RecoveryStatusNotReadyReason <String>]: Recovery status not ready reason
  [SourceVendor <String>]:
  [TargetId <Int64?>]:
  [TargetName <String>]:
  [VMGroupId <Int64?>]:
  [VMGroupName <String>]:
  [ValidationFailureReason <String>]: Reason for last validation failure
  [ValidationResults <List<IValidationResult>>]:
    [FailureReason <String>]: Script validation failure reason
    [Name <String>]: Name of the script executed
    [Output <String>]: Output of the script executed
    [ValidationStatus <String>]: Validation status of recovery entity
  [ValidationStatus <String>]: Validation status of recovery entity
  [VirtualMachineGuid <String>]:
  [VirtualMachineName <String>]:
  [Workload <String>]:
 
CONNECTIONDETAILS <IVMConnectionDetails>: VMConnectionDetails
  [CsCredsCredentialsName <String>]: username to access the network path
  [CsCredsCredentialsPassword <String>]: password to access the network path
  [CsCredsSavedCredentialsId <Int64?>]:
  [CsCredsSavedCredentialsName <String>]:
  [DomainCredsCredentialsName <String>]: username to access the network path
  [DomainCredsCredentialsPassword <String>]: password to access the network path
  [DomainCredsSavedCredentialsId <Int64?>]:
  [DomainCredsSavedCredentialsName <String>]:
  [GuestCredsCredentialsName <String>]: username to access the network path
  [GuestCredsCredentialsPassword <String>]: password to access the network path
  [GuestCredsSavedCredentialsId <Int64?>]:
  [GuestCredsSavedCredentialsName <String>]:
  [TopologyDetailNetworkGateway <List<IGatewayConnectionInfo>>]:
    [Hostname <String>]: Gateway machine hostname
    [Port <Int64?>]:
  [TopologyDetailServerGroups <List<IIdName>>]:
    [Id <Int64?>]:
    [Name <String>]:
  [VMClientName <String>]: VM client name
  [VMHostName <String>]: VM host name
 
ENTITIES <IRecoveryEntity[]>: .
  [BackupSetId <Int64?>]:
  [BackupSetName <String>]:
  [BlockSysrepForRecovery <Boolean?>]:
  [ClientId <Int64?>]:
  [ClientName <String>]:
  [ConnectionDetails <IVMConnectionDetails>]: VMConnectionDetails
    [CsCredsCredentialsName <String>]: username to access the network path
    [CsCredsCredentialsPassword <String>]: password to access the network path
    [CsCredsSavedCredentialsId <Int64?>]:
    [CsCredsSavedCredentialsName <String>]:
    [DomainCredsCredentialsName <String>]: username to access the network path
    [DomainCredsCredentialsPassword <String>]: password to access the network path
    [DomainCredsSavedCredentialsId <Int64?>]:
    [DomainCredsSavedCredentialsName <String>]:
    [GuestCredsCredentialsName <String>]: username to access the network path
    [GuestCredsCredentialsPassword <String>]: password to access the network path
    [GuestCredsSavedCredentialsId <Int64?>]:
    [GuestCredsSavedCredentialsName <String>]:
    [TopologyDetailNetworkGateway <List<IGatewayConnectionInfo>>]:
      [Hostname <String>]: Gateway machine hostname
      [Port <Int64?>]:
    [TopologyDetailServerGroups <List<IIdName>>]:
      [Id <Int64?>]:
      [Name <String>]:
    [VMClientName <String>]: VM client name
    [VMHostName <String>]: VM host name
  [CopyAvailableTime <Int64?>]: Timestamp of the latest backup job start time present in the copy that would be used for recovery. Value would be -1 if no valid copy is present for recovery.
  [EntityId <Int64?>]:
  [EntityName <String>]:
  [ExecutionOrderGroup <Int64?>]: Group ID to group similar entities together
  [ExecutionOrderOrder <Int64?>]: Decides the priority of entites within a group
  [ExecutionOrderPriority <Int64?>]: Decides the priority of group execution
  [Id <Int64?>]: Id of the recovery entity
  [InstalledWorkloads <List<String>>]:
  [InstanceId <Int64?>]:
  [InstanceName <String>]:
  [LastRecoveryJobId <Int64?>]: Last recovery job Id of the entity
  [Name <String>]: Name of the recovery entity
  [OSType <String>]: OS types
  [PostRecoveryActions <List<IDrOperationScript>>]:
    [GuestCredentialsCredentialsName <String>]: username to access the network path
    [GuestCredentialsCredentialsPassword <String>]: password to access the network path
    [GuestCredentialsSavedCredentialsId <Int64?>]:
    [GuestCredentialsSavedCredentialsName <String>]:
    [Guid <String>]: Unique script identifier string
    [OSType <String>]: OS types
    [Path <String>]: The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
    [Reset <Boolean?>]: On set to true, resets the script to empty
    [ScriptContent <String>]: Content of the script to be executed
    [ScriptCredentialsCredentialsName <String>]: username to access the network path
    [ScriptCredentialsCredentialsPassword <String>]: password to access the network path
    [ScriptCredentialsSavedCredentialsId <Int64?>]:
    [ScriptCredentialsSavedCredentialsName <String>]:
    [ScriptName <String>]: Name of the script
    [Type <String>]: The type of path being used for DR operation script
  [PreRecoveryActions <List<IDrOperationScript>>]:
  [RecoveryConfiguration <IRecoveryConfiguration>]: RecoveryConfiguration
    [AzureCreatePublicIP <Boolean?>]: Create a public IP.
    [AzureDeployVMOnlyDuringfailover <Boolean?>]: Select this option to deploy a VM only when a failover operation is requested
    [AzureDestinationVM <String>]: Destination VM
    [AzureDiskType <String>]: Type of the disk
    [AzureOverrideReplicationOptions <IOverrideReplicationOptionsAzure>]: Replication options for Azure
      [AvailabilityZone <String>]: VM availability zone
      [SecurityGroupId <String>]: Security group id
      [SecurityGroupName <String>]: security group name
      [TestFailoverVirtualNetworkDisplayName <String>]: Display Name of network
      [TestFailoverVirtualNetworkId <String>]: Network unique identifier
      [TestFailoverVirtualNetworkName <String>]: Name of the network
      [TestFailoverVirtualNetworkNetworkAddressDetailsNetworkId <String>]: Azure network ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}.
      [TestFailoverVirtualNetworkNetworkAddressDetailsPrivateIPAddress <String>]: Azure private IP address.
      [TestFailoverVirtualNetworkNetworkAddressDetailsPublicIPAddress <String>]: Azure publice IP address.
      [TestFailoverVirtualNetworkNetworkAddressDetailsPublicIPAddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
      [TestFailoverVirtualNetworkNetworkAddressDetailsSubnetId <String>]: Azure subnet ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}/subnets/{Subnet Name}.
      [TestFailoverVirtualNetworkPrivateIPaddress <String>]: Private IP address of the network
      [TestFailoverVirtualNetworkPublicIPAddress <String>]: Public IP address of the network
      [TestFailoverVirtualNetworkPublicIPaddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
      [TestFailoverVirtualNetworkSubnetId <String>]: subnet id of network
      [VirtualNetworkDisplayName <String>]: Display Name of network
      [VirtualNetworkId <String>]: Network unique identifier
      [VirtualNetworkName <String>]: Name of the network
      [VirtualNetworkNetworkAddressDetailsNetworkId <String>]: Azure network ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}.
      [VirtualNetworkNetworkAddressDetailsPrivateIPAddress <String>]: Azure private IP address.
      [VirtualNetworkNetworkAddressDetailsPublicIPAddress <String>]: Azure publice IP address.
      [VirtualNetworkNetworkAddressDetailsPublicIPAddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
      [VirtualNetworkNetworkAddressDetailsSubnetId <String>]: Azure subnet ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}/subnets/{Subnet Name}.
      [VirtualNetworkPrivateIPaddress <String>]: Private IP address of the network
      [VirtualNetworkPublicIPAddress <String>]: Public IP address of the network
      [VirtualNetworkPublicIPaddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
      [VirtualNetworkSubnetId <String>]: subnet id of network
    [AzureRegion <String>]: region of the VM
    [AzureResourceGroup <String>]: Resource group in which the converted virtual machine should be created.
    [AzureRestoreAsManagedVM <Boolean?>]: Restore the VM as a managed disk for the destination VMs.
    [AzureSourceVM <String>]: Source VM
    [AzureSourceVMGuid <String>]: GUID of the source VM
    [AzureStorageAccount <String>]: Azure Standard or Premium general-purpose storage account.
    [AzureTestFailoverVMSize <String>]: Vm size to be used during the test failover operation
    [AzureUnconditionalOverwrite <Boolean?>]: This will replace the instance at the destination if the instance with the same name already exists.
    [AzureVMSize <String>]: VM size
    [CopyPrecedence <Int64?>]: Copy precedence for the copy used for the restore
    [CredentialsSavedCredentialsId <Int64?>]:
    [CredentialsSavedCredentialsName <String>]:
    [DbConfigDatabases <List<IDbRecoveryConfigurationDatabase>>]:
      [DestinationName <String>]: Name of the destination database
      [FileMappings <List<IDbRecoveryConfigurationDatabaseFileMapping>>]:
        [DestinationLogicalName <String>]: Logical name of the file
        [DestinationPhysicalPath <String>]: Physical path of the file
        [SourceLogicalName <String>]: Logical name of the file
        [SourcePhysicalPath <String>]: Physical path of the file
      [Id <Int64?>]: ID of the source database
      [SourceName <String>]: Name of the source database
    [HardwareConfigurationDataDiskConfiguration <List<IDiskConfiguration>>]:
      [DiskSize <Int64?>]: Disk size in bytes
      [DiskType <String>]: Type of disk controller
      [Name <String>]: Name of the disk
      [ProvisioningType <String>]: Disk provisioning type
    [HardwareConfigurationVolumeConfiguration <List<IVolumeConfiguration>>]:
      [Disks <List<IDiskConfiguration>>]:
      [Enabled <Boolean?>]: Determine if volume is enabled or not
      [Name <String>]: Name of the volume
      [TotalSize <Int64?>]: Size for volume in bytes
    [ImageDetailSkipOSDisk <Boolean?>]: Determine if OS disk should be attached to new VM during the disk attach restore
    [ImageDetailsVmCredsCredentialsName <String>]: username to access the network path
    [ImageDetailsVmCredsCredentialsPassword <String>]: password to access the network path
    [ImageDetailsVmCredsSavedCredentialsId <Int64?>]:
    [ImageDetailsVmCredsSavedCredentialsName <String>]:
    [InstanceId <Int64?>]:
    [InstanceName <String>]:
    [MediaAgentId <Int64?>]:
    [MediaAgentName <String>]:
    [Name <String>]: username to access the network path
    [Password <String>]: password to access the network path
    [ServerId <Int64?>]:
    [ServerName <String>]:
    [SystemDiskConfigurationDiskSize <Int64?>]: Disk size in bytes
    [SystemDiskConfigurationDiskType <String>]: Type of disk controller
    [SystemDiskConfigurationName <String>]: Name of the disk
    [SystemDiskConfigurationProvisioningType <String>]: Disk provisioning type
    [VMTemplateGuid <String>]:
    [VMTemplateName <String>]:
  [RecoveryFailureReason <String>]: Reason for last recovery job failure
  [RecoveryGroupId <Int64?>]:
  [RecoveryGroupName <String>]:
  [RecoveryPoint <Int64?>]: Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
  [RecoveryPointDetailEntityRecoveryPoint <Int64?>]: Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
  [RecoveryPointDetailEntityRecoveryPointCategory <String>]: Type of recovery point category that can be selected. Default is Latest
  [RecoveryPointDetailInheritedFrom <String>]: Describes from where the recovery point is inherited from. If not provided, recovery point will be used as if it is set at recovery group level
  [RecoveryPointDetailTimeZoneId <Int64?>]: TimeZone Id of the CS
  [RecoveryStatus <String>]: Status of recovery entity
  [RecoveryStatusNotReadyCategory <String>]: Recovery status not ready category
  [RecoveryStatusNotReadyReason <String>]: Recovery status not ready reason
  [SourceVendor <String>]:
  [TargetId <Int64?>]:
  [TargetName <String>]:
  [VMGroupId <Int64?>]:
  [VMGroupName <String>]:
  [ValidationFailureReason <String>]: Reason for last validation failure
  [ValidationResults <List<IValidationResult>>]:
    [FailureReason <String>]: Script validation failure reason
    [Name <String>]: Name of the script executed
    [Output <String>]: Output of the script executed
    [ValidationStatus <String>]: Validation status of recovery entity
  [ValidationStatus <String>]: Validation status of recovery entity
  [VirtualMachineGuid <String>]:
  [VirtualMachineName <String>]:
  [Workload <String>]:
 
INPUTOBJECT <ICommvaultPowerShellIdentity>: Identity Parameter
  [AccessPathId <Int64?>]: Id of the mount path whose access path has to be deleted
  [AgentId <Int64?>]: Id of the agent to be modified
  [AlertRuleId <Int64?>]: Unique Id of the alert custom rule to get details
  [AppGuid <String>]: GUID of the Application to get details
  [AppId <Int64?>]: Commvault exchange app id
  [ApplicationGroupId <Int64?>]: applicationGroupId is the ID of the Kubernetes application group
  [ArrayId <Int64?>]:
  [AssetId <String>]: FQDN of the asset
  [BackupDestinationId <Int64?>]: Id of the backupDestination to be modified
  [BackupDestionationId <Int64?>]:
  [BackupLocationId <Int64?>]: Id of the backup location whose details have to be fetched
  [BlackoutWindowId <Int64?>]: Id of the Blackout Window whose details have to be fetched
  [BucketId <Int64?>]: Id of Bucket
  [ClientId <Int64?>]:
  [CloneId <Int64?>]: ID of the cloned bucket
  [CloudStorageId <Int64?>]: Id of cloud Storage
  [ClusterId <Int64?>]: Id of the cluster whose modifier has to be listed.
  [CompanyId <Int64?>]: Id of the Company whose details have to be fetched
  [CopyId <Int64?>]:
  [CredentialId <String>]:
  [CredentialName <String>]:
  [DomainId <Int64?>]: ID of the AD/LDAP domain
  [DrOperation <String>]: Name of DR operation. Case insensitive
  [DriveId <Int64?>]: Id of the Drive of which the drive details has to be displayed
  [EntityId <Int64?>]: Recovery entity Id
  [EntityType <String>]: Type of the entity
  [FailoverGroupId <Int64?>]: Id of the failover group
  [GlobalSearchEntity <String>]: name of global search entity
  [HfsShareId <Int64?>]: Id of the HFS Share to fetch its status
  [HyperScaleStorageId <Int64?>]: Id of hyperscale storage
  [HypervisorId <Int64?>]: Id of the HYpervisor to get
  [Id <Int64?>]:
  [IndexServerClientId <Int64?>]: Pseudo client id of the index server
  [InstanceId <Int64?>]: Id of the instance to modify
  [InventoryId <Int64?>]: Inventory id
  [JobId <Int64?>]:
  [KmsId <Int64?>]: Id of Key Management Server
  [LibraryId <Int64?>]: Id of the library to view the data
  [MediaAgentId <Int64?>]: Id of the Media Agent whose details have to be fetched
  [MetadataCacheId <Int64?>]: Id of metadata cache
  [ModifierName <String>]: Name of the modifier to be read.
  [Name <String>]:
  [NameSpace <String>]: Name of the namespace to browse for content
  [NodeId <Int64?>]: Id of node
  [PairId <Int64?>]:
  [PlanId <Int64?>]: Id of the object store plan to fetch details
  [RecoveryEntityId <Int64?>]: Recovery entity Id
  [RecoveryGroupId <Int64?>]: Recovery group Id
  [RecoveryTargetId <Int64?>]: id of recovery target
  [RegionId <Int64?>]: Region id to be deleted.
  [RegionList <String>]: List of region names/ids to be deleted. If region ids are passed, set isRegionIdList=true
  [ReplicationGroupId <String>]:
  [ReplicationPairId <Int64?>]: Replication pair id of the Pair
  [RequestId <Int64?>]: Unique identifier for the request
  [RoleId <Int64?>]: Role Id
  [RpsId <String>]:
  [RuleId <Int64?>]: Id of the rule to update in Plan
  [ScheduleId <Int64?>]: ID of the DR operation schedule
  [SchedulePolicyId <Int64?>]:
  [ServerGroupId <Int64?>]: Id of the serverGroupId whose details have to be fetched
  [ServerId <Int64?>]: Id of the server to modify
  [SnapEngineId <Int64?>]: Snap Engine Id
  [SpareGroupId <Int64?>]: Id of the Spare group whose properties need to be fetched. spareGroupId can be fetched from GET V4/Storage/Tape/{libraryId}/MediaType
  [StoragePoolId <Int64?>]: Id of the storage pool whose associated copies have to be fetched
  [SubclientId <Int64?>]: Id of the subclient to modify
  [TagId <Int64?>]: Id of the tag to delete
  [TagValue <String>]: tag value to delete
  [TopologyId <String>]:
  [UserGroupId <Int64?>]: Id of the user-group whose details have to be fetched
  [UserId <Int64?>]: Id of the User whose details have to be fetched
  [VMGroupId <Int64?>]: Id of the VMgroup to update
  [VMGuid <String>]:
  [VMUuid <String>]: The vmUUID can be obtained from GET /virtualMachines UUID property
  [VendorId <Int64?>]:
 
POSTRECOVERYACTIONS <IDrOperationScript[]>: .
  [GuestCredentialsCredentialsName <String>]: username to access the network path
  [GuestCredentialsCredentialsPassword <String>]: password to access the network path
  [GuestCredentialsSavedCredentialsId <Int64?>]:
  [GuestCredentialsSavedCredentialsName <String>]:
  [Guid <String>]: Unique script identifier string
  [OSType <String>]: OS types
  [Path <String>]: The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
  [Reset <Boolean?>]: On set to true, resets the script to empty
  [ScriptContent <String>]: Content of the script to be executed
  [ScriptCredentialsCredentialsName <String>]: username to access the network path
  [ScriptCredentialsCredentialsPassword <String>]: password to access the network path
  [ScriptCredentialsSavedCredentialsId <Int64?>]:
  [ScriptCredentialsSavedCredentialsName <String>]:
  [ScriptName <String>]: Name of the script
  [Type <String>]: The type of path being used for DR operation script
 
PRERECOVERYACTIONS <IDrOperationScript[]>: .
  [GuestCredentialsCredentialsName <String>]: username to access the network path
  [GuestCredentialsCredentialsPassword <String>]: password to access the network path
  [GuestCredentialsSavedCredentialsId <Int64?>]:
  [GuestCredentialsSavedCredentialsName <String>]:
  [Guid <String>]: Unique script identifier string
  [OSType <String>]: OS types
  [Path <String>]: The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
  [Reset <Boolean?>]: On set to true, resets the script to empty
  [ScriptContent <String>]: Content of the script to be executed
  [ScriptCredentialsCredentialsName <String>]: username to access the network path
  [ScriptCredentialsCredentialsPassword <String>]: password to access the network path
  [ScriptCredentialsSavedCredentialsId <Int64?>]:
  [ScriptCredentialsSavedCredentialsName <String>]:
  [ScriptName <String>]: Name of the script
  [Type <String>]: The type of path being used for DR operation script
 
RECOVERYCONFIGURATION <IRecoveryConfiguration>: RecoveryConfiguration
  [AzureCreatePublicIP <Boolean?>]: Create a public IP.
  [AzureDeployVMOnlyDuringfailover <Boolean?>]: Select this option to deploy a VM only when a failover operation is requested
  [AzureDestinationVM <String>]: Destination VM
  [AzureDiskType <String>]: Type of the disk
  [AzureOverrideReplicationOptions <IOverrideReplicationOptionsAzure>]: Replication options for Azure
    [AvailabilityZone <String>]: VM availability zone
    [SecurityGroupId <String>]: Security group id
    [SecurityGroupName <String>]: security group name
    [TestFailoverVirtualNetworkDisplayName <String>]: Display Name of network
    [TestFailoverVirtualNetworkId <String>]: Network unique identifier
    [TestFailoverVirtualNetworkName <String>]: Name of the network
    [TestFailoverVirtualNetworkNetworkAddressDetailsNetworkId <String>]: Azure network ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}.
    [TestFailoverVirtualNetworkNetworkAddressDetailsPrivateIPAddress <String>]: Azure private IP address.
    [TestFailoverVirtualNetworkNetworkAddressDetailsPublicIPAddress <String>]: Azure publice IP address.
    [TestFailoverVirtualNetworkNetworkAddressDetailsPublicIPAddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
    [TestFailoverVirtualNetworkNetworkAddressDetailsSubnetId <String>]: Azure subnet ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}/subnets/{Subnet Name}.
    [TestFailoverVirtualNetworkPrivateIPaddress <String>]: Private IP address of the network
    [TestFailoverVirtualNetworkPublicIPAddress <String>]: Public IP address of the network
    [TestFailoverVirtualNetworkPublicIPaddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
    [TestFailoverVirtualNetworkSubnetId <String>]: subnet id of network
    [VirtualNetworkDisplayName <String>]: Display Name of network
    [VirtualNetworkId <String>]: Network unique identifier
    [VirtualNetworkName <String>]: Name of the network
    [VirtualNetworkNetworkAddressDetailsNetworkId <String>]: Azure network ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}.
    [VirtualNetworkNetworkAddressDetailsPrivateIPAddress <String>]: Azure private IP address.
    [VirtualNetworkNetworkAddressDetailsPublicIPAddress <String>]: Azure publice IP address.
    [VirtualNetworkNetworkAddressDetailsPublicIPAddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
    [VirtualNetworkNetworkAddressDetailsSubnetId <String>]: Azure subnet ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/virtualNetworks/{Network Name}/subnets/{Subnet Name}.
    [VirtualNetworkPrivateIPaddress <String>]: Private IP address of the network
    [VirtualNetworkPublicIPAddress <String>]: Public IP address of the network
    [VirtualNetworkPublicIPaddressId <String>]: Azure public IP address ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Network/publicIPAddresses/{Public IP Address Name}.
    [VirtualNetworkSubnetId <String>]: subnet id of network
  [AzureRegion <String>]: region of the VM
  [AzureResourceGroup <String>]: Resource group in which the converted virtual machine should be created.
  [AzureRestoreAsManagedVM <Boolean?>]: Restore the VM as a managed disk for the destination VMs.
  [AzureSourceVM <String>]: Source VM
  [AzureSourceVMGuid <String>]: GUID of the source VM
  [AzureStorageAccount <String>]: Azure Standard or Premium general-purpose storage account.
  [AzureTestFailoverVMSize <String>]: Vm size to be used during the test failover operation
  [AzureUnconditionalOverwrite <Boolean?>]: This will replace the instance at the destination if the instance with the same name already exists.
  [AzureVMSize <String>]: VM size
  [CopyPrecedence <Int64?>]: Copy precedence for the copy used for the restore
  [CredentialsSavedCredentialsId <Int64?>]:
  [CredentialsSavedCredentialsName <String>]:
  [DbConfigDatabases <List<IDbRecoveryConfigurationDatabase>>]:
    [DestinationName <String>]: Name of the destination database
    [FileMappings <List<IDbRecoveryConfigurationDatabaseFileMapping>>]:
      [DestinationLogicalName <String>]: Logical name of the file
      [DestinationPhysicalPath <String>]: Physical path of the file
      [SourceLogicalName <String>]: Logical name of the file
      [SourcePhysicalPath <String>]: Physical path of the file
    [Id <Int64?>]: ID of the source database
    [SourceName <String>]: Name of the source database
  [HardwareConfigurationDataDiskConfiguration <List<IDiskConfiguration>>]:
    [DiskSize <Int64?>]: Disk size in bytes
    [DiskType <String>]: Type of disk controller
    [Name <String>]: Name of the disk
    [ProvisioningType <String>]: Disk provisioning type
  [HardwareConfigurationVolumeConfiguration <List<IVolumeConfiguration>>]:
    [Disks <List<IDiskConfiguration>>]:
    [Enabled <Boolean?>]: Determine if volume is enabled or not
    [Name <String>]: Name of the volume
    [TotalSize <Int64?>]: Size for volume in bytes
  [ImageDetailSkipOSDisk <Boolean?>]: Determine if OS disk should be attached to new VM during the disk attach restore
  [ImageDetailsVmCredsCredentialsName <String>]: username to access the network path
  [ImageDetailsVmCredsCredentialsPassword <String>]: password to access the network path
  [ImageDetailsVmCredsSavedCredentialsId <Int64?>]:
  [ImageDetailsVmCredsSavedCredentialsName <String>]:
  [InstanceId <Int64?>]:
  [InstanceName <String>]:
  [MediaAgentId <Int64?>]:
  [MediaAgentName <String>]:
  [Name <String>]: username to access the network path
  [Password <String>]: password to access the network path
  [ServerId <Int64?>]:
  [ServerName <String>]:
  [SystemDiskConfigurationDiskSize <Int64?>]: Disk size in bytes
  [SystemDiskConfigurationDiskType <String>]: Type of disk controller
  [SystemDiskConfigurationName <String>]: Name of the disk
  [SystemDiskConfigurationProvisioningType <String>]: Disk provisioning type
  [VMTemplateGuid <String>]:
  [VMTemplateName <String>]:
 
VALIDATIONRESULTS <IValidationResult[]>: .
  [FailureReason <String>]: Script validation failure reason
  [Name <String>]: Name of the script executed
  [Output <String>]: Output of the script executed
  [ValidationStatus <String>]: Validation status of recovery entity
.Link
https://learn.microsoft.com/powershell/module/commvaultpowershell/set-cvrecoveryentity
#>

function Set-CVRecoveryEntity {
[OutputType([Commvault.Powershell.Models.IGenericResp])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update1', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1', Mandatory)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Path')]
    [System.Int64]
    # Recovery entity Id
    ${EntityId},

    [Parameter(ParameterSetName='Update1', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1', Mandatory)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Path')]
    [System.Int64]
    # Recovery group Id
    ${RecoveryGroupId},

    [Parameter(ParameterSetName='UpdateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1', Mandatory, ValueFromPipeline)]
    [Commvault.Powershell.Category('Path')]
    [Commvault.Powershell.Models.ICommvaultPowerShellIdentity]
    # Identity Parameter
    ${InputObject},

    [Parameter(ParameterSetName='Update1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IRecoveryEntity]
    # The payload for the creation of recovery entity
    ${Body},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IRecoveryEntity[]]
    # .
    ${Entities},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # .
    ${BackupSetId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${BackupSetName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${BlockSysrepForRecovery},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # .
    ${ClientId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${ClientName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IVMConnectionDetails]
    # VMConnectionDetails
    ${ConnectionDetails},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # Timestamp of the latest backup job start time present in the copy that would be used for recovery.
    # Value would be -1 if no valid copy is present for recovery.
    ${CopyAvailableTime},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${EntityName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # Group ID to group similar entities together
    ${ExecutionOrderGroup},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # Decides the priority of entites within a group
    ${ExecutionOrderOrder},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # Decides the priority of group execution
    ${ExecutionOrderPriority},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # Id of the recovery entity
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # .
    ${IdNameId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [System.String[]]
    # .
    ${InstalledWorkloads},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # .
    ${InstanceId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${InstanceName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # Last recovery job Id of the entity
    ${LastRecoveryJobId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # Name of the recovery entity
    ${Name},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # OS types
    ${OSType},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IDrOperationScript[]]
    # .
    ${PostRecoveryActions},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IDrOperationScript[]]
    # .
    ${PreRecoveryActions},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IRecoveryConfiguration]
    # RecoveryConfiguration
    ${RecoveryConfiguration},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # Reason for last recovery job failure
    ${RecoveryFailureReason},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # .
    ${RecoveryGroupId1},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${RecoveryGroupName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
    ${RecoveryPoint},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
    ${RecoveryPointDetailEntityRecoveryPoint},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # Type of recovery point category that can be selected.
    # Default is Latest
    ${RecoveryPointDetailEntityRecoveryPointCategory},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # Describes from where the recovery point is inherited from.
    # If not provided, recovery point will be used as if it is set at recovery group level
    ${RecoveryPointDetailInheritedFrom},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # TimeZone Id of the CS
    ${RecoveryPointDetailTimeZoneId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # Status of recovery entity
    ${RecoveryStatus},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # Recovery status not ready category
    ${RecoveryStatusNotReadyCategory},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # Recovery status not ready reason
    ${RecoveryStatusNotReadyReason},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${SourceVendor},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # .
    ${TargetId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${TargetName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # .
    ${VMGroupId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${VMGroupName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # Reason for last validation failure
    ${ValidationFailureReason},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IValidationResult[]]
    # .
    ${ValidationResults},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # Validation status of recovery entity
    ${ValidationStatus},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${VirtualMachineGuid},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${VirtualMachineName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${Workload},

    [Parameter(DontShow)]
    [Commvault.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Commvault.Powershell.Category('Runtime')]
    [Commvault.Powershell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Commvault.Powershell.Category('Runtime')]
    [Commvault.Powershell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [Commvault.Powershell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Commvault.Powershell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Commvault.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update1 = 'CommvaultPowerShell.private\Set-CVRecoveryEntity_Update1';
            UpdateExpanded = 'CommvaultPowerShell.private\Set-CVRecoveryEntity_UpdateExpanded';
            UpdateExpanded1 = 'CommvaultPowerShell.private\Set-CVRecoveryEntity_UpdateExpanded1';
            UpdateViaIdentity1 = 'CommvaultPowerShell.private\Set-CVRecoveryEntity_UpdateViaIdentity1';
            UpdateViaIdentityExpanded = 'CommvaultPowerShell.private\Set-CVRecoveryEntity_UpdateViaIdentityExpanded';
            UpdateViaIdentityExpanded1 = 'CommvaultPowerShell.private\Set-CVRecoveryEntity_UpdateViaIdentityExpanded1';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Commvault.Powershell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        [Commvault.Powershell.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}