All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.servicebus.RuleArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.servicebus;

import com.pulumi.azurenative.servicebus.enums.FilterType;
import com.pulumi.azurenative.servicebus.inputs.ActionArgs;
import com.pulumi.azurenative.servicebus.inputs.CorrelationFilterArgs;
import com.pulumi.azurenative.servicebus.inputs.SqlFilterArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class RuleArgs extends com.pulumi.resources.ResourceArgs {

    public static final RuleArgs Empty = new RuleArgs();

    /**
     * Represents the filter actions which are allowed for the transformation of a message that have been matched by a filter expression.
     * 
     */
    @Import(name="action")
    private @Nullable Output action;

    /**
     * @return Represents the filter actions which are allowed for the transformation of a message that have been matched by a filter expression.
     * 
     */
    public Optional> action() {
        return Optional.ofNullable(this.action);
    }

    /**
     * Properties of correlationFilter
     * 
     */
    @Import(name="correlationFilter")
    private @Nullable Output correlationFilter;

    /**
     * @return Properties of correlationFilter
     * 
     */
    public Optional> correlationFilter() {
        return Optional.ofNullable(this.correlationFilter);
    }

    /**
     * Filter type that is evaluated against a BrokeredMessage.
     * 
     */
    @Import(name="filterType")
    private @Nullable Output> filterType;

    /**
     * @return Filter type that is evaluated against a BrokeredMessage.
     * 
     */
    public Optional>> filterType() {
        return Optional.ofNullable(this.filterType);
    }

    /**
     * The namespace name
     * 
     */
    @Import(name="namespaceName", required=true)
    private Output namespaceName;

    /**
     * @return The namespace name
     * 
     */
    public Output namespaceName() {
        return this.namespaceName;
    }

    /**
     * Name of the Resource group within the Azure subscription.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return Name of the Resource group within the Azure subscription.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The rule name.
     * 
     */
    @Import(name="ruleName")
    private @Nullable Output ruleName;

    /**
     * @return The rule name.
     * 
     */
    public Optional> ruleName() {
        return Optional.ofNullable(this.ruleName);
    }

    /**
     * Properties of sqlFilter
     * 
     */
    @Import(name="sqlFilter")
    private @Nullable Output sqlFilter;

    /**
     * @return Properties of sqlFilter
     * 
     */
    public Optional> sqlFilter() {
        return Optional.ofNullable(this.sqlFilter);
    }

    /**
     * The subscription name.
     * 
     */
    @Import(name="subscriptionName", required=true)
    private Output subscriptionName;

    /**
     * @return The subscription name.
     * 
     */
    public Output subscriptionName() {
        return this.subscriptionName;
    }

    /**
     * The topic name.
     * 
     */
    @Import(name="topicName", required=true)
    private Output topicName;

    /**
     * @return The topic name.
     * 
     */
    public Output topicName() {
        return this.topicName;
    }

    private RuleArgs() {}

    private RuleArgs(RuleArgs $) {
        this.action = $.action;
        this.correlationFilter = $.correlationFilter;
        this.filterType = $.filterType;
        this.namespaceName = $.namespaceName;
        this.resourceGroupName = $.resourceGroupName;
        this.ruleName = $.ruleName;
        this.sqlFilter = $.sqlFilter;
        this.subscriptionName = $.subscriptionName;
        this.topicName = $.topicName;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(RuleArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private RuleArgs $;

        public Builder() {
            $ = new RuleArgs();
        }

        public Builder(RuleArgs defaults) {
            $ = new RuleArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param action Represents the filter actions which are allowed for the transformation of a message that have been matched by a filter expression.
         * 
         * @return builder
         * 
         */
        public Builder action(@Nullable Output action) {
            $.action = action;
            return this;
        }

        /**
         * @param action Represents the filter actions which are allowed for the transformation of a message that have been matched by a filter expression.
         * 
         * @return builder
         * 
         */
        public Builder action(ActionArgs action) {
            return action(Output.of(action));
        }

        /**
         * @param correlationFilter Properties of correlationFilter
         * 
         * @return builder
         * 
         */
        public Builder correlationFilter(@Nullable Output correlationFilter) {
            $.correlationFilter = correlationFilter;
            return this;
        }

        /**
         * @param correlationFilter Properties of correlationFilter
         * 
         * @return builder
         * 
         */
        public Builder correlationFilter(CorrelationFilterArgs correlationFilter) {
            return correlationFilter(Output.of(correlationFilter));
        }

        /**
         * @param filterType Filter type that is evaluated against a BrokeredMessage.
         * 
         * @return builder
         * 
         */
        public Builder filterType(@Nullable Output> filterType) {
            $.filterType = filterType;
            return this;
        }

        /**
         * @param filterType Filter type that is evaluated against a BrokeredMessage.
         * 
         * @return builder
         * 
         */
        public Builder filterType(Either filterType) {
            return filterType(Output.of(filterType));
        }

        /**
         * @param filterType Filter type that is evaluated against a BrokeredMessage.
         * 
         * @return builder
         * 
         */
        public Builder filterType(String filterType) {
            return filterType(Either.ofLeft(filterType));
        }

        /**
         * @param filterType Filter type that is evaluated against a BrokeredMessage.
         * 
         * @return builder
         * 
         */
        public Builder filterType(FilterType filterType) {
            return filterType(Either.ofRight(filterType));
        }

        /**
         * @param namespaceName The namespace name
         * 
         * @return builder
         * 
         */
        public Builder namespaceName(Output namespaceName) {
            $.namespaceName = namespaceName;
            return this;
        }

        /**
         * @param namespaceName The namespace name
         * 
         * @return builder
         * 
         */
        public Builder namespaceName(String namespaceName) {
            return namespaceName(Output.of(namespaceName));
        }

        /**
         * @param resourceGroupName Name of the Resource group within the Azure subscription.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName Name of the Resource group within the Azure subscription.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param ruleName The rule name.
         * 
         * @return builder
         * 
         */
        public Builder ruleName(@Nullable Output ruleName) {
            $.ruleName = ruleName;
            return this;
        }

        /**
         * @param ruleName The rule name.
         * 
         * @return builder
         * 
         */
        public Builder ruleName(String ruleName) {
            return ruleName(Output.of(ruleName));
        }

        /**
         * @param sqlFilter Properties of sqlFilter
         * 
         * @return builder
         * 
         */
        public Builder sqlFilter(@Nullable Output sqlFilter) {
            $.sqlFilter = sqlFilter;
            return this;
        }

        /**
         * @param sqlFilter Properties of sqlFilter
         * 
         * @return builder
         * 
         */
        public Builder sqlFilter(SqlFilterArgs sqlFilter) {
            return sqlFilter(Output.of(sqlFilter));
        }

        /**
         * @param subscriptionName The subscription name.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionName(Output subscriptionName) {
            $.subscriptionName = subscriptionName;
            return this;
        }

        /**
         * @param subscriptionName The subscription name.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionName(String subscriptionName) {
            return subscriptionName(Output.of(subscriptionName));
        }

        /**
         * @param topicName The topic name.
         * 
         * @return builder
         * 
         */
        public Builder topicName(Output topicName) {
            $.topicName = topicName;
            return this;
        }

        /**
         * @param topicName The topic name.
         * 
         * @return builder
         * 
         */
        public Builder topicName(String topicName) {
            return topicName(Output.of(topicName));
        }

        public RuleArgs build() {
            if ($.namespaceName == null) {
                throw new MissingRequiredPropertyException("RuleArgs", "namespaceName");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("RuleArgs", "resourceGroupName");
            }
            if ($.subscriptionName == null) {
                throw new MissingRequiredPropertyException("RuleArgs", "subscriptionName");
            }
            if ($.topicName == null) {
                throw new MissingRequiredPropertyException("RuleArgs", "topicName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy