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

com.pulumi.awsnative.acmpca.kotlin.inputs.CertificateExtensionsArgs.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: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.acmpca.kotlin.inputs

import com.pulumi.awsnative.acmpca.inputs.CertificateExtensionsArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Contains X.509 extension information for a certificate.
 * @property certificatePolicies Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier).
 *  In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate.
 * @property customExtensions Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29)
 * @property extendedKeyUsage Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the ``KeyUsage`` extension.
 * @property keyUsage Defines one or more purposes for which the key contained in the certificate can be used. Default value for each option is false.
 * @property subjectAlternativeNames The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate.
 */
public data class CertificateExtensionsArgs(
    public val certificatePolicies: Output>? = null,
    public val customExtensions: Output>? = null,
    public val extendedKeyUsage: Output>? = null,
    public val keyUsage: Output? = null,
    public val subjectAlternativeNames: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.acmpca.inputs.CertificateExtensionsArgs =
        com.pulumi.awsnative.acmpca.inputs.CertificateExtensionsArgs.builder()
            .certificatePolicies(
                certificatePolicies?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .customExtensions(
                customExtensions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .extendedKeyUsage(
                extendedKeyUsage?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .keyUsage(keyUsage?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .subjectAlternativeNames(
                subjectAlternativeNames?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            ).build()
}

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

    private var customExtensions: Output>? = null

    private var extendedKeyUsage: Output>? = null

    private var keyUsage: Output? = null

    private var subjectAlternativeNames: Output>? = null

    /**
     * @param value Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier).
     *  In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate.
     */
    @JvmName("lvitfkungoggvwjd")
    public suspend fun certificatePolicies(`value`: Output>) {
        this.certificatePolicies = value
    }

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

    /**
     * @param values Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier).
     *  In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate.
     */
    @JvmName("rqwkuunltqhrqywx")
    public suspend fun certificatePolicies(values: List>) {
        this.certificatePolicies = Output.all(values)
    }

    /**
     * @param value Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29)
     */
    @JvmName("jvqwpiwbopsouhoq")
    public suspend fun customExtensions(`value`: Output>) {
        this.customExtensions = value
    }

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

    /**
     * @param values Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29)
     */
    @JvmName("mmuohflxhgxcbjah")
    public suspend fun customExtensions(values: List>) {
        this.customExtensions = Output.all(values)
    }

    /**
     * @param value Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the ``KeyUsage`` extension.
     */
    @JvmName("trgqtbcdqbihosox")
    public suspend fun extendedKeyUsage(`value`: Output>) {
        this.extendedKeyUsage = value
    }

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

    /**
     * @param values Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the ``KeyUsage`` extension.
     */
    @JvmName("qmrkctjbhduhymjd")
    public suspend fun extendedKeyUsage(values: List>) {
        this.extendedKeyUsage = Output.all(values)
    }

    /**
     * @param value Defines one or more purposes for which the key contained in the certificate can be used. Default value for each option is false.
     */
    @JvmName("wxfahuxjdvvyvdxx")
    public suspend fun keyUsage(`value`: Output) {
        this.keyUsage = value
    }

    /**
     * @param value The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate.
     */
    @JvmName("foeblesmgrkrugts")
    public suspend fun subjectAlternativeNames(`value`: Output>) {
        this.subjectAlternativeNames = value
    }

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

    /**
     * @param values The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate.
     */
    @JvmName("ciyumqyumqeehwec")
    public suspend fun subjectAlternativeNames(values: List>) {
        this.subjectAlternativeNames = Output.all(values)
    }

    /**
     * @param value Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier).
     *  In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate.
     */
    @JvmName("jnmxfvrvkmvipdsb")
    public suspend fun certificatePolicies(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.certificatePolicies = mapped
    }

    /**
     * @param argument Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier).
     *  In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate.
     */
    @JvmName("ahwxswbjubdvxwqw")
    public suspend fun certificatePolicies(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            CertificatePolicyInformationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.certificatePolicies = mapped
    }

    /**
     * @param argument Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier).
     *  In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate.
     */
    @JvmName("mrrplvhgcvwyguab")
    public suspend fun certificatePolicies(vararg argument: suspend CertificatePolicyInformationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            CertificatePolicyInformationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.certificatePolicies = mapped
    }

    /**
     * @param argument Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier).
     *  In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate.
     */
    @JvmName("ujskogabgjmlyfqe")
    public suspend fun certificatePolicies(argument: suspend CertificatePolicyInformationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            CertificatePolicyInformationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.certificatePolicies = mapped
    }

    /**
     * @param values Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier).
     *  In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate.
     */
    @JvmName("rpeoaqtqxpxiuyca")
    public suspend fun certificatePolicies(vararg values: CertificatePolicyInformationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.certificatePolicies = mapped
    }

    /**
     * @param value Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29)
     */
    @JvmName("ctybfiwrwpnweatp")
    public suspend fun customExtensions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customExtensions = mapped
    }

    /**
     * @param argument Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29)
     */
    @JvmName("mlivllaumgwlyhlt")
    public suspend fun customExtensions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            CertificateCustomExtensionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.customExtensions = mapped
    }

    /**
     * @param argument Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29)
     */
    @JvmName("grmoojpkhgwmnstg")
    public suspend fun customExtensions(vararg argument: suspend CertificateCustomExtensionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            CertificateCustomExtensionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.customExtensions = mapped
    }

    /**
     * @param argument Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29)
     */
    @JvmName("axaicowguenxhukd")
    public suspend fun customExtensions(argument: suspend CertificateCustomExtensionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            CertificateCustomExtensionArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.customExtensions = mapped
    }

    /**
     * @param values Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29)
     */
    @JvmName("iukxdtkxlylooymx")
    public suspend fun customExtensions(vararg values: CertificateCustomExtensionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.customExtensions = mapped
    }

    /**
     * @param value Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the ``KeyUsage`` extension.
     */
    @JvmName("trsicdnxtewlpavj")
    public suspend fun extendedKeyUsage(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.extendedKeyUsage = mapped
    }

    /**
     * @param argument Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the ``KeyUsage`` extension.
     */
    @JvmName("eumumknrhfatrngs")
    public suspend fun extendedKeyUsage(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            CertificateExtendedKeyUsageArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.extendedKeyUsage = mapped
    }

    /**
     * @param argument Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the ``KeyUsage`` extension.
     */
    @JvmName("xbqeivwokluglnla")
    public suspend fun extendedKeyUsage(vararg argument: suspend CertificateExtendedKeyUsageArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            CertificateExtendedKeyUsageArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.extendedKeyUsage = mapped
    }

    /**
     * @param argument Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the ``KeyUsage`` extension.
     */
    @JvmName("qmbebwgbglhlbrsq")
    public suspend fun extendedKeyUsage(argument: suspend CertificateExtendedKeyUsageArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            CertificateExtendedKeyUsageArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.extendedKeyUsage = mapped
    }

    /**
     * @param values Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the ``KeyUsage`` extension.
     */
    @JvmName("fymxvkwkgrdcsaoc")
    public suspend fun extendedKeyUsage(vararg values: CertificateExtendedKeyUsageArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.extendedKeyUsage = mapped
    }

    /**
     * @param value Defines one or more purposes for which the key contained in the certificate can be used. Default value for each option is false.
     */
    @JvmName("uqlminucdcigtrec")
    public suspend fun keyUsage(`value`: CertificateKeyUsageArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keyUsage = mapped
    }

    /**
     * @param argument Defines one or more purposes for which the key contained in the certificate can be used. Default value for each option is false.
     */
    @JvmName("ojcaphodoraitvhu")
    public suspend fun keyUsage(argument: suspend CertificateKeyUsageArgsBuilder.() -> Unit) {
        val toBeMapped = CertificateKeyUsageArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.keyUsage = mapped
    }

    /**
     * @param value The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate.
     */
    @JvmName("xwxcyumsivwyqakc")
    public suspend fun subjectAlternativeNames(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subjectAlternativeNames = mapped
    }

    /**
     * @param argument The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate.
     */
    @JvmName("ajkpdpyopgcbxncq")
    public suspend fun subjectAlternativeNames(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            CertificateGeneralNameArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.subjectAlternativeNames = mapped
    }

    /**
     * @param argument The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate.
     */
    @JvmName("ygcjccrwanvtuvef")
    public suspend fun subjectAlternativeNames(vararg argument: suspend CertificateGeneralNameArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            CertificateGeneralNameArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.subjectAlternativeNames = mapped
    }

    /**
     * @param argument The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate.
     */
    @JvmName("siutvgvrcsojspoh")
    public suspend fun subjectAlternativeNames(argument: suspend CertificateGeneralNameArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(CertificateGeneralNameArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.subjectAlternativeNames = mapped
    }

    /**
     * @param values The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate.
     */
    @JvmName("grcrykekhgbkrpip")
    public suspend fun subjectAlternativeNames(vararg values: CertificateGeneralNameArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.subjectAlternativeNames = mapped
    }

    internal fun build(): CertificateExtensionsArgs = CertificateExtensionsArgs(
        certificatePolicies = certificatePolicies,
        customExtensions = customExtensions,
        extendedKeyUsage = extendedKeyUsage,
        keyUsage = keyUsage,
        subjectAlternativeNames = subjectAlternativeNames,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy