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

com.pulumi.digitalocean.kotlin.inputs.AppSpecDatabaseArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.digitalocean.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.digitalocean.inputs.AppSpecDatabaseArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property clusterName The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `cluster_name` is not set, a new cluster will be provisioned.
 * @property dbName The name of the MySQL or PostgreSQL database to configure.
 * @property dbUser The name of the MySQL or PostgreSQL user to configure.
 * This resource supports customized create timeouts. The default timeout is 30 minutes.
 * @property engine The database engine to use (`MYSQL`, `PG`, `REDIS`, `MONGODB`, `KAFKA`, or `OPENSEARCH`).
 * @property name The name of the component.
 * @property production Whether this is a production or dev database.
 * @property version The version of the database engine.
 */
public data class AppSpecDatabaseArgs(
    public val clusterName: Output? = null,
    public val dbName: Output? = null,
    public val dbUser: Output? = null,
    public val engine: Output? = null,
    public val name: Output? = null,
    public val production: Output? = null,
    public val version: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.digitalocean.inputs.AppSpecDatabaseArgs =
        com.pulumi.digitalocean.inputs.AppSpecDatabaseArgs.builder()
            .clusterName(clusterName?.applyValue({ args0 -> args0 }))
            .dbName(dbName?.applyValue({ args0 -> args0 }))
            .dbUser(dbUser?.applyValue({ args0 -> args0 }))
            .engine(engine?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .production(production?.applyValue({ args0 -> args0 }))
            .version(version?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [AppSpecDatabaseArgs].
 */
@PulumiTagMarker
public class AppSpecDatabaseArgsBuilder internal constructor() {
    private var clusterName: Output? = null

    private var dbName: Output? = null

    private var dbUser: Output? = null

    private var engine: Output? = null

    private var name: Output? = null

    private var production: Output? = null

    private var version: Output? = null

    /**
     * @param value The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `cluster_name` is not set, a new cluster will be provisioned.
     */
    @JvmName("jpanksuyvcbrfulg")
    public suspend fun clusterName(`value`: Output) {
        this.clusterName = value
    }

    /**
     * @param value The name of the MySQL or PostgreSQL database to configure.
     */
    @JvmName("lfbjggpcuyarmcxl")
    public suspend fun dbName(`value`: Output) {
        this.dbName = value
    }

    /**
     * @param value The name of the MySQL or PostgreSQL user to configure.
     * This resource supports customized create timeouts. The default timeout is 30 minutes.
     */
    @JvmName("ejpkiobfomvbhkfc")
    public suspend fun dbUser(`value`: Output) {
        this.dbUser = value
    }

    /**
     * @param value The database engine to use (`MYSQL`, `PG`, `REDIS`, `MONGODB`, `KAFKA`, or `OPENSEARCH`).
     */
    @JvmName("ydnqtxbdyeavklwd")
    public suspend fun engine(`value`: Output) {
        this.engine = value
    }

    /**
     * @param value The name of the component.
     */
    @JvmName("ohyiwpdwvnovwuup")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Whether this is a production or dev database.
     */
    @JvmName("pfjyugokncvttoim")
    public suspend fun production(`value`: Output) {
        this.production = value
    }

    /**
     * @param value The version of the database engine.
     */
    @JvmName("jlpeokrqomfornhx")
    public suspend fun version(`value`: Output) {
        this.version = value
    }

    /**
     * @param value The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if `cluster_name` is not set, a new cluster will be provisioned.
     */
    @JvmName("hnadwfhhducgthou")
    public suspend fun clusterName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clusterName = mapped
    }

    /**
     * @param value The name of the MySQL or PostgreSQL database to configure.
     */
    @JvmName("ontjrevxtrpygoms")
    public suspend fun dbName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dbName = mapped
    }

    /**
     * @param value The name of the MySQL or PostgreSQL user to configure.
     * This resource supports customized create timeouts. The default timeout is 30 minutes.
     */
    @JvmName("nqqadttmoslxgtsf")
    public suspend fun dbUser(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dbUser = mapped
    }

    /**
     * @param value The database engine to use (`MYSQL`, `PG`, `REDIS`, `MONGODB`, `KAFKA`, or `OPENSEARCH`).
     */
    @JvmName("grpkwkxrxwanmxqj")
    public suspend fun engine(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.engine = mapped
    }

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

    /**
     * @param value Whether this is a production or dev database.
     */
    @JvmName("unkhgakrivrkfblo")
    public suspend fun production(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.production = mapped
    }

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

    internal fun build(): AppSpecDatabaseArgs = AppSpecDatabaseArgs(
        clusterName = clusterName,
        dbName = dbName,
        dbUser = dbUser,
        engine = engine,
        name = name,
        production = production,
        version = version,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy