SubscriptionRuleArgs

data class SubscriptionRuleArgs(val action: Output<String>? = null, val correlationFilter: Output<SubscriptionRuleCorrelationFilterArgs>? = null, val filterType: Output<String>? = null, val name: Output<String>? = null, val sqlFilter: Output<String>? = null, val subscriptionId: Output<String>? = null) : ConvertibleToJava<SubscriptionRuleArgs>

Manages a ServiceBus Subscription Rule.

Example Usage

SQL Filter)

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "tfex-servicebus-subscription-rule-sql",
location: "West Europe",
});
const exampleNamespace = new azure.servicebus.Namespace("example", {
name: "tfex-servicebus-namespace",
location: example.location,
resourceGroupName: example.name,
sku: "Standard",
tags: {
source: "example",
},
});
const exampleTopic = new azure.servicebus.Topic("example", {
name: "tfex_servicebus_topic",
namespaceId: exampleNamespace.id,
enablePartitioning: true,
});
const exampleSubscription = new azure.servicebus.Subscription("example", {
name: "tfex_servicebus_subscription",
topicId: exampleTopic.id,
maxDeliveryCount: 1,
});
const exampleSubscriptionRule = new azure.servicebus.SubscriptionRule("example", {
name: "tfex_servicebus_rule",
subscriptionId: exampleSubscription.id,
filterType: "SqlFilter",
sqlFilter: "colour = 'red'",
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="tfex-servicebus-subscription-rule-sql",
location="West Europe")
example_namespace = azure.servicebus.Namespace("example",
name="tfex-servicebus-namespace",
location=example.location,
resource_group_name=example.name,
sku="Standard",
tags={
"source": "example",
})
example_topic = azure.servicebus.Topic("example",
name="tfex_servicebus_topic",
namespace_id=example_namespace.id,
enable_partitioning=True)
example_subscription = azure.servicebus.Subscription("example",
name="tfex_servicebus_subscription",
topic_id=example_topic.id,
max_delivery_count=1)
example_subscription_rule = azure.servicebus.SubscriptionRule("example",
name="tfex_servicebus_rule",
subscription_id=example_subscription.id,
filter_type="SqlFilter",
sql_filter="colour = 'red'")
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 = "tfex-servicebus-subscription-rule-sql",
Location = "West Europe",
});
var exampleNamespace = new Azure.ServiceBus.Namespace("example", new()
{
Name = "tfex-servicebus-namespace",
Location = example.Location,
ResourceGroupName = example.Name,
Sku = "Standard",
Tags =
{
{ "source", "example" },
},
});
var exampleTopic = new Azure.ServiceBus.Topic("example", new()
{
Name = "tfex_servicebus_topic",
NamespaceId = exampleNamespace.Id,
EnablePartitioning = true,
});
var exampleSubscription = new Azure.ServiceBus.Subscription("example", new()
{
Name = "tfex_servicebus_subscription",
TopicId = exampleTopic.Id,
MaxDeliveryCount = 1,
});
var exampleSubscriptionRule = new Azure.ServiceBus.SubscriptionRule("example", new()
{
Name = "tfex_servicebus_rule",
SubscriptionId = exampleSubscription.Id,
FilterType = "SqlFilter",
SqlFilter = "colour = 'red'",
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v5/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("tfex-servicebus-subscription-rule-sql"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleNamespace, err := servicebus.NewNamespace(ctx, "example", &servicebus.NamespaceArgs{
Name: pulumi.String("tfex-servicebus-namespace"),
Location: example.Location,
ResourceGroupName: example.Name,
Sku: pulumi.String("Standard"),
Tags: pulumi.StringMap{
"source": pulumi.String("example"),
},
})
if err != nil {
return err
}
exampleTopic, err := servicebus.NewTopic(ctx, "example", &servicebus.TopicArgs{
Name: pulumi.String("tfex_servicebus_topic"),
NamespaceId: exampleNamespace.ID(),
EnablePartitioning: pulumi.Bool(true),
})
if err != nil {
return err
}
exampleSubscription, err := servicebus.NewSubscription(ctx, "example", &servicebus.SubscriptionArgs{
Name: pulumi.String("tfex_servicebus_subscription"),
TopicId: exampleTopic.ID(),
MaxDeliveryCount: pulumi.Int(1),
})
if err != nil {
return err
}
_, err = servicebus.NewSubscriptionRule(ctx, "example", &servicebus.SubscriptionRuleArgs{
Name: pulumi.String("tfex_servicebus_rule"),
SubscriptionId: exampleSubscription.ID(),
FilterType: pulumi.String("SqlFilter"),
SqlFilter: pulumi.String("colour = 'red'"),
})
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.Topic;
import com.pulumi.azure.servicebus.TopicArgs;
import com.pulumi.azure.servicebus.Subscription;
import com.pulumi.azure.servicebus.SubscriptionArgs;
import com.pulumi.azure.servicebus.SubscriptionRule;
import com.pulumi.azure.servicebus.SubscriptionRuleArgs;
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("tfex-servicebus-subscription-rule-sql")
.location("West Europe")
.build());
var exampleNamespace = new Namespace("exampleNamespace", NamespaceArgs.builder()
.name("tfex-servicebus-namespace")
.location(example.location())
.resourceGroupName(example.name())
.sku("Standard")
.tags(Map.of("source", "example"))
.build());
var exampleTopic = new Topic("exampleTopic", TopicArgs.builder()
.name("tfex_servicebus_topic")
.namespaceId(exampleNamespace.id())
.enablePartitioning(true)
.build());
var exampleSubscription = new Subscription("exampleSubscription", SubscriptionArgs.builder()
.name("tfex_servicebus_subscription")
.topicId(exampleTopic.id())
.maxDeliveryCount(1)
.build());
var exampleSubscriptionRule = new SubscriptionRule("exampleSubscriptionRule", SubscriptionRuleArgs.builder()
.name("tfex_servicebus_rule")
.subscriptionId(exampleSubscription.id())
.filterType("SqlFilter")
.sqlFilter("colour = 'red'")
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: tfex-servicebus-subscription-rule-sql
location: West Europe
exampleNamespace:
type: azure:servicebus:Namespace
name: example
properties:
name: tfex-servicebus-namespace
location: ${example.location}
resourceGroupName: ${example.name}
sku: Standard
tags:
source: example
exampleTopic:
type: azure:servicebus:Topic
name: example
properties:
name: tfex_servicebus_topic
namespaceId: ${exampleNamespace.id}
enablePartitioning: true
exampleSubscription:
type: azure:servicebus:Subscription
name: example
properties:
name: tfex_servicebus_subscription
topicId: ${exampleTopic.id}
maxDeliveryCount: 1
exampleSubscriptionRule:
type: azure:servicebus:SubscriptionRule
name: example
properties:
name: tfex_servicebus_rule
subscriptionId: ${exampleSubscription.id}
filterType: SqlFilter
sqlFilter: colour = 'red'

Correlation Filter)

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "tfex-servicebus-subscription-rule-cor",
location: "West Europe",
});
const exampleNamespace = new azure.servicebus.Namespace("example", {
name: "tfex-servicebus-namespace",
location: example.location,
resourceGroupName: example.name,
sku: "Standard",
tags: {
source: "example",
},
});
const exampleTopic = new azure.servicebus.Topic("example", {
name: "tfex_servicebus_topic",
namespaceId: exampleNamespace.id,
enablePartitioning: true,
});
const exampleSubscription = new azure.servicebus.Subscription("example", {
name: "tfex_servicebus_subscription",
topicId: exampleTopic.id,
maxDeliveryCount: 1,
});
const exampleSubscriptionRule = new azure.servicebus.SubscriptionRule("example", {
name: "tfex_servicebus_rule",
subscriptionId: exampleSubscription.id,
filterType: "CorrelationFilter",
correlationFilter: {
correlationId: "high",
label: "red",
properties: {
customProperty: "value",
},
},
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="tfex-servicebus-subscription-rule-cor",
location="West Europe")
example_namespace = azure.servicebus.Namespace("example",
name="tfex-servicebus-namespace",
location=example.location,
resource_group_name=example.name,
sku="Standard",
tags={
"source": "example",
})
example_topic = azure.servicebus.Topic("example",
name="tfex_servicebus_topic",
namespace_id=example_namespace.id,
enable_partitioning=True)
example_subscription = azure.servicebus.Subscription("example",
name="tfex_servicebus_subscription",
topic_id=example_topic.id,
max_delivery_count=1)
example_subscription_rule = azure.servicebus.SubscriptionRule("example",
name="tfex_servicebus_rule",
subscription_id=example_subscription.id,
filter_type="CorrelationFilter",
correlation_filter={
"correlation_id": "high",
"label": "red",
"properties": {
"custom_property": "value",
},
})
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 = "tfex-servicebus-subscription-rule-cor",
Location = "West Europe",
});
var exampleNamespace = new Azure.ServiceBus.Namespace("example", new()
{
Name = "tfex-servicebus-namespace",
Location = example.Location,
ResourceGroupName = example.Name,
Sku = "Standard",
Tags =
{
{ "source", "example" },
},
});
var exampleTopic = new Azure.ServiceBus.Topic("example", new()
{
Name = "tfex_servicebus_topic",
NamespaceId = exampleNamespace.Id,
EnablePartitioning = true,
});
var exampleSubscription = new Azure.ServiceBus.Subscription("example", new()
{
Name = "tfex_servicebus_subscription",
TopicId = exampleTopic.Id,
MaxDeliveryCount = 1,
});
var exampleSubscriptionRule = new Azure.ServiceBus.SubscriptionRule("example", new()
{
Name = "tfex_servicebus_rule",
SubscriptionId = exampleSubscription.Id,
FilterType = "CorrelationFilter",
CorrelationFilter = new Azure.ServiceBus.Inputs.SubscriptionRuleCorrelationFilterArgs
{
CorrelationId = "high",
Label = "red",
Properties =
{
{ "customProperty", "value" },
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v5/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("tfex-servicebus-subscription-rule-cor"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleNamespace, err := servicebus.NewNamespace(ctx, "example", &servicebus.NamespaceArgs{
Name: pulumi.String("tfex-servicebus-namespace"),
Location: example.Location,
ResourceGroupName: example.Name,
Sku: pulumi.String("Standard"),
Tags: pulumi.StringMap{
"source": pulumi.String("example"),
},
})
if err != nil {
return err
}
exampleTopic, err := servicebus.NewTopic(ctx, "example", &servicebus.TopicArgs{
Name: pulumi.String("tfex_servicebus_topic"),
NamespaceId: exampleNamespace.ID(),
EnablePartitioning: pulumi.Bool(true),
})
if err != nil {
return err
}
exampleSubscription, err := servicebus.NewSubscription(ctx, "example", &servicebus.SubscriptionArgs{
Name: pulumi.String("tfex_servicebus_subscription"),
TopicId: exampleTopic.ID(),
MaxDeliveryCount: pulumi.Int(1),
})
if err != nil {
return err
}
_, err = servicebus.NewSubscriptionRule(ctx, "example", &servicebus.SubscriptionRuleArgs{
Name: pulumi.String("tfex_servicebus_rule"),
SubscriptionId: exampleSubscription.ID(),
FilterType: pulumi.String("CorrelationFilter"),
CorrelationFilter: &servicebus.SubscriptionRuleCorrelationFilterArgs{
CorrelationId: pulumi.String("high"),
Label: pulumi.String("red"),
Properties: pulumi.StringMap{
"customProperty": pulumi.String("value"),
},
},
})
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.Topic;
import com.pulumi.azure.servicebus.TopicArgs;
import com.pulumi.azure.servicebus.Subscription;
import com.pulumi.azure.servicebus.SubscriptionArgs;
import com.pulumi.azure.servicebus.SubscriptionRule;
import com.pulumi.azure.servicebus.SubscriptionRuleArgs;
import com.pulumi.azure.servicebus.inputs.SubscriptionRuleCorrelationFilterArgs;
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("tfex-servicebus-subscription-rule-cor")
.location("West Europe")
.build());
var exampleNamespace = new Namespace("exampleNamespace", NamespaceArgs.builder()
.name("tfex-servicebus-namespace")
.location(example.location())
.resourceGroupName(example.name())
.sku("Standard")
.tags(Map.of("source", "example"))
.build());
var exampleTopic = new Topic("exampleTopic", TopicArgs.builder()
.name("tfex_servicebus_topic")
.namespaceId(exampleNamespace.id())
.enablePartitioning(true)
.build());
var exampleSubscription = new Subscription("exampleSubscription", SubscriptionArgs.builder()
.name("tfex_servicebus_subscription")
.topicId(exampleTopic.id())
.maxDeliveryCount(1)
.build());
var exampleSubscriptionRule = new SubscriptionRule("exampleSubscriptionRule", SubscriptionRuleArgs.builder()
.name("tfex_servicebus_rule")
.subscriptionId(exampleSubscription.id())
.filterType("CorrelationFilter")
.correlationFilter(SubscriptionRuleCorrelationFilterArgs.builder()
.correlationId("high")
.label("red")
.properties(Map.of("customProperty", "value"))
.build())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: tfex-servicebus-subscription-rule-cor
location: West Europe
exampleNamespace:
type: azure:servicebus:Namespace
name: example
properties:
name: tfex-servicebus-namespace
location: ${example.location}
resourceGroupName: ${example.name}
sku: Standard
tags:
source: example
exampleTopic:
type: azure:servicebus:Topic
name: example
properties:
name: tfex_servicebus_topic
namespaceId: ${exampleNamespace.id}
enablePartitioning: true
exampleSubscription:
type: azure:servicebus:Subscription
name: example
properties:
name: tfex_servicebus_subscription
topicId: ${exampleTopic.id}
maxDeliveryCount: 1
exampleSubscriptionRule:
type: azure:servicebus:SubscriptionRule
name: example
properties:
name: tfex_servicebus_rule
subscriptionId: ${exampleSubscription.id}
filterType: CorrelationFilter
correlationFilter:
correlationId: high
label: red
properties:
customProperty: value

Import

Service Bus Subscription Rule can be imported using the resource id, e.g.

$ pulumi import azure:servicebus/subscriptionRule:SubscriptionRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ServiceBus/namespaces/sbns1/topics/sntopic1/subscriptions/sbsub1/rules/sbrule1

Constructors

Link copied to clipboard
constructor(action: Output<String>? = null, correlationFilter: Output<SubscriptionRuleCorrelationFilterArgs>? = null, filterType: Output<String>? = null, name: Output<String>? = null, sqlFilter: Output<String>? = null, subscriptionId: Output<String>? = null)

Properties

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

Represents set of actions written in SQL language-based syntax that is performed against a BrokeredMessage.

Link copied to clipboard

A correlation_filter block as documented below to be evaluated against a BrokeredMessage. Required when filter_type is set to CorrelationFilter.

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

Type of filter to be applied to a BrokeredMessage. Possible values are SqlFilter and CorrelationFilter.

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

Specifies the name of the ServiceBus Subscription Rule. Changing this forces a new resource to be created.

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

Represents a filter written in SQL language-based syntax that to be evaluated against a BrokeredMessage. Required when filter_type is set to SqlFilter.

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

The ID of the ServiceBus Subscription in which this Rule should be created. Changing this forces a new resource to be created.

Functions

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