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

com.pulumi.gcp.compute.kotlin.inputs.RegionInstanceTemplateNetworkInterfaceIpv6AccessConfigArgs.kt Maven / Gradle / Ivy

@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.RegionInstanceTemplateNetworkInterfaceIpv6AccessConfigArgs.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 this access configuration.
 * @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 RegionInstanceTemplateNetworkInterfaceIpv6AccessConfigArgs(
    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.RegionInstanceTemplateNetworkInterfaceIpv6AccessConfigArgs =
        com.pulumi.gcp.compute.inputs.RegionInstanceTemplateNetworkInterfaceIpv6AccessConfigArgs.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 [RegionInstanceTemplateNetworkInterfaceIpv6AccessConfigArgs].
 */
@PulumiTagMarker
public class RegionInstanceTemplateNetworkInterfaceIpv6AccessConfigArgsBuilder 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("vppcbwglgqpvbnyf")
    public suspend fun externalIpv6(`value`: Output) {
        this.externalIpv6 = value
    }

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

    /**
     * @param value The name of this access configuration.
     */
    @JvmName("wxahiqoarugvqgwo")
    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("kcccmxsofhnmeutv")
    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("ikqcfxsyhlenwfaw")
    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("thwhycifbxhvesxc")
    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("imwjwmwalcmtxtbj")
    public suspend fun externalIpv6PrefixLength(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.externalIpv6PrefixLength = mapped
    }

    /**
     * @param value The name of this access configuration.
     */
    @JvmName("hbjirrgxmecpptvl")
    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("kjlawyxbdkseqdby")
    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("newaytlopgfbcphw")
    public suspend fun publicPtrDomainName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicPtrDomainName = mapped
    }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy