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

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

There is a newer version: 2.72.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.EntityStatus;
import com.pulumi.azurenative.servicebus.inputs.SBClientAffinePropertiesArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final SubscriptionArgs Empty = new SubscriptionArgs();

    /**
     * ISO 8061 timeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.
     * 
     */
    @Import(name="autoDeleteOnIdle")
    private @Nullable Output autoDeleteOnIdle;

    /**
     * @return ISO 8061 timeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.
     * 
     */
    public Optional> autoDeleteOnIdle() {
        return Optional.ofNullable(this.autoDeleteOnIdle);
    }

    /**
     * Properties specific to client affine subscriptions.
     * 
     */
    @Import(name="clientAffineProperties")
    private @Nullable Output clientAffineProperties;

    /**
     * @return Properties specific to client affine subscriptions.
     * 
     */
    public Optional> clientAffineProperties() {
        return Optional.ofNullable(this.clientAffineProperties);
    }

    /**
     * Value that indicates whether a subscription has dead letter support on filter evaluation exceptions.
     * 
     */
    @Import(name="deadLetteringOnFilterEvaluationExceptions")
    private @Nullable Output deadLetteringOnFilterEvaluationExceptions;

    /**
     * @return Value that indicates whether a subscription has dead letter support on filter evaluation exceptions.
     * 
     */
    public Optional> deadLetteringOnFilterEvaluationExceptions() {
        return Optional.ofNullable(this.deadLetteringOnFilterEvaluationExceptions);
    }

    /**
     * Value that indicates whether a subscription has dead letter support when a message expires.
     * 
     */
    @Import(name="deadLetteringOnMessageExpiration")
    private @Nullable Output deadLetteringOnMessageExpiration;

    /**
     * @return Value that indicates whether a subscription has dead letter support when a message expires.
     * 
     */
    public Optional> deadLetteringOnMessageExpiration() {
        return Optional.ofNullable(this.deadLetteringOnMessageExpiration);
    }

    /**
     * ISO 8061 Default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.
     * 
     */
    @Import(name="defaultMessageTimeToLive")
    private @Nullable Output defaultMessageTimeToLive;

    /**
     * @return ISO 8061 Default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.
     * 
     */
    public Optional> defaultMessageTimeToLive() {
        return Optional.ofNullable(this.defaultMessageTimeToLive);
    }

    /**
     * ISO 8601 timeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.
     * 
     */
    @Import(name="duplicateDetectionHistoryTimeWindow")
    private @Nullable Output duplicateDetectionHistoryTimeWindow;

    /**
     * @return ISO 8601 timeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.
     * 
     */
    public Optional> duplicateDetectionHistoryTimeWindow() {
        return Optional.ofNullable(this.duplicateDetectionHistoryTimeWindow);
    }

    /**
     * Value that indicates whether server-side batched operations are enabled.
     * 
     */
    @Import(name="enableBatchedOperations")
    private @Nullable Output enableBatchedOperations;

    /**
     * @return Value that indicates whether server-side batched operations are enabled.
     * 
     */
    public Optional> enableBatchedOperations() {
        return Optional.ofNullable(this.enableBatchedOperations);
    }

    /**
     * Queue/Topic name to forward the Dead Letter message
     * 
     */
    @Import(name="forwardDeadLetteredMessagesTo")
    private @Nullable Output forwardDeadLetteredMessagesTo;

    /**
     * @return Queue/Topic name to forward the Dead Letter message
     * 
     */
    public Optional> forwardDeadLetteredMessagesTo() {
        return Optional.ofNullable(this.forwardDeadLetteredMessagesTo);
    }

    /**
     * Queue/Topic name to forward the messages
     * 
     */
    @Import(name="forwardTo")
    private @Nullable Output forwardTo;

    /**
     * @return Queue/Topic name to forward the messages
     * 
     */
    public Optional> forwardTo() {
        return Optional.ofNullable(this.forwardTo);
    }

    /**
     * Value that indicates whether the subscription has an affinity to the client id.
     * 
     */
    @Import(name="isClientAffine")
    private @Nullable Output isClientAffine;

    /**
     * @return Value that indicates whether the subscription has an affinity to the client id.
     * 
     */
    public Optional> isClientAffine() {
        return Optional.ofNullable(this.isClientAffine);
    }

    /**
     * ISO 8061 lock duration timespan for the subscription. The default value is 1 minute.
     * 
     */
    @Import(name="lockDuration")
    private @Nullable Output lockDuration;

    /**
     * @return ISO 8061 lock duration timespan for the subscription. The default value is 1 minute.
     * 
     */
    public Optional> lockDuration() {
        return Optional.ofNullable(this.lockDuration);
    }

    /**
     * Number of maximum deliveries.
     * 
     */
    @Import(name="maxDeliveryCount")
    private @Nullable Output maxDeliveryCount;

    /**
     * @return Number of maximum deliveries.
     * 
     */
    public Optional> maxDeliveryCount() {
        return Optional.ofNullable(this.maxDeliveryCount);
    }

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

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

    /**
     * Value indicating if a subscription supports the concept of sessions.
     * 
     */
    @Import(name="requiresSession")
    private @Nullable Output requiresSession;

    /**
     * @return Value indicating if a subscription supports the concept of sessions.
     * 
     */
    public Optional> requiresSession() {
        return Optional.ofNullable(this.requiresSession);
    }

    /**
     * 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;
    }

    /**
     * Enumerates the possible values for the status of a messaging entity.
     * 
     */
    @Import(name="status")
    private @Nullable Output status;

    /**
     * @return Enumerates the possible values for the status of a messaging entity.
     * 
     */
    public Optional> status() {
        return Optional.ofNullable(this.status);
    }

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

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

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

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

    private SubscriptionArgs() {}

    private SubscriptionArgs(SubscriptionArgs $) {
        this.autoDeleteOnIdle = $.autoDeleteOnIdle;
        this.clientAffineProperties = $.clientAffineProperties;
        this.deadLetteringOnFilterEvaluationExceptions = $.deadLetteringOnFilterEvaluationExceptions;
        this.deadLetteringOnMessageExpiration = $.deadLetteringOnMessageExpiration;
        this.defaultMessageTimeToLive = $.defaultMessageTimeToLive;
        this.duplicateDetectionHistoryTimeWindow = $.duplicateDetectionHistoryTimeWindow;
        this.enableBatchedOperations = $.enableBatchedOperations;
        this.forwardDeadLetteredMessagesTo = $.forwardDeadLetteredMessagesTo;
        this.forwardTo = $.forwardTo;
        this.isClientAffine = $.isClientAffine;
        this.lockDuration = $.lockDuration;
        this.maxDeliveryCount = $.maxDeliveryCount;
        this.namespaceName = $.namespaceName;
        this.requiresSession = $.requiresSession;
        this.resourceGroupName = $.resourceGroupName;
        this.status = $.status;
        this.subscriptionName = $.subscriptionName;
        this.topicName = $.topicName;
    }

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

    public static final class Builder {
        private SubscriptionArgs $;

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

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

        /**
         * @param autoDeleteOnIdle ISO 8061 timeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.
         * 
         * @return builder
         * 
         */
        public Builder autoDeleteOnIdle(@Nullable Output autoDeleteOnIdle) {
            $.autoDeleteOnIdle = autoDeleteOnIdle;
            return this;
        }

        /**
         * @param autoDeleteOnIdle ISO 8061 timeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.
         * 
         * @return builder
         * 
         */
        public Builder autoDeleteOnIdle(String autoDeleteOnIdle) {
            return autoDeleteOnIdle(Output.of(autoDeleteOnIdle));
        }

        /**
         * @param clientAffineProperties Properties specific to client affine subscriptions.
         * 
         * @return builder
         * 
         */
        public Builder clientAffineProperties(@Nullable Output clientAffineProperties) {
            $.clientAffineProperties = clientAffineProperties;
            return this;
        }

        /**
         * @param clientAffineProperties Properties specific to client affine subscriptions.
         * 
         * @return builder
         * 
         */
        public Builder clientAffineProperties(SBClientAffinePropertiesArgs clientAffineProperties) {
            return clientAffineProperties(Output.of(clientAffineProperties));
        }

        /**
         * @param deadLetteringOnFilterEvaluationExceptions Value that indicates whether a subscription has dead letter support on filter evaluation exceptions.
         * 
         * @return builder
         * 
         */
        public Builder deadLetteringOnFilterEvaluationExceptions(@Nullable Output deadLetteringOnFilterEvaluationExceptions) {
            $.deadLetteringOnFilterEvaluationExceptions = deadLetteringOnFilterEvaluationExceptions;
            return this;
        }

        /**
         * @param deadLetteringOnFilterEvaluationExceptions Value that indicates whether a subscription has dead letter support on filter evaluation exceptions.
         * 
         * @return builder
         * 
         */
        public Builder deadLetteringOnFilterEvaluationExceptions(Boolean deadLetteringOnFilterEvaluationExceptions) {
            return deadLetteringOnFilterEvaluationExceptions(Output.of(deadLetteringOnFilterEvaluationExceptions));
        }

        /**
         * @param deadLetteringOnMessageExpiration Value that indicates whether a subscription has dead letter support when a message expires.
         * 
         * @return builder
         * 
         */
        public Builder deadLetteringOnMessageExpiration(@Nullable Output deadLetteringOnMessageExpiration) {
            $.deadLetteringOnMessageExpiration = deadLetteringOnMessageExpiration;
            return this;
        }

        /**
         * @param deadLetteringOnMessageExpiration Value that indicates whether a subscription has dead letter support when a message expires.
         * 
         * @return builder
         * 
         */
        public Builder deadLetteringOnMessageExpiration(Boolean deadLetteringOnMessageExpiration) {
            return deadLetteringOnMessageExpiration(Output.of(deadLetteringOnMessageExpiration));
        }

        /**
         * @param defaultMessageTimeToLive ISO 8061 Default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.
         * 
         * @return builder
         * 
         */
        public Builder defaultMessageTimeToLive(@Nullable Output defaultMessageTimeToLive) {
            $.defaultMessageTimeToLive = defaultMessageTimeToLive;
            return this;
        }

        /**
         * @param defaultMessageTimeToLive ISO 8061 Default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.
         * 
         * @return builder
         * 
         */
        public Builder defaultMessageTimeToLive(String defaultMessageTimeToLive) {
            return defaultMessageTimeToLive(Output.of(defaultMessageTimeToLive));
        }

        /**
         * @param duplicateDetectionHistoryTimeWindow ISO 8601 timeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.
         * 
         * @return builder
         * 
         */
        public Builder duplicateDetectionHistoryTimeWindow(@Nullable Output duplicateDetectionHistoryTimeWindow) {
            $.duplicateDetectionHistoryTimeWindow = duplicateDetectionHistoryTimeWindow;
            return this;
        }

        /**
         * @param duplicateDetectionHistoryTimeWindow ISO 8601 timeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.
         * 
         * @return builder
         * 
         */
        public Builder duplicateDetectionHistoryTimeWindow(String duplicateDetectionHistoryTimeWindow) {
            return duplicateDetectionHistoryTimeWindow(Output.of(duplicateDetectionHistoryTimeWindow));
        }

        /**
         * @param enableBatchedOperations Value that indicates whether server-side batched operations are enabled.
         * 
         * @return builder
         * 
         */
        public Builder enableBatchedOperations(@Nullable Output enableBatchedOperations) {
            $.enableBatchedOperations = enableBatchedOperations;
            return this;
        }

        /**
         * @param enableBatchedOperations Value that indicates whether server-side batched operations are enabled.
         * 
         * @return builder
         * 
         */
        public Builder enableBatchedOperations(Boolean enableBatchedOperations) {
            return enableBatchedOperations(Output.of(enableBatchedOperations));
        }

        /**
         * @param forwardDeadLetteredMessagesTo Queue/Topic name to forward the Dead Letter message
         * 
         * @return builder
         * 
         */
        public Builder forwardDeadLetteredMessagesTo(@Nullable Output forwardDeadLetteredMessagesTo) {
            $.forwardDeadLetteredMessagesTo = forwardDeadLetteredMessagesTo;
            return this;
        }

        /**
         * @param forwardDeadLetteredMessagesTo Queue/Topic name to forward the Dead Letter message
         * 
         * @return builder
         * 
         */
        public Builder forwardDeadLetteredMessagesTo(String forwardDeadLetteredMessagesTo) {
            return forwardDeadLetteredMessagesTo(Output.of(forwardDeadLetteredMessagesTo));
        }

        /**
         * @param forwardTo Queue/Topic name to forward the messages
         * 
         * @return builder
         * 
         */
        public Builder forwardTo(@Nullable Output forwardTo) {
            $.forwardTo = forwardTo;
            return this;
        }

        /**
         * @param forwardTo Queue/Topic name to forward the messages
         * 
         * @return builder
         * 
         */
        public Builder forwardTo(String forwardTo) {
            return forwardTo(Output.of(forwardTo));
        }

        /**
         * @param isClientAffine Value that indicates whether the subscription has an affinity to the client id.
         * 
         * @return builder
         * 
         */
        public Builder isClientAffine(@Nullable Output isClientAffine) {
            $.isClientAffine = isClientAffine;
            return this;
        }

        /**
         * @param isClientAffine Value that indicates whether the subscription has an affinity to the client id.
         * 
         * @return builder
         * 
         */
        public Builder isClientAffine(Boolean isClientAffine) {
            return isClientAffine(Output.of(isClientAffine));
        }

        /**
         * @param lockDuration ISO 8061 lock duration timespan for the subscription. The default value is 1 minute.
         * 
         * @return builder
         * 
         */
        public Builder lockDuration(@Nullable Output lockDuration) {
            $.lockDuration = lockDuration;
            return this;
        }

        /**
         * @param lockDuration ISO 8061 lock duration timespan for the subscription. The default value is 1 minute.
         * 
         * @return builder
         * 
         */
        public Builder lockDuration(String lockDuration) {
            return lockDuration(Output.of(lockDuration));
        }

        /**
         * @param maxDeliveryCount Number of maximum deliveries.
         * 
         * @return builder
         * 
         */
        public Builder maxDeliveryCount(@Nullable Output maxDeliveryCount) {
            $.maxDeliveryCount = maxDeliveryCount;
            return this;
        }

        /**
         * @param maxDeliveryCount Number of maximum deliveries.
         * 
         * @return builder
         * 
         */
        public Builder maxDeliveryCount(Integer maxDeliveryCount) {
            return maxDeliveryCount(Output.of(maxDeliveryCount));
        }

        /**
         * @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 requiresSession Value indicating if a subscription supports the concept of sessions.
         * 
         * @return builder
         * 
         */
        public Builder requiresSession(@Nullable Output requiresSession) {
            $.requiresSession = requiresSession;
            return this;
        }

        /**
         * @param requiresSession Value indicating if a subscription supports the concept of sessions.
         * 
         * @return builder
         * 
         */
        public Builder requiresSession(Boolean requiresSession) {
            return requiresSession(Output.of(requiresSession));
        }

        /**
         * @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 status Enumerates the possible values for the status of a messaging entity.
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output status) {
            $.status = status;
            return this;
        }

        /**
         * @param status Enumerates the possible values for the status of a messaging entity.
         * 
         * @return builder
         * 
         */
        public Builder status(EntityStatus status) {
            return status(Output.of(status));
        }

        /**
         * @param subscriptionName The subscription name.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionName(@Nullable 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 SubscriptionArgs build() {
            if ($.namespaceName == null) {
                throw new MissingRequiredPropertyException("SubscriptionArgs", "namespaceName");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("SubscriptionArgs", "resourceGroupName");
            }
            if ($.topicName == null) {
                throw new MissingRequiredPropertyException("SubscriptionArgs", "topicName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy