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

com.pulumi.azurenative.azurestackhci.kotlin.inputs.HostNetworkArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.azurestackhci.kotlin.inputs

import com.pulumi.azurenative.azurestackhci.inputs.HostNetworkArgs.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.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * The HostNetwork of a cluster.
 * @property enableStorageAutoIp Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.
 * @property intents The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.
 * @property storageConnectivitySwitchless Defines how the storage adapters between nodes are connected either switch or switch less..
 * @property storageNetworks List of StorageNetworks config to deploy AzureStackHCI Cluster.
 */
public data class HostNetworkArgs(
    public val enableStorageAutoIp: Output? = null,
    public val intents: Output>? = null,
    public val storageConnectivitySwitchless: Output? = null,
    public val storageNetworks: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.azurestackhci.inputs.HostNetworkArgs =
        com.pulumi.azurenative.azurestackhci.inputs.HostNetworkArgs.builder()
            .enableStorageAutoIp(enableStorageAutoIp?.applyValue({ args0 -> args0 }))
            .intents(
                intents?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .storageConnectivitySwitchless(storageConnectivitySwitchless?.applyValue({ args0 -> args0 }))
            .storageNetworks(
                storageNetworks?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [HostNetworkArgs].
 */
@PulumiTagMarker
public class HostNetworkArgsBuilder internal constructor() {
    private var enableStorageAutoIp: Output? = null

    private var intents: Output>? = null

    private var storageConnectivitySwitchless: Output? = null

    private var storageNetworks: Output>? = null

    /**
     * @param value Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.
     */
    @JvmName("gtbrmtxbtgelrdiv")
    public suspend fun enableStorageAutoIp(`value`: Output) {
        this.enableStorageAutoIp = value
    }

    /**
     * @param value The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.
     */
    @JvmName("kdxrrrxcebgulmrr")
    public suspend fun intents(`value`: Output>) {
        this.intents = value
    }

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

    /**
     * @param values The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.
     */
    @JvmName("dluagwdwpsfbxsyb")
    public suspend fun intents(values: List>) {
        this.intents = Output.all(values)
    }

    /**
     * @param value Defines how the storage adapters between nodes are connected either switch or switch less..
     */
    @JvmName("dyiaeeoyvjdrjjkj")
    public suspend fun storageConnectivitySwitchless(`value`: Output) {
        this.storageConnectivitySwitchless = value
    }

    /**
     * @param value List of StorageNetworks config to deploy AzureStackHCI Cluster.
     */
    @JvmName("vrujpwuaewkruyeg")
    public suspend fun storageNetworks(`value`: Output>) {
        this.storageNetworks = value
    }

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

    /**
     * @param values List of StorageNetworks config to deploy AzureStackHCI Cluster.
     */
    @JvmName("ugyjyqhqrcpoifim")
    public suspend fun storageNetworks(values: List>) {
        this.storageNetworks = Output.all(values)
    }

    /**
     * @param value Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.
     */
    @JvmName("ffbuhwpglbopgrvm")
    public suspend fun enableStorageAutoIp(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableStorageAutoIp = mapped
    }

    /**
     * @param value The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.
     */
    @JvmName("nvfpxpaibbukkigo")
    public suspend fun intents(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.intents = mapped
    }

    /**
     * @param argument The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.
     */
    @JvmName("oernycpytttvhbwc")
    public suspend fun intents(argument: List Unit>) {
        val toBeMapped = argument.toList().map { IntentsArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.intents = mapped
    }

    /**
     * @param argument The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.
     */
    @JvmName("pthkohqjfxiwwpmy")
    public suspend fun intents(vararg argument: suspend IntentsArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { IntentsArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.intents = mapped
    }

    /**
     * @param argument The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.
     */
    @JvmName("kshsajewmpojbuqe")
    public suspend fun intents(argument: suspend IntentsArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(IntentsArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.intents = mapped
    }

    /**
     * @param values The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.
     */
    @JvmName("qktfxnnelsmhrnwi")
    public suspend fun intents(vararg values: IntentsArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.intents = mapped
    }

    /**
     * @param value Defines how the storage adapters between nodes are connected either switch or switch less..
     */
    @JvmName("ipuwxkuqqqongbxb")
    public suspend fun storageConnectivitySwitchless(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageConnectivitySwitchless = mapped
    }

    /**
     * @param value List of StorageNetworks config to deploy AzureStackHCI Cluster.
     */
    @JvmName("hwxssoaxlqsnvjiy")
    public suspend fun storageNetworks(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageNetworks = mapped
    }

    /**
     * @param argument List of StorageNetworks config to deploy AzureStackHCI Cluster.
     */
    @JvmName("luhsluiirejvyrjy")
    public suspend fun storageNetworks(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            StorageNetworksArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.storageNetworks = mapped
    }

    /**
     * @param argument List of StorageNetworks config to deploy AzureStackHCI Cluster.
     */
    @JvmName("lgpspgtjtmsxwgyw")
    public suspend fun storageNetworks(vararg argument: suspend StorageNetworksArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            StorageNetworksArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.storageNetworks = mapped
    }

    /**
     * @param argument List of StorageNetworks config to deploy AzureStackHCI Cluster.
     */
    @JvmName("bcwgtklemtjyulic")
    public suspend fun storageNetworks(argument: suspend StorageNetworksArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(StorageNetworksArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.storageNetworks = mapped
    }

    /**
     * @param values List of StorageNetworks config to deploy AzureStackHCI Cluster.
     */
    @JvmName("vlqabowgrtcaasvi")
    public suspend fun storageNetworks(vararg values: StorageNetworksArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.storageNetworks = mapped
    }

    internal fun build(): HostNetworkArgs = HostNetworkArgs(
        enableStorageAutoIp = enableStorageAutoIp,
        intents = intents,
        storageConnectivitySwitchless = storageConnectivitySwitchless,
        storageNetworks = storageNetworks,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy