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

com.pulumi.azurenative.hdinsight.kotlin.inputs.RoleArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.hdinsight.kotlin.inputs

import com.pulumi.azurenative.hdinsight.inputs.RoleArgs.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.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Describes a role on the cluster.
 * @property autoscaleConfiguration The autoscale configurations.
 * @property dataDisksGroups The data disks groups for the role.
 * @property encryptDataDisks Indicates whether encrypt the data disks.
 * @property hardwareProfile The hardware profile.
 * @property minInstanceCount The minimum instance count of the cluster.
 * @property name The name of the role.
 * @property osProfile The operating system profile.
 * @property scriptActions The list of script actions on the role.
 * @property targetInstanceCount The instance count of the cluster.
 * @property vMGroupName The name of the virtual machine group.
 * @property virtualNetworkProfile The virtual network profile.
 */
public data class RoleArgs(
    public val autoscaleConfiguration: Output? = null,
    public val dataDisksGroups: Output>? = null,
    public val encryptDataDisks: Output? = null,
    public val hardwareProfile: Output? = null,
    public val minInstanceCount: Output? = null,
    public val name: Output? = null,
    public val osProfile: Output? = null,
    public val scriptActions: Output>? = null,
    public val targetInstanceCount: Output? = null,
    public val vMGroupName: Output? = null,
    public val virtualNetworkProfile: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.hdinsight.inputs.RoleArgs =
        com.pulumi.azurenative.hdinsight.inputs.RoleArgs.builder()
            .autoscaleConfiguration(
                autoscaleConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .dataDisksGroups(
                dataDisksGroups?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .encryptDataDisks(encryptDataDisks?.applyValue({ args0 -> args0 }))
            .hardwareProfile(hardwareProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .minInstanceCount(minInstanceCount?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .osProfile(osProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .scriptActions(
                scriptActions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .targetInstanceCount(targetInstanceCount?.applyValue({ args0 -> args0 }))
            .vMGroupName(vMGroupName?.applyValue({ args0 -> args0 }))
            .virtualNetworkProfile(
                virtualNetworkProfile?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [RoleArgs].
 */
@PulumiTagMarker
public class RoleArgsBuilder internal constructor() {
    private var autoscaleConfiguration: Output? = null

    private var dataDisksGroups: Output>? = null

    private var encryptDataDisks: Output? = null

    private var hardwareProfile: Output? = null

    private var minInstanceCount: Output? = null

    private var name: Output? = null

    private var osProfile: Output? = null

    private var scriptActions: Output>? = null

    private var targetInstanceCount: Output? = null

    private var vMGroupName: Output? = null

    private var virtualNetworkProfile: Output? = null

    /**
     * @param value The autoscale configurations.
     */
    @JvmName("orcejvlxftniykep")
    public suspend fun autoscaleConfiguration(`value`: Output) {
        this.autoscaleConfiguration = value
    }

    /**
     * @param value The data disks groups for the role.
     */
    @JvmName("xyfwndvppwkshjaj")
    public suspend fun dataDisksGroups(`value`: Output>) {
        this.dataDisksGroups = value
    }

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

    /**
     * @param values The data disks groups for the role.
     */
    @JvmName("btphpdvbgdplgrae")
    public suspend fun dataDisksGroups(values: List>) {
        this.dataDisksGroups = Output.all(values)
    }

    /**
     * @param value Indicates whether encrypt the data disks.
     */
    @JvmName("fccymbdhdsbfvgvv")
    public suspend fun encryptDataDisks(`value`: Output) {
        this.encryptDataDisks = value
    }

    /**
     * @param value The hardware profile.
     */
    @JvmName("lqxjllmbuausqjbf")
    public suspend fun hardwareProfile(`value`: Output) {
        this.hardwareProfile = value
    }

    /**
     * @param value The minimum instance count of the cluster.
     */
    @JvmName("wtywcmelgkdprfln")
    public suspend fun minInstanceCount(`value`: Output) {
        this.minInstanceCount = value
    }

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

    /**
     * @param value The operating system profile.
     */
    @JvmName("tobubwcusscsqnqm")
    public suspend fun osProfile(`value`: Output) {
        this.osProfile = value
    }

    /**
     * @param value The list of script actions on the role.
     */
    @JvmName("wmimlshfgxitsccw")
    public suspend fun scriptActions(`value`: Output>) {
        this.scriptActions = value
    }

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

    /**
     * @param values The list of script actions on the role.
     */
    @JvmName("fjiancqcffuanwgj")
    public suspend fun scriptActions(values: List>) {
        this.scriptActions = Output.all(values)
    }

    /**
     * @param value The instance count of the cluster.
     */
    @JvmName("qfvmscglpaahtcmd")
    public suspend fun targetInstanceCount(`value`: Output) {
        this.targetInstanceCount = value
    }

    /**
     * @param value The name of the virtual machine group.
     */
    @JvmName("uvhbxjsgwkfvoklf")
    public suspend fun vMGroupName(`value`: Output) {
        this.vMGroupName = value
    }

    /**
     * @param value The virtual network profile.
     */
    @JvmName("tsfacbbwhtvbocke")
    public suspend fun virtualNetworkProfile(`value`: Output) {
        this.virtualNetworkProfile = value
    }

    /**
     * @param value The autoscale configurations.
     */
    @JvmName("hwdyxcmyokfybehl")
    public suspend fun autoscaleConfiguration(`value`: AutoscaleArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoscaleConfiguration = mapped
    }

    /**
     * @param argument The autoscale configurations.
     */
    @JvmName("ijyyystgkxiemgoh")
    public suspend fun autoscaleConfiguration(argument: suspend AutoscaleArgsBuilder.() -> Unit) {
        val toBeMapped = AutoscaleArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.autoscaleConfiguration = mapped
    }

    /**
     * @param value The data disks groups for the role.
     */
    @JvmName("skndoqxgssylcnpe")
    public suspend fun dataDisksGroups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataDisksGroups = mapped
    }

    /**
     * @param argument The data disks groups for the role.
     */
    @JvmName("ruvuqrqvyqqtojpb")
    public suspend fun dataDisksGroups(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DataDisksGroupsArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.dataDisksGroups = mapped
    }

    /**
     * @param argument The data disks groups for the role.
     */
    @JvmName("fgpbmvckkrvoqytl")
    public suspend fun dataDisksGroups(vararg argument: suspend DataDisksGroupsArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DataDisksGroupsArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.dataDisksGroups = mapped
    }

    /**
     * @param argument The data disks groups for the role.
     */
    @JvmName("cassuojvjxjvshlw")
    public suspend fun dataDisksGroups(argument: suspend DataDisksGroupsArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(DataDisksGroupsArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.dataDisksGroups = mapped
    }

    /**
     * @param values The data disks groups for the role.
     */
    @JvmName("lywmlpryhdibdggg")
    public suspend fun dataDisksGroups(vararg values: DataDisksGroupsArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dataDisksGroups = mapped
    }

    /**
     * @param value Indicates whether encrypt the data disks.
     */
    @JvmName("hinxkfnugemarhtd")
    public suspend fun encryptDataDisks(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryptDataDisks = mapped
    }

    /**
     * @param value The hardware profile.
     */
    @JvmName("rkodgbfifyenywgd")
    public suspend fun hardwareProfile(`value`: HardwareProfileArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hardwareProfile = mapped
    }

    /**
     * @param argument The hardware profile.
     */
    @JvmName("opsvmpcdetsakutc")
    public suspend fun hardwareProfile(argument: suspend HardwareProfileArgsBuilder.() -> Unit) {
        val toBeMapped = HardwareProfileArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.hardwareProfile = mapped
    }

    /**
     * @param value The minimum instance count of the cluster.
     */
    @JvmName("qbcwpwmiakkksrjl")
    public suspend fun minInstanceCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.minInstanceCount = mapped
    }

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

    /**
     * @param value The operating system profile.
     */
    @JvmName("tuqbyrtgieddylpg")
    public suspend fun osProfile(`value`: OsProfileArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.osProfile = mapped
    }

    /**
     * @param argument The operating system profile.
     */
    @JvmName("wrdntimftugbsgis")
    public suspend fun osProfile(argument: suspend OsProfileArgsBuilder.() -> Unit) {
        val toBeMapped = OsProfileArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.osProfile = mapped
    }

    /**
     * @param value The list of script actions on the role.
     */
    @JvmName("uqfwqfpcprgkgdxk")
    public suspend fun scriptActions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scriptActions = mapped
    }

    /**
     * @param argument The list of script actions on the role.
     */
    @JvmName("lnrwqewggwbsthuy")
    public suspend fun scriptActions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ScriptActionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.scriptActions = mapped
    }

    /**
     * @param argument The list of script actions on the role.
     */
    @JvmName("txmgducchkwcvhht")
    public suspend fun scriptActions(vararg argument: suspend ScriptActionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ScriptActionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.scriptActions = mapped
    }

    /**
     * @param argument The list of script actions on the role.
     */
    @JvmName("arxxrepebisydcfn")
    public suspend fun scriptActions(argument: suspend ScriptActionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(ScriptActionArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.scriptActions = mapped
    }

    /**
     * @param values The list of script actions on the role.
     */
    @JvmName("sahfqcbefiqrsrhe")
    public suspend fun scriptActions(vararg values: ScriptActionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scriptActions = mapped
    }

    /**
     * @param value The instance count of the cluster.
     */
    @JvmName("xcumyanktymqvuaa")
    public suspend fun targetInstanceCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.targetInstanceCount = mapped
    }

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

    /**
     * @param value The virtual network profile.
     */
    @JvmName("yojcoatbmogpfhkj")
    public suspend fun virtualNetworkProfile(`value`: VirtualNetworkProfileArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.virtualNetworkProfile = mapped
    }

    /**
     * @param argument The virtual network profile.
     */
    @JvmName("qwxymvpguiwdwvxq")
    public suspend fun virtualNetworkProfile(argument: suspend VirtualNetworkProfileArgsBuilder.() -> Unit) {
        val toBeMapped = VirtualNetworkProfileArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.virtualNetworkProfile = mapped
    }

    internal fun build(): RoleArgs = RoleArgs(
        autoscaleConfiguration = autoscaleConfiguration,
        dataDisksGroups = dataDisksGroups,
        encryptDataDisks = encryptDataDisks,
        hardwareProfile = hardwareProfile,
        minInstanceCount = minInstanceCount,
        name = name,
        osProfile = osProfile,
        scriptActions = scriptActions,
        targetInstanceCount = targetInstanceCount,
        vMGroupName = vMGroupName,
        virtualNetworkProfile = virtualNetworkProfile,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy