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

com.pulumi.azurenative.eventgrid.kotlin.inputs.QueueInfoArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.eventgrid.kotlin.inputs

import com.pulumi.azurenative.eventgrid.inputs.QueueInfoArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * Properties of the Queue info for event subscription.
 * @property deadLetterDestinationWithResourceIdentity The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
 * Uses the managed identity setup on the parent resource (namely, topic) to acquire the authentication tokens being used during delivery / dead-lettering.
 * @property eventTimeToLive Time span duration in ISO 8601 format that determines how long messages are available to the subscription from the time the message was published.
 * This duration value is expressed using the following format: \'P(n)Y(n)M(n)DT(n)H(n)M(n)S\', where:
 *     - (n) is replaced by the value of each time element that follows the (n).
 *     - P is the duration (or Period) designator and is always placed at the beginning of the duration.
 *     - Y is the year designator, and it follows the value for the number of years.
 *     - M is the month designator, and it follows the value for the number of months.
 *     - W is the week designator, and it follows the value for the number of weeks.
 *     - D is the day designator, and it follows the value for the number of days.
 *     - T is the time designator, and it precedes the time components.
 *     - H is the hour designator, and it follows the value for the number of hours.
 *     - M is the minute designator, and it follows the value for the number of minutes.
 *     - S is the second designator, and it follows the value for the number of seconds.
 * This duration value cannot be set greater than the topic’s EventRetentionInDays. It is is an optional field where its minimum value is 1 minute, and its maximum is determined
 * by topic’s EventRetentionInDays value. The followings are examples of valid values:
 *     - \'P0DT23H12M\' or \'PT23H12M\': for duration of 23 hours and 12 minutes.
 *     - \'P1D\' or \'P1DT0H0M0S\': for duration of 1 day.
 * @property maxDeliveryCount The maximum delivery count of the events.
 * @property receiveLockDurationInSeconds Maximum period in seconds in which once the message is in received (by the client) state and waiting to be accepted, released or rejected.
 * If this time elapsed after a message has been received by the client and not transitioned into accepted (not processed), released or rejected,
 * the message is available for redelivery. This is an optional field, where default is 60 seconds, minimum is 60 seconds and maximum is 300 seconds.
 */
public data class QueueInfoArgs(
    public val deadLetterDestinationWithResourceIdentity: Output? =
        null,
    public val eventTimeToLive: Output? = null,
    public val maxDeliveryCount: Output? = null,
    public val receiveLockDurationInSeconds: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.eventgrid.inputs.QueueInfoArgs =
        com.pulumi.azurenative.eventgrid.inputs.QueueInfoArgs.builder()
            .deadLetterDestinationWithResourceIdentity(
                deadLetterDestinationWithResourceIdentity?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .eventTimeToLive(eventTimeToLive?.applyValue({ args0 -> args0 }))
            .maxDeliveryCount(maxDeliveryCount?.applyValue({ args0 -> args0 }))
            .receiveLockDurationInSeconds(receiveLockDurationInSeconds?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [QueueInfoArgs].
 */
@PulumiTagMarker
public class QueueInfoArgsBuilder internal constructor() {
    private var deadLetterDestinationWithResourceIdentity: Output? =
        null

    private var eventTimeToLive: Output? = null

    private var maxDeliveryCount: Output? = null

    private var receiveLockDurationInSeconds: Output? = null

    /**
     * @param value The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
     * Uses the managed identity setup on the parent resource (namely, topic) to acquire the authentication tokens being used during delivery / dead-lettering.
     */
    @JvmName("obkwkjxrqtrbhshm")
    public suspend fun deadLetterDestinationWithResourceIdentity(`value`: Output) {
        this.deadLetterDestinationWithResourceIdentity = value
    }

    /**
     * @param value Time span duration in ISO 8601 format that determines how long messages are available to the subscription from the time the message was published.
     * This duration value is expressed using the following format: \'P(n)Y(n)M(n)DT(n)H(n)M(n)S\', where:
     *     - (n) is replaced by the value of each time element that follows the (n).
     *     - P is the duration (or Period) designator and is always placed at the beginning of the duration.
     *     - Y is the year designator, and it follows the value for the number of years.
     *     - M is the month designator, and it follows the value for the number of months.
     *     - W is the week designator, and it follows the value for the number of weeks.
     *     - D is the day designator, and it follows the value for the number of days.
     *     - T is the time designator, and it precedes the time components.
     *     - H is the hour designator, and it follows the value for the number of hours.
     *     - M is the minute designator, and it follows the value for the number of minutes.
     *     - S is the second designator, and it follows the value for the number of seconds.
     * This duration value cannot be set greater than the topic’s EventRetentionInDays. It is is an optional field where its minimum value is 1 minute, and its maximum is determined
     * by topic’s EventRetentionInDays value. The followings are examples of valid values:
     *     - \'P0DT23H12M\' or \'PT23H12M\': for duration of 23 hours and 12 minutes.
     *     - \'P1D\' or \'P1DT0H0M0S\': for duration of 1 day.
     */
    @JvmName("sxdttuycgvwyorjy")
    public suspend fun eventTimeToLive(`value`: Output) {
        this.eventTimeToLive = value
    }

    /**
     * @param value The maximum delivery count of the events.
     */
    @JvmName("tbuoavmtbdxsfwuc")
    public suspend fun maxDeliveryCount(`value`: Output) {
        this.maxDeliveryCount = value
    }

    /**
     * @param value Maximum period in seconds in which once the message is in received (by the client) state and waiting to be accepted, released or rejected.
     * If this time elapsed after a message has been received by the client and not transitioned into accepted (not processed), released or rejected,
     * the message is available for redelivery. This is an optional field, where default is 60 seconds, minimum is 60 seconds and maximum is 300 seconds.
     */
    @JvmName("gwokmkbjlduyfrkm")
    public suspend fun receiveLockDurationInSeconds(`value`: Output) {
        this.receiveLockDurationInSeconds = value
    }

    /**
     * @param value The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
     * Uses the managed identity setup on the parent resource (namely, topic) to acquire the authentication tokens being used during delivery / dead-lettering.
     */
    @JvmName("tncgcbvdetnsoryn")
    public suspend fun deadLetterDestinationWithResourceIdentity(`value`: DeadLetterWithResourceIdentityArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deadLetterDestinationWithResourceIdentity = mapped
    }

    /**
     * @param argument The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
     * Uses the managed identity setup on the parent resource (namely, topic) to acquire the authentication tokens being used during delivery / dead-lettering.
     */
    @JvmName("mtsefbjaqjuxawjj")
    public suspend fun deadLetterDestinationWithResourceIdentity(argument: suspend DeadLetterWithResourceIdentityArgsBuilder.() -> Unit) {
        val toBeMapped = DeadLetterWithResourceIdentityArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.deadLetterDestinationWithResourceIdentity = mapped
    }

    /**
     * @param value Time span duration in ISO 8601 format that determines how long messages are available to the subscription from the time the message was published.
     * This duration value is expressed using the following format: \'P(n)Y(n)M(n)DT(n)H(n)M(n)S\', where:
     *     - (n) is replaced by the value of each time element that follows the (n).
     *     - P is the duration (or Period) designator and is always placed at the beginning of the duration.
     *     - Y is the year designator, and it follows the value for the number of years.
     *     - M is the month designator, and it follows the value for the number of months.
     *     - W is the week designator, and it follows the value for the number of weeks.
     *     - D is the day designator, and it follows the value for the number of days.
     *     - T is the time designator, and it precedes the time components.
     *     - H is the hour designator, and it follows the value for the number of hours.
     *     - M is the minute designator, and it follows the value for the number of minutes.
     *     - S is the second designator, and it follows the value for the number of seconds.
     * This duration value cannot be set greater than the topic’s EventRetentionInDays. It is is an optional field where its minimum value is 1 minute, and its maximum is determined
     * by topic’s EventRetentionInDays value. The followings are examples of valid values:
     *     - \'P0DT23H12M\' or \'PT23H12M\': for duration of 23 hours and 12 minutes.
     *     - \'P1D\' or \'P1DT0H0M0S\': for duration of 1 day.
     */
    @JvmName("fsbbdywurukooygb")
    public suspend fun eventTimeToLive(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.eventTimeToLive = mapped
    }

    /**
     * @param value The maximum delivery count of the events.
     */
    @JvmName("rtjvbhhjyabyfcav")
    public suspend fun maxDeliveryCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxDeliveryCount = mapped
    }

    /**
     * @param value Maximum period in seconds in which once the message is in received (by the client) state and waiting to be accepted, released or rejected.
     * If this time elapsed after a message has been received by the client and not transitioned into accepted (not processed), released or rejected,
     * the message is available for redelivery. This is an optional field, where default is 60 seconds, minimum is 60 seconds and maximum is 300 seconds.
     */
    @JvmName("phcxqohkcgydnpcq")
    public suspend fun receiveLockDurationInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.receiveLockDurationInSeconds = mapped
    }

    internal fun build(): QueueInfoArgs = QueueInfoArgs(
        deadLetterDestinationWithResourceIdentity = deadLetterDestinationWithResourceIdentity,
        eventTimeToLive = eventTimeToLive,
        maxDeliveryCount = maxDeliveryCount,
        receiveLockDurationInSeconds = receiveLockDurationInSeconds,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy