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

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

package com.pulumi.gcp.compute.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property externalIpv6 The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
 * @property externalIpv6PrefixLength The prefix length of the external IPv6 range.
 * @property name The name of the instance template. If you leave
 * this blank, the provider will auto-generate a unique name.
 * @property networkTier The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
 * @property publicPtrDomainName The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
 */
public data class InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs(
    public val externalIpv6: Output? = null,
    public val externalIpv6PrefixLength: Output? = null,
    public val name: Output? = null,
    public val networkTier: Output,
    public val publicPtrDomainName: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs =
        com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs.builder()
            .externalIpv6(externalIpv6?.applyValue({ args0 -> args0 }))
            .externalIpv6PrefixLength(externalIpv6PrefixLength?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .networkTier(networkTier.applyValue({ args0 -> args0 }))
            .publicPtrDomainName(publicPtrDomainName?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs].
 */
@PulumiTagMarker
public class InstanceTemplateNetworkInterfaceIpv6AccessConfigArgsBuilder internal constructor() {
    private var externalIpv6: Output? = null

    private var externalIpv6PrefixLength: Output? = null

    private var name: Output? = null

    private var networkTier: Output? = null

    private var publicPtrDomainName: Output? = null

    /**
     * @param value The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
     */
    @JvmName("cyljgjgmvkouvsjp")
    public suspend fun externalIpv6(`value`: Output) {
        this.externalIpv6 = value
    }

    /**
     * @param value The prefix length of the external IPv6 range.
     */
    @JvmName("dbioesgsdysdcvnj")
    public suspend fun externalIpv6PrefixLength(`value`: Output) {
        this.externalIpv6PrefixLength = value
    }

    /**
     * @param value The name of the instance template. If you leave
     * this blank, the provider will auto-generate a unique name.
     */
    @JvmName("pdnyygxmsvtaapra")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
     */
    @JvmName("ffxmxvcpnobfegqc")
    public suspend fun networkTier(`value`: Output) {
        this.networkTier = value
    }

    /**
     * @param value The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
     */
    @JvmName("mogeuddcwbrjkyok")
    public suspend fun publicPtrDomainName(`value`: Output) {
        this.publicPtrDomainName = value
    }

    /**
     * @param value The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
     */
    @JvmName("duoauceshewfvilp")
    public suspend fun externalIpv6(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.externalIpv6 = mapped
    }

    /**
     * @param value The prefix length of the external IPv6 range.
     */
    @JvmName("mmdhouqxgbyqhhdn")
    public suspend fun externalIpv6PrefixLength(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.externalIpv6PrefixLength = mapped
    }

    /**
     * @param value The name of the instance template. If you leave
     * this blank, the provider will auto-generate a unique name.
     */
    @JvmName("wmqupxyrnuweluvs")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
     */
    @JvmName("xhmtybllpjiafmul")
    public suspend fun networkTier(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.networkTier = mapped
    }

    /**
     * @param value The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
     */
    @JvmName("qwshrobvmteuwgmk")
    public suspend fun publicPtrDomainName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicPtrDomainName = mapped
    }

    internal fun build(): InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs =
        InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs(
            externalIpv6 = externalIpv6,
            externalIpv6PrefixLength = externalIpv6PrefixLength,
            name = name,
            networkTier = networkTier ?: throw PulumiNullFieldException("networkTier"),
            publicPtrDomainName = publicPtrDomainName,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy