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

com.pulumi.googlenative.domains.v1beta1.kotlin.inputs.CustomDnsArgs.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.

The newest version!
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.googlenative.domains.v1beta1.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.domains.v1beta1.inputs.CustomDnsArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Configuration for an arbitrary DNS provider.
 * @property dsRecords The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.
 * @property nameServers A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format.
 */
public data class CustomDnsArgs(
    public val dsRecords: Output>? = null,
    public val nameServers: Output>,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.domains.v1beta1.inputs.CustomDnsArgs =
        com.pulumi.googlenative.domains.v1beta1.inputs.CustomDnsArgs.builder()
            .dsRecords(
                dsRecords?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .nameServers(nameServers.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [CustomDnsArgs].
 */
@PulumiTagMarker
public class CustomDnsArgsBuilder internal constructor() {
    private var dsRecords: Output>? = null

    private var nameServers: Output>? = null

    /**
     * @param value The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.
     */
    @JvmName("dklsnbpnjkodfxne")
    public suspend fun dsRecords(`value`: Output>) {
        this.dsRecords = value
    }

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

    /**
     * @param values The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.
     */
    @JvmName("feouboenkdhupuau")
    public suspend fun dsRecords(values: List>) {
        this.dsRecords = Output.all(values)
    }

    /**
     * @param value A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format.
     */
    @JvmName("ypyydponkpnruwqj")
    public suspend fun nameServers(`value`: Output>) {
        this.nameServers = value
    }

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

    /**
     * @param values A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format.
     */
    @JvmName("fucsrlfotvsskovl")
    public suspend fun nameServers(values: List>) {
        this.nameServers = Output.all(values)
    }

    /**
     * @param value The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.
     */
    @JvmName("ssnmdxvjxrrkitqn")
    public suspend fun dsRecords(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dsRecords = mapped
    }

    /**
     * @param argument The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.
     */
    @JvmName("cbahbnvojbyfxlol")
    public suspend fun dsRecords(argument: List Unit>) {
        val toBeMapped = argument.toList().map { DsRecordArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.dsRecords = mapped
    }

    /**
     * @param argument The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.
     */
    @JvmName("hpfwieeejjouvodc")
    public suspend fun dsRecords(vararg argument: suspend DsRecordArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { DsRecordArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.dsRecords = mapped
    }

    /**
     * @param argument The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.
     */
    @JvmName("nnjuyptebeihbjer")
    public suspend fun dsRecords(argument: suspend DsRecordArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(DsRecordArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.dsRecords = mapped
    }

    /**
     * @param values The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.
     */
    @JvmName("scsdsckrovtlbypf")
    public suspend fun dsRecords(vararg values: DsRecordArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dsRecords = mapped
    }

    /**
     * @param value A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format.
     */
    @JvmName("jvldjmxxcjxvlhfh")
    public suspend fun nameServers(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.nameServers = mapped
    }

    /**
     * @param values A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format.
     */
    @JvmName("pycujjarrofqprvl")
    public suspend fun nameServers(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.nameServers = mapped
    }

    internal fun build(): CustomDnsArgs = CustomDnsArgs(
        dsRecords = dsRecords,
        nameServers = nameServers ?: throw PulumiNullFieldException("nameServers"),
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy