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

com.pulumi.azure.servicebus.inputs.TopicState Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.

There is a newer version: 6.15.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.azure.servicebus.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
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 TopicState extends com.pulumi.resources.ResourceArgs {

    public static final TopicState Empty = new TopicState();

    /**
     * The ISO 8601 timespan duration of the idle interval after which the Topic is automatically deleted, minimum of 5 minutes. Defaults to `P10675199DT2H48M5.4775807S`.
     * 
     */
    @Import(name="autoDeleteOnIdle")
    private @Nullable Output autoDeleteOnIdle;

    /**
     * @return The ISO 8601 timespan duration of the idle interval after which the Topic is automatically deleted, minimum of 5 minutes. Defaults to `P10675199DT2H48M5.4775807S`.
     * 
     */
    public Optional> autoDeleteOnIdle() {
        return Optional.ofNullable(this.autoDeleteOnIdle);
    }

    /**
     * Boolean flag which controls if server-side batched operations are enabled.
     * 
     */
    @Import(name="batchedOperationsEnabled")
    private @Nullable Output batchedOperationsEnabled;

    /**
     * @return Boolean flag which controls if server-side batched operations are enabled.
     * 
     */
    public Optional> batchedOperationsEnabled() {
        return Optional.ofNullable(this.batchedOperationsEnabled);
    }

    /**
     * The ISO 8601 timespan duration of TTL of messages sent to this topic if no TTL value is set on the message itself. Defaults to `P10675199DT2H48M5.4775807S`.
     * 
     */
    @Import(name="defaultMessageTtl")
    private @Nullable Output defaultMessageTtl;

    /**
     * @return The ISO 8601 timespan duration of TTL of messages sent to this topic if no TTL value is set on the message itself. Defaults to `P10675199DT2H48M5.4775807S`.
     * 
     */
    public Optional> defaultMessageTtl() {
        return Optional.ofNullable(this.defaultMessageTtl);
    }

    /**
     * The ISO 8601 timespan duration during which duplicates can be detected. Defaults to `PT10M` (10 Minutes).
     * 
     */
    @Import(name="duplicateDetectionHistoryTimeWindow")
    private @Nullable Output duplicateDetectionHistoryTimeWindow;

    /**
     * @return The ISO 8601 timespan duration during which duplicates can be detected. Defaults to `PT10M` (10 Minutes).
     * 
     */
    public Optional> duplicateDetectionHistoryTimeWindow() {
        return Optional.ofNullable(this.duplicateDetectionHistoryTimeWindow);
    }

    /**
     * Boolean flag which controls whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.
     * 
     */
    @Import(name="expressEnabled")
    private @Nullable Output expressEnabled;

    /**
     * @return Boolean flag which controls whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.
     * 
     */
    public Optional> expressEnabled() {
        return Optional.ofNullable(this.expressEnabled);
    }

    /**
     * Integer value which controls the maximum size of a message allowed on the topic for Premium SKU. For supported values see the "Large messages support" section of [this document](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-premium-messaging#large-messages-support-preview). Defaults to `256`.
     * 
     */
    @Import(name="maxMessageSizeInKilobytes")
    private @Nullable Output maxMessageSizeInKilobytes;

    /**
     * @return Integer value which controls the maximum size of a message allowed on the topic for Premium SKU. For supported values see the "Large messages support" section of [this document](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-premium-messaging#large-messages-support-preview). Defaults to `256`.
     * 
     */
    public Optional> maxMessageSizeInKilobytes() {
        return Optional.ofNullable(this.maxMessageSizeInKilobytes);
    }

    /**
     * Integer value which controls the size of memory allocated for the topic. For supported values see the "Queue/topic size" section of [this document](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-quotas). Defaults to `5120`.
     * 
     */
    @Import(name="maxSizeInMegabytes")
    private @Nullable Output maxSizeInMegabytes;

    /**
     * @return Integer value which controls the size of memory allocated for the topic. For supported values see the "Queue/topic size" section of [this document](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-quotas). Defaults to `5120`.
     * 
     */
    public Optional> maxSizeInMegabytes() {
        return Optional.ofNullable(this.maxSizeInMegabytes);
    }

    /**
     * Specifies the name of the ServiceBus Topic resource. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Specifies the name of the ServiceBus Topic resource. Changing this forces a new resource to be created.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The ID of the ServiceBus Namespace to create this topic in. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="namespaceId")
    private @Nullable Output namespaceId;

    /**
     * @return The ID of the ServiceBus Namespace to create this topic in. Changing this forces a new resource to be created.
     * 
     */
    public Optional> namespaceId() {
        return Optional.ofNullable(this.namespaceId);
    }

    @Import(name="namespaceName")
    private @Nullable Output namespaceName;

    public Optional> namespaceName() {
        return Optional.ofNullable(this.namespaceName);
    }

    /**
     * Boolean flag which controls whether to enable the topic to be partitioned across multiple message brokers. Changing this forces a new resource to be created.
     * 
     * > **NOTE:** Partitioning is available at entity creation for all queues and topics in Basic or Standard SKUs. It is not available for the Premium messaging SKU, but any previously existing partitioned entities in Premium namespaces continue to work as expected. Please [see the documentation](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-partitioning) for more information.
     * 
     */
    @Import(name="partitioningEnabled")
    private @Nullable Output partitioningEnabled;

    /**
     * @return Boolean flag which controls whether to enable the topic to be partitioned across multiple message brokers. Changing this forces a new resource to be created.
     * 
     * > **NOTE:** Partitioning is available at entity creation for all queues and topics in Basic or Standard SKUs. It is not available for the Premium messaging SKU, but any previously existing partitioned entities in Premium namespaces continue to work as expected. Please [see the documentation](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-partitioning) for more information.
     * 
     */
    public Optional> partitioningEnabled() {
        return Optional.ofNullable(this.partitioningEnabled);
    }

    /**
     * Boolean flag which controls whether the Topic requires duplicate detection. Defaults to `false`. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="requiresDuplicateDetection")
    private @Nullable Output requiresDuplicateDetection;

    /**
     * @return Boolean flag which controls whether the Topic requires duplicate detection. Defaults to `false`. Changing this forces a new resource to be created.
     * 
     */
    public Optional> requiresDuplicateDetection() {
        return Optional.ofNullable(this.requiresDuplicateDetection);
    }

    @Import(name="resourceGroupName")
    private @Nullable Output resourceGroupName;

    public Optional> resourceGroupName() {
        return Optional.ofNullable(this.resourceGroupName);
    }

    /**
     * The Status of the Service Bus Topic. Acceptable values are `Active` or `Disabled`. Defaults to `Active`.
     * 
     */
    @Import(name="status")
    private @Nullable Output status;

    /**
     * @return The Status of the Service Bus Topic. Acceptable values are `Active` or `Disabled`. Defaults to `Active`.
     * 
     */
    public Optional> status() {
        return Optional.ofNullable(this.status);
    }

    /**
     * Boolean flag which controls whether the Topic supports ordering.
     * 
     */
    @Import(name="supportOrdering")
    private @Nullable Output supportOrdering;

    /**
     * @return Boolean flag which controls whether the Topic supports ordering.
     * 
     */
    public Optional> supportOrdering() {
        return Optional.ofNullable(this.supportOrdering);
    }

    private TopicState() {}

    private TopicState(TopicState $) {
        this.autoDeleteOnIdle = $.autoDeleteOnIdle;
        this.batchedOperationsEnabled = $.batchedOperationsEnabled;
        this.defaultMessageTtl = $.defaultMessageTtl;
        this.duplicateDetectionHistoryTimeWindow = $.duplicateDetectionHistoryTimeWindow;
        this.expressEnabled = $.expressEnabled;
        this.maxMessageSizeInKilobytes = $.maxMessageSizeInKilobytes;
        this.maxSizeInMegabytes = $.maxSizeInMegabytes;
        this.name = $.name;
        this.namespaceId = $.namespaceId;
        this.namespaceName = $.namespaceName;
        this.partitioningEnabled = $.partitioningEnabled;
        this.requiresDuplicateDetection = $.requiresDuplicateDetection;
        this.resourceGroupName = $.resourceGroupName;
        this.status = $.status;
        this.supportOrdering = $.supportOrdering;
    }

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

    public static final class Builder {
        private TopicState $;

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

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

        /**
         * @param autoDeleteOnIdle The ISO 8601 timespan duration of the idle interval after which the Topic is automatically deleted, minimum of 5 minutes. Defaults to `P10675199DT2H48M5.4775807S`.
         * 
         * @return builder
         * 
         */
        public Builder autoDeleteOnIdle(@Nullable Output autoDeleteOnIdle) {
            $.autoDeleteOnIdle = autoDeleteOnIdle;
            return this;
        }

        /**
         * @param autoDeleteOnIdle The ISO 8601 timespan duration of the idle interval after which the Topic is automatically deleted, minimum of 5 minutes. Defaults to `P10675199DT2H48M5.4775807S`.
         * 
         * @return builder
         * 
         */
        public Builder autoDeleteOnIdle(String autoDeleteOnIdle) {
            return autoDeleteOnIdle(Output.of(autoDeleteOnIdle));
        }

        /**
         * @param batchedOperationsEnabled Boolean flag which controls if server-side batched operations are enabled.
         * 
         * @return builder
         * 
         */
        public Builder batchedOperationsEnabled(@Nullable Output batchedOperationsEnabled) {
            $.batchedOperationsEnabled = batchedOperationsEnabled;
            return this;
        }

        /**
         * @param batchedOperationsEnabled Boolean flag which controls if server-side batched operations are enabled.
         * 
         * @return builder
         * 
         */
        public Builder batchedOperationsEnabled(Boolean batchedOperationsEnabled) {
            return batchedOperationsEnabled(Output.of(batchedOperationsEnabled));
        }

        /**
         * @param defaultMessageTtl The ISO 8601 timespan duration of TTL of messages sent to this topic if no TTL value is set on the message itself. Defaults to `P10675199DT2H48M5.4775807S`.
         * 
         * @return builder
         * 
         */
        public Builder defaultMessageTtl(@Nullable Output defaultMessageTtl) {
            $.defaultMessageTtl = defaultMessageTtl;
            return this;
        }

        /**
         * @param defaultMessageTtl The ISO 8601 timespan duration of TTL of messages sent to this topic if no TTL value is set on the message itself. Defaults to `P10675199DT2H48M5.4775807S`.
         * 
         * @return builder
         * 
         */
        public Builder defaultMessageTtl(String defaultMessageTtl) {
            return defaultMessageTtl(Output.of(defaultMessageTtl));
        }

        /**
         * @param duplicateDetectionHistoryTimeWindow The ISO 8601 timespan duration during which duplicates can be detected. Defaults to `PT10M` (10 Minutes).
         * 
         * @return builder
         * 
         */
        public Builder duplicateDetectionHistoryTimeWindow(@Nullable Output duplicateDetectionHistoryTimeWindow) {
            $.duplicateDetectionHistoryTimeWindow = duplicateDetectionHistoryTimeWindow;
            return this;
        }

        /**
         * @param duplicateDetectionHistoryTimeWindow The ISO 8601 timespan duration during which duplicates can be detected. Defaults to `PT10M` (10 Minutes).
         * 
         * @return builder
         * 
         */
        public Builder duplicateDetectionHistoryTimeWindow(String duplicateDetectionHistoryTimeWindow) {
            return duplicateDetectionHistoryTimeWindow(Output.of(duplicateDetectionHistoryTimeWindow));
        }

        /**
         * @param expressEnabled Boolean flag which controls whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.
         * 
         * @return builder
         * 
         */
        public Builder expressEnabled(@Nullable Output expressEnabled) {
            $.expressEnabled = expressEnabled;
            return this;
        }

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

        /**
         * @param maxMessageSizeInKilobytes Integer value which controls the maximum size of a message allowed on the topic for Premium SKU. For supported values see the "Large messages support" section of [this document](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-premium-messaging#large-messages-support-preview). Defaults to `256`.
         * 
         * @return builder
         * 
         */
        public Builder maxMessageSizeInKilobytes(@Nullable Output maxMessageSizeInKilobytes) {
            $.maxMessageSizeInKilobytes = maxMessageSizeInKilobytes;
            return this;
        }

        /**
         * @param maxMessageSizeInKilobytes Integer value which controls the maximum size of a message allowed on the topic for Premium SKU. For supported values see the "Large messages support" section of [this document](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-premium-messaging#large-messages-support-preview). Defaults to `256`.
         * 
         * @return builder
         * 
         */
        public Builder maxMessageSizeInKilobytes(Integer maxMessageSizeInKilobytes) {
            return maxMessageSizeInKilobytes(Output.of(maxMessageSizeInKilobytes));
        }

        /**
         * @param maxSizeInMegabytes Integer value which controls the size of memory allocated for the topic. For supported values see the "Queue/topic size" section of [this document](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-quotas). Defaults to `5120`.
         * 
         * @return builder
         * 
         */
        public Builder maxSizeInMegabytes(@Nullable Output maxSizeInMegabytes) {
            $.maxSizeInMegabytes = maxSizeInMegabytes;
            return this;
        }

        /**
         * @param maxSizeInMegabytes Integer value which controls the size of memory allocated for the topic. For supported values see the "Queue/topic size" section of [this document](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-quotas). Defaults to `5120`.
         * 
         * @return builder
         * 
         */
        public Builder maxSizeInMegabytes(Integer maxSizeInMegabytes) {
            return maxSizeInMegabytes(Output.of(maxSizeInMegabytes));
        }

        /**
         * @param name Specifies the name of the ServiceBus Topic resource. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Specifies the name of the ServiceBus Topic resource. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param namespaceId The ID of the ServiceBus Namespace to create this topic in. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder namespaceId(@Nullable Output namespaceId) {
            $.namespaceId = namespaceId;
            return this;
        }

        /**
         * @param namespaceId The ID of the ServiceBus Namespace to create this topic in. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder namespaceId(String namespaceId) {
            return namespaceId(Output.of(namespaceId));
        }

        public Builder namespaceName(@Nullable Output namespaceName) {
            $.namespaceName = namespaceName;
            return this;
        }

        public Builder namespaceName(String namespaceName) {
            return namespaceName(Output.of(namespaceName));
        }

        /**
         * @param partitioningEnabled Boolean flag which controls whether to enable the topic to be partitioned across multiple message brokers. Changing this forces a new resource to be created.
         * 
         * > **NOTE:** Partitioning is available at entity creation for all queues and topics in Basic or Standard SKUs. It is not available for the Premium messaging SKU, but any previously existing partitioned entities in Premium namespaces continue to work as expected. Please [see the documentation](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-partitioning) for more information.
         * 
         * @return builder
         * 
         */
        public Builder partitioningEnabled(@Nullable Output partitioningEnabled) {
            $.partitioningEnabled = partitioningEnabled;
            return this;
        }

        /**
         * @param partitioningEnabled Boolean flag which controls whether to enable the topic to be partitioned across multiple message brokers. Changing this forces a new resource to be created.
         * 
         * > **NOTE:** Partitioning is available at entity creation for all queues and topics in Basic or Standard SKUs. It is not available for the Premium messaging SKU, but any previously existing partitioned entities in Premium namespaces continue to work as expected. Please [see the documentation](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-partitioning) for more information.
         * 
         * @return builder
         * 
         */
        public Builder partitioningEnabled(Boolean partitioningEnabled) {
            return partitioningEnabled(Output.of(partitioningEnabled));
        }

        /**
         * @param requiresDuplicateDetection Boolean flag which controls whether the Topic requires duplicate detection. Defaults to `false`. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder requiresDuplicateDetection(@Nullable Output requiresDuplicateDetection) {
            $.requiresDuplicateDetection = requiresDuplicateDetection;
            return this;
        }

        /**
         * @param requiresDuplicateDetection Boolean flag which controls whether the Topic requires duplicate detection. Defaults to `false`. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder requiresDuplicateDetection(Boolean requiresDuplicateDetection) {
            return requiresDuplicateDetection(Output.of(requiresDuplicateDetection));
        }

        public Builder resourceGroupName(@Nullable Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param status The Status of the Service Bus Topic. Acceptable values are `Active` or `Disabled`. Defaults to `Active`.
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output status) {
            $.status = status;
            return this;
        }

        /**
         * @param status The Status of the Service Bus Topic. Acceptable values are `Active` or `Disabled`. Defaults to `Active`.
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            return status(Output.of(status));
        }

        /**
         * @param supportOrdering Boolean flag which controls whether the Topic supports ordering.
         * 
         * @return builder
         * 
         */
        public Builder supportOrdering(@Nullable Output supportOrdering) {
            $.supportOrdering = supportOrdering;
            return this;
        }

        /**
         * @param supportOrdering Boolean flag which controls whether the Topic supports ordering.
         * 
         * @return builder
         * 
         */
        public Builder supportOrdering(Boolean supportOrdering) {
            return supportOrdering(Output.of(supportOrdering));
        }

        public TopicState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy