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

com.pulumi.azure.eventhub.kotlin.QueueArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 6.14.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.eventhub.kotlin

import com.pulumi.azure.eventhub.QueueArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Manages a ServiceBus Queue.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "my-servicebus",
 *     location: "West Europe",
 * });
 * const exampleNamespace = new azure.servicebus.Namespace("example", {
 *     name: "tfex-servicebus-namespace",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     sku: "Standard",
 *     tags: {
 *         source: "example",
 *     },
 * });
 * const exampleQueue = new azure.servicebus.Queue("example", {
 *     name: "tfex_servicebus_queue",
 *     namespaceId: exampleNamespace.id,
 *     enablePartitioning: true,
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_azure as azure
 * example = azure.core.ResourceGroup("example",
 *     name="my-servicebus",
 *     location="West Europe")
 * example_namespace = azure.servicebus.Namespace("example",
 *     name="tfex-servicebus-namespace",
 *     location=example.location,
 *     resource_group_name=example.name,
 *     sku="Standard",
 *     tags={
 *         "source": "example",
 *     })
 * example_queue = azure.servicebus.Queue("example",
 *     name="tfex_servicebus_queue",
 *     namespace_id=example_namespace.id,
 *     enable_partitioning=True)
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Azure = Pulumi.Azure;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Azure.Core.ResourceGroup("example", new()
 *     {
 *         Name = "my-servicebus",
 *         Location = "West Europe",
 *     });
 *     var exampleNamespace = new Azure.ServiceBus.Namespace("example", new()
 *     {
 *         Name = "tfex-servicebus-namespace",
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *         Sku = "Standard",
 *         Tags =
 *         {
 *             { "source", "example" },
 *         },
 *     });
 *     var exampleQueue = new Azure.ServiceBus.Queue("example", new()
 *     {
 *         Name = "tfex_servicebus_queue",
 *         NamespaceId = exampleNamespace.Id,
 *         EnablePartitioning = true,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/servicebus"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
 * 			Name:     pulumi.String("my-servicebus"),
 * 			Location: pulumi.String("West Europe"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleNamespace, err := servicebus.NewNamespace(ctx, "example", &servicebus.NamespaceArgs{
 * 			Name:              pulumi.String("tfex-servicebus-namespace"),
 * 			Location:          example.Location,
 * 			ResourceGroupName: example.Name,
 * 			Sku:               pulumi.String("Standard"),
 * 			Tags: pulumi.StringMap{
 * 				"source": pulumi.String("example"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = servicebus.NewQueue(ctx, "example", &servicebus.QueueArgs{
 * 			Name:               pulumi.String("tfex_servicebus_queue"),
 * 			NamespaceId:        exampleNamespace.ID(),
 * 			EnablePartitioning: pulumi.Bool(true),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azure.core.ResourceGroup;
 * import com.pulumi.azure.core.ResourceGroupArgs;
 * import com.pulumi.azure.servicebus.Namespace;
 * import com.pulumi.azure.servicebus.NamespaceArgs;
 * import com.pulumi.azure.servicebus.Queue;
 * import com.pulumi.azure.servicebus.QueueArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
 *             .name("my-servicebus")
 *             .location("West Europe")
 *             .build());
 *         var exampleNamespace = new Namespace("exampleNamespace", NamespaceArgs.builder()
 *             .name("tfex-servicebus-namespace")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .sku("Standard")
 *             .tags(Map.of("source", "example"))
 *             .build());
 *         var exampleQueue = new Queue("exampleQueue", QueueArgs.builder()
 *             .name("tfex_servicebus_queue")
 *             .namespaceId(exampleNamespace.id())
 *             .enablePartitioning(true)
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: azure:core:ResourceGroup
 *     properties:
 *       name: my-servicebus
 *       location: West Europe
 *   exampleNamespace:
 *     type: azure:servicebus:Namespace
 *     name: example
 *     properties:
 *       name: tfex-servicebus-namespace
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *       sku: Standard
 *       tags:
 *         source: example
 *   exampleQueue:
 *     type: azure:servicebus:Queue
 *     name: example
 *     properties:
 *       name: tfex_servicebus_queue
 *       namespaceId: ${exampleNamespace.id}
 *       enablePartitioning: true
 * ```
 * 
 * ## Import
 * Service Bus Queue can be imported using the `resource id`, e.g.
 * ```sh
 * $ pulumi import azure:eventhub/queue:Queue example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ServiceBus/namespaces/sbns1/queues/snqueue1
 * ```
 * @property autoDeleteOnIdle The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.
 * @property deadLetteringOnMessageExpiration Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.
 * @property defaultMessageTtl The ISO 8601 timespan duration of the TTL of messages sent to this queue. This is the default value used when TTL is not set on message itself.
 * @property duplicateDetectionHistoryTimeWindow The ISO 8601 timespan duration during which duplicates can be detected. Defaults to 10 minutes (`PT10M`).
 * @property enableBatchedOperations Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.
 * @property enableExpress Boolean flag which controls whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `false`.
 * > **NOTE:** Service Bus Premium namespaces do not support Express Entities, so `enable_express` MUST be set to `false`.
 * @property enablePartitioning Boolean flag which controls whether to enable the queue to be partitioned across multiple message brokers. Changing this forces a new resource to be created. Defaults to `false` for Basic and Standard.
 * > **NOTE:** Partitioning is available at entity creation for all queues and topics in Basic or Standard SKUs. For premium namespace, partitioning is available at namespace creation, and all queues and topics in the partitioned namespace will be partitioned, for the premium namespace that has `premium_messaging_partitions` sets to `1`, the namespace is not partitioned.
 * @property forwardDeadLetteredMessagesTo The name of a Queue or Topic to automatically forward dead lettered messages to.
 * @property forwardTo The name of a Queue or Topic to automatically forward messages to. Please [see the documentation](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-auto-forwarding) for more information.
 * @property lockDuration The ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. Maximum value is 5 minutes. Defaults to 1 minute (`PT1M`).
 * @property maxDeliveryCount Integer value which controls when a message is automatically dead lettered. Defaults to `10`.
 * @property maxMessageSizeInKilobytes Integer value which controls the maximum size of a message allowed on the queue 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).
 * @property maxSizeInMegabytes Integer value which controls the size of memory allocated for the queue. For supported values see the "Queue or topic size" section of [Service Bus Quotas](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-quotas). Defaults to `1024`.
 * @property name Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.
 * @property namespaceId The ID of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.
 * @property requiresDuplicateDetection Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.
 * @property requiresSession Boolean flag which controls whether the Queue requires sessions. This will allow ordered handling of unbounded sequences of related messages. With sessions enabled a queue can guarantee first-in-first-out delivery of messages. Changing this forces a new resource to be created. Defaults to `false`.
 * @property status The status of the Queue. Possible values are `Active`, `Creating`, `Deleting`, `Disabled`, `ReceiveDisabled`, `Renaming`, `SendDisabled`, `Unknown`. Note that `Restoring` is not accepted. Defaults to `Active`.
 */
public data class QueueArgs @Deprecated(
    message = """
azure.eventhub.Queue has been deprecated in favor of azure.servicebus.Queue
""",
) constructor(
    public val autoDeleteOnIdle: Output? = null,
    public val deadLetteringOnMessageExpiration: Output? = null,
    public val defaultMessageTtl: Output? = null,
    public val duplicateDetectionHistoryTimeWindow: Output? = null,
    public val enableBatchedOperations: Output? = null,
    public val enableExpress: Output? = null,
    public val enablePartitioning: Output? = null,
    public val forwardDeadLetteredMessagesTo: Output? = null,
    public val forwardTo: Output? = null,
    public val lockDuration: Output? = null,
    public val maxDeliveryCount: Output? = null,
    public val maxMessageSizeInKilobytes: Output? = null,
    public val maxSizeInMegabytes: Output? = null,
    public val name: Output? = null,
    public val namespaceId: Output? = null,
    public val requiresDuplicateDetection: Output? = null,
    public val requiresSession: Output? = null,
    public val status: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.eventhub.QueueArgs =
        com.pulumi.azure.eventhub.QueueArgs.builder()
            .autoDeleteOnIdle(autoDeleteOnIdle?.applyValue({ args0 -> args0 }))
            .deadLetteringOnMessageExpiration(deadLetteringOnMessageExpiration?.applyValue({ args0 -> args0 }))
            .defaultMessageTtl(defaultMessageTtl?.applyValue({ args0 -> args0 }))
            .duplicateDetectionHistoryTimeWindow(
                duplicateDetectionHistoryTimeWindow?.applyValue({ args0 ->
                    args0
                }),
            )
            .enableBatchedOperations(enableBatchedOperations?.applyValue({ args0 -> args0 }))
            .enableExpress(enableExpress?.applyValue({ args0 -> args0 }))
            .enablePartitioning(enablePartitioning?.applyValue({ args0 -> args0 }))
            .forwardDeadLetteredMessagesTo(forwardDeadLetteredMessagesTo?.applyValue({ args0 -> args0 }))
            .forwardTo(forwardTo?.applyValue({ args0 -> args0 }))
            .lockDuration(lockDuration?.applyValue({ args0 -> args0 }))
            .maxDeliveryCount(maxDeliveryCount?.applyValue({ args0 -> args0 }))
            .maxMessageSizeInKilobytes(maxMessageSizeInKilobytes?.applyValue({ args0 -> args0 }))
            .maxSizeInMegabytes(maxSizeInMegabytes?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .namespaceId(namespaceId?.applyValue({ args0 -> args0 }))
            .requiresDuplicateDetection(requiresDuplicateDetection?.applyValue({ args0 -> args0 }))
            .requiresSession(requiresSession?.applyValue({ args0 -> args0 }))
            .status(status?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [QueueArgs].
 */
@PulumiTagMarker
@Deprecated(
    message = """
azure.eventhub.Queue has been deprecated in favor of azure.servicebus.Queue
""",
)
public class QueueArgsBuilder internal constructor() {
    private var autoDeleteOnIdle: Output? = null

    private var deadLetteringOnMessageExpiration: Output? = null

    private var defaultMessageTtl: Output? = null

    private var duplicateDetectionHistoryTimeWindow: Output? = null

    private var enableBatchedOperations: Output? = null

    private var enableExpress: Output? = null

    private var enablePartitioning: Output? = null

    private var forwardDeadLetteredMessagesTo: Output? = null

    private var forwardTo: Output? = null

    private var lockDuration: Output? = null

    private var maxDeliveryCount: Output? = null

    private var maxMessageSizeInKilobytes: Output? = null

    private var maxSizeInMegabytes: Output? = null

    private var name: Output? = null

    private var namespaceId: Output? = null

    private var requiresDuplicateDetection: Output? = null

    private var requiresSession: Output? = null

    private var status: Output? = null

    /**
     * @param value The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.
     */
    @JvmName("jbpkvyosdljdpsew")
    public suspend fun autoDeleteOnIdle(`value`: Output) {
        this.autoDeleteOnIdle = value
    }

    /**
     * @param value Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.
     */
    @JvmName("lvewssvarlprwjyn")
    public suspend fun deadLetteringOnMessageExpiration(`value`: Output) {
        this.deadLetteringOnMessageExpiration = value
    }

    /**
     * @param value The ISO 8601 timespan duration of the TTL of messages sent to this queue. This is the default value used when TTL is not set on message itself.
     */
    @JvmName("jfqnnidxnxfijppa")
    public suspend fun defaultMessageTtl(`value`: Output) {
        this.defaultMessageTtl = value
    }

    /**
     * @param value The ISO 8601 timespan duration during which duplicates can be detected. Defaults to 10 minutes (`PT10M`).
     */
    @JvmName("kqcuidljcklrsult")
    public suspend fun duplicateDetectionHistoryTimeWindow(`value`: Output) {
        this.duplicateDetectionHistoryTimeWindow = value
    }

    /**
     * @param value Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.
     */
    @JvmName("nkvcyphpusxxggmw")
    public suspend fun enableBatchedOperations(`value`: Output) {
        this.enableBatchedOperations = value
    }

    /**
     * @param value Boolean flag which controls whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `false`.
     * > **NOTE:** Service Bus Premium namespaces do not support Express Entities, so `enable_express` MUST be set to `false`.
     */
    @JvmName("tjhkejpcrvifufew")
    public suspend fun enableExpress(`value`: Output) {
        this.enableExpress = value
    }

    /**
     * @param value Boolean flag which controls whether to enable the queue to be partitioned across multiple message brokers. Changing this forces a new resource to be created. Defaults to `false` for Basic and Standard.
     * > **NOTE:** Partitioning is available at entity creation for all queues and topics in Basic or Standard SKUs. For premium namespace, partitioning is available at namespace creation, and all queues and topics in the partitioned namespace will be partitioned, for the premium namespace that has `premium_messaging_partitions` sets to `1`, the namespace is not partitioned.
     */
    @JvmName("ysypqjmbigthbvtd")
    public suspend fun enablePartitioning(`value`: Output) {
        this.enablePartitioning = value
    }

    /**
     * @param value The name of a Queue or Topic to automatically forward dead lettered messages to.
     */
    @JvmName("pkyfknigrjgynwux")
    public suspend fun forwardDeadLetteredMessagesTo(`value`: Output) {
        this.forwardDeadLetteredMessagesTo = value
    }

    /**
     * @param value The name of a Queue or Topic to automatically forward messages to. Please [see the documentation](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-auto-forwarding) for more information.
     */
    @JvmName("acodntrsajkmlrwu")
    public suspend fun forwardTo(`value`: Output) {
        this.forwardTo = value
    }

    /**
     * @param value The ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. Maximum value is 5 minutes. Defaults to 1 minute (`PT1M`).
     */
    @JvmName("ujpmpqsxvuhybnis")
    public suspend fun lockDuration(`value`: Output) {
        this.lockDuration = value
    }

    /**
     * @param value Integer value which controls when a message is automatically dead lettered. Defaults to `10`.
     */
    @JvmName("ovkqjhneunejghmt")
    public suspend fun maxDeliveryCount(`value`: Output) {
        this.maxDeliveryCount = value
    }

    /**
     * @param value Integer value which controls the maximum size of a message allowed on the queue 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).
     */
    @JvmName("dtusywxlqadifjdn")
    public suspend fun maxMessageSizeInKilobytes(`value`: Output) {
        this.maxMessageSizeInKilobytes = value
    }

    /**
     * @param value Integer value which controls the size of memory allocated for the queue. For supported values see the "Queue or topic size" section of [Service Bus Quotas](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-quotas). Defaults to `1024`.
     */
    @JvmName("gnqngcitrabiglrw")
    public suspend fun maxSizeInMegabytes(`value`: Output) {
        this.maxSizeInMegabytes = value
    }

    /**
     * @param value Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.
     */
    @JvmName("vmfrxsbqgrusneky")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The ID of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.
     */
    @JvmName("xmnbxhiittvvxwsw")
    public suspend fun namespaceId(`value`: Output) {
        this.namespaceId = value
    }

    /**
     * @param value Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.
     */
    @JvmName("fffykejugiuqnaxr")
    public suspend fun requiresDuplicateDetection(`value`: Output) {
        this.requiresDuplicateDetection = value
    }

    /**
     * @param value Boolean flag which controls whether the Queue requires sessions. This will allow ordered handling of unbounded sequences of related messages. With sessions enabled a queue can guarantee first-in-first-out delivery of messages. Changing this forces a new resource to be created. Defaults to `false`.
     */
    @JvmName("obswnrnqhhqkgprw")
    public suspend fun requiresSession(`value`: Output) {
        this.requiresSession = value
    }

    /**
     * @param value The status of the Queue. Possible values are `Active`, `Creating`, `Deleting`, `Disabled`, `ReceiveDisabled`, `Renaming`, `SendDisabled`, `Unknown`. Note that `Restoring` is not accepted. Defaults to `Active`.
     */
    @JvmName("kodrdxupgitnnfqm")
    public suspend fun status(`value`: Output) {
        this.status = value
    }

    /**
     * @param value The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.
     */
    @JvmName("oaabwkkyxjdjgmnd")
    public suspend fun autoDeleteOnIdle(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoDeleteOnIdle = mapped
    }

    /**
     * @param value Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.
     */
    @JvmName("udomwdrqsuoyfgla")
    public suspend fun deadLetteringOnMessageExpiration(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deadLetteringOnMessageExpiration = mapped
    }

    /**
     * @param value The ISO 8601 timespan duration of the TTL of messages sent to this queue. This is the default value used when TTL is not set on message itself.
     */
    @JvmName("tpnekfwdbnhohpcj")
    public suspend fun defaultMessageTtl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultMessageTtl = mapped
    }

    /**
     * @param value The ISO 8601 timespan duration during which duplicates can be detected. Defaults to 10 minutes (`PT10M`).
     */
    @JvmName("jpqlxywpcjbioxkw")
    public suspend fun duplicateDetectionHistoryTimeWindow(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.duplicateDetectionHistoryTimeWindow = mapped
    }

    /**
     * @param value Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.
     */
    @JvmName("xstiqfqerxgmojyu")
    public suspend fun enableBatchedOperations(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableBatchedOperations = mapped
    }

    /**
     * @param value Boolean flag which controls whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `false`.
     * > **NOTE:** Service Bus Premium namespaces do not support Express Entities, so `enable_express` MUST be set to `false`.
     */
    @JvmName("ylhipvhorhhaxmmk")
    public suspend fun enableExpress(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableExpress = mapped
    }

    /**
     * @param value Boolean flag which controls whether to enable the queue to be partitioned across multiple message brokers. Changing this forces a new resource to be created. Defaults to `false` for Basic and Standard.
     * > **NOTE:** Partitioning is available at entity creation for all queues and topics in Basic or Standard SKUs. For premium namespace, partitioning is available at namespace creation, and all queues and topics in the partitioned namespace will be partitioned, for the premium namespace that has `premium_messaging_partitions` sets to `1`, the namespace is not partitioned.
     */
    @JvmName("cwggxykfecctwnxh")
    public suspend fun enablePartitioning(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enablePartitioning = mapped
    }

    /**
     * @param value The name of a Queue or Topic to automatically forward dead lettered messages to.
     */
    @JvmName("frxltremqjlvpcht")
    public suspend fun forwardDeadLetteredMessagesTo(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.forwardDeadLetteredMessagesTo = mapped
    }

    /**
     * @param value The name of a Queue or Topic to automatically forward messages to. Please [see the documentation](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-auto-forwarding) for more information.
     */
    @JvmName("fujgrwprtyhbvftp")
    public suspend fun forwardTo(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.forwardTo = mapped
    }

    /**
     * @param value The ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. Maximum value is 5 minutes. Defaults to 1 minute (`PT1M`).
     */
    @JvmName("amqebpfusojctwil")
    public suspend fun lockDuration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.lockDuration = mapped
    }

    /**
     * @param value Integer value which controls when a message is automatically dead lettered. Defaults to `10`.
     */
    @JvmName("dmamkljlmbvfkatr")
    public suspend fun maxDeliveryCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxDeliveryCount = mapped
    }

    /**
     * @param value Integer value which controls the maximum size of a message allowed on the queue 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).
     */
    @JvmName("rvdcsslwndpdswcy")
    public suspend fun maxMessageSizeInKilobytes(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxMessageSizeInKilobytes = mapped
    }

    /**
     * @param value Integer value which controls the size of memory allocated for the queue. For supported values see the "Queue or topic size" section of [Service Bus Quotas](https://docs.microsoft.com/azure/service-bus-messaging/service-bus-quotas). Defaults to `1024`.
     */
    @JvmName("bhegaajhoapvcagm")
    public suspend fun maxSizeInMegabytes(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxSizeInMegabytes = mapped
    }

    /**
     * @param value Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.
     */
    @JvmName("uumaybatyuaxxrgu")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The ID of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.
     */
    @JvmName("awolsnhyiqrbqusg")
    public suspend fun namespaceId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.namespaceId = mapped
    }

    /**
     * @param value Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.
     */
    @JvmName("nmohbahcvmqliang")
    public suspend fun requiresDuplicateDetection(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requiresDuplicateDetection = mapped
    }

    /**
     * @param value Boolean flag which controls whether the Queue requires sessions. This will allow ordered handling of unbounded sequences of related messages. With sessions enabled a queue can guarantee first-in-first-out delivery of messages. Changing this forces a new resource to be created. Defaults to `false`.
     */
    @JvmName("yyxxmjewjidjmufc")
    public suspend fun requiresSession(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requiresSession = mapped
    }

    /**
     * @param value The status of the Queue. Possible values are `Active`, `Creating`, `Deleting`, `Disabled`, `ReceiveDisabled`, `Renaming`, `SendDisabled`, `Unknown`. Note that `Restoring` is not accepted. Defaults to `Active`.
     */
    @JvmName("gqpeabxlljooweaw")
    public suspend fun status(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.status = mapped
    }

    internal fun build(): QueueArgs = QueueArgs(
        autoDeleteOnIdle = autoDeleteOnIdle,
        deadLetteringOnMessageExpiration = deadLetteringOnMessageExpiration,
        defaultMessageTtl = defaultMessageTtl,
        duplicateDetectionHistoryTimeWindow = duplicateDetectionHistoryTimeWindow,
        enableBatchedOperations = enableBatchedOperations,
        enableExpress = enableExpress,
        enablePartitioning = enablePartitioning,
        forwardDeadLetteredMessagesTo = forwardDeadLetteredMessagesTo,
        forwardTo = forwardTo,
        lockDuration = lockDuration,
        maxDeliveryCount = maxDeliveryCount,
        maxMessageSizeInKilobytes = maxMessageSizeInKilobytes,
        maxSizeInMegabytes = maxSizeInMegabytes,
        name = name,
        namespaceId = namespaceId,
        requiresDuplicateDetection = requiresDuplicateDetection,
        requiresSession = requiresSession,
        status = status,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy