code: public CompletableFuture<List<RuleDescription>> getRulesAsync(String topicName, String subscriptionName, int count, int skip) {
          if (count > 100 || count < 1) {
              throw new IllegalArgumentException("Count should be between 1 and 100");
          }
  
          if (skip < 0) {
              throw new IllegalArgumentException("Skip cannot be negative");
          }
  
          EntityNameHelper.checkValidTopicName(topicName);
          EntityNameHelper.checkValidSubscriptionName(subscriptionName);
  
          CompletableFuture<String> contentFuture = getEntityAsync(
                  String.format("%s/Subscriptions/%s/rules", topicName, subscriptionName),
                  String.format("$skip=%d&$top=%d", skip, count),
                  false);
          CompletableFuture<List<RuleDescription>> rulesFuture = new CompletableFuture<>();
          contentFuture.handleAsync((content, ex) -> {
              if (ex != null) {
                  rulesFuture.completeExceptionally(ex);
              } else {
                  rulesFuture.complete(RuleDescriptionSerializer.parseCollectionFromContent(content));
              }
              return null;
          }, MessagingFactory.INTERNAL_THREAD_POOL);
  
          return rulesFuture;
      }
docs: Retrieves the list of rules for a given topic-subscription in the namespace.
  You can simulate pages of list of entities by manipulating count and skip parameters.
  skip(0)+count(100) gives first 100 entities. skip(100)+count(100) gives the next 100 entities.
  @return the list of rules.
  @param topicName - The name of the topic.
  @param subscriptionName - The name of the subscription.
  @param count - The number of rules to fetch. Defaults to 100. Maximum value allowed is 100.
  @param skip - The number of rules to skip. Defaults to 0. Cannot be negative.