siterecovery

package
v4.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 27, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Fabric

type Fabric struct {
	pulumi.CustomResourceState

	// In what region should the fabric be located.
	Location pulumi.StringOutput `pulumi:"location"`
	// The name of the network mapping.
	Name pulumi.StringOutput `pulumi:"name"`
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringOutput `pulumi:"recoveryVaultName"`
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
}

Manages a Azure Site Recovery Replication Fabric within a Recovery Services vault. Only Azure fabrics are supported at this time. Replication Fabrics serve as a container within an Azure region for other Site Recovery resources such as protection containers, protected items, network mappings.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/siterecovery"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		primary, err := core.NewResourceGroup(ctx, "primary", &core.ResourceGroupArgs{
			Location: pulumi.String("West US"),
		})
		if err != nil {
			return err
		}
		secondary, err := core.NewResourceGroup(ctx, "secondary", &core.ResourceGroupArgs{
			Location: pulumi.String("East US"),
		})
		if err != nil {
			return err
		}
		vault, err := recoveryservices.NewVault(ctx, "vault", &recoveryservices.VaultArgs{
			Location:          secondary.Location,
			ResourceGroupName: secondary.Name,
			Sku:               pulumi.String("Standard"),
		})
		if err != nil {
			return err
		}
		_, err = siterecovery.NewFabric(ctx, "fabric", &siterecovery.FabricArgs{
			ResourceGroupName: secondary.Name,
			RecoveryVaultName: vault.Name,
			Location:          primary.Location,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Site Recovery Fabric can be imported using the `resource id`, e.g.

```sh

$ pulumi import azure:siterecovery/fabric:Fabric myfabric /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationFabrics/fabric-name

```

func GetFabric

func GetFabric(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FabricState, opts ...pulumi.ResourceOption) (*Fabric, error)

GetFabric gets an existing Fabric resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFabric

func NewFabric(ctx *pulumi.Context,
	name string, args *FabricArgs, opts ...pulumi.ResourceOption) (*Fabric, error)

NewFabric registers a new resource with the given unique name, arguments, and options.

func (*Fabric) ElementType

func (*Fabric) ElementType() reflect.Type

func (*Fabric) ToFabricOutput

func (i *Fabric) ToFabricOutput() FabricOutput

func (*Fabric) ToFabricOutputWithContext

func (i *Fabric) ToFabricOutputWithContext(ctx context.Context) FabricOutput

func (*Fabric) ToFabricPtrOutput

func (i *Fabric) ToFabricPtrOutput() FabricPtrOutput

func (*Fabric) ToFabricPtrOutputWithContext

func (i *Fabric) ToFabricPtrOutputWithContext(ctx context.Context) FabricPtrOutput

type FabricArgs

type FabricArgs struct {
	// In what region should the fabric be located.
	Location pulumi.StringPtrInput
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringInput
}

The set of arguments for constructing a Fabric resource.

func (FabricArgs) ElementType

func (FabricArgs) ElementType() reflect.Type

type FabricArray

type FabricArray []FabricInput

func (FabricArray) ElementType

func (FabricArray) ElementType() reflect.Type

func (FabricArray) ToFabricArrayOutput

func (i FabricArray) ToFabricArrayOutput() FabricArrayOutput

func (FabricArray) ToFabricArrayOutputWithContext

func (i FabricArray) ToFabricArrayOutputWithContext(ctx context.Context) FabricArrayOutput

type FabricArrayInput

type FabricArrayInput interface {
	pulumi.Input

	ToFabricArrayOutput() FabricArrayOutput
	ToFabricArrayOutputWithContext(context.Context) FabricArrayOutput
}

FabricArrayInput is an input type that accepts FabricArray and FabricArrayOutput values. You can construct a concrete instance of `FabricArrayInput` via:

FabricArray{ FabricArgs{...} }

type FabricArrayOutput

type FabricArrayOutput struct{ *pulumi.OutputState }

func (FabricArrayOutput) ElementType

func (FabricArrayOutput) ElementType() reflect.Type

func (FabricArrayOutput) Index

func (FabricArrayOutput) ToFabricArrayOutput

func (o FabricArrayOutput) ToFabricArrayOutput() FabricArrayOutput

func (FabricArrayOutput) ToFabricArrayOutputWithContext

func (o FabricArrayOutput) ToFabricArrayOutputWithContext(ctx context.Context) FabricArrayOutput

type FabricInput

type FabricInput interface {
	pulumi.Input

	ToFabricOutput() FabricOutput
	ToFabricOutputWithContext(ctx context.Context) FabricOutput
}

type FabricMap

type FabricMap map[string]FabricInput

func (FabricMap) ElementType

func (FabricMap) ElementType() reflect.Type

func (FabricMap) ToFabricMapOutput

func (i FabricMap) ToFabricMapOutput() FabricMapOutput

func (FabricMap) ToFabricMapOutputWithContext

func (i FabricMap) ToFabricMapOutputWithContext(ctx context.Context) FabricMapOutput

type FabricMapInput

type FabricMapInput interface {
	pulumi.Input

	ToFabricMapOutput() FabricMapOutput
	ToFabricMapOutputWithContext(context.Context) FabricMapOutput
}

FabricMapInput is an input type that accepts FabricMap and FabricMapOutput values. You can construct a concrete instance of `FabricMapInput` via:

FabricMap{ "key": FabricArgs{...} }

type FabricMapOutput

type FabricMapOutput struct{ *pulumi.OutputState }

func (FabricMapOutput) ElementType

func (FabricMapOutput) ElementType() reflect.Type

func (FabricMapOutput) MapIndex

func (FabricMapOutput) ToFabricMapOutput

func (o FabricMapOutput) ToFabricMapOutput() FabricMapOutput

func (FabricMapOutput) ToFabricMapOutputWithContext

func (o FabricMapOutput) ToFabricMapOutputWithContext(ctx context.Context) FabricMapOutput

type FabricOutput

type FabricOutput struct {
	*pulumi.OutputState
}

func (FabricOutput) ElementType

func (FabricOutput) ElementType() reflect.Type

func (FabricOutput) ToFabricOutput

func (o FabricOutput) ToFabricOutput() FabricOutput

func (FabricOutput) ToFabricOutputWithContext

func (o FabricOutput) ToFabricOutputWithContext(ctx context.Context) FabricOutput

func (FabricOutput) ToFabricPtrOutput

func (o FabricOutput) ToFabricPtrOutput() FabricPtrOutput

func (FabricOutput) ToFabricPtrOutputWithContext

func (o FabricOutput) ToFabricPtrOutputWithContext(ctx context.Context) FabricPtrOutput

type FabricPtrInput

type FabricPtrInput interface {
	pulumi.Input

	ToFabricPtrOutput() FabricPtrOutput
	ToFabricPtrOutputWithContext(ctx context.Context) FabricPtrOutput
}

type FabricPtrOutput

type FabricPtrOutput struct {
	*pulumi.OutputState
}

func (FabricPtrOutput) ElementType

func (FabricPtrOutput) ElementType() reflect.Type

func (FabricPtrOutput) ToFabricPtrOutput

func (o FabricPtrOutput) ToFabricPtrOutput() FabricPtrOutput

func (FabricPtrOutput) ToFabricPtrOutputWithContext

func (o FabricPtrOutput) ToFabricPtrOutputWithContext(ctx context.Context) FabricPtrOutput

type FabricState

type FabricState struct {
	// In what region should the fabric be located.
	Location pulumi.StringPtrInput
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringPtrInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringPtrInput
}

func (FabricState) ElementType

func (FabricState) ElementType() reflect.Type

type NetworkMapping

type NetworkMapping struct {
	pulumi.CustomResourceState

	// The name of the network mapping.
	Name pulumi.StringOutput `pulumi:"name"`
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringOutput `pulumi:"recoveryVaultName"`
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
	// The id of the primary network.
	SourceNetworkId pulumi.StringOutput `pulumi:"sourceNetworkId"`
	// Specifies the ASR fabric where mapping should be created.
	SourceRecoveryFabricName pulumi.StringOutput `pulumi:"sourceRecoveryFabricName"`
	// The id of the recovery network.
	TargetNetworkId pulumi.StringOutput `pulumi:"targetNetworkId"`
	// The Azure Site Recovery fabric object corresponding to the recovery Azure region.
	TargetRecoveryFabricName pulumi.StringOutput `pulumi:"targetRecoveryFabricName"`
}

Manages a site recovery network mapping on Azure. A network mapping decides how to translate connected netwroks when a VM is migrated from one region to another.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/siterecovery"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		primaryResourceGroup, err := core.NewResourceGroup(ctx, "primaryResourceGroup", &core.ResourceGroupArgs{
			Location: pulumi.String("West US"),
		})
		if err != nil {
			return err
		}
		secondaryResourceGroup, err := core.NewResourceGroup(ctx, "secondaryResourceGroup", &core.ResourceGroupArgs{
			Location: pulumi.String("East US"),
		})
		if err != nil {
			return err
		}
		vault, err := recoveryservices.NewVault(ctx, "vault", &recoveryservices.VaultArgs{
			Location:          secondaryResourceGroup.Location,
			ResourceGroupName: secondaryResourceGroup.Name,
			Sku:               pulumi.String("Standard"),
		})
		if err != nil {
			return err
		}
		primaryFabric, err := siterecovery.NewFabric(ctx, "primaryFabric", &siterecovery.FabricArgs{
			ResourceGroupName: secondaryResourceGroup.Name,
			RecoveryVaultName: vault.Name,
			Location:          primaryResourceGroup.Location,
		})
		if err != nil {
			return err
		}
		_, err = siterecovery.NewFabric(ctx, "secondaryFabric", &siterecovery.FabricArgs{
			ResourceGroupName: secondaryResourceGroup.Name,
			RecoveryVaultName: vault.Name,
			Location:          secondaryResourceGroup.Location,
		}, pulumi.DependsOn([]pulumi.Resource{
			primaryFabric,
		}))
		if err != nil {
			return err
		}
		primaryVirtualNetwork, err := network.NewVirtualNetwork(ctx, "primaryVirtualNetwork", &network.VirtualNetworkArgs{
			ResourceGroupName: primaryResourceGroup.Name,
			AddressSpaces: pulumi.StringArray{
				pulumi.String("192.168.1.0/24"),
			},
			Location: primaryResourceGroup.Location,
		})
		if err != nil {
			return err
		}
		secondaryVirtualNetwork, err := network.NewVirtualNetwork(ctx, "secondaryVirtualNetwork", &network.VirtualNetworkArgs{
			ResourceGroupName: secondaryResourceGroup.Name,
			AddressSpaces: pulumi.StringArray{
				pulumi.String("192.168.2.0/24"),
			},
			Location: secondaryResourceGroup.Location,
		})
		if err != nil {
			return err
		}
		_, err = siterecovery.NewNetworkMapping(ctx, "recovery_mapping", &siterecovery.NetworkMappingArgs{
			ResourceGroupName:        secondaryResourceGroup.Name,
			RecoveryVaultName:        vault.Name,
			SourceRecoveryFabricName: pulumi.String("primary-fabric"),
			TargetRecoveryFabricName: pulumi.String("secondary-fabric"),
			SourceNetworkId:          primaryVirtualNetwork.ID(),
			TargetNetworkId:          secondaryVirtualNetwork.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Site Recovery Network Mapping can be imported using the `resource id`, e.g.

```sh

$ pulumi import azure:siterecovery/networkMapping:NetworkMapping mymapping /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationFabrics/primary-fabric-name/replicationNetworks/azureNetwork/replicationNetworkMappings/mapping-name

```

func GetNetworkMapping

func GetNetworkMapping(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *NetworkMappingState, opts ...pulumi.ResourceOption) (*NetworkMapping, error)

GetNetworkMapping gets an existing NetworkMapping resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewNetworkMapping

func NewNetworkMapping(ctx *pulumi.Context,
	name string, args *NetworkMappingArgs, opts ...pulumi.ResourceOption) (*NetworkMapping, error)

NewNetworkMapping registers a new resource with the given unique name, arguments, and options.

func (*NetworkMapping) ElementType

func (*NetworkMapping) ElementType() reflect.Type

func (*NetworkMapping) ToNetworkMappingOutput

func (i *NetworkMapping) ToNetworkMappingOutput() NetworkMappingOutput

func (*NetworkMapping) ToNetworkMappingOutputWithContext

func (i *NetworkMapping) ToNetworkMappingOutputWithContext(ctx context.Context) NetworkMappingOutput

func (*NetworkMapping) ToNetworkMappingPtrOutput

func (i *NetworkMapping) ToNetworkMappingPtrOutput() NetworkMappingPtrOutput

func (*NetworkMapping) ToNetworkMappingPtrOutputWithContext

func (i *NetworkMapping) ToNetworkMappingPtrOutputWithContext(ctx context.Context) NetworkMappingPtrOutput

type NetworkMappingArgs

type NetworkMappingArgs struct {
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringInput
	// The id of the primary network.
	SourceNetworkId pulumi.StringInput
	// Specifies the ASR fabric where mapping should be created.
	SourceRecoveryFabricName pulumi.StringInput
	// The id of the recovery network.
	TargetNetworkId pulumi.StringInput
	// The Azure Site Recovery fabric object corresponding to the recovery Azure region.
	TargetRecoveryFabricName pulumi.StringInput
}

The set of arguments for constructing a NetworkMapping resource.

func (NetworkMappingArgs) ElementType

func (NetworkMappingArgs) ElementType() reflect.Type

type NetworkMappingArray

type NetworkMappingArray []NetworkMappingInput

func (NetworkMappingArray) ElementType

func (NetworkMappingArray) ElementType() reflect.Type

func (NetworkMappingArray) ToNetworkMappingArrayOutput

func (i NetworkMappingArray) ToNetworkMappingArrayOutput() NetworkMappingArrayOutput

func (NetworkMappingArray) ToNetworkMappingArrayOutputWithContext

func (i NetworkMappingArray) ToNetworkMappingArrayOutputWithContext(ctx context.Context) NetworkMappingArrayOutput

type NetworkMappingArrayInput

type NetworkMappingArrayInput interface {
	pulumi.Input

	ToNetworkMappingArrayOutput() NetworkMappingArrayOutput
	ToNetworkMappingArrayOutputWithContext(context.Context) NetworkMappingArrayOutput
}

NetworkMappingArrayInput is an input type that accepts NetworkMappingArray and NetworkMappingArrayOutput values. You can construct a concrete instance of `NetworkMappingArrayInput` via:

NetworkMappingArray{ NetworkMappingArgs{...} }

type NetworkMappingArrayOutput

type NetworkMappingArrayOutput struct{ *pulumi.OutputState }

func (NetworkMappingArrayOutput) ElementType

func (NetworkMappingArrayOutput) ElementType() reflect.Type

func (NetworkMappingArrayOutput) Index

func (NetworkMappingArrayOutput) ToNetworkMappingArrayOutput

func (o NetworkMappingArrayOutput) ToNetworkMappingArrayOutput() NetworkMappingArrayOutput

func (NetworkMappingArrayOutput) ToNetworkMappingArrayOutputWithContext

func (o NetworkMappingArrayOutput) ToNetworkMappingArrayOutputWithContext(ctx context.Context) NetworkMappingArrayOutput

type NetworkMappingInput

type NetworkMappingInput interface {
	pulumi.Input

	ToNetworkMappingOutput() NetworkMappingOutput
	ToNetworkMappingOutputWithContext(ctx context.Context) NetworkMappingOutput
}

type NetworkMappingMap

type NetworkMappingMap map[string]NetworkMappingInput

func (NetworkMappingMap) ElementType

func (NetworkMappingMap) ElementType() reflect.Type

func (NetworkMappingMap) ToNetworkMappingMapOutput

func (i NetworkMappingMap) ToNetworkMappingMapOutput() NetworkMappingMapOutput

func (NetworkMappingMap) ToNetworkMappingMapOutputWithContext

func (i NetworkMappingMap) ToNetworkMappingMapOutputWithContext(ctx context.Context) NetworkMappingMapOutput

type NetworkMappingMapInput

type NetworkMappingMapInput interface {
	pulumi.Input

	ToNetworkMappingMapOutput() NetworkMappingMapOutput
	ToNetworkMappingMapOutputWithContext(context.Context) NetworkMappingMapOutput
}

NetworkMappingMapInput is an input type that accepts NetworkMappingMap and NetworkMappingMapOutput values. You can construct a concrete instance of `NetworkMappingMapInput` via:

NetworkMappingMap{ "key": NetworkMappingArgs{...} }

type NetworkMappingMapOutput

type NetworkMappingMapOutput struct{ *pulumi.OutputState }

func (NetworkMappingMapOutput) ElementType

func (NetworkMappingMapOutput) ElementType() reflect.Type

func (NetworkMappingMapOutput) MapIndex

func (NetworkMappingMapOutput) ToNetworkMappingMapOutput

func (o NetworkMappingMapOutput) ToNetworkMappingMapOutput() NetworkMappingMapOutput

func (NetworkMappingMapOutput) ToNetworkMappingMapOutputWithContext

func (o NetworkMappingMapOutput) ToNetworkMappingMapOutputWithContext(ctx context.Context) NetworkMappingMapOutput

type NetworkMappingOutput

type NetworkMappingOutput struct {
	*pulumi.OutputState
}

func (NetworkMappingOutput) ElementType

func (NetworkMappingOutput) ElementType() reflect.Type

func (NetworkMappingOutput) ToNetworkMappingOutput

func (o NetworkMappingOutput) ToNetworkMappingOutput() NetworkMappingOutput

func (NetworkMappingOutput) ToNetworkMappingOutputWithContext

func (o NetworkMappingOutput) ToNetworkMappingOutputWithContext(ctx context.Context) NetworkMappingOutput

func (NetworkMappingOutput) ToNetworkMappingPtrOutput

func (o NetworkMappingOutput) ToNetworkMappingPtrOutput() NetworkMappingPtrOutput

func (NetworkMappingOutput) ToNetworkMappingPtrOutputWithContext

func (o NetworkMappingOutput) ToNetworkMappingPtrOutputWithContext(ctx context.Context) NetworkMappingPtrOutput

type NetworkMappingPtrInput

type NetworkMappingPtrInput interface {
	pulumi.Input

	ToNetworkMappingPtrOutput() NetworkMappingPtrOutput
	ToNetworkMappingPtrOutputWithContext(ctx context.Context) NetworkMappingPtrOutput
}

type NetworkMappingPtrOutput

type NetworkMappingPtrOutput struct {
	*pulumi.OutputState
}

func (NetworkMappingPtrOutput) ElementType

func (NetworkMappingPtrOutput) ElementType() reflect.Type

func (NetworkMappingPtrOutput) ToNetworkMappingPtrOutput

func (o NetworkMappingPtrOutput) ToNetworkMappingPtrOutput() NetworkMappingPtrOutput

func (NetworkMappingPtrOutput) ToNetworkMappingPtrOutputWithContext

func (o NetworkMappingPtrOutput) ToNetworkMappingPtrOutputWithContext(ctx context.Context) NetworkMappingPtrOutput

type NetworkMappingState

type NetworkMappingState struct {
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringPtrInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringPtrInput
	// The id of the primary network.
	SourceNetworkId pulumi.StringPtrInput
	// Specifies the ASR fabric where mapping should be created.
	SourceRecoveryFabricName pulumi.StringPtrInput
	// The id of the recovery network.
	TargetNetworkId pulumi.StringPtrInput
	// The Azure Site Recovery fabric object corresponding to the recovery Azure region.
	TargetRecoveryFabricName pulumi.StringPtrInput
}

func (NetworkMappingState) ElementType

func (NetworkMappingState) ElementType() reflect.Type

type ProtectionContainer

type ProtectionContainer struct {
	pulumi.CustomResourceState

	// The name of the network mapping.
	Name pulumi.StringOutput `pulumi:"name"`
	// Name of fabric that should contain this protection container.
	RecoveryFabricName pulumi.StringOutput `pulumi:"recoveryFabricName"`
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringOutput `pulumi:"recoveryVaultName"`
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
}

Manages a Azure Site Recovery protection container. Protection containers serve as containers for replicated VMs and belong to a single region / recovery fabric. Protection containers can contain more than one replicated VM. To replicate a VM, a container must exist in both the source and target Azure regions.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/siterecovery"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		primary, err := core.NewResourceGroup(ctx, "primary", &core.ResourceGroupArgs{
			Location: pulumi.String("West US"),
		})
		if err != nil {
			return err
		}
		secondary, err := core.NewResourceGroup(ctx, "secondary", &core.ResourceGroupArgs{
			Location: pulumi.String("East US"),
		})
		if err != nil {
			return err
		}
		vault, err := recoveryservices.NewVault(ctx, "vault", &recoveryservices.VaultArgs{
			Location:          secondary.Location,
			ResourceGroupName: secondary.Name,
			Sku:               pulumi.String("Standard"),
		})
		if err != nil {
			return err
		}
		fabric, err := siterecovery.NewFabric(ctx, "fabric", &siterecovery.FabricArgs{
			ResourceGroupName: secondary.Name,
			RecoveryVaultName: vault.Name,
			Location:          primary.Location,
		})
		if err != nil {
			return err
		}
		_, err = siterecovery.NewProtectionContainer(ctx, "protection_container", &siterecovery.ProtectionContainerArgs{
			ResourceGroupName:  secondary.Name,
			RecoveryVaultName:  vault.Name,
			RecoveryFabricName: fabric.Name,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Site Recovery Protection Containers can be imported using the `resource id`, e.g.

```sh

$ pulumi import azure:siterecovery/protectionContainer:ProtectionContainer mycontainer /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationFabrics/fabric-name/replicationProtectionContainers/protection-container-name

```

func GetProtectionContainer

func GetProtectionContainer(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ProtectionContainerState, opts ...pulumi.ResourceOption) (*ProtectionContainer, error)

GetProtectionContainer gets an existing ProtectionContainer resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewProtectionContainer

func NewProtectionContainer(ctx *pulumi.Context,
	name string, args *ProtectionContainerArgs, opts ...pulumi.ResourceOption) (*ProtectionContainer, error)

NewProtectionContainer registers a new resource with the given unique name, arguments, and options.

func (*ProtectionContainer) ElementType

func (*ProtectionContainer) ElementType() reflect.Type

func (*ProtectionContainer) ToProtectionContainerOutput

func (i *ProtectionContainer) ToProtectionContainerOutput() ProtectionContainerOutput

func (*ProtectionContainer) ToProtectionContainerOutputWithContext

func (i *ProtectionContainer) ToProtectionContainerOutputWithContext(ctx context.Context) ProtectionContainerOutput

func (*ProtectionContainer) ToProtectionContainerPtrOutput

func (i *ProtectionContainer) ToProtectionContainerPtrOutput() ProtectionContainerPtrOutput

func (*ProtectionContainer) ToProtectionContainerPtrOutputWithContext

func (i *ProtectionContainer) ToProtectionContainerPtrOutputWithContext(ctx context.Context) ProtectionContainerPtrOutput

type ProtectionContainerArgs

type ProtectionContainerArgs struct {
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// Name of fabric that should contain this protection container.
	RecoveryFabricName pulumi.StringInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringInput
}

The set of arguments for constructing a ProtectionContainer resource.

func (ProtectionContainerArgs) ElementType

func (ProtectionContainerArgs) ElementType() reflect.Type

type ProtectionContainerArray

type ProtectionContainerArray []ProtectionContainerInput

func (ProtectionContainerArray) ElementType

func (ProtectionContainerArray) ElementType() reflect.Type

func (ProtectionContainerArray) ToProtectionContainerArrayOutput

func (i ProtectionContainerArray) ToProtectionContainerArrayOutput() ProtectionContainerArrayOutput

func (ProtectionContainerArray) ToProtectionContainerArrayOutputWithContext

func (i ProtectionContainerArray) ToProtectionContainerArrayOutputWithContext(ctx context.Context) ProtectionContainerArrayOutput

type ProtectionContainerArrayInput

type ProtectionContainerArrayInput interface {
	pulumi.Input

	ToProtectionContainerArrayOutput() ProtectionContainerArrayOutput
	ToProtectionContainerArrayOutputWithContext(context.Context) ProtectionContainerArrayOutput
}

ProtectionContainerArrayInput is an input type that accepts ProtectionContainerArray and ProtectionContainerArrayOutput values. You can construct a concrete instance of `ProtectionContainerArrayInput` via:

ProtectionContainerArray{ ProtectionContainerArgs{...} }

type ProtectionContainerArrayOutput

type ProtectionContainerArrayOutput struct{ *pulumi.OutputState }

func (ProtectionContainerArrayOutput) ElementType

func (ProtectionContainerArrayOutput) Index

func (ProtectionContainerArrayOutput) ToProtectionContainerArrayOutput

func (o ProtectionContainerArrayOutput) ToProtectionContainerArrayOutput() ProtectionContainerArrayOutput

func (ProtectionContainerArrayOutput) ToProtectionContainerArrayOutputWithContext

func (o ProtectionContainerArrayOutput) ToProtectionContainerArrayOutputWithContext(ctx context.Context) ProtectionContainerArrayOutput

type ProtectionContainerInput

type ProtectionContainerInput interface {
	pulumi.Input

	ToProtectionContainerOutput() ProtectionContainerOutput
	ToProtectionContainerOutputWithContext(ctx context.Context) ProtectionContainerOutput
}

type ProtectionContainerMap

type ProtectionContainerMap map[string]ProtectionContainerInput

func (ProtectionContainerMap) ElementType

func (ProtectionContainerMap) ElementType() reflect.Type

func (ProtectionContainerMap) ToProtectionContainerMapOutput

func (i ProtectionContainerMap) ToProtectionContainerMapOutput() ProtectionContainerMapOutput

func (ProtectionContainerMap) ToProtectionContainerMapOutputWithContext

func (i ProtectionContainerMap) ToProtectionContainerMapOutputWithContext(ctx context.Context) ProtectionContainerMapOutput

type ProtectionContainerMapInput

type ProtectionContainerMapInput interface {
	pulumi.Input

	ToProtectionContainerMapOutput() ProtectionContainerMapOutput
	ToProtectionContainerMapOutputWithContext(context.Context) ProtectionContainerMapOutput
}

ProtectionContainerMapInput is an input type that accepts ProtectionContainerMap and ProtectionContainerMapOutput values. You can construct a concrete instance of `ProtectionContainerMapInput` via:

ProtectionContainerMap{ "key": ProtectionContainerArgs{...} }

type ProtectionContainerMapOutput

type ProtectionContainerMapOutput struct{ *pulumi.OutputState }

func (ProtectionContainerMapOutput) ElementType

func (ProtectionContainerMapOutput) MapIndex

func (ProtectionContainerMapOutput) ToProtectionContainerMapOutput

func (o ProtectionContainerMapOutput) ToProtectionContainerMapOutput() ProtectionContainerMapOutput

func (ProtectionContainerMapOutput) ToProtectionContainerMapOutputWithContext

func (o ProtectionContainerMapOutput) ToProtectionContainerMapOutputWithContext(ctx context.Context) ProtectionContainerMapOutput

type ProtectionContainerMapping

type ProtectionContainerMapping struct {
	pulumi.CustomResourceState

	// The name of the network mapping.
	Name pulumi.StringOutput `pulumi:"name"`
	// Name of fabric that should contains the protection container to map.
	RecoveryFabricName pulumi.StringOutput `pulumi:"recoveryFabricName"`
	// Id of the policy to use for this mapping.
	RecoveryReplicationPolicyId pulumi.StringOutput `pulumi:"recoveryReplicationPolicyId"`
	// Name of the source protection container to map.
	RecoverySourceProtectionContainerName pulumi.StringOutput `pulumi:"recoverySourceProtectionContainerName"`
	// Id of target protection container to map to.
	RecoveryTargetProtectionContainerId pulumi.StringOutput `pulumi:"recoveryTargetProtectionContainerId"`
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringOutput `pulumi:"recoveryVaultName"`
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
}

Manages a Azure recovery vault protection container mapping. A protection container mapping decides how to translate the protection container when a VM is migrated from one region to another.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/siterecovery"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		primaryResourceGroup, err := core.NewResourceGroup(ctx, "primaryResourceGroup", &core.ResourceGroupArgs{
			Location: pulumi.String("West US"),
		})
		if err != nil {
			return err
		}
		secondaryResourceGroup, err := core.NewResourceGroup(ctx, "secondaryResourceGroup", &core.ResourceGroupArgs{
			Location: pulumi.String("East US"),
		})
		if err != nil {
			return err
		}
		vault, err := recoveryservices.NewVault(ctx, "vault", &recoveryservices.VaultArgs{
			Location:          secondaryResourceGroup.Location,
			ResourceGroupName: secondaryResourceGroup.Name,
			Sku:               pulumi.String("Standard"),
		})
		if err != nil {
			return err
		}
		primaryFabric, err := siterecovery.NewFabric(ctx, "primaryFabric", &siterecovery.FabricArgs{
			ResourceGroupName: secondaryResourceGroup.Name,
			RecoveryVaultName: vault.Name,
			Location:          primaryResourceGroup.Location,
		})
		if err != nil {
			return err
		}
		secondaryFabric, err := siterecovery.NewFabric(ctx, "secondaryFabric", &siterecovery.FabricArgs{
			ResourceGroupName: secondaryResourceGroup.Name,
			RecoveryVaultName: vault.Name,
			Location:          secondaryResourceGroup.Location,
		})
		if err != nil {
			return err
		}
		primaryProtectionContainer, err := siterecovery.NewProtectionContainer(ctx, "primaryProtectionContainer", &siterecovery.ProtectionContainerArgs{
			ResourceGroupName:  secondaryResourceGroup.Name,
			RecoveryVaultName:  vault.Name,
			RecoveryFabricName: primaryFabric.Name,
		})
		if err != nil {
			return err
		}
		secondaryProtectionContainer, err := siterecovery.NewProtectionContainer(ctx, "secondaryProtectionContainer", &siterecovery.ProtectionContainerArgs{
			ResourceGroupName:  secondaryResourceGroup.Name,
			RecoveryVaultName:  vault.Name,
			RecoveryFabricName: secondaryFabric.Name,
		})
		if err != nil {
			return err
		}
		policy, err := siterecovery.NewReplicationPolicy(ctx, "policy", &siterecovery.ReplicationPolicyArgs{
			ResourceGroupName:                               secondaryResourceGroup.Name,
			RecoveryVaultName:                               vault.Name,
			RecoveryPointRetentionInMinutes:                 pulumi.Int(24 * 60),
			ApplicationConsistentSnapshotFrequencyInMinutes: pulumi.Int(4 * 60),
		})
		if err != nil {
			return err
		}
		_, err = siterecovery.NewProtectionContainerMapping(ctx, "container_mapping", &siterecovery.ProtectionContainerMappingArgs{
			ResourceGroupName:                     secondaryResourceGroup.Name,
			RecoveryVaultName:                     vault.Name,
			RecoveryFabricName:                    primaryFabric.Name,
			RecoverySourceProtectionContainerName: primaryProtectionContainer.Name,
			RecoveryTargetProtectionContainerId:   secondaryProtectionContainer.ID(),
			RecoveryReplicationPolicyId:           policy.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Site Recovery Protection Container Mappings can be imported using the `resource id`, e.g.

```sh

$ pulumi import azure:siterecovery/protectionContainerMapping:ProtectionContainerMapping mymapping /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name

```

func GetProtectionContainerMapping

func GetProtectionContainerMapping(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ProtectionContainerMappingState, opts ...pulumi.ResourceOption) (*ProtectionContainerMapping, error)

GetProtectionContainerMapping gets an existing ProtectionContainerMapping resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewProtectionContainerMapping

func NewProtectionContainerMapping(ctx *pulumi.Context,
	name string, args *ProtectionContainerMappingArgs, opts ...pulumi.ResourceOption) (*ProtectionContainerMapping, error)

NewProtectionContainerMapping registers a new resource with the given unique name, arguments, and options.

func (*ProtectionContainerMapping) ElementType

func (*ProtectionContainerMapping) ElementType() reflect.Type

func (*ProtectionContainerMapping) ToProtectionContainerMappingOutput

func (i *ProtectionContainerMapping) ToProtectionContainerMappingOutput() ProtectionContainerMappingOutput

func (*ProtectionContainerMapping) ToProtectionContainerMappingOutputWithContext

func (i *ProtectionContainerMapping) ToProtectionContainerMappingOutputWithContext(ctx context.Context) ProtectionContainerMappingOutput

func (*ProtectionContainerMapping) ToProtectionContainerMappingPtrOutput

func (i *ProtectionContainerMapping) ToProtectionContainerMappingPtrOutput() ProtectionContainerMappingPtrOutput

func (*ProtectionContainerMapping) ToProtectionContainerMappingPtrOutputWithContext

func (i *ProtectionContainerMapping) ToProtectionContainerMappingPtrOutputWithContext(ctx context.Context) ProtectionContainerMappingPtrOutput

type ProtectionContainerMappingArgs

type ProtectionContainerMappingArgs struct {
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// Name of fabric that should contains the protection container to map.
	RecoveryFabricName pulumi.StringInput
	// Id of the policy to use for this mapping.
	RecoveryReplicationPolicyId pulumi.StringInput
	// Name of the source protection container to map.
	RecoverySourceProtectionContainerName pulumi.StringInput
	// Id of target protection container to map to.
	RecoveryTargetProtectionContainerId pulumi.StringInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringInput
}

The set of arguments for constructing a ProtectionContainerMapping resource.

func (ProtectionContainerMappingArgs) ElementType

type ProtectionContainerMappingArray

type ProtectionContainerMappingArray []ProtectionContainerMappingInput

func (ProtectionContainerMappingArray) ElementType

func (ProtectionContainerMappingArray) ToProtectionContainerMappingArrayOutput

func (i ProtectionContainerMappingArray) ToProtectionContainerMappingArrayOutput() ProtectionContainerMappingArrayOutput

func (ProtectionContainerMappingArray) ToProtectionContainerMappingArrayOutputWithContext

func (i ProtectionContainerMappingArray) ToProtectionContainerMappingArrayOutputWithContext(ctx context.Context) ProtectionContainerMappingArrayOutput

type ProtectionContainerMappingArrayInput

type ProtectionContainerMappingArrayInput interface {
	pulumi.Input

	ToProtectionContainerMappingArrayOutput() ProtectionContainerMappingArrayOutput
	ToProtectionContainerMappingArrayOutputWithContext(context.Context) ProtectionContainerMappingArrayOutput
}

ProtectionContainerMappingArrayInput is an input type that accepts ProtectionContainerMappingArray and ProtectionContainerMappingArrayOutput values. You can construct a concrete instance of `ProtectionContainerMappingArrayInput` via:

ProtectionContainerMappingArray{ ProtectionContainerMappingArgs{...} }

type ProtectionContainerMappingArrayOutput

type ProtectionContainerMappingArrayOutput struct{ *pulumi.OutputState }

func (ProtectionContainerMappingArrayOutput) ElementType

func (ProtectionContainerMappingArrayOutput) Index

func (ProtectionContainerMappingArrayOutput) ToProtectionContainerMappingArrayOutput

func (o ProtectionContainerMappingArrayOutput) ToProtectionContainerMappingArrayOutput() ProtectionContainerMappingArrayOutput

func (ProtectionContainerMappingArrayOutput) ToProtectionContainerMappingArrayOutputWithContext

func (o ProtectionContainerMappingArrayOutput) ToProtectionContainerMappingArrayOutputWithContext(ctx context.Context) ProtectionContainerMappingArrayOutput

type ProtectionContainerMappingInput

type ProtectionContainerMappingInput interface {
	pulumi.Input

	ToProtectionContainerMappingOutput() ProtectionContainerMappingOutput
	ToProtectionContainerMappingOutputWithContext(ctx context.Context) ProtectionContainerMappingOutput
}

type ProtectionContainerMappingMap

type ProtectionContainerMappingMap map[string]ProtectionContainerMappingInput

func (ProtectionContainerMappingMap) ElementType

func (ProtectionContainerMappingMap) ToProtectionContainerMappingMapOutput

func (i ProtectionContainerMappingMap) ToProtectionContainerMappingMapOutput() ProtectionContainerMappingMapOutput

func (ProtectionContainerMappingMap) ToProtectionContainerMappingMapOutputWithContext

func (i ProtectionContainerMappingMap) ToProtectionContainerMappingMapOutputWithContext(ctx context.Context) ProtectionContainerMappingMapOutput

type ProtectionContainerMappingMapInput

type ProtectionContainerMappingMapInput interface {
	pulumi.Input

	ToProtectionContainerMappingMapOutput() ProtectionContainerMappingMapOutput
	ToProtectionContainerMappingMapOutputWithContext(context.Context) ProtectionContainerMappingMapOutput
}

ProtectionContainerMappingMapInput is an input type that accepts ProtectionContainerMappingMap and ProtectionContainerMappingMapOutput values. You can construct a concrete instance of `ProtectionContainerMappingMapInput` via:

ProtectionContainerMappingMap{ "key": ProtectionContainerMappingArgs{...} }

type ProtectionContainerMappingMapOutput

type ProtectionContainerMappingMapOutput struct{ *pulumi.OutputState }

func (ProtectionContainerMappingMapOutput) ElementType

func (ProtectionContainerMappingMapOutput) MapIndex

func (ProtectionContainerMappingMapOutput) ToProtectionContainerMappingMapOutput

func (o ProtectionContainerMappingMapOutput) ToProtectionContainerMappingMapOutput() ProtectionContainerMappingMapOutput

func (ProtectionContainerMappingMapOutput) ToProtectionContainerMappingMapOutputWithContext

func (o ProtectionContainerMappingMapOutput) ToProtectionContainerMappingMapOutputWithContext(ctx context.Context) ProtectionContainerMappingMapOutput

type ProtectionContainerMappingOutput

type ProtectionContainerMappingOutput struct {
	*pulumi.OutputState
}

func (ProtectionContainerMappingOutput) ElementType

func (ProtectionContainerMappingOutput) ToProtectionContainerMappingOutput

func (o ProtectionContainerMappingOutput) ToProtectionContainerMappingOutput() ProtectionContainerMappingOutput

func (ProtectionContainerMappingOutput) ToProtectionContainerMappingOutputWithContext

func (o ProtectionContainerMappingOutput) ToProtectionContainerMappingOutputWithContext(ctx context.Context) ProtectionContainerMappingOutput

func (ProtectionContainerMappingOutput) ToProtectionContainerMappingPtrOutput

func (o ProtectionContainerMappingOutput) ToProtectionContainerMappingPtrOutput() ProtectionContainerMappingPtrOutput

func (ProtectionContainerMappingOutput) ToProtectionContainerMappingPtrOutputWithContext

func (o ProtectionContainerMappingOutput) ToProtectionContainerMappingPtrOutputWithContext(ctx context.Context) ProtectionContainerMappingPtrOutput

type ProtectionContainerMappingPtrInput

type ProtectionContainerMappingPtrInput interface {
	pulumi.Input

	ToProtectionContainerMappingPtrOutput() ProtectionContainerMappingPtrOutput
	ToProtectionContainerMappingPtrOutputWithContext(ctx context.Context) ProtectionContainerMappingPtrOutput
}

type ProtectionContainerMappingPtrOutput

type ProtectionContainerMappingPtrOutput struct {
	*pulumi.OutputState
}

func (ProtectionContainerMappingPtrOutput) ElementType

func (ProtectionContainerMappingPtrOutput) ToProtectionContainerMappingPtrOutput

func (o ProtectionContainerMappingPtrOutput) ToProtectionContainerMappingPtrOutput() ProtectionContainerMappingPtrOutput

func (ProtectionContainerMappingPtrOutput) ToProtectionContainerMappingPtrOutputWithContext

func (o ProtectionContainerMappingPtrOutput) ToProtectionContainerMappingPtrOutputWithContext(ctx context.Context) ProtectionContainerMappingPtrOutput

type ProtectionContainerMappingState

type ProtectionContainerMappingState struct {
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// Name of fabric that should contains the protection container to map.
	RecoveryFabricName pulumi.StringPtrInput
	// Id of the policy to use for this mapping.
	RecoveryReplicationPolicyId pulumi.StringPtrInput
	// Name of the source protection container to map.
	RecoverySourceProtectionContainerName pulumi.StringPtrInput
	// Id of target protection container to map to.
	RecoveryTargetProtectionContainerId pulumi.StringPtrInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringPtrInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringPtrInput
}

func (ProtectionContainerMappingState) ElementType

type ProtectionContainerOutput

type ProtectionContainerOutput struct {
	*pulumi.OutputState
}

func (ProtectionContainerOutput) ElementType

func (ProtectionContainerOutput) ElementType() reflect.Type

func (ProtectionContainerOutput) ToProtectionContainerOutput

func (o ProtectionContainerOutput) ToProtectionContainerOutput() ProtectionContainerOutput

func (ProtectionContainerOutput) ToProtectionContainerOutputWithContext

func (o ProtectionContainerOutput) ToProtectionContainerOutputWithContext(ctx context.Context) ProtectionContainerOutput

func (ProtectionContainerOutput) ToProtectionContainerPtrOutput

func (o ProtectionContainerOutput) ToProtectionContainerPtrOutput() ProtectionContainerPtrOutput

func (ProtectionContainerOutput) ToProtectionContainerPtrOutputWithContext

func (o ProtectionContainerOutput) ToProtectionContainerPtrOutputWithContext(ctx context.Context) ProtectionContainerPtrOutput

type ProtectionContainerPtrInput

type ProtectionContainerPtrInput interface {
	pulumi.Input

	ToProtectionContainerPtrOutput() ProtectionContainerPtrOutput
	ToProtectionContainerPtrOutputWithContext(ctx context.Context) ProtectionContainerPtrOutput
}

type ProtectionContainerPtrOutput

type ProtectionContainerPtrOutput struct {
	*pulumi.OutputState
}

func (ProtectionContainerPtrOutput) ElementType

func (ProtectionContainerPtrOutput) ToProtectionContainerPtrOutput

func (o ProtectionContainerPtrOutput) ToProtectionContainerPtrOutput() ProtectionContainerPtrOutput

func (ProtectionContainerPtrOutput) ToProtectionContainerPtrOutputWithContext

func (o ProtectionContainerPtrOutput) ToProtectionContainerPtrOutputWithContext(ctx context.Context) ProtectionContainerPtrOutput

type ProtectionContainerState

type ProtectionContainerState struct {
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// Name of fabric that should contain this protection container.
	RecoveryFabricName pulumi.StringPtrInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringPtrInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringPtrInput
}

func (ProtectionContainerState) ElementType

func (ProtectionContainerState) ElementType() reflect.Type

type ReplicatedVM

type ReplicatedVM struct {
	pulumi.CustomResourceState

	// One or more `managedDisk` block.
	ManagedDisks ReplicatedVMManagedDiskArrayOutput `pulumi:"managedDisks"`
	// The name of the network mapping.
	Name pulumi.StringOutput `pulumi:"name"`
	// One or more `networkInterface` block.
	NetworkInterfaces           ReplicatedVMNetworkInterfaceArrayOutput `pulumi:"networkInterfaces"`
	RecoveryReplicationPolicyId pulumi.StringOutput                     `pulumi:"recoveryReplicationPolicyId"`
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringOutput `pulumi:"recoveryVaultName"`
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
	// Name of fabric that should contains this replication.
	SourceRecoveryFabricName pulumi.StringOutput `pulumi:"sourceRecoveryFabricName"`
	// Name of the protection container to use.
	SourceRecoveryProtectionContainerName pulumi.StringOutput `pulumi:"sourceRecoveryProtectionContainerName"`
	// Id of the VM to replicate
	SourceVmId pulumi.StringOutput `pulumi:"sourceVmId"`
	// Id of availability set that the new VM should belong to when a failover is done.
	TargetAvailabilitySetId pulumi.StringPtrOutput `pulumi:"targetAvailabilitySetId"`
	// Network to use when a failover is done (recommended to set if any networkInterface is configured for failover).
	TargetNetworkId pulumi.StringOutput `pulumi:"targetNetworkId"`
	// Id of fabric where the VM replication should be handled when a failover is done.
	TargetRecoveryFabricId pulumi.StringOutput `pulumi:"targetRecoveryFabricId"`
	// Id of protection container where the VM replication should be created when a failover is done.
	TargetRecoveryProtectionContainerId pulumi.StringOutput `pulumi:"targetRecoveryProtectionContainerId"`
	// Id of resource group where the VM should be created when a failover is done.
	TargetResourceGroupId pulumi.StringOutput `pulumi:"targetResourceGroupId"`
}

Manages a VM replicated using Azure Site Recovery (Azure to Azure only). A replicated VM keeps a copiously updated image of the VM in another region in order to be able to start the VM in that region in case of a disaster.

## Import

Site Recovery Replicated VM's can be imported using the `resource id`, e.g.

```sh

$ pulumi import azure:siterecovery/replicatedVM:ReplicatedVM vmreplication /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationFabrics/fabric-name/replicationProtectionContainers/protection-container-name/replicationProtectedItems/vm-replication-name

```

func GetReplicatedVM

func GetReplicatedVM(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ReplicatedVMState, opts ...pulumi.ResourceOption) (*ReplicatedVM, error)

GetReplicatedVM gets an existing ReplicatedVM resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewReplicatedVM

func NewReplicatedVM(ctx *pulumi.Context,
	name string, args *ReplicatedVMArgs, opts ...pulumi.ResourceOption) (*ReplicatedVM, error)

NewReplicatedVM registers a new resource with the given unique name, arguments, and options.

func (*ReplicatedVM) ElementType

func (*ReplicatedVM) ElementType() reflect.Type

func (*ReplicatedVM) ToReplicatedVMOutput

func (i *ReplicatedVM) ToReplicatedVMOutput() ReplicatedVMOutput

func (*ReplicatedVM) ToReplicatedVMOutputWithContext

func (i *ReplicatedVM) ToReplicatedVMOutputWithContext(ctx context.Context) ReplicatedVMOutput

func (*ReplicatedVM) ToReplicatedVMPtrOutput

func (i *ReplicatedVM) ToReplicatedVMPtrOutput() ReplicatedVMPtrOutput

func (*ReplicatedVM) ToReplicatedVMPtrOutputWithContext

func (i *ReplicatedVM) ToReplicatedVMPtrOutputWithContext(ctx context.Context) ReplicatedVMPtrOutput

type ReplicatedVMArgs

type ReplicatedVMArgs struct {
	// One or more `managedDisk` block.
	ManagedDisks ReplicatedVMManagedDiskArrayInput
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// One or more `networkInterface` block.
	NetworkInterfaces           ReplicatedVMNetworkInterfaceArrayInput
	RecoveryReplicationPolicyId pulumi.StringInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringInput
	// Name of fabric that should contains this replication.
	SourceRecoveryFabricName pulumi.StringInput
	// Name of the protection container to use.
	SourceRecoveryProtectionContainerName pulumi.StringInput
	// Id of the VM to replicate
	SourceVmId pulumi.StringInput
	// Id of availability set that the new VM should belong to when a failover is done.
	TargetAvailabilitySetId pulumi.StringPtrInput
	// Network to use when a failover is done (recommended to set if any networkInterface is configured for failover).
	TargetNetworkId pulumi.StringPtrInput
	// Id of fabric where the VM replication should be handled when a failover is done.
	TargetRecoveryFabricId pulumi.StringInput
	// Id of protection container where the VM replication should be created when a failover is done.
	TargetRecoveryProtectionContainerId pulumi.StringInput
	// Id of resource group where the VM should be created when a failover is done.
	TargetResourceGroupId pulumi.StringInput
}

The set of arguments for constructing a ReplicatedVM resource.

func (ReplicatedVMArgs) ElementType

func (ReplicatedVMArgs) ElementType() reflect.Type

type ReplicatedVMArray

type ReplicatedVMArray []ReplicatedVMInput

func (ReplicatedVMArray) ElementType

func (ReplicatedVMArray) ElementType() reflect.Type

func (ReplicatedVMArray) ToReplicatedVMArrayOutput

func (i ReplicatedVMArray) ToReplicatedVMArrayOutput() ReplicatedVMArrayOutput

func (ReplicatedVMArray) ToReplicatedVMArrayOutputWithContext

func (i ReplicatedVMArray) ToReplicatedVMArrayOutputWithContext(ctx context.Context) ReplicatedVMArrayOutput

type ReplicatedVMArrayInput

type ReplicatedVMArrayInput interface {
	pulumi.Input

	ToReplicatedVMArrayOutput() ReplicatedVMArrayOutput
	ToReplicatedVMArrayOutputWithContext(context.Context) ReplicatedVMArrayOutput
}

ReplicatedVMArrayInput is an input type that accepts ReplicatedVMArray and ReplicatedVMArrayOutput values. You can construct a concrete instance of `ReplicatedVMArrayInput` via:

ReplicatedVMArray{ ReplicatedVMArgs{...} }

type ReplicatedVMArrayOutput

type ReplicatedVMArrayOutput struct{ *pulumi.OutputState }

func (ReplicatedVMArrayOutput) ElementType

func (ReplicatedVMArrayOutput) ElementType() reflect.Type

func (ReplicatedVMArrayOutput) Index

func (ReplicatedVMArrayOutput) ToReplicatedVMArrayOutput

func (o ReplicatedVMArrayOutput) ToReplicatedVMArrayOutput() ReplicatedVMArrayOutput

func (ReplicatedVMArrayOutput) ToReplicatedVMArrayOutputWithContext

func (o ReplicatedVMArrayOutput) ToReplicatedVMArrayOutputWithContext(ctx context.Context) ReplicatedVMArrayOutput

type ReplicatedVMInput

type ReplicatedVMInput interface {
	pulumi.Input

	ToReplicatedVMOutput() ReplicatedVMOutput
	ToReplicatedVMOutputWithContext(ctx context.Context) ReplicatedVMOutput
}

type ReplicatedVMManagedDisk

type ReplicatedVMManagedDisk struct {
	// Id of disk that should be replicated.
	DiskId string `pulumi:"diskId"`
	// Storage account that should be used for caching.
	StagingStorageAccountId string `pulumi:"stagingStorageAccountId"`
	// What type should the disk be when a failover is done.
	TargetDiskType string `pulumi:"targetDiskType"`
	// What type should the disk be that holds the replication data.
	TargetReplicaDiskType string `pulumi:"targetReplicaDiskType"`
	// Resource group disk should belong to when a failover is done.
	TargetResourceGroupId string `pulumi:"targetResourceGroupId"`
}

type ReplicatedVMManagedDiskArgs

type ReplicatedVMManagedDiskArgs struct {
	// Id of disk that should be replicated.
	DiskId pulumi.StringInput `pulumi:"diskId"`
	// Storage account that should be used for caching.
	StagingStorageAccountId pulumi.StringInput `pulumi:"stagingStorageAccountId"`
	// What type should the disk be when a failover is done.
	TargetDiskType pulumi.StringInput `pulumi:"targetDiskType"`
	// What type should the disk be that holds the replication data.
	TargetReplicaDiskType pulumi.StringInput `pulumi:"targetReplicaDiskType"`
	// Resource group disk should belong to when a failover is done.
	TargetResourceGroupId pulumi.StringInput `pulumi:"targetResourceGroupId"`
}

func (ReplicatedVMManagedDiskArgs) ElementType

func (ReplicatedVMManagedDiskArgs) ToReplicatedVMManagedDiskOutput

func (i ReplicatedVMManagedDiskArgs) ToReplicatedVMManagedDiskOutput() ReplicatedVMManagedDiskOutput

func (ReplicatedVMManagedDiskArgs) ToReplicatedVMManagedDiskOutputWithContext

func (i ReplicatedVMManagedDiskArgs) ToReplicatedVMManagedDiskOutputWithContext(ctx context.Context) ReplicatedVMManagedDiskOutput

type ReplicatedVMManagedDiskArray

type ReplicatedVMManagedDiskArray []ReplicatedVMManagedDiskInput

func (ReplicatedVMManagedDiskArray) ElementType

func (ReplicatedVMManagedDiskArray) ToReplicatedVMManagedDiskArrayOutput

func (i ReplicatedVMManagedDiskArray) ToReplicatedVMManagedDiskArrayOutput() ReplicatedVMManagedDiskArrayOutput

func (ReplicatedVMManagedDiskArray) ToReplicatedVMManagedDiskArrayOutputWithContext

func (i ReplicatedVMManagedDiskArray) ToReplicatedVMManagedDiskArrayOutputWithContext(ctx context.Context) ReplicatedVMManagedDiskArrayOutput

type ReplicatedVMManagedDiskArrayInput

type ReplicatedVMManagedDiskArrayInput interface {
	pulumi.Input

	ToReplicatedVMManagedDiskArrayOutput() ReplicatedVMManagedDiskArrayOutput
	ToReplicatedVMManagedDiskArrayOutputWithContext(context.Context) ReplicatedVMManagedDiskArrayOutput
}

ReplicatedVMManagedDiskArrayInput is an input type that accepts ReplicatedVMManagedDiskArray and ReplicatedVMManagedDiskArrayOutput values. You can construct a concrete instance of `ReplicatedVMManagedDiskArrayInput` via:

ReplicatedVMManagedDiskArray{ ReplicatedVMManagedDiskArgs{...} }

type ReplicatedVMManagedDiskArrayOutput

type ReplicatedVMManagedDiskArrayOutput struct{ *pulumi.OutputState }

func (ReplicatedVMManagedDiskArrayOutput) ElementType

func (ReplicatedVMManagedDiskArrayOutput) Index

func (ReplicatedVMManagedDiskArrayOutput) ToReplicatedVMManagedDiskArrayOutput

func (o ReplicatedVMManagedDiskArrayOutput) ToReplicatedVMManagedDiskArrayOutput() ReplicatedVMManagedDiskArrayOutput

func (ReplicatedVMManagedDiskArrayOutput) ToReplicatedVMManagedDiskArrayOutputWithContext

func (o ReplicatedVMManagedDiskArrayOutput) ToReplicatedVMManagedDiskArrayOutputWithContext(ctx context.Context) ReplicatedVMManagedDiskArrayOutput

type ReplicatedVMManagedDiskInput

type ReplicatedVMManagedDiskInput interface {
	pulumi.Input

	ToReplicatedVMManagedDiskOutput() ReplicatedVMManagedDiskOutput
	ToReplicatedVMManagedDiskOutputWithContext(context.Context) ReplicatedVMManagedDiskOutput
}

ReplicatedVMManagedDiskInput is an input type that accepts ReplicatedVMManagedDiskArgs and ReplicatedVMManagedDiskOutput values. You can construct a concrete instance of `ReplicatedVMManagedDiskInput` via:

ReplicatedVMManagedDiskArgs{...}

type ReplicatedVMManagedDiskOutput

type ReplicatedVMManagedDiskOutput struct{ *pulumi.OutputState }

func (ReplicatedVMManagedDiskOutput) DiskId

Id of disk that should be replicated.

func (ReplicatedVMManagedDiskOutput) ElementType

func (ReplicatedVMManagedDiskOutput) StagingStorageAccountId

func (o ReplicatedVMManagedDiskOutput) StagingStorageAccountId() pulumi.StringOutput

Storage account that should be used for caching.

func (ReplicatedVMManagedDiskOutput) TargetDiskType

What type should the disk be when a failover is done.

func (ReplicatedVMManagedDiskOutput) TargetReplicaDiskType

func (o ReplicatedVMManagedDiskOutput) TargetReplicaDiskType() pulumi.StringOutput

What type should the disk be that holds the replication data.

func (ReplicatedVMManagedDiskOutput) TargetResourceGroupId

func (o ReplicatedVMManagedDiskOutput) TargetResourceGroupId() pulumi.StringOutput

Resource group disk should belong to when a failover is done.

func (ReplicatedVMManagedDiskOutput) ToReplicatedVMManagedDiskOutput

func (o ReplicatedVMManagedDiskOutput) ToReplicatedVMManagedDiskOutput() ReplicatedVMManagedDiskOutput

func (ReplicatedVMManagedDiskOutput) ToReplicatedVMManagedDiskOutputWithContext

func (o ReplicatedVMManagedDiskOutput) ToReplicatedVMManagedDiskOutputWithContext(ctx context.Context) ReplicatedVMManagedDiskOutput

type ReplicatedVMMap

type ReplicatedVMMap map[string]ReplicatedVMInput

func (ReplicatedVMMap) ElementType

func (ReplicatedVMMap) ElementType() reflect.Type

func (ReplicatedVMMap) ToReplicatedVMMapOutput

func (i ReplicatedVMMap) ToReplicatedVMMapOutput() ReplicatedVMMapOutput

func (ReplicatedVMMap) ToReplicatedVMMapOutputWithContext

func (i ReplicatedVMMap) ToReplicatedVMMapOutputWithContext(ctx context.Context) ReplicatedVMMapOutput

type ReplicatedVMMapInput

type ReplicatedVMMapInput interface {
	pulumi.Input

	ToReplicatedVMMapOutput() ReplicatedVMMapOutput
	ToReplicatedVMMapOutputWithContext(context.Context) ReplicatedVMMapOutput
}

ReplicatedVMMapInput is an input type that accepts ReplicatedVMMap and ReplicatedVMMapOutput values. You can construct a concrete instance of `ReplicatedVMMapInput` via:

ReplicatedVMMap{ "key": ReplicatedVMArgs{...} }

type ReplicatedVMMapOutput

type ReplicatedVMMapOutput struct{ *pulumi.OutputState }

func (ReplicatedVMMapOutput) ElementType

func (ReplicatedVMMapOutput) ElementType() reflect.Type

func (ReplicatedVMMapOutput) MapIndex

func (ReplicatedVMMapOutput) ToReplicatedVMMapOutput

func (o ReplicatedVMMapOutput) ToReplicatedVMMapOutput() ReplicatedVMMapOutput

func (ReplicatedVMMapOutput) ToReplicatedVMMapOutputWithContext

func (o ReplicatedVMMapOutput) ToReplicatedVMMapOutputWithContext(ctx context.Context) ReplicatedVMMapOutput

type ReplicatedVMNetworkInterface

type ReplicatedVMNetworkInterface struct {
	// Id of the public IP object to use when a failover is done.
	RecoveryPublicIpAddressId *string `pulumi:"recoveryPublicIpAddressId"`
	// Id source network interface.
	SourceNetworkInterfaceId *string `pulumi:"sourceNetworkInterfaceId"`
	// Static IP to assign when a failover is done.
	TargetStaticIp *string `pulumi:"targetStaticIp"`
	// Name of the subnet to to use when a failover is done.
	TargetSubnetName *string `pulumi:"targetSubnetName"`
}

type ReplicatedVMNetworkInterfaceArgs

type ReplicatedVMNetworkInterfaceArgs struct {
	// Id of the public IP object to use when a failover is done.
	RecoveryPublicIpAddressId pulumi.StringPtrInput `pulumi:"recoveryPublicIpAddressId"`
	// Id source network interface.
	SourceNetworkInterfaceId pulumi.StringPtrInput `pulumi:"sourceNetworkInterfaceId"`
	// Static IP to assign when a failover is done.
	TargetStaticIp pulumi.StringPtrInput `pulumi:"targetStaticIp"`
	// Name of the subnet to to use when a failover is done.
	TargetSubnetName pulumi.StringPtrInput `pulumi:"targetSubnetName"`
}

func (ReplicatedVMNetworkInterfaceArgs) ElementType

func (ReplicatedVMNetworkInterfaceArgs) ToReplicatedVMNetworkInterfaceOutput

func (i ReplicatedVMNetworkInterfaceArgs) ToReplicatedVMNetworkInterfaceOutput() ReplicatedVMNetworkInterfaceOutput

func (ReplicatedVMNetworkInterfaceArgs) ToReplicatedVMNetworkInterfaceOutputWithContext

func (i ReplicatedVMNetworkInterfaceArgs) ToReplicatedVMNetworkInterfaceOutputWithContext(ctx context.Context) ReplicatedVMNetworkInterfaceOutput

type ReplicatedVMNetworkInterfaceArray

type ReplicatedVMNetworkInterfaceArray []ReplicatedVMNetworkInterfaceInput

func (ReplicatedVMNetworkInterfaceArray) ElementType

func (ReplicatedVMNetworkInterfaceArray) ToReplicatedVMNetworkInterfaceArrayOutput

func (i ReplicatedVMNetworkInterfaceArray) ToReplicatedVMNetworkInterfaceArrayOutput() ReplicatedVMNetworkInterfaceArrayOutput

func (ReplicatedVMNetworkInterfaceArray) ToReplicatedVMNetworkInterfaceArrayOutputWithContext

func (i ReplicatedVMNetworkInterfaceArray) ToReplicatedVMNetworkInterfaceArrayOutputWithContext(ctx context.Context) ReplicatedVMNetworkInterfaceArrayOutput

type ReplicatedVMNetworkInterfaceArrayInput

type ReplicatedVMNetworkInterfaceArrayInput interface {
	pulumi.Input

	ToReplicatedVMNetworkInterfaceArrayOutput() ReplicatedVMNetworkInterfaceArrayOutput
	ToReplicatedVMNetworkInterfaceArrayOutputWithContext(context.Context) ReplicatedVMNetworkInterfaceArrayOutput
}

ReplicatedVMNetworkInterfaceArrayInput is an input type that accepts ReplicatedVMNetworkInterfaceArray and ReplicatedVMNetworkInterfaceArrayOutput values. You can construct a concrete instance of `ReplicatedVMNetworkInterfaceArrayInput` via:

ReplicatedVMNetworkInterfaceArray{ ReplicatedVMNetworkInterfaceArgs{...} }

type ReplicatedVMNetworkInterfaceArrayOutput

type ReplicatedVMNetworkInterfaceArrayOutput struct{ *pulumi.OutputState }

func (ReplicatedVMNetworkInterfaceArrayOutput) ElementType

func (ReplicatedVMNetworkInterfaceArrayOutput) Index

func (ReplicatedVMNetworkInterfaceArrayOutput) ToReplicatedVMNetworkInterfaceArrayOutput

func (o ReplicatedVMNetworkInterfaceArrayOutput) ToReplicatedVMNetworkInterfaceArrayOutput() ReplicatedVMNetworkInterfaceArrayOutput

func (ReplicatedVMNetworkInterfaceArrayOutput) ToReplicatedVMNetworkInterfaceArrayOutputWithContext

func (o ReplicatedVMNetworkInterfaceArrayOutput) ToReplicatedVMNetworkInterfaceArrayOutputWithContext(ctx context.Context) ReplicatedVMNetworkInterfaceArrayOutput

type ReplicatedVMNetworkInterfaceInput

type ReplicatedVMNetworkInterfaceInput interface {
	pulumi.Input

	ToReplicatedVMNetworkInterfaceOutput() ReplicatedVMNetworkInterfaceOutput
	ToReplicatedVMNetworkInterfaceOutputWithContext(context.Context) ReplicatedVMNetworkInterfaceOutput
}

ReplicatedVMNetworkInterfaceInput is an input type that accepts ReplicatedVMNetworkInterfaceArgs and ReplicatedVMNetworkInterfaceOutput values. You can construct a concrete instance of `ReplicatedVMNetworkInterfaceInput` via:

ReplicatedVMNetworkInterfaceArgs{...}

type ReplicatedVMNetworkInterfaceOutput

type ReplicatedVMNetworkInterfaceOutput struct{ *pulumi.OutputState }

func (ReplicatedVMNetworkInterfaceOutput) ElementType

func (ReplicatedVMNetworkInterfaceOutput) RecoveryPublicIpAddressId

func (o ReplicatedVMNetworkInterfaceOutput) RecoveryPublicIpAddressId() pulumi.StringPtrOutput

Id of the public IP object to use when a failover is done.

func (ReplicatedVMNetworkInterfaceOutput) SourceNetworkInterfaceId

func (o ReplicatedVMNetworkInterfaceOutput) SourceNetworkInterfaceId() pulumi.StringPtrOutput

Id source network interface.

func (ReplicatedVMNetworkInterfaceOutput) TargetStaticIp

Static IP to assign when a failover is done.

func (ReplicatedVMNetworkInterfaceOutput) TargetSubnetName

Name of the subnet to to use when a failover is done.

func (ReplicatedVMNetworkInterfaceOutput) ToReplicatedVMNetworkInterfaceOutput

func (o ReplicatedVMNetworkInterfaceOutput) ToReplicatedVMNetworkInterfaceOutput() ReplicatedVMNetworkInterfaceOutput

func (ReplicatedVMNetworkInterfaceOutput) ToReplicatedVMNetworkInterfaceOutputWithContext

func (o ReplicatedVMNetworkInterfaceOutput) ToReplicatedVMNetworkInterfaceOutputWithContext(ctx context.Context) ReplicatedVMNetworkInterfaceOutput

type ReplicatedVMOutput

type ReplicatedVMOutput struct {
	*pulumi.OutputState
}

func (ReplicatedVMOutput) ElementType

func (ReplicatedVMOutput) ElementType() reflect.Type

func (ReplicatedVMOutput) ToReplicatedVMOutput

func (o ReplicatedVMOutput) ToReplicatedVMOutput() ReplicatedVMOutput

func (ReplicatedVMOutput) ToReplicatedVMOutputWithContext

func (o ReplicatedVMOutput) ToReplicatedVMOutputWithContext(ctx context.Context) ReplicatedVMOutput

func (ReplicatedVMOutput) ToReplicatedVMPtrOutput

func (o ReplicatedVMOutput) ToReplicatedVMPtrOutput() ReplicatedVMPtrOutput

func (ReplicatedVMOutput) ToReplicatedVMPtrOutputWithContext

func (o ReplicatedVMOutput) ToReplicatedVMPtrOutputWithContext(ctx context.Context) ReplicatedVMPtrOutput

type ReplicatedVMPtrInput

type ReplicatedVMPtrInput interface {
	pulumi.Input

	ToReplicatedVMPtrOutput() ReplicatedVMPtrOutput
	ToReplicatedVMPtrOutputWithContext(ctx context.Context) ReplicatedVMPtrOutput
}

type ReplicatedVMPtrOutput

type ReplicatedVMPtrOutput struct {
	*pulumi.OutputState
}

func (ReplicatedVMPtrOutput) ElementType

func (ReplicatedVMPtrOutput) ElementType() reflect.Type

func (ReplicatedVMPtrOutput) ToReplicatedVMPtrOutput

func (o ReplicatedVMPtrOutput) ToReplicatedVMPtrOutput() ReplicatedVMPtrOutput

func (ReplicatedVMPtrOutput) ToReplicatedVMPtrOutputWithContext

func (o ReplicatedVMPtrOutput) ToReplicatedVMPtrOutputWithContext(ctx context.Context) ReplicatedVMPtrOutput

type ReplicatedVMState

type ReplicatedVMState struct {
	// One or more `managedDisk` block.
	ManagedDisks ReplicatedVMManagedDiskArrayInput
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// One or more `networkInterface` block.
	NetworkInterfaces           ReplicatedVMNetworkInterfaceArrayInput
	RecoveryReplicationPolicyId pulumi.StringPtrInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringPtrInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringPtrInput
	// Name of fabric that should contains this replication.
	SourceRecoveryFabricName pulumi.StringPtrInput
	// Name of the protection container to use.
	SourceRecoveryProtectionContainerName pulumi.StringPtrInput
	// Id of the VM to replicate
	SourceVmId pulumi.StringPtrInput
	// Id of availability set that the new VM should belong to when a failover is done.
	TargetAvailabilitySetId pulumi.StringPtrInput
	// Network to use when a failover is done (recommended to set if any networkInterface is configured for failover).
	TargetNetworkId pulumi.StringPtrInput
	// Id of fabric where the VM replication should be handled when a failover is done.
	TargetRecoveryFabricId pulumi.StringPtrInput
	// Id of protection container where the VM replication should be created when a failover is done.
	TargetRecoveryProtectionContainerId pulumi.StringPtrInput
	// Id of resource group where the VM should be created when a failover is done.
	TargetResourceGroupId pulumi.StringPtrInput
}

func (ReplicatedVMState) ElementType

func (ReplicatedVMState) ElementType() reflect.Type

type ReplicationPolicy

type ReplicationPolicy struct {
	pulumi.CustomResourceState

	// Specifies the frequency(in minutes) at which to create application consistent recovery points.
	ApplicationConsistentSnapshotFrequencyInMinutes pulumi.IntOutput `pulumi:"applicationConsistentSnapshotFrequencyInMinutes"`
	// The name of the network mapping.
	Name pulumi.StringOutput `pulumi:"name"`
	// The duration in minutes for which the recovery points need to be stored.
	RecoveryPointRetentionInMinutes pulumi.IntOutput `pulumi:"recoveryPointRetentionInMinutes"`
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringOutput `pulumi:"recoveryVaultName"`
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"`
}

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

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices"
"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/siterecovery"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		secondary, err := core.NewResourceGroup(ctx, "secondary", &core.ResourceGroupArgs{
			Location: pulumi.String("East US"),
		})
		if err != nil {
			return err
		}
		vault, err := recoveryservices.NewVault(ctx, "vault", &recoveryservices.VaultArgs{
			Location:          secondary.Location,
			ResourceGroupName: secondary.Name,
			Sku:               pulumi.String("Standard"),
		})
		if err != nil {
			return err
		}
		_, err = siterecovery.NewReplicationPolicy(ctx, "policy", &siterecovery.ReplicationPolicyArgs{
			ResourceGroupName:                               secondary.Name,
			RecoveryVaultName:                               vault.Name,
			RecoveryPointRetentionInMinutes:                 pulumi.Int(24 * 60),
			ApplicationConsistentSnapshotFrequencyInMinutes: pulumi.Int(4 * 60),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

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

```sh

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

```

func GetReplicationPolicy

func GetReplicationPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ReplicationPolicyState, opts ...pulumi.ResourceOption) (*ReplicationPolicy, error)

GetReplicationPolicy gets an existing ReplicationPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewReplicationPolicy

func NewReplicationPolicy(ctx *pulumi.Context,
	name string, args *ReplicationPolicyArgs, opts ...pulumi.ResourceOption) (*ReplicationPolicy, error)

NewReplicationPolicy registers a new resource with the given unique name, arguments, and options.

func (*ReplicationPolicy) ElementType

func (*ReplicationPolicy) ElementType() reflect.Type

func (*ReplicationPolicy) ToReplicationPolicyOutput

func (i *ReplicationPolicy) ToReplicationPolicyOutput() ReplicationPolicyOutput

func (*ReplicationPolicy) ToReplicationPolicyOutputWithContext

func (i *ReplicationPolicy) ToReplicationPolicyOutputWithContext(ctx context.Context) ReplicationPolicyOutput

func (*ReplicationPolicy) ToReplicationPolicyPtrOutput

func (i *ReplicationPolicy) ToReplicationPolicyPtrOutput() ReplicationPolicyPtrOutput

func (*ReplicationPolicy) ToReplicationPolicyPtrOutputWithContext

func (i *ReplicationPolicy) ToReplicationPolicyPtrOutputWithContext(ctx context.Context) ReplicationPolicyPtrOutput

type ReplicationPolicyArgs

type ReplicationPolicyArgs struct {
	// Specifies the frequency(in minutes) at which to create application consistent recovery points.
	ApplicationConsistentSnapshotFrequencyInMinutes pulumi.IntInput
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// The duration in minutes for which the recovery points need to be stored.
	RecoveryPointRetentionInMinutes pulumi.IntInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringInput
}

The set of arguments for constructing a ReplicationPolicy resource.

func (ReplicationPolicyArgs) ElementType

func (ReplicationPolicyArgs) ElementType() reflect.Type

type ReplicationPolicyArray

type ReplicationPolicyArray []ReplicationPolicyInput

func (ReplicationPolicyArray) ElementType

func (ReplicationPolicyArray) ElementType() reflect.Type

func (ReplicationPolicyArray) ToReplicationPolicyArrayOutput

func (i ReplicationPolicyArray) ToReplicationPolicyArrayOutput() ReplicationPolicyArrayOutput

func (ReplicationPolicyArray) ToReplicationPolicyArrayOutputWithContext

func (i ReplicationPolicyArray) ToReplicationPolicyArrayOutputWithContext(ctx context.Context) ReplicationPolicyArrayOutput

type ReplicationPolicyArrayInput

type ReplicationPolicyArrayInput interface {
	pulumi.Input

	ToReplicationPolicyArrayOutput() ReplicationPolicyArrayOutput
	ToReplicationPolicyArrayOutputWithContext(context.Context) ReplicationPolicyArrayOutput
}

ReplicationPolicyArrayInput is an input type that accepts ReplicationPolicyArray and ReplicationPolicyArrayOutput values. You can construct a concrete instance of `ReplicationPolicyArrayInput` via:

ReplicationPolicyArray{ ReplicationPolicyArgs{...} }

type ReplicationPolicyArrayOutput

type ReplicationPolicyArrayOutput struct{ *pulumi.OutputState }

func (ReplicationPolicyArrayOutput) ElementType

func (ReplicationPolicyArrayOutput) Index

func (ReplicationPolicyArrayOutput) ToReplicationPolicyArrayOutput

func (o ReplicationPolicyArrayOutput) ToReplicationPolicyArrayOutput() ReplicationPolicyArrayOutput

func (ReplicationPolicyArrayOutput) ToReplicationPolicyArrayOutputWithContext

func (o ReplicationPolicyArrayOutput) ToReplicationPolicyArrayOutputWithContext(ctx context.Context) ReplicationPolicyArrayOutput

type ReplicationPolicyInput

type ReplicationPolicyInput interface {
	pulumi.Input

	ToReplicationPolicyOutput() ReplicationPolicyOutput
	ToReplicationPolicyOutputWithContext(ctx context.Context) ReplicationPolicyOutput
}

type ReplicationPolicyMap

type ReplicationPolicyMap map[string]ReplicationPolicyInput

func (ReplicationPolicyMap) ElementType

func (ReplicationPolicyMap) ElementType() reflect.Type

func (ReplicationPolicyMap) ToReplicationPolicyMapOutput

func (i ReplicationPolicyMap) ToReplicationPolicyMapOutput() ReplicationPolicyMapOutput

func (ReplicationPolicyMap) ToReplicationPolicyMapOutputWithContext

func (i ReplicationPolicyMap) ToReplicationPolicyMapOutputWithContext(ctx context.Context) ReplicationPolicyMapOutput

type ReplicationPolicyMapInput

type ReplicationPolicyMapInput interface {
	pulumi.Input

	ToReplicationPolicyMapOutput() ReplicationPolicyMapOutput
	ToReplicationPolicyMapOutputWithContext(context.Context) ReplicationPolicyMapOutput
}

ReplicationPolicyMapInput is an input type that accepts ReplicationPolicyMap and ReplicationPolicyMapOutput values. You can construct a concrete instance of `ReplicationPolicyMapInput` via:

ReplicationPolicyMap{ "key": ReplicationPolicyArgs{...} }

type ReplicationPolicyMapOutput

type ReplicationPolicyMapOutput struct{ *pulumi.OutputState }

func (ReplicationPolicyMapOutput) ElementType

func (ReplicationPolicyMapOutput) ElementType() reflect.Type

func (ReplicationPolicyMapOutput) MapIndex

func (ReplicationPolicyMapOutput) ToReplicationPolicyMapOutput

func (o ReplicationPolicyMapOutput) ToReplicationPolicyMapOutput() ReplicationPolicyMapOutput

func (ReplicationPolicyMapOutput) ToReplicationPolicyMapOutputWithContext

func (o ReplicationPolicyMapOutput) ToReplicationPolicyMapOutputWithContext(ctx context.Context) ReplicationPolicyMapOutput

type ReplicationPolicyOutput

type ReplicationPolicyOutput struct {
	*pulumi.OutputState
}

func (ReplicationPolicyOutput) ElementType

func (ReplicationPolicyOutput) ElementType() reflect.Type

func (ReplicationPolicyOutput) ToReplicationPolicyOutput

func (o ReplicationPolicyOutput) ToReplicationPolicyOutput() ReplicationPolicyOutput

func (ReplicationPolicyOutput) ToReplicationPolicyOutputWithContext

func (o ReplicationPolicyOutput) ToReplicationPolicyOutputWithContext(ctx context.Context) ReplicationPolicyOutput

func (ReplicationPolicyOutput) ToReplicationPolicyPtrOutput

func (o ReplicationPolicyOutput) ToReplicationPolicyPtrOutput() ReplicationPolicyPtrOutput

func (ReplicationPolicyOutput) ToReplicationPolicyPtrOutputWithContext

func (o ReplicationPolicyOutput) ToReplicationPolicyPtrOutputWithContext(ctx context.Context) ReplicationPolicyPtrOutput

type ReplicationPolicyPtrInput

type ReplicationPolicyPtrInput interface {
	pulumi.Input

	ToReplicationPolicyPtrOutput() ReplicationPolicyPtrOutput
	ToReplicationPolicyPtrOutputWithContext(ctx context.Context) ReplicationPolicyPtrOutput
}

type ReplicationPolicyPtrOutput

type ReplicationPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (ReplicationPolicyPtrOutput) ElementType

func (ReplicationPolicyPtrOutput) ElementType() reflect.Type

func (ReplicationPolicyPtrOutput) ToReplicationPolicyPtrOutput

func (o ReplicationPolicyPtrOutput) ToReplicationPolicyPtrOutput() ReplicationPolicyPtrOutput

func (ReplicationPolicyPtrOutput) ToReplicationPolicyPtrOutputWithContext

func (o ReplicationPolicyPtrOutput) ToReplicationPolicyPtrOutputWithContext(ctx context.Context) ReplicationPolicyPtrOutput

type ReplicationPolicyState

type ReplicationPolicyState struct {
	// Specifies the frequency(in minutes) at which to create application consistent recovery points.
	ApplicationConsistentSnapshotFrequencyInMinutes pulumi.IntPtrInput
	// The name of the network mapping.
	Name pulumi.StringPtrInput
	// The duration in minutes for which the recovery points need to be stored.
	RecoveryPointRetentionInMinutes pulumi.IntPtrInput
	// The name of the vault that should be updated.
	RecoveryVaultName pulumi.StringPtrInput
	// Name of the resource group where the vault that should be updated is located.
	ResourceGroupName pulumi.StringPtrInput
}

func (ReplicationPolicyState) ElementType

func (ReplicationPolicyState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL