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

com.pulumi.azure.apimanagement.kotlin.inputs.ServiceHostnameConfigurationScmArgs.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: 6.15.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.apimanagement.kotlin.inputs

import com.pulumi.azure.apimanagement.inputs.ServiceHostnameConfigurationScmArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
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.jvm.JvmName

/**
 *
 * @property certificate The Base64 Encoded Certificate.
 * @property certificatePassword The password associated with the certificate provided above.
 * > **NOTE:** Either `key_vault_id` or `certificate` and `certificate_password` must be specified.
 * @property certificateSource The source of the certificate.
 * @property certificateStatus The status of the certificate.
 * @property expiry The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.
 * @property hostName The Hostname to use for the Management API.
 * @property keyVaultId The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.
 * > **NOTE:** Setting this field requires the `identity` block to be specified, since this identity is used for to retrieve the Key Vault Certificate. Possible values are versioned or versionless secret ID. Auto-updating the Certificate from the Key Vault requires the Secret version isn't specified.
 * @property negotiateClientCertificate Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.
 * @property sslKeyvaultIdentityClientId System or User Assigned Managed identity clientId as generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.
 * > **NOTE:** If a User Assigned Managed identity is specified for `ssl_keyvault_identity_client_id` then this identity must be associated to the `azure.apimanagement.Service` within an `identity` block.
 * @property subject The subject of the certificate.
 * @property thumbprint The thumbprint of the certificate.
 */
public data class ServiceHostnameConfigurationScmArgs(
    public val certificate: Output? = null,
    public val certificatePassword: Output? = null,
    public val certificateSource: Output? = null,
    public val certificateStatus: Output? = null,
    public val expiry: Output? = null,
    public val hostName: Output,
    public val keyVaultId: Output? = null,
    public val negotiateClientCertificate: Output? = null,
    public val sslKeyvaultIdentityClientId: Output? = null,
    public val subject: Output? = null,
    public val thumbprint: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.apimanagement.inputs.ServiceHostnameConfigurationScmArgs =
        com.pulumi.azure.apimanagement.inputs.ServiceHostnameConfigurationScmArgs.builder()
            .certificate(certificate?.applyValue({ args0 -> args0 }))
            .certificatePassword(certificatePassword?.applyValue({ args0 -> args0 }))
            .certificateSource(certificateSource?.applyValue({ args0 -> args0 }))
            .certificateStatus(certificateStatus?.applyValue({ args0 -> args0 }))
            .expiry(expiry?.applyValue({ args0 -> args0 }))
            .hostName(hostName.applyValue({ args0 -> args0 }))
            .keyVaultId(keyVaultId?.applyValue({ args0 -> args0 }))
            .negotiateClientCertificate(negotiateClientCertificate?.applyValue({ args0 -> args0 }))
            .sslKeyvaultIdentityClientId(sslKeyvaultIdentityClientId?.applyValue({ args0 -> args0 }))
            .subject(subject?.applyValue({ args0 -> args0 }))
            .thumbprint(thumbprint?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ServiceHostnameConfigurationScmArgs].
 */
@PulumiTagMarker
public class ServiceHostnameConfigurationScmArgsBuilder internal constructor() {
    private var certificate: Output? = null

    private var certificatePassword: Output? = null

    private var certificateSource: Output? = null

    private var certificateStatus: Output? = null

    private var expiry: Output? = null

    private var hostName: Output? = null

    private var keyVaultId: Output? = null

    private var negotiateClientCertificate: Output? = null

    private var sslKeyvaultIdentityClientId: Output? = null

    private var subject: Output? = null

    private var thumbprint: Output? = null

    /**
     * @param value The Base64 Encoded Certificate.
     */
    @JvmName("ivcoedkestnklgci")
    public suspend fun certificate(`value`: Output) {
        this.certificate = value
    }

    /**
     * @param value The password associated with the certificate provided above.
     * > **NOTE:** Either `key_vault_id` or `certificate` and `certificate_password` must be specified.
     */
    @JvmName("ljkiljvkwatwlcni")
    public suspend fun certificatePassword(`value`: Output) {
        this.certificatePassword = value
    }

    /**
     * @param value The source of the certificate.
     */
    @JvmName("upjitmjsbxrxmlxf")
    public suspend fun certificateSource(`value`: Output) {
        this.certificateSource = value
    }

    /**
     * @param value The status of the certificate.
     */
    @JvmName("noiuacjrsgxwbuow")
    public suspend fun certificateStatus(`value`: Output) {
        this.certificateStatus = value
    }

    /**
     * @param value The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.
     */
    @JvmName("ulghwbhdsydwbqeo")
    public suspend fun expiry(`value`: Output) {
        this.expiry = value
    }

    /**
     * @param value The Hostname to use for the Management API.
     */
    @JvmName("efcqkylixjcaxpqe")
    public suspend fun hostName(`value`: Output) {
        this.hostName = value
    }

    /**
     * @param value The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.
     * > **NOTE:** Setting this field requires the `identity` block to be specified, since this identity is used for to retrieve the Key Vault Certificate. Possible values are versioned or versionless secret ID. Auto-updating the Certificate from the Key Vault requires the Secret version isn't specified.
     */
    @JvmName("mvfstwvgfnnbamem")
    public suspend fun keyVaultId(`value`: Output) {
        this.keyVaultId = value
    }

    /**
     * @param value Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.
     */
    @JvmName("utrbshhtncctlwow")
    public suspend fun negotiateClientCertificate(`value`: Output) {
        this.negotiateClientCertificate = value
    }

    /**
     * @param value System or User Assigned Managed identity clientId as generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.
     * > **NOTE:** If a User Assigned Managed identity is specified for `ssl_keyvault_identity_client_id` then this identity must be associated to the `azure.apimanagement.Service` within an `identity` block.
     */
    @JvmName("voylmuhfamxlvdrk")
    public suspend fun sslKeyvaultIdentityClientId(`value`: Output) {
        this.sslKeyvaultIdentityClientId = value
    }

    /**
     * @param value The subject of the certificate.
     */
    @JvmName("tbmhxuxiiwqqpttk")
    public suspend fun subject(`value`: Output) {
        this.subject = value
    }

    /**
     * @param value The thumbprint of the certificate.
     */
    @JvmName("rkdfvvuuudjjpeao")
    public suspend fun thumbprint(`value`: Output) {
        this.thumbprint = value
    }

    /**
     * @param value The Base64 Encoded Certificate.
     */
    @JvmName("ouyhbevtlcccsdbc")
    public suspend fun certificate(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.certificate = mapped
    }

    /**
     * @param value The password associated with the certificate provided above.
     * > **NOTE:** Either `key_vault_id` or `certificate` and `certificate_password` must be specified.
     */
    @JvmName("gcwvrpwujqtmeioj")
    public suspend fun certificatePassword(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.certificatePassword = mapped
    }

    /**
     * @param value The source of the certificate.
     */
    @JvmName("vsemxoyiqhiwcshj")
    public suspend fun certificateSource(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.certificateSource = mapped
    }

    /**
     * @param value The status of the certificate.
     */
    @JvmName("ditcaqtydbsljbvm")
    public suspend fun certificateStatus(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.certificateStatus = mapped
    }

    /**
     * @param value The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.
     */
    @JvmName("urbuxiesooxwwsrc")
    public suspend fun expiry(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.expiry = mapped
    }

    /**
     * @param value The Hostname to use for the Management API.
     */
    @JvmName("svayvncodgdbgtxu")
    public suspend fun hostName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.hostName = mapped
    }

    /**
     * @param value The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.
     * > **NOTE:** Setting this field requires the `identity` block to be specified, since this identity is used for to retrieve the Key Vault Certificate. Possible values are versioned or versionless secret ID. Auto-updating the Certificate from the Key Vault requires the Secret version isn't specified.
     */
    @JvmName("fghbyycdgkaxxsde")
    public suspend fun keyVaultId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keyVaultId = mapped
    }

    /**
     * @param value Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.
     */
    @JvmName("jdynlwwctogqemix")
    public suspend fun negotiateClientCertificate(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.negotiateClientCertificate = mapped
    }

    /**
     * @param value System or User Assigned Managed identity clientId as generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.
     * > **NOTE:** If a User Assigned Managed identity is specified for `ssl_keyvault_identity_client_id` then this identity must be associated to the `azure.apimanagement.Service` within an `identity` block.
     */
    @JvmName("ekiibtjpbdobmquv")
    public suspend fun sslKeyvaultIdentityClientId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sslKeyvaultIdentityClientId = mapped
    }

    /**
     * @param value The subject of the certificate.
     */
    @JvmName("uyuatssqgfvreltm")
    public suspend fun subject(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subject = mapped
    }

    /**
     * @param value The thumbprint of the certificate.
     */
    @JvmName("dvbchtilmfydryfj")
    public suspend fun thumbprint(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.thumbprint = mapped
    }

    internal fun build(): ServiceHostnameConfigurationScmArgs = ServiceHostnameConfigurationScmArgs(
        certificate = certificate,
        certificatePassword = certificatePassword,
        certificateSource = certificateSource,
        certificateStatus = certificateStatus,
        expiry = expiry,
        hostName = hostName ?: throw PulumiNullFieldException("hostName"),
        keyVaultId = keyVaultId,
        negotiateClientCertificate = negotiateClientCertificate,
        sslKeyvaultIdentityClientId = sslKeyvaultIdentityClientId,
        subject = subject,
        thumbprint = thumbprint,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy