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

com.pulumi.gcp.certificateauthority.kotlin.inputs.CertificateConfigX509ConfigNameConstraintsArgs.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.certificateauthority.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigNameConstraintsArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property critical Indicates whether or not the name constraints are marked critical.
 * @property excludedDnsNames Contains excluded DNS names. Any DNS name that can be
 * constructed by simply adding zero or more labels to
 * the left-hand side of the name satisfies the name constraint.
 * For example, `example.com`, `www.example.com`, `www.sub.example.com`
 * would satisfy `example.com` while `example1.com` does not.
 * @property excludedEmailAddresses Contains the excluded email addresses. The value can be a particular
 * email address, a hostname to indicate all email addresses on that host or
 * a domain with a leading period (e.g. `.example.com`) to indicate
 * all email addresses in that domain.
 * @property excludedIpRanges Contains the excluded IP ranges. For IPv4 addresses, the ranges
 * are expressed using CIDR notation as specified in RFC 4632.
 * For IPv6 addresses, the ranges are expressed in similar encoding as IPv4
 * addresses.
 * @property excludedUris Contains the excluded URIs that apply to the host part of the name.
 * The value can be a hostname or a domain with a
 * leading period (like `.example.com`)
 * @property permittedDnsNames Contains permitted DNS names. Any DNS name that can be
 * constructed by simply adding zero or more labels to
 * the left-hand side of the name satisfies the name constraint.
 * For example, `example.com`, `www.example.com`, `www.sub.example.com`
 * would satisfy `example.com` while `example1.com` does not.
 * @property permittedEmailAddresses Contains the permitted email addresses. The value can be a particular
 * email address, a hostname to indicate all email addresses on that host or
 * a domain with a leading period (e.g. `.example.com`) to indicate
 * all email addresses in that domain.
 * @property permittedIpRanges Contains the permitted IP ranges. For IPv4 addresses, the ranges
 * are expressed using CIDR notation as specified in RFC 4632.
 * For IPv6 addresses, the ranges are expressed in similar encoding as IPv4
 * addresses.
 * @property permittedUris Contains the permitted URIs that apply to the host part of the name.
 * The value can be a hostname or a domain with a
 * leading period (like `.example.com`)
 */
public data class CertificateConfigX509ConfigNameConstraintsArgs(
    public val critical: Output,
    public val excludedDnsNames: Output>? = null,
    public val excludedEmailAddresses: Output>? = null,
    public val excludedIpRanges: Output>? = null,
    public val excludedUris: Output>? = null,
    public val permittedDnsNames: Output>? = null,
    public val permittedEmailAddresses: Output>? = null,
    public val permittedIpRanges: Output>? = null,
    public val permittedUris: Output>? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigNameConstraintsArgs =
        com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigNameConstraintsArgs.builder()
            .critical(critical.applyValue({ args0 -> args0 }))
            .excludedDnsNames(excludedDnsNames?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .excludedEmailAddresses(
                excludedEmailAddresses?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .excludedIpRanges(excludedIpRanges?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .excludedUris(excludedUris?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .permittedDnsNames(permittedDnsNames?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .permittedEmailAddresses(
                permittedEmailAddresses?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .permittedIpRanges(permittedIpRanges?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .permittedUris(permittedUris?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [CertificateConfigX509ConfigNameConstraintsArgs].
 */
@PulumiTagMarker
public class CertificateConfigX509ConfigNameConstraintsArgsBuilder internal constructor() {
    private var critical: Output? = null

    private var excludedDnsNames: Output>? = null

    private var excludedEmailAddresses: Output>? = null

    private var excludedIpRanges: Output>? = null

    private var excludedUris: Output>? = null

    private var permittedDnsNames: Output>? = null

    private var permittedEmailAddresses: Output>? = null

    private var permittedIpRanges: Output>? = null

    private var permittedUris: Output>? = null

    /**
     * @param value Indicates whether or not the name constraints are marked critical.
     */
    @JvmName("isxnrtohvdiawcux")
    public suspend fun critical(`value`: Output) {
        this.critical = value
    }

    /**
     * @param value Contains excluded DNS names. Any DNS name that can be
     * constructed by simply adding zero or more labels to
     * the left-hand side of the name satisfies the name constraint.
     * For example, `example.com`, `www.example.com`, `www.sub.example.com`
     * would satisfy `example.com` while `example1.com` does not.
     */
    @JvmName("dphmhbjqwaxmowjd")
    public suspend fun excludedDnsNames(`value`: Output>) {
        this.excludedDnsNames = value
    }

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

    /**
     * @param values Contains excluded DNS names. Any DNS name that can be
     * constructed by simply adding zero or more labels to
     * the left-hand side of the name satisfies the name constraint.
     * For example, `example.com`, `www.example.com`, `www.sub.example.com`
     * would satisfy `example.com` while `example1.com` does not.
     */
    @JvmName("kmkixkmdopfndegq")
    public suspend fun excludedDnsNames(values: List>) {
        this.excludedDnsNames = Output.all(values)
    }

    /**
     * @param value Contains the excluded email addresses. The value can be a particular
     * email address, a hostname to indicate all email addresses on that host or
     * a domain with a leading period (e.g. `.example.com`) to indicate
     * all email addresses in that domain.
     */
    @JvmName("tdgjliprwnkskfjd")
    public suspend fun excludedEmailAddresses(`value`: Output>) {
        this.excludedEmailAddresses = value
    }

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

    /**
     * @param values Contains the excluded email addresses. The value can be a particular
     * email address, a hostname to indicate all email addresses on that host or
     * a domain with a leading period (e.g. `.example.com`) to indicate
     * all email addresses in that domain.
     */
    @JvmName("unakfyegltntufkw")
    public suspend fun excludedEmailAddresses(values: List>) {
        this.excludedEmailAddresses = Output.all(values)
    }

    /**
     * @param value Contains the excluded IP ranges. For IPv4 addresses, the ranges
     * are expressed using CIDR notation as specified in RFC 4632.
     * For IPv6 addresses, the ranges are expressed in similar encoding as IPv4
     * addresses.
     */
    @JvmName("baeyliucpfiracpj")
    public suspend fun excludedIpRanges(`value`: Output>) {
        this.excludedIpRanges = value
    }

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

    /**
     * @param values Contains the excluded IP ranges. For IPv4 addresses, the ranges
     * are expressed using CIDR notation as specified in RFC 4632.
     * For IPv6 addresses, the ranges are expressed in similar encoding as IPv4
     * addresses.
     */
    @JvmName("ensufvinfunektvb")
    public suspend fun excludedIpRanges(values: List>) {
        this.excludedIpRanges = Output.all(values)
    }

    /**
     * @param value Contains the excluded URIs that apply to the host part of the name.
     * The value can be a hostname or a domain with a
     * leading period (like `.example.com`)
     */
    @JvmName("ematqknlwtgsedtl")
    public suspend fun excludedUris(`value`: Output>) {
        this.excludedUris = value
    }

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

    /**
     * @param values Contains the excluded URIs that apply to the host part of the name.
     * The value can be a hostname or a domain with a
     * leading period (like `.example.com`)
     */
    @JvmName("mjlkjadjjkkjlgmk")
    public suspend fun excludedUris(values: List>) {
        this.excludedUris = Output.all(values)
    }

    /**
     * @param value Contains permitted DNS names. Any DNS name that can be
     * constructed by simply adding zero or more labels to
     * the left-hand side of the name satisfies the name constraint.
     * For example, `example.com`, `www.example.com`, `www.sub.example.com`
     * would satisfy `example.com` while `example1.com` does not.
     */
    @JvmName("wqqtqjyygrwnwmql")
    public suspend fun permittedDnsNames(`value`: Output>) {
        this.permittedDnsNames = value
    }

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

    /**
     * @param values Contains permitted DNS names. Any DNS name that can be
     * constructed by simply adding zero or more labels to
     * the left-hand side of the name satisfies the name constraint.
     * For example, `example.com`, `www.example.com`, `www.sub.example.com`
     * would satisfy `example.com` while `example1.com` does not.
     */
    @JvmName("ygtegxrxbimrcugn")
    public suspend fun permittedDnsNames(values: List>) {
        this.permittedDnsNames = Output.all(values)
    }

    /**
     * @param value Contains the permitted email addresses. The value can be a particular
     * email address, a hostname to indicate all email addresses on that host or
     * a domain with a leading period (e.g. `.example.com`) to indicate
     * all email addresses in that domain.
     */
    @JvmName("igmngogphtmjgyvj")
    public suspend fun permittedEmailAddresses(`value`: Output>) {
        this.permittedEmailAddresses = value
    }

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

    /**
     * @param values Contains the permitted email addresses. The value can be a particular
     * email address, a hostname to indicate all email addresses on that host or
     * a domain with a leading period (e.g. `.example.com`) to indicate
     * all email addresses in that domain.
     */
    @JvmName("daqpvhjhrclsayep")
    public suspend fun permittedEmailAddresses(values: List>) {
        this.permittedEmailAddresses = Output.all(values)
    }

    /**
     * @param value Contains the permitted IP ranges. For IPv4 addresses, the ranges
     * are expressed using CIDR notation as specified in RFC 4632.
     * For IPv6 addresses, the ranges are expressed in similar encoding as IPv4
     * addresses.
     */
    @JvmName("jxiowlrvxbkkjobu")
    public suspend fun permittedIpRanges(`value`: Output>) {
        this.permittedIpRanges = value
    }

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

    /**
     * @param values Contains the permitted IP ranges. For IPv4 addresses, the ranges
     * are expressed using CIDR notation as specified in RFC 4632.
     * For IPv6 addresses, the ranges are expressed in similar encoding as IPv4
     * addresses.
     */
    @JvmName("ywppwfeisoeivhdd")
    public suspend fun permittedIpRanges(values: List>) {
        this.permittedIpRanges = Output.all(values)
    }

    /**
     * @param value Contains the permitted URIs that apply to the host part of the name.
     * The value can be a hostname or a domain with a
     * leading period (like `.example.com`)
     */
    @JvmName("hthqihgciyysyvph")
    public suspend fun permittedUris(`value`: Output>) {
        this.permittedUris = value
    }

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

    /**
     * @param values Contains the permitted URIs that apply to the host part of the name.
     * The value can be a hostname or a domain with a
     * leading period (like `.example.com`)
     */
    @JvmName("uwwidoxratxhoxyn")
    public suspend fun permittedUris(values: List>) {
        this.permittedUris = Output.all(values)
    }

    /**
     * @param value Indicates whether or not the name constraints are marked critical.
     */
    @JvmName("bpbwsxynbtkbvwdx")
    public suspend fun critical(`value`: Boolean) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.critical = mapped
    }

    /**
     * @param value Contains excluded DNS names. Any DNS name that can be
     * constructed by simply adding zero or more labels to
     * the left-hand side of the name satisfies the name constraint.
     * For example, `example.com`, `www.example.com`, `www.sub.example.com`
     * would satisfy `example.com` while `example1.com` does not.
     */
    @JvmName("aibnvehavqeojyjl")
    public suspend fun excludedDnsNames(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludedDnsNames = mapped
    }

    /**
     * @param values Contains excluded DNS names. Any DNS name that can be
     * constructed by simply adding zero or more labels to
     * the left-hand side of the name satisfies the name constraint.
     * For example, `example.com`, `www.example.com`, `www.sub.example.com`
     * would satisfy `example.com` while `example1.com` does not.
     */
    @JvmName("vmkouuenrcpmittb")
    public suspend fun excludedDnsNames(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludedDnsNames = mapped
    }

    /**
     * @param value Contains the excluded email addresses. The value can be a particular
     * email address, a hostname to indicate all email addresses on that host or
     * a domain with a leading period (e.g. `.example.com`) to indicate
     * all email addresses in that domain.
     */
    @JvmName("qypkhexpihwxirks")
    public suspend fun excludedEmailAddresses(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludedEmailAddresses = mapped
    }

    /**
     * @param values Contains the excluded email addresses. The value can be a particular
     * email address, a hostname to indicate all email addresses on that host or
     * a domain with a leading period (e.g. `.example.com`) to indicate
     * all email addresses in that domain.
     */
    @JvmName("ufmmavnijxfkelsa")
    public suspend fun excludedEmailAddresses(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludedEmailAddresses = mapped
    }

    /**
     * @param value Contains the excluded IP ranges. For IPv4 addresses, the ranges
     * are expressed using CIDR notation as specified in RFC 4632.
     * For IPv6 addresses, the ranges are expressed in similar encoding as IPv4
     * addresses.
     */
    @JvmName("xbpdfyeiqiygtxhy")
    public suspend fun excludedIpRanges(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludedIpRanges = mapped
    }

    /**
     * @param values Contains the excluded IP ranges. For IPv4 addresses, the ranges
     * are expressed using CIDR notation as specified in RFC 4632.
     * For IPv6 addresses, the ranges are expressed in similar encoding as IPv4
     * addresses.
     */
    @JvmName("foycafwhmuvxnksd")
    public suspend fun excludedIpRanges(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludedIpRanges = mapped
    }

    /**
     * @param value Contains the excluded URIs that apply to the host part of the name.
     * The value can be a hostname or a domain with a
     * leading period (like `.example.com`)
     */
    @JvmName("faqulpogxbwysunk")
    public suspend fun excludedUris(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludedUris = mapped
    }

    /**
     * @param values Contains the excluded URIs that apply to the host part of the name.
     * The value can be a hostname or a domain with a
     * leading period (like `.example.com`)
     */
    @JvmName("vrwwmmissxhpfgwv")
    public suspend fun excludedUris(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludedUris = mapped
    }

    /**
     * @param value Contains permitted DNS names. Any DNS name that can be
     * constructed by simply adding zero or more labels to
     * the left-hand side of the name satisfies the name constraint.
     * For example, `example.com`, `www.example.com`, `www.sub.example.com`
     * would satisfy `example.com` while `example1.com` does not.
     */
    @JvmName("frjucyywduqrptpc")
    public suspend fun permittedDnsNames(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.permittedDnsNames = mapped
    }

    /**
     * @param values Contains permitted DNS names. Any DNS name that can be
     * constructed by simply adding zero or more labels to
     * the left-hand side of the name satisfies the name constraint.
     * For example, `example.com`, `www.example.com`, `www.sub.example.com`
     * would satisfy `example.com` while `example1.com` does not.
     */
    @JvmName("xhxxxvwuunqkkakw")
    public suspend fun permittedDnsNames(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.permittedDnsNames = mapped
    }

    /**
     * @param value Contains the permitted email addresses. The value can be a particular
     * email address, a hostname to indicate all email addresses on that host or
     * a domain with a leading period (e.g. `.example.com`) to indicate
     * all email addresses in that domain.
     */
    @JvmName("gmsfdqbbxkmvwmir")
    public suspend fun permittedEmailAddresses(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.permittedEmailAddresses = mapped
    }

    /**
     * @param values Contains the permitted email addresses. The value can be a particular
     * email address, a hostname to indicate all email addresses on that host or
     * a domain with a leading period (e.g. `.example.com`) to indicate
     * all email addresses in that domain.
     */
    @JvmName("enaynkxdecgrtimp")
    public suspend fun permittedEmailAddresses(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.permittedEmailAddresses = mapped
    }

    /**
     * @param value Contains the permitted IP ranges. For IPv4 addresses, the ranges
     * are expressed using CIDR notation as specified in RFC 4632.
     * For IPv6 addresses, the ranges are expressed in similar encoding as IPv4
     * addresses.
     */
    @JvmName("slixebgcxvrrqnvs")
    public suspend fun permittedIpRanges(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.permittedIpRanges = mapped
    }

    /**
     * @param values Contains the permitted IP ranges. For IPv4 addresses, the ranges
     * are expressed using CIDR notation as specified in RFC 4632.
     * For IPv6 addresses, the ranges are expressed in similar encoding as IPv4
     * addresses.
     */
    @JvmName("qfkyvuxurwfuplbk")
    public suspend fun permittedIpRanges(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.permittedIpRanges = mapped
    }

    /**
     * @param value Contains the permitted URIs that apply to the host part of the name.
     * The value can be a hostname or a domain with a
     * leading period (like `.example.com`)
     */
    @JvmName("qabtaepqlpfmnvix")
    public suspend fun permittedUris(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.permittedUris = mapped
    }

    /**
     * @param values Contains the permitted URIs that apply to the host part of the name.
     * The value can be a hostname or a domain with a
     * leading period (like `.example.com`)
     */
    @JvmName("tjomtaybqvhfkhrq")
    public suspend fun permittedUris(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.permittedUris = mapped
    }

    internal fun build(): CertificateConfigX509ConfigNameConstraintsArgs =
        CertificateConfigX509ConfigNameConstraintsArgs(
            critical = critical ?: throw PulumiNullFieldException("critical"),
            excludedDnsNames = excludedDnsNames,
            excludedEmailAddresses = excludedEmailAddresses,
            excludedIpRanges = excludedIpRanges,
            excludedUris = excludedUris,
            permittedDnsNames = permittedDnsNames,
            permittedEmailAddresses = permittedEmailAddresses,
            permittedIpRanges = permittedIpRanges,
            permittedUris = permittedUris,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy