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

com.pulumi.awsnative.iam.kotlin.VirtualMfaDeviceArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.iam.kotlin

import com.pulumi.awsnative.iam.VirtualMfaDeviceArgs.builder
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::IAM::VirtualMFADevice
 * @property path The path for the virtual MFA device. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
 * This parameter is optional. If it is not included, it defaults to a slash (/).
 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\u0021` ) through the DEL character ( `\u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
 * @property tags A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
 * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
 * @property users The IAM user associated with this virtual MFA device.
 * @property virtualMfaDeviceName The name of the virtual MFA device, which must be unique. Use with path to uniquely identify a virtual MFA device.
 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
 */
public data class VirtualMfaDeviceArgs(
    public val path: Output? = null,
    public val tags: Output>? = null,
    public val users: Output>? = null,
    public val virtualMfaDeviceName: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.iam.VirtualMfaDeviceArgs =
        com.pulumi.awsnative.iam.VirtualMfaDeviceArgs.builder()
            .path(path?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .users(users?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .virtualMfaDeviceName(virtualMfaDeviceName?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [VirtualMfaDeviceArgs].
 */
@PulumiTagMarker
public class VirtualMfaDeviceArgsBuilder internal constructor() {
    private var path: Output? = null

    private var tags: Output>? = null

    private var users: Output>? = null

    private var virtualMfaDeviceName: Output? = null

    /**
     * @param value The path for the virtual MFA device. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
     * This parameter is optional. If it is not included, it defaults to a slash (/).
     * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\u0021` ) through the DEL character ( `\u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
     */
    @JvmName("ubuxsksnamiqtrai")
    public suspend fun path(`value`: Output) {
        this.path = value
    }

    /**
     * @param value A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
     * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
     */
    @JvmName("dwymduwqdpsqvyot")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
     * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
     */
    @JvmName("wdvaayrjkdshoods")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The IAM user associated with this virtual MFA device.
     */
    @JvmName("ijlssaascyjilotf")
    public suspend fun users(`value`: Output>) {
        this.users = value
    }

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

    /**
     * @param values The IAM user associated with this virtual MFA device.
     */
    @JvmName("ncoyhretuwhubbfp")
    public suspend fun users(values: List>) {
        this.users = Output.all(values)
    }

    /**
     * @param value The name of the virtual MFA device, which must be unique. Use with path to uniquely identify a virtual MFA device.
     * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
     */
    @JvmName("pcacktxfthidjibk")
    public suspend fun virtualMfaDeviceName(`value`: Output) {
        this.virtualMfaDeviceName = value
    }

    /**
     * @param value The path for the virtual MFA device. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
     * This parameter is optional. If it is not included, it defaults to a slash (/).
     * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\u0021` ) through the DEL character ( `\u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
     */
    @JvmName("mviogsbfdulaupni")
    public suspend fun path(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.path = mapped
    }

    /**
     * @param value A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
     * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
     */
    @JvmName("vdjvywrgbskilbqm")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
     * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
     */
    @JvmName("aoysotusqhwbpcrg")
    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 A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
     * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
     */
    @JvmName("mufcymainhrpmbnp")
    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 A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
     * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
     */
    @JvmName("ulmyipdmrcrjfibw")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
     * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
     */
    @JvmName("xabircomvclybmxy")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The IAM user associated with this virtual MFA device.
     */
    @JvmName("xmnoeesapbeimtfh")
    public suspend fun users(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.users = mapped
    }

    /**
     * @param values The IAM user associated with this virtual MFA device.
     */
    @JvmName("gbchbwtheschfykk")
    public suspend fun users(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.users = mapped
    }

    /**
     * @param value The name of the virtual MFA device, which must be unique. Use with path to uniquely identify a virtual MFA device.
     * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
     */
    @JvmName("iyqxdykbiwqgefbo")
    public suspend fun virtualMfaDeviceName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.virtualMfaDeviceName = mapped
    }

    internal fun build(): VirtualMfaDeviceArgs = VirtualMfaDeviceArgs(
        path = path,
        tags = tags,
        users = users,
        virtualMfaDeviceName = virtualMfaDeviceName,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy