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

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

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

package com.pulumi.awsnative.connect.kotlin

import com.pulumi.awsnative.connect.UserArgs.builder
import com.pulumi.awsnative.connect.kotlin.inputs.UserIdentityInfoArgs
import com.pulumi.awsnative.connect.kotlin.inputs.UserIdentityInfoArgsBuilder
import com.pulumi.awsnative.connect.kotlin.inputs.UserPhoneConfigArgs
import com.pulumi.awsnative.connect.kotlin.inputs.UserPhoneConfigArgsBuilder
import com.pulumi.awsnative.connect.kotlin.inputs.UserProficiencyArgs
import com.pulumi.awsnative.connect.kotlin.inputs.UserProficiencyArgsBuilder
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::User
 * @property directoryUserId The identifier of the user account in the directory used for identity management.
 * @property hierarchyGroupArn The identifier of the hierarchy group for the user.
 * @property identityInfo The information about the identity of the user.
 * @property instanceArn The identifier of the Amazon Connect instance.
 * @property password The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.
 * @property phoneConfig The phone settings for the user.
 * @property routingProfileArn The identifier of the routing profile for the user.
 * @property securityProfileArns One or more security profile arns for the user
 * @property tags One or more tags.
 * @property userProficiencies One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.
 * @property username The user name for the account.
 */
public data class UserArgs(
    public val directoryUserId: Output? = null,
    public val hierarchyGroupArn: Output? = null,
    public val identityInfo: Output? = null,
    public val instanceArn: Output? = null,
    public val password: Output? = null,
    public val phoneConfig: Output? = null,
    public val routingProfileArn: Output? = null,
    public val securityProfileArns: Output>? = null,
    public val tags: Output>? = null,
    public val userProficiencies: Output>? = null,
    public val username: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.connect.UserArgs =
        com.pulumi.awsnative.connect.UserArgs.builder()
            .directoryUserId(directoryUserId?.applyValue({ args0 -> args0 }))
            .hierarchyGroupArn(hierarchyGroupArn?.applyValue({ args0 -> args0 }))
            .identityInfo(identityInfo?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .instanceArn(instanceArn?.applyValue({ args0 -> args0 }))
            .password(password?.applyValue({ args0 -> args0 }))
            .phoneConfig(phoneConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .routingProfileArn(routingProfileArn?.applyValue({ args0 -> args0 }))
            .securityProfileArns(securityProfileArns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .userProficiencies(
                userProficiencies?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .username(username?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [UserArgs].
 */
@PulumiTagMarker
public class UserArgsBuilder internal constructor() {
    private var directoryUserId: Output? = null

    private var hierarchyGroupArn: Output? = null

    private var identityInfo: Output? = null

    private var instanceArn: Output? = null

    private var password: Output? = null

    private var phoneConfig: Output? = null

    private var routingProfileArn: Output? = null

    private var securityProfileArns: Output>? = null

    private var tags: Output>? = null

    private var userProficiencies: Output>? = null

    private var username: Output? = null

    /**
     * @param value The identifier of the user account in the directory used for identity management.
     */
    @JvmName("myvqqannmesakhip")
    public suspend fun directoryUserId(`value`: Output) {
        this.directoryUserId = value
    }

    /**
     * @param value The identifier of the hierarchy group for the user.
     */
    @JvmName("showruplpdlwrret")
    public suspend fun hierarchyGroupArn(`value`: Output) {
        this.hierarchyGroupArn = value
    }

    /**
     * @param value The information about the identity of the user.
     */
    @JvmName("phmmwmcmtxituyyy")
    public suspend fun identityInfo(`value`: Output) {
        this.identityInfo = value
    }

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

    /**
     * @param value The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.
     */
    @JvmName("ueirnqmwyqqlgjjb")
    public suspend fun password(`value`: Output) {
        this.password = value
    }

    /**
     * @param value The phone settings for the user.
     */
    @JvmName("cvtvadtgvfcodnxu")
    public suspend fun phoneConfig(`value`: Output) {
        this.phoneConfig = value
    }

    /**
     * @param value The identifier of the routing profile for the user.
     */
    @JvmName("ubjoyyewkrlqihdb")
    public suspend fun routingProfileArn(`value`: Output) {
        this.routingProfileArn = value
    }

    /**
     * @param value One or more security profile arns for the user
     */
    @JvmName("otkgpmsxnaupdbnj")
    public suspend fun securityProfileArns(`value`: Output>) {
        this.securityProfileArns = value
    }

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

    /**
     * @param values One or more security profile arns for the user
     */
    @JvmName("leibsknepgoicmqy")
    public suspend fun securityProfileArns(values: List>) {
        this.securityProfileArns = Output.all(values)
    }

    /**
     * @param value One or more tags.
     */
    @JvmName("viofycjurgoquvrd")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values One or more tags.
     */
    @JvmName("aklymlggcpjgotmu")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.
     */
    @JvmName("otphoxvfjeykredm")
    public suspend fun userProficiencies(`value`: Output>) {
        this.userProficiencies = value
    }

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

    /**
     * @param values One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.
     */
    @JvmName("frylrkgwxsrgtrqp")
    public suspend fun userProficiencies(values: List>) {
        this.userProficiencies = Output.all(values)
    }

    /**
     * @param value The user name for the account.
     */
    @JvmName("apbrtugjiobtiomv")
    public suspend fun username(`value`: Output) {
        this.username = value
    }

    /**
     * @param value The identifier of the user account in the directory used for identity management.
     */
    @JvmName("oeggvxnrbnovdtvq")
    public suspend fun directoryUserId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.directoryUserId = mapped
    }

    /**
     * @param value The identifier of the hierarchy group for the user.
     */
    @JvmName("tlginrowbcaifpan")
    public suspend fun hierarchyGroupArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hierarchyGroupArn = mapped
    }

    /**
     * @param value The information about the identity of the user.
     */
    @JvmName("uyvvoromyhponqou")
    public suspend fun identityInfo(`value`: UserIdentityInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identityInfo = mapped
    }

    /**
     * @param argument The information about the identity of the user.
     */
    @JvmName("nqhphnrwtblaawds")
    public suspend fun identityInfo(argument: suspend UserIdentityInfoArgsBuilder.() -> Unit) {
        val toBeMapped = UserIdentityInfoArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.identityInfo = mapped
    }

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

    /**
     * @param value The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.
     */
    @JvmName("dfivthxuffwklqeg")
    public suspend fun password(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.password = mapped
    }

    /**
     * @param value The phone settings for the user.
     */
    @JvmName("deyferfxcbrghdpr")
    public suspend fun phoneConfig(`value`: UserPhoneConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.phoneConfig = mapped
    }

    /**
     * @param argument The phone settings for the user.
     */
    @JvmName("srameuoeyewubrwc")
    public suspend fun phoneConfig(argument: suspend UserPhoneConfigArgsBuilder.() -> Unit) {
        val toBeMapped = UserPhoneConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.phoneConfig = mapped
    }

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

    /**
     * @param value One or more security profile arns for the user
     */
    @JvmName("whlomlipnihaxmej")
    public suspend fun securityProfileArns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.securityProfileArns = mapped
    }

    /**
     * @param values One or more security profile arns for the user
     */
    @JvmName("gfaygsxgflsevmba")
    public suspend fun securityProfileArns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.securityProfileArns = mapped
    }

    /**
     * @param value One or more tags.
     */
    @JvmName("aflekgisliyvrwqe")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument One or more tags.
     */
    @JvmName("vlqpkwxqnfpoxwny")
    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 One or more tags.
     */
    @JvmName("losvjcixevwwqdjb")
    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 One or more tags.
     */
    @JvmName("whnilxfoghvxtlfx")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values One or more tags.
     */
    @JvmName("kbsxjqkjgjpjbaox")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.
     */
    @JvmName("abcpdpoglkgkfail")
    public suspend fun userProficiencies(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userProficiencies = mapped
    }

    /**
     * @param argument One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.
     */
    @JvmName("sfbppnisggygcdhy")
    public suspend fun userProficiencies(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            UserProficiencyArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.userProficiencies = mapped
    }

    /**
     * @param argument One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.
     */
    @JvmName("onftlpheawkjyyyq")
    public suspend fun userProficiencies(vararg argument: suspend UserProficiencyArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            UserProficiencyArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.userProficiencies = mapped
    }

    /**
     * @param argument One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.
     */
    @JvmName("vhvdabfqmbfkaxgk")
    public suspend fun userProficiencies(argument: suspend UserProficiencyArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(UserProficiencyArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.userProficiencies = mapped
    }

    /**
     * @param values One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.
     */
    @JvmName("cwrsgftsugiwknal")
    public suspend fun userProficiencies(vararg values: UserProficiencyArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.userProficiencies = mapped
    }

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

    internal fun build(): UserArgs = UserArgs(
        directoryUserId = directoryUserId,
        hierarchyGroupArn = hierarchyGroupArn,
        identityInfo = identityInfo,
        instanceArn = instanceArn,
        password = password,
        phoneConfig = phoneConfig,
        routingProfileArn = routingProfileArn,
        securityProfileArns = securityProfileArns,
        tags = tags,
        userProficiencies = userProficiencies,
        username = username,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy