import * as pulumi from "@pulumi/pulumi";
/**
 * 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,
 *     partitioningEnabled: true,
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.ServiceBus` - 2024-01-01
 *
 * ## 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
 * ```
 *
 * @deprecated azure.eventhub.Queue has been deprecated in favor of azure.servicebus.Queue
 */
export declare class Queue extends pulumi.CustomResource {
    /**
     * Get an existing Queue resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: QueueState, opts?: pulumi.CustomResourceOptions): Queue;
    /**
     * Returns true if the given object is an instance of Queue.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Queue;
    /**
     * The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.
     */
    readonly autoDeleteOnIdle: pulumi.Output<string>;
    /**
     * Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.
     */
    readonly batchedOperationsEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.
     */
    readonly deadLetteringOnMessageExpiration: pulumi.Output<boolean | undefined>;
    /**
     * 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.
     */
    readonly defaultMessageTtl: pulumi.Output<string>;
    /**
     * The ISO 8601 timespan duration during which duplicates can be detected. Defaults to `PT10M` (10 Minutes).
     */
    readonly duplicateDetectionHistoryTimeWindow: pulumi.Output<string | undefined>;
    /**
     * 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 `expressEnabled` MUST be set to `false`.
     */
    readonly expressEnabled: pulumi.Output<boolean | undefined>;
    /**
     * The name of a Queue or Topic to automatically forward dead lettered messages to.
     */
    readonly forwardDeadLetteredMessagesTo: pulumi.Output<string | undefined>;
    /**
     * 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.
     */
    readonly forwardTo: pulumi.Output<string | undefined>;
    /**
     * 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 `PT1M` (1 Minute).
     */
    readonly lockDuration: pulumi.Output<string | undefined>;
    /**
     * Integer value which controls when a message is automatically dead lettered. Defaults to `10`.
     */
    readonly maxDeliveryCount: pulumi.Output<number | undefined>;
    /**
     * 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).
     */
    readonly maxMessageSizeInKilobytes: pulumi.Output<number>;
    /**
     * 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).
     */
    readonly maxSizeInMegabytes: pulumi.Output<number>;
    /**
     * Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The ID of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.
     */
    readonly namespaceId: pulumi.Output<string>;
    readonly namespaceName: pulumi.Output<string>;
    /**
     * 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 `premiumMessagingPartitions` sets to `1`, the namespace is not partitioned.
     */
    readonly partitioningEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.
     */
    readonly requiresDuplicateDetection: pulumi.Output<boolean | undefined>;
    /**
     * 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`.
     */
    readonly requiresSession: pulumi.Output<boolean | undefined>;
    readonly resourceGroupName: pulumi.Output<string>;
    /**
     * 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`.
     */
    readonly status: pulumi.Output<string | undefined>;
    /**
     * Create a Queue resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    /** @deprecated azure.eventhub.Queue has been deprecated in favor of azure.servicebus.Queue */
    constructor(name: string, args: QueueArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Queue resources.
 */
export interface QueueState {
    /**
     * The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.
     */
    autoDeleteOnIdle?: pulumi.Input<string | undefined>;
    /**
     * Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.
     */
    batchedOperationsEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.
     */
    deadLetteringOnMessageExpiration?: pulumi.Input<boolean | undefined>;
    /**
     * 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.
     */
    defaultMessageTtl?: pulumi.Input<string | undefined>;
    /**
     * The ISO 8601 timespan duration during which duplicates can be detected. Defaults to `PT10M` (10 Minutes).
     */
    duplicateDetectionHistoryTimeWindow?: pulumi.Input<string | undefined>;
    /**
     * 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 `expressEnabled` MUST be set to `false`.
     */
    expressEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The name of a Queue or Topic to automatically forward dead lettered messages to.
     */
    forwardDeadLetteredMessagesTo?: pulumi.Input<string | undefined>;
    /**
     * 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.
     */
    forwardTo?: pulumi.Input<string | undefined>;
    /**
     * 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 `PT1M` (1 Minute).
     */
    lockDuration?: pulumi.Input<string | undefined>;
    /**
     * Integer value which controls when a message is automatically dead lettered. Defaults to `10`.
     */
    maxDeliveryCount?: pulumi.Input<number | undefined>;
    /**
     * 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).
     */
    maxMessageSizeInKilobytes?: pulumi.Input<number | undefined>;
    /**
     * 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).
     */
    maxSizeInMegabytes?: pulumi.Input<number | undefined>;
    /**
     * Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The ID of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.
     */
    namespaceId?: pulumi.Input<string | undefined>;
    namespaceName?: pulumi.Input<string | undefined>;
    /**
     * 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 `premiumMessagingPartitions` sets to `1`, the namespace is not partitioned.
     */
    partitioningEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.
     */
    requiresDuplicateDetection?: pulumi.Input<boolean | undefined>;
    /**
     * 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`.
     */
    requiresSession?: pulumi.Input<boolean | undefined>;
    resourceGroupName?: pulumi.Input<string | undefined>;
    /**
     * 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`.
     */
    status?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Queue resource.
 */
export interface QueueArgs {
    /**
     * The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.
     */
    autoDeleteOnIdle?: pulumi.Input<string | undefined>;
    /**
     * Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.
     */
    batchedOperationsEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.
     */
    deadLetteringOnMessageExpiration?: pulumi.Input<boolean | undefined>;
    /**
     * 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.
     */
    defaultMessageTtl?: pulumi.Input<string | undefined>;
    /**
     * The ISO 8601 timespan duration during which duplicates can be detected. Defaults to `PT10M` (10 Minutes).
     */
    duplicateDetectionHistoryTimeWindow?: pulumi.Input<string | undefined>;
    /**
     * 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 `expressEnabled` MUST be set to `false`.
     */
    expressEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The name of a Queue or Topic to automatically forward dead lettered messages to.
     */
    forwardDeadLetteredMessagesTo?: pulumi.Input<string | undefined>;
    /**
     * 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.
     */
    forwardTo?: pulumi.Input<string | undefined>;
    /**
     * 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 `PT1M` (1 Minute).
     */
    lockDuration?: pulumi.Input<string | undefined>;
    /**
     * Integer value which controls when a message is automatically dead lettered. Defaults to `10`.
     */
    maxDeliveryCount?: pulumi.Input<number | undefined>;
    /**
     * 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).
     */
    maxMessageSizeInKilobytes?: pulumi.Input<number | undefined>;
    /**
     * 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).
     */
    maxSizeInMegabytes?: pulumi.Input<number | undefined>;
    /**
     * Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The ID of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.
     */
    namespaceId: pulumi.Input<string>;
    /**
     * 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 `premiumMessagingPartitions` sets to `1`, the namespace is not partitioned.
     */
    partitioningEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.
     */
    requiresDuplicateDetection?: pulumi.Input<boolean | undefined>;
    /**
     * 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`.
     */
    requiresSession?: pulumi.Input<boolean | undefined>;
    /**
     * 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`.
     */
    status?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=queue.d.ts.map