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

com.pulumi.gcp.apigee.kotlin.inputs.TargetServerSSlInfoArgs.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.apigee.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.apigee.inputs.TargetServerSSlInfoArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property ciphers The SSL/TLS cipher suites to be used. For programmable proxies, it must be one of the cipher suite names listed in: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites. For configurable proxies, it must follow the configuration specified in: https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration. This setting has no effect for configurable proxies when negotiating TLS 1.3.
 * @property clientAuthEnabled Enables two-way TLS.
 * @property commonName The TLS Common Name of the certificate.
 * Structure is documented below.
 * @property enabled Enables TLS. If false, neither one-way nor two-way TLS will be enabled.
 * @property ignoreValidationErrors If true, Edge ignores TLS certificate errors. Valid when configuring TLS for target servers and target endpoints, and when configuring virtual hosts that use 2-way TLS. When used with a target endpoint/target server, if the backend system uses SNI and returns a cert with a subject Distinguished Name (DN) that does not match the hostname, there is no way to ignore the error and the connection fails.
 * @property keyAlias Required if clientAuthEnabled is true. The resource ID for the alias containing the private key and cert.
 * @property keyStore Required if clientAuthEnabled is true. The resource ID of the keystore.
 * @property protocols The TLS versioins to be used.
 * @property trustStore The resource ID of the truststore.
 */
public data class TargetServerSSlInfoArgs(
    public val ciphers: Output>? = null,
    public val clientAuthEnabled: Output? = null,
    public val commonName: Output? = null,
    public val enabled: Output,
    public val ignoreValidationErrors: Output? = null,
    public val keyAlias: Output? = null,
    public val keyStore: Output? = null,
    public val protocols: Output>? = null,
    public val trustStore: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.apigee.inputs.TargetServerSSlInfoArgs =
        com.pulumi.gcp.apigee.inputs.TargetServerSSlInfoArgs.builder()
            .ciphers(ciphers?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .clientAuthEnabled(clientAuthEnabled?.applyValue({ args0 -> args0 }))
            .commonName(commonName?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .enabled(enabled.applyValue({ args0 -> args0 }))
            .ignoreValidationErrors(ignoreValidationErrors?.applyValue({ args0 -> args0 }))
            .keyAlias(keyAlias?.applyValue({ args0 -> args0 }))
            .keyStore(keyStore?.applyValue({ args0 -> args0 }))
            .protocols(protocols?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .trustStore(trustStore?.applyValue({ args0 -> args0 })).build()
}

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

    private var clientAuthEnabled: Output? = null

    private var commonName: Output? = null

    private var enabled: Output? = null

    private var ignoreValidationErrors: Output? = null

    private var keyAlias: Output? = null

    private var keyStore: Output? = null

    private var protocols: Output>? = null

    private var trustStore: Output? = null

    /**
     * @param value The SSL/TLS cipher suites to be used. For programmable proxies, it must be one of the cipher suite names listed in: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites. For configurable proxies, it must follow the configuration specified in: https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration. This setting has no effect for configurable proxies when negotiating TLS 1.3.
     */
    @JvmName("etdgokohjsrxktfo")
    public suspend fun ciphers(`value`: Output>) {
        this.ciphers = value
    }

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

    /**
     * @param values The SSL/TLS cipher suites to be used. For programmable proxies, it must be one of the cipher suite names listed in: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites. For configurable proxies, it must follow the configuration specified in: https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration. This setting has no effect for configurable proxies when negotiating TLS 1.3.
     */
    @JvmName("ixncqyvokkfcbcsr")
    public suspend fun ciphers(values: List>) {
        this.ciphers = Output.all(values)
    }

    /**
     * @param value Enables two-way TLS.
     */
    @JvmName("ucqwwebqkjcujgba")
    public suspend fun clientAuthEnabled(`value`: Output) {
        this.clientAuthEnabled = value
    }

    /**
     * @param value The TLS Common Name of the certificate.
     * Structure is documented below.
     */
    @JvmName("jncvqbiytesmkdod")
    public suspend fun commonName(`value`: Output) {
        this.commonName = value
    }

    /**
     * @param value Enables TLS. If false, neither one-way nor two-way TLS will be enabled.
     */
    @JvmName("qevyjycyogdwuddl")
    public suspend fun enabled(`value`: Output) {
        this.enabled = value
    }

    /**
     * @param value If true, Edge ignores TLS certificate errors. Valid when configuring TLS for target servers and target endpoints, and when configuring virtual hosts that use 2-way TLS. When used with a target endpoint/target server, if the backend system uses SNI and returns a cert with a subject Distinguished Name (DN) that does not match the hostname, there is no way to ignore the error and the connection fails.
     */
    @JvmName("kkbhrgiasevdtppb")
    public suspend fun ignoreValidationErrors(`value`: Output) {
        this.ignoreValidationErrors = value
    }

    /**
     * @param value Required if clientAuthEnabled is true. The resource ID for the alias containing the private key and cert.
     */
    @JvmName("fvmkikdkpridlfuv")
    public suspend fun keyAlias(`value`: Output) {
        this.keyAlias = value
    }

    /**
     * @param value Required if clientAuthEnabled is true. The resource ID of the keystore.
     */
    @JvmName("thcrelhtdslymuhd")
    public suspend fun keyStore(`value`: Output) {
        this.keyStore = value
    }

    /**
     * @param value The TLS versioins to be used.
     */
    @JvmName("ubxxwticbtnuwdom")
    public suspend fun protocols(`value`: Output>) {
        this.protocols = value
    }

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

    /**
     * @param values The TLS versioins to be used.
     */
    @JvmName("adirebuodrbgdget")
    public suspend fun protocols(values: List>) {
        this.protocols = Output.all(values)
    }

    /**
     * @param value The resource ID of the truststore.
     */
    @JvmName("hufcaxowxwklkaea")
    public suspend fun trustStore(`value`: Output) {
        this.trustStore = value
    }

    /**
     * @param value The SSL/TLS cipher suites to be used. For programmable proxies, it must be one of the cipher suite names listed in: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites. For configurable proxies, it must follow the configuration specified in: https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration. This setting has no effect for configurable proxies when negotiating TLS 1.3.
     */
    @JvmName("fsiydgblmsmoaikl")
    public suspend fun ciphers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ciphers = mapped
    }

    /**
     * @param values The SSL/TLS cipher suites to be used. For programmable proxies, it must be one of the cipher suite names listed in: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites. For configurable proxies, it must follow the configuration specified in: https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration. This setting has no effect for configurable proxies when negotiating TLS 1.3.
     */
    @JvmName("kpkegkguvetcnych")
    public suspend fun ciphers(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ciphers = mapped
    }

    /**
     * @param value Enables two-way TLS.
     */
    @JvmName("lygimuojkidffnjg")
    public suspend fun clientAuthEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientAuthEnabled = mapped
    }

    /**
     * @param value The TLS Common Name of the certificate.
     * Structure is documented below.
     */
    @JvmName("vqxfjggcncbcaqxi")
    public suspend fun commonName(`value`: TargetServerSSlInfoCommonNameArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.commonName = mapped
    }

    /**
     * @param argument The TLS Common Name of the certificate.
     * Structure is documented below.
     */
    @JvmName("dutsnmhuevnpeikv")
    public suspend fun commonName(argument: suspend TargetServerSSlInfoCommonNameArgsBuilder.() -> Unit) {
        val toBeMapped = TargetServerSSlInfoCommonNameArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.commonName = mapped
    }

    /**
     * @param value Enables TLS. If false, neither one-way nor two-way TLS will be enabled.
     */
    @JvmName("lqsuihijmegnqlre")
    public suspend fun enabled(`value`: Boolean) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.enabled = mapped
    }

    /**
     * @param value If true, Edge ignores TLS certificate errors. Valid when configuring TLS for target servers and target endpoints, and when configuring virtual hosts that use 2-way TLS. When used with a target endpoint/target server, if the backend system uses SNI and returns a cert with a subject Distinguished Name (DN) that does not match the hostname, there is no way to ignore the error and the connection fails.
     */
    @JvmName("bkiwpdckguysxcmx")
    public suspend fun ignoreValidationErrors(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ignoreValidationErrors = mapped
    }

    /**
     * @param value Required if clientAuthEnabled is true. The resource ID for the alias containing the private key and cert.
     */
    @JvmName("muhbpjneteemtvya")
    public suspend fun keyAlias(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keyAlias = mapped
    }

    /**
     * @param value Required if clientAuthEnabled is true. The resource ID of the keystore.
     */
    @JvmName("rxycmpoliwthopcn")
    public suspend fun keyStore(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keyStore = mapped
    }

    /**
     * @param value The TLS versioins to be used.
     */
    @JvmName("wsykmqsfctbpkemb")
    public suspend fun protocols(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.protocols = mapped
    }

    /**
     * @param values The TLS versioins to be used.
     */
    @JvmName("rlpictwpbcwolsoq")
    public suspend fun protocols(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.protocols = mapped
    }

    /**
     * @param value The resource ID of the truststore.
     */
    @JvmName("ykmvebbabwfphjpn")
    public suspend fun trustStore(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.trustStore = mapped
    }

    internal fun build(): TargetServerSSlInfoArgs = TargetServerSSlInfoArgs(
        ciphers = ciphers,
        clientAuthEnabled = clientAuthEnabled,
        commonName = commonName,
        enabled = enabled ?: throw PulumiNullFieldException("enabled"),
        ignoreValidationErrors = ignoreValidationErrors,
        keyAlias = keyAlias,
        keyStore = keyStore,
        protocols = protocols,
        trustStore = trustStore,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy