HyperVReplicationPolicy

class HyperVReplicationPolicy : KotlinCustomResource

Manages a Azure Site Recovery replication policy for HyperV within a Recovery Vault. Replication policies define the frequency at which recovery points are created and how long they are stored.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example-rg",
location: "East US",
});
const vault = new azure.recoveryservices.Vault("vault", {
name: "example-recovery-vault",
location: example.location,
resourceGroupName: example.name,
sku: "Standard",
});
const policy = new azure.siterecovery.HyperVReplicationPolicy("policy", {
name: "policy",
recoveryVaultId: vault.id,
recoveryPointRetentionInHours: 2,
applicationConsistentSnapshotFrequencyInHours: 1,
replicationIntervalInSeconds: 300,
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-rg",
location="East US")
vault = azure.recoveryservices.Vault("vault",
name="example-recovery-vault",
location=example.location,
resource_group_name=example.name,
sku="Standard")
policy = azure.siterecovery.HyperVReplicationPolicy("policy",
name="policy",
recovery_vault_id=vault.id,
recovery_point_retention_in_hours=2,
application_consistent_snapshot_frequency_in_hours=1,
replication_interval_in_seconds=300)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-rg",
Location = "East US",
});
var vault = new Azure.RecoveryServices.Vault("vault", new()
{
Name = "example-recovery-vault",
Location = example.Location,
ResourceGroupName = example.Name,
Sku = "Standard",
});
var policy = new Azure.SiteRecovery.HyperVReplicationPolicy("policy", new()
{
Name = "policy",
RecoveryVaultId = vault.Id,
RecoveryPointRetentionInHours = 2,
ApplicationConsistentSnapshotFrequencyInHours = 1,
ReplicationIntervalInSeconds = 300,
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/recoveryservices"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/siterecovery"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-rg"),
Location: pulumi.String("East US"),
})
if err != nil {
return err
}
vault, err := recoveryservices.NewVault(ctx, "vault", &recoveryservices.VaultArgs{
Name: pulumi.String("example-recovery-vault"),
Location: example.Location,
ResourceGroupName: example.Name,
Sku: pulumi.String("Standard"),
})
if err != nil {
return err
}
_, err = siterecovery.NewHyperVReplicationPolicy(ctx, "policy", &siterecovery.HyperVReplicationPolicyArgs{
Name: pulumi.String("policy"),
RecoveryVaultId: vault.ID(),
RecoveryPointRetentionInHours: pulumi.Int(2),
ApplicationConsistentSnapshotFrequencyInHours: pulumi.Int(1),
ReplicationIntervalInSeconds: pulumi.Int(300),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.recoveryservices.Vault;
import com.pulumi.azure.recoveryservices.VaultArgs;
import com.pulumi.azure.siterecovery.HyperVReplicationPolicy;
import com.pulumi.azure.siterecovery.HyperVReplicationPolicyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-rg")
.location("East US")
.build());
var vault = new Vault("vault", VaultArgs.builder()
.name("example-recovery-vault")
.location(example.location())
.resourceGroupName(example.name())
.sku("Standard")
.build());
var policy = new HyperVReplicationPolicy("policy", HyperVReplicationPolicyArgs.builder()
.name("policy")
.recoveryVaultId(vault.id())
.recoveryPointRetentionInHours(2)
.applicationConsistentSnapshotFrequencyInHours(1)
.replicationIntervalInSeconds(300)
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-rg
location: East US
vault:
type: azure:recoveryservices:Vault
properties:
name: example-recovery-vault
location: ${example.location}
resourceGroupName: ${example.name}
sku: Standard
policy:
type: azure:siterecovery:HyperVReplicationPolicy
properties:
name: policy
recoveryVaultId: ${vault.id}
recoveryPointRetentionInHours: 2
applicationConsistentSnapshotFrequencyInHours: 1
replicationIntervalInSeconds: 300

Import

Site Recovery Replication Policies can be imported using the resource id, e.g.

$ pulumi import azure:siterecovery/hyperVReplicationPolicy:HyperVReplicationPolicy mypolicy /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationPolicies/policy-name

Properties

Specifies the frequency at which to create application consistent recovery points.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val name: Output<String>

The name of the replication policy. Changing this forces a new resource to be created.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The duration in hours for which the recovery points need to be stored.

Link copied to clipboard
val recoveryVaultId: Output<String>

The id of the vault that should be updated. Changing this forces a new resource to be created.

Link copied to clipboard

Specifies how frequently data should be synchronized between source and target locations. Possible values are 30 and 300.

Link copied to clipboard
val urn: Output<String>