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

com.pulumi.azurenative.servicebus.TopicArgs 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.EntityStatus;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final TopicArgs Empty = new TopicArgs();

    /**
     * ISO 8601 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 8601 timespan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.
     * 
     */
    public Optional> autoDeleteOnIdle() {
        return Optional.ofNullable(this.autoDeleteOnIdle);
    }

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

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

    /**
     * Value that indicates whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.
     * 
     */
    @Import(name="enableExpress")
    private @Nullable Output enableExpress;

    /**
     * @return Value that indicates whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.
     * 
     */
    public Optional> enableExpress() {
        return Optional.ofNullable(this.enableExpress);
    }

    /**
     * Value that indicates whether the topic to be partitioned across multiple message brokers is enabled.
     * 
     */
    @Import(name="enablePartitioning")
    private @Nullable Output enablePartitioning;

    /**
     * @return Value that indicates whether the topic to be partitioned across multiple message brokers is enabled.
     * 
     */
    public Optional> enablePartitioning() {
        return Optional.ofNullable(this.enablePartitioning);
    }

    /**
     * Maximum size (in KB) of the message payload that can be accepted by the topic. This property is only used in Premium today and default is 1024.
     * 
     */
    @Import(name="maxMessageSizeInKilobytes")
    private @Nullable Output maxMessageSizeInKilobytes;

    /**
     * @return Maximum size (in KB) of the message payload that can be accepted by the topic. This property is only used in Premium today and default is 1024.
     * 
     */
    public Optional> maxMessageSizeInKilobytes() {
        return Optional.ofNullable(this.maxMessageSizeInKilobytes);
    }

    /**
     * Maximum size of the topic in megabytes, which is the size of the memory allocated for the topic. Default is 1024.
     * 
     */
    @Import(name="maxSizeInMegabytes")
    private @Nullable Output maxSizeInMegabytes;

    /**
     * @return Maximum size of the topic in megabytes, which is the size of the memory allocated for the topic. Default is 1024.
     * 
     */
    public Optional> maxSizeInMegabytes() {
        return Optional.ofNullable(this.maxSizeInMegabytes);
    }

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

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

    /**
     * Value indicating if this topic requires duplicate detection.
     * 
     */
    @Import(name="requiresDuplicateDetection")
    private @Nullable Output requiresDuplicateDetection;

    /**
     * @return Value indicating if this topic requires duplicate detection.
     * 
     */
    public Optional> requiresDuplicateDetection() {
        return Optional.ofNullable(this.requiresDuplicateDetection);
    }

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

    /**
     * Value that indicates whether the topic supports ordering.
     * 
     */
    @Import(name="supportOrdering")
    private @Nullable Output supportOrdering;

    /**
     * @return Value that indicates whether the topic supports ordering.
     * 
     */
    public Optional> supportOrdering() {
        return Optional.ofNullable(this.supportOrdering);
    }

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

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

    private TopicArgs() {}

    private TopicArgs(TopicArgs $) {
        this.autoDeleteOnIdle = $.autoDeleteOnIdle;
        this.defaultMessageTimeToLive = $.defaultMessageTimeToLive;
        this.duplicateDetectionHistoryTimeWindow = $.duplicateDetectionHistoryTimeWindow;
        this.enableBatchedOperations = $.enableBatchedOperations;
        this.enableExpress = $.enableExpress;
        this.enablePartitioning = $.enablePartitioning;
        this.maxMessageSizeInKilobytes = $.maxMessageSizeInKilobytes;
        this.maxSizeInMegabytes = $.maxSizeInMegabytes;
        this.namespaceName = $.namespaceName;
        this.requiresDuplicateDetection = $.requiresDuplicateDetection;
        this.resourceGroupName = $.resourceGroupName;
        this.status = $.status;
        this.supportOrdering = $.supportOrdering;
        this.topicName = $.topicName;
    }

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

    public static final class Builder {
        private TopicArgs $;

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

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

        /**
         * @param autoDeleteOnIdle ISO 8601 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 8601 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 defaultMessageTimeToLive ISO 8601 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 8601 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 ISO8601 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 ISO8601 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 enableExpress Value that indicates whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.
         * 
         * @return builder
         * 
         */
        public Builder enableExpress(@Nullable Output enableExpress) {
            $.enableExpress = enableExpress;
            return this;
        }

        /**
         * @param enableExpress Value that indicates whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.
         * 
         * @return builder
         * 
         */
        public Builder enableExpress(Boolean enableExpress) {
            return enableExpress(Output.of(enableExpress));
        }

        /**
         * @param enablePartitioning Value that indicates whether the topic to be partitioned across multiple message brokers is enabled.
         * 
         * @return builder
         * 
         */
        public Builder enablePartitioning(@Nullable Output enablePartitioning) {
            $.enablePartitioning = enablePartitioning;
            return this;
        }

        /**
         * @param enablePartitioning Value that indicates whether the topic to be partitioned across multiple message brokers is enabled.
         * 
         * @return builder
         * 
         */
        public Builder enablePartitioning(Boolean enablePartitioning) {
            return enablePartitioning(Output.of(enablePartitioning));
        }

        /**
         * @param maxMessageSizeInKilobytes Maximum size (in KB) of the message payload that can be accepted by the topic. This property is only used in Premium today and default is 1024.
         * 
         * @return builder
         * 
         */
        public Builder maxMessageSizeInKilobytes(@Nullable Output maxMessageSizeInKilobytes) {
            $.maxMessageSizeInKilobytes = maxMessageSizeInKilobytes;
            return this;
        }

        /**
         * @param maxMessageSizeInKilobytes Maximum size (in KB) of the message payload that can be accepted by the topic. This property is only used in Premium today and default is 1024.
         * 
         * @return builder
         * 
         */
        public Builder maxMessageSizeInKilobytes(Double maxMessageSizeInKilobytes) {
            return maxMessageSizeInKilobytes(Output.of(maxMessageSizeInKilobytes));
        }

        /**
         * @param maxSizeInMegabytes Maximum size of the topic in megabytes, which is the size of the memory allocated for the topic. Default is 1024.
         * 
         * @return builder
         * 
         */
        public Builder maxSizeInMegabytes(@Nullable Output maxSizeInMegabytes) {
            $.maxSizeInMegabytes = maxSizeInMegabytes;
            return this;
        }

        /**
         * @param maxSizeInMegabytes Maximum size of the topic in megabytes, which is the size of the memory allocated for the topic. Default is 1024.
         * 
         * @return builder
         * 
         */
        public Builder maxSizeInMegabytes(Integer maxSizeInMegabytes) {
            return maxSizeInMegabytes(Output.of(maxSizeInMegabytes));
        }

        /**
         * @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 requiresDuplicateDetection Value indicating if this topic requires duplicate detection.
         * 
         * @return builder
         * 
         */
        public Builder requiresDuplicateDetection(@Nullable Output requiresDuplicateDetection) {
            $.requiresDuplicateDetection = requiresDuplicateDetection;
            return this;
        }

        /**
         * @param requiresDuplicateDetection Value indicating if this topic requires duplicate detection.
         * 
         * @return builder
         * 
         */
        public Builder requiresDuplicateDetection(Boolean requiresDuplicateDetection) {
            return requiresDuplicateDetection(Output.of(requiresDuplicateDetection));
        }

        /**
         * @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 supportOrdering Value that indicates whether the topic supports ordering.
         * 
         * @return builder
         * 
         */
        public Builder supportOrdering(@Nullable Output supportOrdering) {
            $.supportOrdering = supportOrdering;
            return this;
        }

        /**
         * @param supportOrdering Value that indicates whether the topic supports ordering.
         * 
         * @return builder
         * 
         */
        public Builder supportOrdering(Boolean supportOrdering) {
            return supportOrdering(Output.of(supportOrdering));
        }

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

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

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy