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

com.pulumi.azure.mssql.kotlin.inputs.VirtualMachineStorageConfigurationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azure.mssql.kotlin.inputs

import com.pulumi.azure.mssql.inputs.VirtualMachineStorageConfigurationArgs.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 com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property dataSettings A `storage_settings` block as defined below.
 * @property diskType The type of disk configuration to apply to the SQL Server. Valid values include `NEW`, `EXTEND`, or `ADD`.
 * @property logSettings A `storage_settings` block as defined below.
 * @property storageWorkloadType The type of storage workload. Valid values include `GENERAL`, `OLTP`, or `DW`.
 * @property systemDbOnDataDiskEnabled Specifies whether to set system databases (except tempDb) location to newly created data storage. Possible values are `true` and `false`. Defaults to `false`.
 * @property tempDbSettings An `temp_db_settings` block as defined below.
 */
public data class VirtualMachineStorageConfigurationArgs(
    public val dataSettings: Output? = null,
    public val diskType: Output,
    public val logSettings: Output? = null,
    public val storageWorkloadType: Output,
    public val systemDbOnDataDiskEnabled: Output? = null,
    public val tempDbSettings: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.mssql.inputs.VirtualMachineStorageConfigurationArgs =
        com.pulumi.azure.mssql.inputs.VirtualMachineStorageConfigurationArgs.builder()
            .dataSettings(dataSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .diskType(diskType.applyValue({ args0 -> args0 }))
            .logSettings(logSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .storageWorkloadType(storageWorkloadType.applyValue({ args0 -> args0 }))
            .systemDbOnDataDiskEnabled(systemDbOnDataDiskEnabled?.applyValue({ args0 -> args0 }))
            .tempDbSettings(
                tempDbSettings?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [VirtualMachineStorageConfigurationArgs].
 */
@PulumiTagMarker
public class VirtualMachineStorageConfigurationArgsBuilder internal constructor() {
    private var dataSettings: Output? = null

    private var diskType: Output? = null

    private var logSettings: Output? = null

    private var storageWorkloadType: Output? = null

    private var systemDbOnDataDiskEnabled: Output? = null

    private var tempDbSettings: Output? = null

    /**
     * @param value A `storage_settings` block as defined below.
     */
    @JvmName("mipfuxsccfnyfkbl")
    public suspend fun dataSettings(`value`: Output) {
        this.dataSettings = value
    }

    /**
     * @param value The type of disk configuration to apply to the SQL Server. Valid values include `NEW`, `EXTEND`, or `ADD`.
     */
    @JvmName("vgjyivmnplvksfji")
    public suspend fun diskType(`value`: Output) {
        this.diskType = value
    }

    /**
     * @param value A `storage_settings` block as defined below.
     */
    @JvmName("hnbujuakowpfhtuo")
    public suspend fun logSettings(`value`: Output) {
        this.logSettings = value
    }

    /**
     * @param value The type of storage workload. Valid values include `GENERAL`, `OLTP`, or `DW`.
     */
    @JvmName("bykgvtbnkhkqxyvc")
    public suspend fun storageWorkloadType(`value`: Output) {
        this.storageWorkloadType = value
    }

    /**
     * @param value Specifies whether to set system databases (except tempDb) location to newly created data storage. Possible values are `true` and `false`. Defaults to `false`.
     */
    @JvmName("cfniieopvgulyghx")
    public suspend fun systemDbOnDataDiskEnabled(`value`: Output) {
        this.systemDbOnDataDiskEnabled = value
    }

    /**
     * @param value An `temp_db_settings` block as defined below.
     */
    @JvmName("kpunkhcjgokyvnji")
    public suspend fun tempDbSettings(`value`: Output) {
        this.tempDbSettings = value
    }

    /**
     * @param value A `storage_settings` block as defined below.
     */
    @JvmName("qgcbjlpcslvbryfl")
    public suspend fun dataSettings(`value`: VirtualMachineStorageConfigurationDataSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataSettings = mapped
    }

    /**
     * @param argument A `storage_settings` block as defined below.
     */
    @JvmName("adhpcbjdjakklflr")
    public suspend fun dataSettings(argument: suspend VirtualMachineStorageConfigurationDataSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = VirtualMachineStorageConfigurationDataSettingsArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.dataSettings = mapped
    }

    /**
     * @param value The type of disk configuration to apply to the SQL Server. Valid values include `NEW`, `EXTEND`, or `ADD`.
     */
    @JvmName("wkycowewdybqutks")
    public suspend fun diskType(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.diskType = mapped
    }

    /**
     * @param value A `storage_settings` block as defined below.
     */
    @JvmName("iflpfffeuxhxsonp")
    public suspend fun logSettings(`value`: VirtualMachineStorageConfigurationLogSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.logSettings = mapped
    }

    /**
     * @param argument A `storage_settings` block as defined below.
     */
    @JvmName("dgvtusvxxqhrnafp")
    public suspend fun logSettings(argument: suspend VirtualMachineStorageConfigurationLogSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = VirtualMachineStorageConfigurationLogSettingsArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.logSettings = mapped
    }

    /**
     * @param value The type of storage workload. Valid values include `GENERAL`, `OLTP`, or `DW`.
     */
    @JvmName("ncwswhibyxvpcfjx")
    public suspend fun storageWorkloadType(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.storageWorkloadType = mapped
    }

    /**
     * @param value Specifies whether to set system databases (except tempDb) location to newly created data storage. Possible values are `true` and `false`. Defaults to `false`.
     */
    @JvmName("xqfrqeivvpnaruwr")
    public suspend fun systemDbOnDataDiskEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.systemDbOnDataDiskEnabled = mapped
    }

    /**
     * @param value An `temp_db_settings` block as defined below.
     */
    @JvmName("jabqhaohcuxxdolo")
    public suspend fun tempDbSettings(`value`: VirtualMachineStorageConfigurationTempDbSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tempDbSettings = mapped
    }

    /**
     * @param argument An `temp_db_settings` block as defined below.
     */
    @JvmName("fixjttiisleigwjd")
    public suspend fun tempDbSettings(argument: suspend VirtualMachineStorageConfigurationTempDbSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = VirtualMachineStorageConfigurationTempDbSettingsArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.tempDbSettings = mapped
    }

    internal fun build(): VirtualMachineStorageConfigurationArgs =
        VirtualMachineStorageConfigurationArgs(
            dataSettings = dataSettings,
            diskType = diskType ?: throw PulumiNullFieldException("diskType"),
            logSettings = logSettings,
            storageWorkloadType = storageWorkloadType ?: throw PulumiNullFieldException("storageWorkloadType"),
            systemDbOnDataDiskEnabled = systemDbOnDataDiskEnabled,
            tempDbSettings = tempDbSettings,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy