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

com.pulumi.awsnative.connect.kotlin.RoutingProfileArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.connect.kotlin

import com.pulumi.awsnative.connect.RoutingProfileArgs.builder
import com.pulumi.awsnative.connect.kotlin.enums.RoutingProfileAgentAvailabilityTimer
import com.pulumi.awsnative.connect.kotlin.inputs.RoutingProfileMediaConcurrencyArgs
import com.pulumi.awsnative.connect.kotlin.inputs.RoutingProfileMediaConcurrencyArgsBuilder
import com.pulumi.awsnative.connect.kotlin.inputs.RoutingProfileQueueConfigArgs
import com.pulumi.awsnative.connect.kotlin.inputs.RoutingProfileQueueConfigArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource Type definition for AWS::Connect::RoutingProfile
 * @property agentAvailabilityTimer Whether agents with this routing profile will have their routing order calculated based on longest idle time or time since their last inbound contact.
 * @property defaultOutboundQueueArn The identifier of the default outbound queue for this routing profile.
 * @property description The description of the routing profile.
 * @property instanceArn The identifier of the Amazon Connect instance.
 * @property mediaConcurrencies The channels agents can handle in the Contact Control Panel (CCP) for this routing profile.
 * @property name The name of the routing profile.
 * @property queueConfigs The queues to associate with this routing profile.
 * @property tags An array of key-value pairs to apply to this resource.
 */
public data class RoutingProfileArgs(
    public val agentAvailabilityTimer: Output? = null,
    public val defaultOutboundQueueArn: Output? = null,
    public val description: Output? = null,
    public val instanceArn: Output? = null,
    public val mediaConcurrencies: Output>? = null,
    public val name: Output? = null,
    public val queueConfigs: Output>? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.connect.RoutingProfileArgs =
        com.pulumi.awsnative.connect.RoutingProfileArgs.builder()
            .agentAvailabilityTimer(
                agentAvailabilityTimer?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .defaultOutboundQueueArn(defaultOutboundQueueArn?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .instanceArn(instanceArn?.applyValue({ args0 -> args0 }))
            .mediaConcurrencies(
                mediaConcurrencies?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .queueConfigs(
                queueConfigs?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [RoutingProfileArgs].
 */
@PulumiTagMarker
public class RoutingProfileArgsBuilder internal constructor() {
    private var agentAvailabilityTimer: Output? = null

    private var defaultOutboundQueueArn: Output? = null

    private var description: Output? = null

    private var instanceArn: Output? = null

    private var mediaConcurrencies: Output>? = null

    private var name: Output? = null

    private var queueConfigs: Output>? = null

    private var tags: Output>? = null

    /**
     * @param value Whether agents with this routing profile will have their routing order calculated based on longest idle time or time since their last inbound contact.
     */
    @JvmName("yrqwnajjgpnjibed")
    public suspend fun agentAvailabilityTimer(`value`: Output) {
        this.agentAvailabilityTimer = value
    }

    /**
     * @param value The identifier of the default outbound queue for this routing profile.
     */
    @JvmName("atobndqkqjqucdbj")
    public suspend fun defaultOutboundQueueArn(`value`: Output) {
        this.defaultOutboundQueueArn = value
    }

    /**
     * @param value The description of the routing profile.
     */
    @JvmName("lnqpkdxiykaftpou")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The identifier of the Amazon Connect instance.
     */
    @JvmName("lufuemrvkcmkfaor")
    public suspend fun instanceArn(`value`: Output) {
        this.instanceArn = value
    }

    /**
     * @param value The channels agents can handle in the Contact Control Panel (CCP) for this routing profile.
     */
    @JvmName("pvnkjudxkyjnlmtv")
    public suspend fun mediaConcurrencies(`value`: Output>) {
        this.mediaConcurrencies = value
    }

    @JvmName("qdtsbowuapfbobyw")
    public suspend fun mediaConcurrencies(vararg values: Output) {
        this.mediaConcurrencies = Output.all(values.asList())
    }

    /**
     * @param values The channels agents can handle in the Contact Control Panel (CCP) for this routing profile.
     */
    @JvmName("pbwtlylucghwosrv")
    public suspend fun mediaConcurrencies(values: List>) {
        this.mediaConcurrencies = Output.all(values)
    }

    /**
     * @param value The name of the routing profile.
     */
    @JvmName("msbwxfcrkkduqumk")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The queues to associate with this routing profile.
     */
    @JvmName("mvuoiivfbjmqlfas")
    public suspend fun queueConfigs(`value`: Output>) {
        this.queueConfigs = value
    }

    @JvmName("myiymsftnoynthck")
    public suspend fun queueConfigs(vararg values: Output) {
        this.queueConfigs = Output.all(values.asList())
    }

    /**
     * @param values The queues to associate with this routing profile.
     */
    @JvmName("kcogkuvomuieredo")
    public suspend fun queueConfigs(values: List>) {
        this.queueConfigs = Output.all(values)
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("deitorjjaeoxivvf")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    @JvmName("ywvboidkgxoicirj")
    public suspend fun tags(vararg values: Output) {
        this.tags = Output.all(values.asList())
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("mtnrlwusegvjejuy")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value Whether agents with this routing profile will have their routing order calculated based on longest idle time or time since their last inbound contact.
     */
    @JvmName("ikliwhsfpdaqdobs")
    public suspend fun agentAvailabilityTimer(`value`: RoutingProfileAgentAvailabilityTimer?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.agentAvailabilityTimer = mapped
    }

    /**
     * @param value The identifier of the default outbound queue for this routing profile.
     */
    @JvmName("atruqnylrmleariw")
    public suspend fun defaultOutboundQueueArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultOutboundQueueArn = mapped
    }

    /**
     * @param value The description of the routing profile.
     */
    @JvmName("dqkmxcboslemhwph")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The identifier of the Amazon Connect instance.
     */
    @JvmName("usxpopxcrfmcetfg")
    public suspend fun instanceArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceArn = mapped
    }

    /**
     * @param value The channels agents can handle in the Contact Control Panel (CCP) for this routing profile.
     */
    @JvmName("hrotygaaiyyowjsp")
    public suspend fun mediaConcurrencies(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.mediaConcurrencies = mapped
    }

    /**
     * @param argument The channels agents can handle in the Contact Control Panel (CCP) for this routing profile.
     */
    @JvmName("nlbvvpxyfvwypbdg")
    public suspend fun mediaConcurrencies(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RoutingProfileMediaConcurrencyArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.mediaConcurrencies = mapped
    }

    /**
     * @param argument The channels agents can handle in the Contact Control Panel (CCP) for this routing profile.
     */
    @JvmName("digngryrjtuofifb")
    public suspend fun mediaConcurrencies(vararg argument: suspend RoutingProfileMediaConcurrencyArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RoutingProfileMediaConcurrencyArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.mediaConcurrencies = mapped
    }

    /**
     * @param argument The channels agents can handle in the Contact Control Panel (CCP) for this routing profile.
     */
    @JvmName("xrkeuhviqsxahtyc")
    public suspend fun mediaConcurrencies(argument: suspend RoutingProfileMediaConcurrencyArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            RoutingProfileMediaConcurrencyArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.mediaConcurrencies = mapped
    }

    /**
     * @param values The channels agents can handle in the Contact Control Panel (CCP) for this routing profile.
     */
    @JvmName("orksjmnmlagttfvn")
    public suspend fun mediaConcurrencies(vararg values: RoutingProfileMediaConcurrencyArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.mediaConcurrencies = mapped
    }

    /**
     * @param value The name of the routing profile.
     */
    @JvmName("yfivxcrqwfloyuou")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The queues to associate with this routing profile.
     */
    @JvmName("saiesucfpmuoeuxh")
    public suspend fun queueConfigs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.queueConfigs = mapped
    }

    /**
     * @param argument The queues to associate with this routing profile.
     */
    @JvmName("bbngfertespwusnd")
    public suspend fun queueConfigs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RoutingProfileQueueConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.queueConfigs = mapped
    }

    /**
     * @param argument The queues to associate with this routing profile.
     */
    @JvmName("hltcoulewhbcgwhy")
    public suspend fun queueConfigs(vararg argument: suspend RoutingProfileQueueConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RoutingProfileQueueConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.queueConfigs = mapped
    }

    /**
     * @param argument The queues to associate with this routing profile.
     */
    @JvmName("trrkjxikuhxntlgp")
    public suspend fun queueConfigs(argument: suspend RoutingProfileQueueConfigArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            RoutingProfileQueueConfigArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.queueConfigs = mapped
    }

    /**
     * @param values The queues to associate with this routing profile.
     */
    @JvmName("hsdysmdhjsvshbha")
    public suspend fun queueConfigs(vararg values: RoutingProfileQueueConfigArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.queueConfigs = mapped
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("uvwmrpuwfchtxhgk")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("aycqewabvmvjqmih")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("axgawhcvddeekctr")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("xilyeddmghpqmnvp")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("hvpkbtxstuccdjhm")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): RoutingProfileArgs = RoutingProfileArgs(
        agentAvailabilityTimer = agentAvailabilityTimer,
        defaultOutboundQueueArn = defaultOutboundQueueArn,
        description = description,
        instanceArn = instanceArn,
        mediaConcurrencies = mediaConcurrencies,
        name = name,
        queueConfigs = queueConfigs,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy