NamespaceDisasterRecoveryConfigArgs

data class NamespaceDisasterRecoveryConfigArgs(val aliasAuthorizationRuleId: Output<String>? = null, val name: Output<String>? = null, val partnerNamespaceId: Output<String>? = null, val primaryNamespaceId: Output<String>? = null) : ConvertibleToJava<NamespaceDisasterRecoveryConfigArgs>

Manages a Disaster Recovery Config for a Service Bus Namespace.

NOTE: Disaster Recovery Config is a Premium SKU only capability.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "servicebus-replication",
location: "West Europe",
});
const primary = new azure.servicebus.Namespace("primary", {
name: "servicebus-primary",
location: example.location,
resourceGroupName: example.name,
sku: "Premium",
capacity: 1,
});
const secondary = new azure.servicebus.Namespace("secondary", {
name: "servicebus-secondary",
location: example.location,
resourceGroupName: example.name,
sku: "Premium",
capacity: 1,
});
const exampleNamespaceAuthorizationRule = new azure.servicebus.NamespaceAuthorizationRule("example", {
name: "examplerule",
namespaceId: exampleAzurermServicebusNamespace.id,
listen: true,
send: true,
manage: false,
});
const exampleNamespaceDisasterRecoveryConfig = new azure.servicebus.NamespaceDisasterRecoveryConfig("example", {
name: "servicebus-alias-name",
primaryNamespaceId: primary.id,
partnerNamespaceId: secondary.id,
aliasAuthorizationRuleId: exampleNamespaceAuthorizationRule.id,
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="servicebus-replication",
location="West Europe")
primary = azure.servicebus.Namespace("primary",
name="servicebus-primary",
location=example.location,
resource_group_name=example.name,
sku="Premium",
capacity=1)
secondary = azure.servicebus.Namespace("secondary",
name="servicebus-secondary",
location=example.location,
resource_group_name=example.name,
sku="Premium",
capacity=1)
example_namespace_authorization_rule = azure.servicebus.NamespaceAuthorizationRule("example",
name="examplerule",
namespace_id=example_azurerm_servicebus_namespace["id"],
listen=True,
send=True,
manage=False)
example_namespace_disaster_recovery_config = azure.servicebus.NamespaceDisasterRecoveryConfig("example",
name="servicebus-alias-name",
primary_namespace_id=primary.id,
partner_namespace_id=secondary.id,
alias_authorization_rule_id=example_namespace_authorization_rule.id)
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 = "servicebus-replication",
Location = "West Europe",
});
var primary = new Azure.ServiceBus.Namespace("primary", new()
{
Name = "servicebus-primary",
Location = example.Location,
ResourceGroupName = example.Name,
Sku = "Premium",
Capacity = 1,
});
var secondary = new Azure.ServiceBus.Namespace("secondary", new()
{
Name = "servicebus-secondary",
Location = example.Location,
ResourceGroupName = example.Name,
Sku = "Premium",
Capacity = 1,
});
var exampleNamespaceAuthorizationRule = new Azure.ServiceBus.NamespaceAuthorizationRule("example", new()
{
Name = "examplerule",
NamespaceId = exampleAzurermServicebusNamespace.Id,
Listen = true,
Send = true,
Manage = false,
});
var exampleNamespaceDisasterRecoveryConfig = new Azure.ServiceBus.NamespaceDisasterRecoveryConfig("example", new()
{
Name = "servicebus-alias-name",
PrimaryNamespaceId = primary.Id,
PartnerNamespaceId = secondary.Id,
AliasAuthorizationRuleId = exampleNamespaceAuthorizationRule.Id,
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/servicebus"
"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("servicebus-replication"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
primary, err := servicebus.NewNamespace(ctx, "primary", &servicebus.NamespaceArgs{
Name: pulumi.String("servicebus-primary"),
Location: example.Location,
ResourceGroupName: example.Name,
Sku: pulumi.String("Premium"),
Capacity: pulumi.Int(1),
})
if err != nil {
return err
}
secondary, err := servicebus.NewNamespace(ctx, "secondary", &servicebus.NamespaceArgs{
Name: pulumi.String("servicebus-secondary"),
Location: example.Location,
ResourceGroupName: example.Name,
Sku: pulumi.String("Premium"),
Capacity: pulumi.Int(1),
})
if err != nil {
return err
}
exampleNamespaceAuthorizationRule, err := servicebus.NewNamespaceAuthorizationRule(ctx, "example", &servicebus.NamespaceAuthorizationRuleArgs{
Name: pulumi.String("examplerule"),
NamespaceId: pulumi.Any(exampleAzurermServicebusNamespace.Id),
Listen: pulumi.Bool(true),
Send: pulumi.Bool(true),
Manage: pulumi.Bool(false),
})
if err != nil {
return err
}
_, err = servicebus.NewNamespaceDisasterRecoveryConfig(ctx, "example", &servicebus.NamespaceDisasterRecoveryConfigArgs{
Name: pulumi.String("servicebus-alias-name"),
PrimaryNamespaceId: primary.ID(),
PartnerNamespaceId: secondary.ID(),
AliasAuthorizationRuleId: exampleNamespaceAuthorizationRule.ID(),
})
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.servicebus.Namespace;
import com.pulumi.azure.servicebus.NamespaceArgs;
import com.pulumi.azure.servicebus.NamespaceAuthorizationRule;
import com.pulumi.azure.servicebus.NamespaceAuthorizationRuleArgs;
import com.pulumi.azure.servicebus.NamespaceDisasterRecoveryConfig;
import com.pulumi.azure.servicebus.NamespaceDisasterRecoveryConfigArgs;
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("servicebus-replication")
.location("West Europe")
.build());
var primary = new Namespace("primary", NamespaceArgs.builder()
.name("servicebus-primary")
.location(example.location())
.resourceGroupName(example.name())
.sku("Premium")
.capacity("1")
.build());
var secondary = new Namespace("secondary", NamespaceArgs.builder()
.name("servicebus-secondary")
.location(example.location())
.resourceGroupName(example.name())
.sku("Premium")
.capacity("1")
.build());
var exampleNamespaceAuthorizationRule = new NamespaceAuthorizationRule("exampleNamespaceAuthorizationRule", NamespaceAuthorizationRuleArgs.builder()
.name("examplerule")
.namespaceId(exampleAzurermServicebusNamespace.id())
.listen(true)
.send(true)
.manage(false)
.build());
var exampleNamespaceDisasterRecoveryConfig = new NamespaceDisasterRecoveryConfig("exampleNamespaceDisasterRecoveryConfig", NamespaceDisasterRecoveryConfigArgs.builder()
.name("servicebus-alias-name")
.primaryNamespaceId(primary.id())
.partnerNamespaceId(secondary.id())
.aliasAuthorizationRuleId(exampleNamespaceAuthorizationRule.id())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: servicebus-replication
location: West Europe
primary:
type: azure:servicebus:Namespace
properties:
name: servicebus-primary
location: ${example.location}
resourceGroupName: ${example.name}
sku: Premium
capacity: '1'
secondary:
type: azure:servicebus:Namespace
properties:
name: servicebus-secondary
location: ${example.location}
resourceGroupName: ${example.name}
sku: Premium
capacity: '1'
exampleNamespaceAuthorizationRule:
type: azure:servicebus:NamespaceAuthorizationRule
name: example
properties:
name: examplerule
namespaceId: ${exampleAzurermServicebusNamespace.id}
listen: true
send: true
manage: false
exampleNamespaceDisasterRecoveryConfig:
type: azure:servicebus:NamespaceDisasterRecoveryConfig
name: example
properties:
name: servicebus-alias-name
primaryNamespaceId: ${primary.id}
partnerNamespaceId: ${secondary.id}
aliasAuthorizationRuleId: ${exampleNamespaceAuthorizationRule.id}

Import

Service Bus DR configs can be imported using the resource id, e.g.

$ pulumi import azure:servicebus/namespaceDisasterRecoveryConfig:NamespaceDisasterRecoveryConfig config1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceBus/namespaces/namespace1/disasterRecoveryConfigs/config1

Constructors

Link copied to clipboard
constructor(aliasAuthorizationRuleId: Output<String>? = null, name: Output<String>? = null, partnerNamespaceId: Output<String>? = null, primaryNamespaceId: Output<String>? = null)

Properties

Link copied to clipboard
val aliasAuthorizationRuleId: Output<String>? = null

The Shared access policies used to access the connection string for the alias.

Link copied to clipboard
val name: Output<String>? = null

Specifies the name of the Disaster Recovery Config. This is the alias DNS name that will be created. Changing this forces a new resource to be created.

Link copied to clipboard
val partnerNamespaceId: Output<String>? = null

The ID of the Service Bus Namespace to replicate to.

Link copied to clipboard
val primaryNamespaceId: Output<String>? = null

The ID of the primary Service Bus Namespace to replicate. Changing this forces a new resource to be created.

Functions

Link copied to clipboard
open override fun toJava(): NamespaceDisasterRecoveryConfigArgs