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

com.pulumi.gcp.compute.kotlin.inputs.InstanceNetworkInterfaceIpv6AccessConfigArgs.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.compute.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceIpv6AccessConfigArgs.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. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.
 * @property externalIpv6PrefixLength The prefix length of the external IPv6 range.
 * @property name A unique name for the resource, required by GCE.
 * Changing this forces a new resource to be created.
 * @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.
 * @property securityPolicy A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
 */
public data class InstanceNetworkInterfaceIpv6AccessConfigArgs(
    public val externalIpv6: Output? = null,
    public val externalIpv6PrefixLength: Output? = null,
    public val name: Output? = null,
    public val networkTier: Output,
    public val publicPtrDomainName: Output? = null,
    public val securityPolicy: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceIpv6AccessConfigArgs = com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceIpv6AccessConfigArgs.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 }))
        .securityPolicy(securityPolicy?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [InstanceNetworkInterfaceIpv6AccessConfigArgs].
 */
@PulumiTagMarker
public class InstanceNetworkInterfaceIpv6AccessConfigArgsBuilder 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

    private var securityPolicy: 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. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.
     */
    @JvmName("ldwhrbedhspjtsmf")
    public suspend fun externalIpv6(`value`: Output) {
        this.externalIpv6 = value
    }

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

    /**
     * @param value A unique name for the resource, required by GCE.
     * Changing this forces a new resource to be created.
     */
    @JvmName("vybapgdnargmtnqd")
    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("eqpwacbcetywytfx")
    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("aroamsnrubagdgsg")
    public suspend fun publicPtrDomainName(`value`: Output) {
        this.publicPtrDomainName = value
    }

    /**
     * @param value A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
     */
    @JvmName("esumkthhajsfsals")
    public suspend fun securityPolicy(`value`: Output) {
        this.securityPolicy = value
    }

    /**
     * @param value The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.
     */
    @JvmName("mvjltsfuxllvekvf")
    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("stseinqlkhyfehis")
    public suspend fun externalIpv6PrefixLength(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.externalIpv6PrefixLength = mapped
    }

    /**
     * @param value A unique name for the resource, required by GCE.
     * Changing this forces a new resource to be created.
     */
    @JvmName("uuugbdgvipsuugbw")
    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("scoivvigvwythncs")
    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("tseorovmbtdmjeca")
    public suspend fun publicPtrDomainName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicPtrDomainName = mapped
    }

    /**
     * @param value A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
     */
    @JvmName("iyjitriftmgmkteb")
    public suspend fun securityPolicy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.securityPolicy = mapped
    }

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy