Class ServiceBusRuleManagerClient

java.lang.Object
com.azure.messaging.servicebus.ServiceBusRuleManagerClient
All Implemented Interfaces:
AutoCloseable

public class ServiceBusRuleManagerClient extends Object implements AutoCloseable
A synchronous rule manager responsible for managing rules for a specific topic subscription. The rule manager requires only Listen claims, whereas the ServiceBusAdministrationAsyncClient requires Manage claims.

Create a rule to a Service Bus subscription

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

// 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
ServiceBusRuleManagerClient ruleManager = new ServiceBusClientBuilder()
    .credential(fullyQualifiedNamespace, credential)
    .ruleManager()
    .topicName(topicName)
    .subscriptionName(subscriptionName)
    .buildClient();

RuleFilter trueRuleFilter = new TrueRuleFilter();
CreateRuleOptions options = new CreateRuleOptions(trueRuleFilter);
ruleManager.createRule("new-rule", options);

// Dispose of the ruleManager when finished using it.
ruleManager.close();
  • Method Details

    • getFullyQualifiedNamespace

      public String getFullyQualifiedNamespace()
      Gets the fully qualified namespace.
      Returns:
      The fully qualified namespace.
    • getEntityPath

      public String getEntityPath()
      Gets the name of the Service Bus resource.
      Returns:
      The name of the Service Bus resource.
    • createRule

      public void createRule(String ruleName, CreateRuleOptions options)
      Creates a rule to the current subscription to filter the messages reaching from topic to the subscription.
      Parameters:
      ruleName - Name of rule.
      options - The options for the rule to add.
      Throws:
      NullPointerException - if options, ruleName is null.
      IllegalStateException - if client is disposed.
      IllegalArgumentException - if ruleName is empty string, action of options is not null and not instanceof SqlRuleAction, filter of options is not instanceof SqlRuleFilter or CorrelationRuleFilter.
      ServiceBusException - if filter matches ruleName is already created in subscription.
    • listRules

      public com.azure.core.util.IterableStream<RuleProperties> listRules()
      Fetches all rules associated with the topic and subscription.
      Returns:
      A list of rules associated with the topic and subscription.
      Throws:
      IllegalStateException - if client is disposed.
      UnsupportedOperationException - if client cannot support filter with descriptor in message body.
    • deleteRule

      public void deleteRule(String ruleName)
      Removes the rule on the subscription identified by ruleName.
      Parameters:
      ruleName - Name of rule to delete.
      Throws:
      NullPointerException - if ruleName is null.
      IllegalStateException - if client is disposed.
      IllegalArgumentException - if ruleName is empty string.
      ServiceBusException - if cannot find filter matches ruleName in subscription.
    • close

      public void close()
      Disposes of the ServiceBusRuleManagerClient. If the client has a dedicated connection, the underlying connection is also closed.
      Specified by:
      close in interface AutoCloseable