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

com.pulumi.gcp.gkeonprem.kotlin.inputs.BareMetalClusterNetworkConfigArgs.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: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.gkeonprem.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigArgs.builder
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.jvm.JvmName

/**
 *
 * @property advancedNetworking Enables the use of advanced Anthos networking features, such as Bundled
 * Load Balancing with BGP or the egress NAT gateway.
 * Setting configuration for advanced networking features will automatically
 * set this flag.
 * @property islandModeCidr A nested object resource
 * Structure is documented below.
 * @property multipleNetworkInterfacesConfig Configuration for multiple network interfaces.
 * Structure is documented below.
 * @property srIovConfig Configuration for SR-IOV.
 * Structure is documented below.
 */
public data class BareMetalClusterNetworkConfigArgs(
    public val advancedNetworking: Output? = null,
    public val islandModeCidr: Output? = null,
    public val multipleNetworkInterfacesConfig: Output? = null,
    public val srIovConfig: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigArgs =
        com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterNetworkConfigArgs.builder()
            .advancedNetworking(advancedNetworking?.applyValue({ args0 -> args0 }))
            .islandModeCidr(islandModeCidr?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .multipleNetworkInterfacesConfig(
                multipleNetworkInterfacesConfig?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .srIovConfig(srIovConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [BareMetalClusterNetworkConfigArgs].
 */
@PulumiTagMarker
public class BareMetalClusterNetworkConfigArgsBuilder internal constructor() {
    private var advancedNetworking: Output? = null

    private var islandModeCidr: Output? = null

    private var multipleNetworkInterfacesConfig:
        Output? = null

    private var srIovConfig: Output? = null

    /**
     * @param value Enables the use of advanced Anthos networking features, such as Bundled
     * Load Balancing with BGP or the egress NAT gateway.
     * Setting configuration for advanced networking features will automatically
     * set this flag.
     */
    @JvmName("unuhhmbeqknbycgd")
    public suspend fun advancedNetworking(`value`: Output) {
        this.advancedNetworking = value
    }

    /**
     * @param value A nested object resource
     * Structure is documented below.
     */
    @JvmName("vnflgsnamdyoitid")
    public suspend fun islandModeCidr(`value`: Output) {
        this.islandModeCidr = value
    }

    /**
     * @param value Configuration for multiple network interfaces.
     * Structure is documented below.
     */
    @JvmName("bdukxrgdfutjsgoi")
    public suspend fun multipleNetworkInterfacesConfig(`value`: Output) {
        this.multipleNetworkInterfacesConfig = value
    }

    /**
     * @param value Configuration for SR-IOV.
     * Structure is documented below.
     */
    @JvmName("akaloksndnlaqjmr")
    public suspend fun srIovConfig(`value`: Output) {
        this.srIovConfig = value
    }

    /**
     * @param value Enables the use of advanced Anthos networking features, such as Bundled
     * Load Balancing with BGP or the egress NAT gateway.
     * Setting configuration for advanced networking features will automatically
     * set this flag.
     */
    @JvmName("wqmjkbtrprwawxds")
    public suspend fun advancedNetworking(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.advancedNetworking = mapped
    }

    /**
     * @param value A nested object resource
     * Structure is documented below.
     */
    @JvmName("tpxucquwajpgaioy")
    public suspend fun islandModeCidr(`value`: BareMetalClusterNetworkConfigIslandModeCidrArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.islandModeCidr = mapped
    }

    /**
     * @param argument A nested object resource
     * Structure is documented below.
     */
    @JvmName("yxjnbkmaxwrwhfjx")
    public suspend fun islandModeCidr(argument: suspend BareMetalClusterNetworkConfigIslandModeCidrArgsBuilder.() -> Unit) {
        val toBeMapped = BareMetalClusterNetworkConfigIslandModeCidrArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.islandModeCidr = mapped
    }

    /**
     * @param value Configuration for multiple network interfaces.
     * Structure is documented below.
     */
    @JvmName("satykfjtyfymxafe")
    public suspend fun multipleNetworkInterfacesConfig(`value`: BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.multipleNetworkInterfacesConfig = mapped
    }

    /**
     * @param argument Configuration for multiple network interfaces.
     * Structure is documented below.
     */
    @JvmName("vspsaedwbgyfjbde")
    public suspend fun multipleNetworkInterfacesConfig(argument: suspend BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgsBuilder.() -> Unit) {
        val toBeMapped =
            BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.multipleNetworkInterfacesConfig = mapped
    }

    /**
     * @param value Configuration for SR-IOV.
     * Structure is documented below.
     */
    @JvmName("rludbetweenxbmll")
    public suspend fun srIovConfig(`value`: BareMetalClusterNetworkConfigSrIovConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.srIovConfig = mapped
    }

    /**
     * @param argument Configuration for SR-IOV.
     * Structure is documented below.
     */
    @JvmName("ucbkdqytgnhvbwsk")
    public suspend fun srIovConfig(argument: suspend BareMetalClusterNetworkConfigSrIovConfigArgsBuilder.() -> Unit) {
        val toBeMapped = BareMetalClusterNetworkConfigSrIovConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.srIovConfig = mapped
    }

    internal fun build(): BareMetalClusterNetworkConfigArgs = BareMetalClusterNetworkConfigArgs(
        advancedNetworking = advancedNetworking,
        islandModeCidr = islandModeCidr,
        multipleNetworkInterfacesConfig = multipleNetworkInterfacesConfig,
        srIovConfig = srIovConfig,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy