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

com.pulumi.gcp.oracledatabase.kotlin.inputs.CloudVmClusterPropertiesArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.gcp.oracledatabase.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.oracledatabase.inputs.CloudVmClusterPropertiesArgs.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.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property clusterName OCI Cluster name.
 * @property compartmentId (Output)
 * Compartment ID of cluster.
 * @property cpuCoreCount Number of enabled CPU cores.
 * @property dataStorageSizeTb The data disk group size to be allocated in TBs.
 * @property dbNodeStorageSizeGb Local storage per VM
 * @property dbServerOcids OCID of database servers.
 * @property diagnosticsDataCollectionOptions Data collection options for diagnostics.
 * Structure is documented below.
 * @property diskRedundancy The type of redundancy.
 * Possible values:
 * DISK_REDUNDANCY_UNSPECIFIED
 * HIGH
 * NORMAL
 * @property dnsListenerIp (Output)
 * DNS listener IP.
 * @property domain (Output)
 * Parent DNS domain where SCAN DNS and hosts names are qualified.
 * ex: ocispdelegated.ocisp10jvnet.oraclevcn.com
 * @property giVersion Grid Infrastructure Version.
 * @property hostname (Output)
 * host name without domain.
 * format: "-" with some suffix.
 * ex: sp2-yi0xq where "sp2" is the hostname_prefix.
 * @property hostnamePrefix Prefix for VM cluster host names.
 * @property licenseType License type of VM Cluster.
 * Possible values:
 * LICENSE_TYPE_UNSPECIFIED
 * LICENSE_INCLUDED
 * BRING_YOUR_OWN_LICENSE
 * @property localBackupEnabled Use local backup.
 * @property memorySizeGb Memory allocated in GBs.
 * @property nodeCount Number of database servers.
 * @property ociUrl (Output)
 * Deep link to the OCI console to view this resource.
 * @property ocid (Output)
 * Oracle Cloud Infrastructure ID of VM Cluster.
 * @property ocpuCount OCPU count per VM. Minimum is 0.1.
 * @property scanDns (Output)
 * SCAN DNS name.
 * ex: sp2-yi0xq-scan.ocispdelegated.ocisp10jvnet.oraclevcn.com
 * @property scanDnsRecordId (Output)
 * OCID of scan DNS record.
 * @property scanIpIds (Output)
 * OCIDs of scan IPs.
 * @property scanListenerPortTcp (Output)
 * SCAN listener port - TCP
 * @property scanListenerPortTcpSsl (Output)
 * SCAN listener port - TLS
 * @property shape (Output)
 * Shape of VM Cluster.
 * @property sparseDiskgroupEnabled Use exadata sparse snapshots.
 * @property sshPublicKeys SSH public keys to be stored with cluster.
 * @property state (Output)
 * State of the cluster.
 * Possible values:
 * STATE_UNSPECIFIED
 * PROVISIONING
 * AVAILABLE
 * UPDATING
 * TERMINATING
 * TERMINATED
 * FAILED
 * MAINTENANCE_IN_PROGRESS
 * @property storageSizeGb (Output)
 * The storage allocation for the disk group, in gigabytes (GB).
 * @property systemVersion (Output)
 * Operating system version of the image.
 * @property timeZone Represents a time zone from the
 * [IANA Time Zone Database](https://www.iana.org/time-zones).
 * Structure is documented below.
 */
public data class CloudVmClusterPropertiesArgs(
    public val clusterName: Output? = null,
    public val compartmentId: Output? = null,
    public val cpuCoreCount: Output,
    public val dataStorageSizeTb: Output? = null,
    public val dbNodeStorageSizeGb: Output? = null,
    public val dbServerOcids: Output>? = null,
    public val diagnosticsDataCollectionOptions: Output? = null,
    public val diskRedundancy: Output? = null,
    public val dnsListenerIp: Output? = null,
    public val domain: Output? = null,
    public val giVersion: Output? = null,
    public val hostname: Output? = null,
    public val hostnamePrefix: Output? = null,
    public val licenseType: Output,
    public val localBackupEnabled: Output? = null,
    public val memorySizeGb: Output? = null,
    public val nodeCount: Output? = null,
    public val ociUrl: Output? = null,
    public val ocid: Output? = null,
    public val ocpuCount: Output? = null,
    public val scanDns: Output? = null,
    public val scanDnsRecordId: Output? = null,
    public val scanIpIds: Output>? = null,
    public val scanListenerPortTcp: Output? = null,
    public val scanListenerPortTcpSsl: Output? = null,
    public val shape: Output? = null,
    public val sparseDiskgroupEnabled: Output? = null,
    public val sshPublicKeys: Output>? = null,
    public val state: Output? = null,
    public val storageSizeGb: Output? = null,
    public val systemVersion: Output? = null,
    public val timeZone: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.oracledatabase.inputs.CloudVmClusterPropertiesArgs =
        com.pulumi.gcp.oracledatabase.inputs.CloudVmClusterPropertiesArgs.builder()
            .clusterName(clusterName?.applyValue({ args0 -> args0 }))
            .compartmentId(compartmentId?.applyValue({ args0 -> args0 }))
            .cpuCoreCount(cpuCoreCount.applyValue({ args0 -> args0 }))
            .dataStorageSizeTb(dataStorageSizeTb?.applyValue({ args0 -> args0 }))
            .dbNodeStorageSizeGb(dbNodeStorageSizeGb?.applyValue({ args0 -> args0 }))
            .dbServerOcids(dbServerOcids?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .diagnosticsDataCollectionOptions(
                diagnosticsDataCollectionOptions?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .diskRedundancy(diskRedundancy?.applyValue({ args0 -> args0 }))
            .dnsListenerIp(dnsListenerIp?.applyValue({ args0 -> args0 }))
            .domain(domain?.applyValue({ args0 -> args0 }))
            .giVersion(giVersion?.applyValue({ args0 -> args0 }))
            .hostname(hostname?.applyValue({ args0 -> args0 }))
            .hostnamePrefix(hostnamePrefix?.applyValue({ args0 -> args0 }))
            .licenseType(licenseType.applyValue({ args0 -> args0 }))
            .localBackupEnabled(localBackupEnabled?.applyValue({ args0 -> args0 }))
            .memorySizeGb(memorySizeGb?.applyValue({ args0 -> args0 }))
            .nodeCount(nodeCount?.applyValue({ args0 -> args0 }))
            .ociUrl(ociUrl?.applyValue({ args0 -> args0 }))
            .ocid(ocid?.applyValue({ args0 -> args0 }))
            .ocpuCount(ocpuCount?.applyValue({ args0 -> args0 }))
            .scanDns(scanDns?.applyValue({ args0 -> args0 }))
            .scanDnsRecordId(scanDnsRecordId?.applyValue({ args0 -> args0 }))
            .scanIpIds(scanIpIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .scanListenerPortTcp(scanListenerPortTcp?.applyValue({ args0 -> args0 }))
            .scanListenerPortTcpSsl(scanListenerPortTcpSsl?.applyValue({ args0 -> args0 }))
            .shape(shape?.applyValue({ args0 -> args0 }))
            .sparseDiskgroupEnabled(sparseDiskgroupEnabled?.applyValue({ args0 -> args0 }))
            .sshPublicKeys(sshPublicKeys?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .state(state?.applyValue({ args0 -> args0 }))
            .storageSizeGb(storageSizeGb?.applyValue({ args0 -> args0 }))
            .systemVersion(systemVersion?.applyValue({ args0 -> args0 }))
            .timeZone(timeZone?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

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

    private var compartmentId: Output? = null

    private var cpuCoreCount: Output? = null

    private var dataStorageSizeTb: Output? = null

    private var dbNodeStorageSizeGb: Output? = null

    private var dbServerOcids: Output>? = null

    private var diagnosticsDataCollectionOptions:
        Output? = null

    private var diskRedundancy: Output? = null

    private var dnsListenerIp: Output? = null

    private var domain: Output? = null

    private var giVersion: Output? = null

    private var hostname: Output? = null

    private var hostnamePrefix: Output? = null

    private var licenseType: Output? = null

    private var localBackupEnabled: Output? = null

    private var memorySizeGb: Output? = null

    private var nodeCount: Output? = null

    private var ociUrl: Output? = null

    private var ocid: Output? = null

    private var ocpuCount: Output? = null

    private var scanDns: Output? = null

    private var scanDnsRecordId: Output? = null

    private var scanIpIds: Output>? = null

    private var scanListenerPortTcp: Output? = null

    private var scanListenerPortTcpSsl: Output? = null

    private var shape: Output? = null

    private var sparseDiskgroupEnabled: Output? = null

    private var sshPublicKeys: Output>? = null

    private var state: Output? = null

    private var storageSizeGb: Output? = null

    private var systemVersion: Output? = null

    private var timeZone: Output? = null

    /**
     * @param value OCI Cluster name.
     */
    @JvmName("viqkhmfoblqqcuky")
    public suspend fun clusterName(`value`: Output) {
        this.clusterName = value
    }

    /**
     * @param value (Output)
     * Compartment ID of cluster.
     */
    @JvmName("boyovmienqwrpfhj")
    public suspend fun compartmentId(`value`: Output) {
        this.compartmentId = value
    }

    /**
     * @param value Number of enabled CPU cores.
     */
    @JvmName("phhythqeiqfjdyiy")
    public suspend fun cpuCoreCount(`value`: Output) {
        this.cpuCoreCount = value
    }

    /**
     * @param value The data disk group size to be allocated in TBs.
     */
    @JvmName("mxgjtjytlhrmwnwe")
    public suspend fun dataStorageSizeTb(`value`: Output) {
        this.dataStorageSizeTb = value
    }

    /**
     * @param value Local storage per VM
     */
    @JvmName("kkkfeveavicjsgly")
    public suspend fun dbNodeStorageSizeGb(`value`: Output) {
        this.dbNodeStorageSizeGb = value
    }

    /**
     * @param value OCID of database servers.
     */
    @JvmName("etnykvcveivgmwfa")
    public suspend fun dbServerOcids(`value`: Output>) {
        this.dbServerOcids = value
    }

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

    /**
     * @param values OCID of database servers.
     */
    @JvmName("rjgpfvfuumuhebap")
    public suspend fun dbServerOcids(values: List>) {
        this.dbServerOcids = Output.all(values)
    }

    /**
     * @param value Data collection options for diagnostics.
     * Structure is documented below.
     */
    @JvmName("ngomxopvgibkocuh")
    public suspend fun diagnosticsDataCollectionOptions(`value`: Output) {
        this.diagnosticsDataCollectionOptions = value
    }

    /**
     * @param value The type of redundancy.
     * Possible values:
     * DISK_REDUNDANCY_UNSPECIFIED
     * HIGH
     * NORMAL
     */
    @JvmName("polrpomnvjegcvid")
    public suspend fun diskRedundancy(`value`: Output) {
        this.diskRedundancy = value
    }

    /**
     * @param value (Output)
     * DNS listener IP.
     */
    @JvmName("pufywdbuouintxle")
    public suspend fun dnsListenerIp(`value`: Output) {
        this.dnsListenerIp = value
    }

    /**
     * @param value (Output)
     * Parent DNS domain where SCAN DNS and hosts names are qualified.
     * ex: ocispdelegated.ocisp10jvnet.oraclevcn.com
     */
    @JvmName("ccifsedkbcbnbjwr")
    public suspend fun domain(`value`: Output) {
        this.domain = value
    }

    /**
     * @param value Grid Infrastructure Version.
     */
    @JvmName("pugfhhhjlfaklbya")
    public suspend fun giVersion(`value`: Output) {
        this.giVersion = value
    }

    /**
     * @param value (Output)
     * host name without domain.
     * format: "-" with some suffix.
     * ex: sp2-yi0xq where "sp2" is the hostname_prefix.
     */
    @JvmName("abwtsnbycvmswpxx")
    public suspend fun hostname(`value`: Output) {
        this.hostname = value
    }

    /**
     * @param value Prefix for VM cluster host names.
     */
    @JvmName("jjqepoyyaonitrtf")
    public suspend fun hostnamePrefix(`value`: Output) {
        this.hostnamePrefix = value
    }

    /**
     * @param value License type of VM Cluster.
     * Possible values:
     * LICENSE_TYPE_UNSPECIFIED
     * LICENSE_INCLUDED
     * BRING_YOUR_OWN_LICENSE
     */
    @JvmName("yssxlergpgwmrxqi")
    public suspend fun licenseType(`value`: Output) {
        this.licenseType = value
    }

    /**
     * @param value Use local backup.
     */
    @JvmName("fyypmpppengxeaxw")
    public suspend fun localBackupEnabled(`value`: Output) {
        this.localBackupEnabled = value
    }

    /**
     * @param value Memory allocated in GBs.
     */
    @JvmName("lxjirtlrmtswomeo")
    public suspend fun memorySizeGb(`value`: Output) {
        this.memorySizeGb = value
    }

    /**
     * @param value Number of database servers.
     */
    @JvmName("ythppiwfdtofttdv")
    public suspend fun nodeCount(`value`: Output) {
        this.nodeCount = value
    }

    /**
     * @param value (Output)
     * Deep link to the OCI console to view this resource.
     */
    @JvmName("vtstrrphlgydoiin")
    public suspend fun ociUrl(`value`: Output) {
        this.ociUrl = value
    }

    /**
     * @param value (Output)
     * Oracle Cloud Infrastructure ID of VM Cluster.
     */
    @JvmName("bicbskgwdugoexgh")
    public suspend fun ocid(`value`: Output) {
        this.ocid = value
    }

    /**
     * @param value OCPU count per VM. Minimum is 0.1.
     */
    @JvmName("ttesrtwavnwdhcom")
    public suspend fun ocpuCount(`value`: Output) {
        this.ocpuCount = value
    }

    /**
     * @param value (Output)
     * SCAN DNS name.
     * ex: sp2-yi0xq-scan.ocispdelegated.ocisp10jvnet.oraclevcn.com
     */
    @JvmName("nqcuahplqjyqkhac")
    public suspend fun scanDns(`value`: Output) {
        this.scanDns = value
    }

    /**
     * @param value (Output)
     * OCID of scan DNS record.
     */
    @JvmName("ahtcvwbwfbpawkjx")
    public suspend fun scanDnsRecordId(`value`: Output) {
        this.scanDnsRecordId = value
    }

    /**
     * @param value (Output)
     * OCIDs of scan IPs.
     */
    @JvmName("qfklvbwbmksgvkwk")
    public suspend fun scanIpIds(`value`: Output>) {
        this.scanIpIds = value
    }

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

    /**
     * @param values (Output)
     * OCIDs of scan IPs.
     */
    @JvmName("vcepcscyqosrymkh")
    public suspend fun scanIpIds(values: List>) {
        this.scanIpIds = Output.all(values)
    }

    /**
     * @param value (Output)
     * SCAN listener port - TCP
     */
    @JvmName("bdnukpmvglcmxokf")
    public suspend fun scanListenerPortTcp(`value`: Output) {
        this.scanListenerPortTcp = value
    }

    /**
     * @param value (Output)
     * SCAN listener port - TLS
     */
    @JvmName("mfgtmhrpqmllidjv")
    public suspend fun scanListenerPortTcpSsl(`value`: Output) {
        this.scanListenerPortTcpSsl = value
    }

    /**
     * @param value (Output)
     * Shape of VM Cluster.
     */
    @JvmName("qkglnbikdyuvpevc")
    public suspend fun shape(`value`: Output) {
        this.shape = value
    }

    /**
     * @param value Use exadata sparse snapshots.
     */
    @JvmName("kekxqcvoedjuwkmx")
    public suspend fun sparseDiskgroupEnabled(`value`: Output) {
        this.sparseDiskgroupEnabled = value
    }

    /**
     * @param value SSH public keys to be stored with cluster.
     */
    @JvmName("qlcamfqjysehbdin")
    public suspend fun sshPublicKeys(`value`: Output>) {
        this.sshPublicKeys = value
    }

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

    /**
     * @param values SSH public keys to be stored with cluster.
     */
    @JvmName("jsjxlpoxwoxajcgb")
    public suspend fun sshPublicKeys(values: List>) {
        this.sshPublicKeys = Output.all(values)
    }

    /**
     * @param value (Output)
     * State of the cluster.
     * Possible values:
     * STATE_UNSPECIFIED
     * PROVISIONING
     * AVAILABLE
     * UPDATING
     * TERMINATING
     * TERMINATED
     * FAILED
     * MAINTENANCE_IN_PROGRESS
     */
    @JvmName("cgnvhihyegoypgpm")
    public suspend fun state(`value`: Output) {
        this.state = value
    }

    /**
     * @param value (Output)
     * The storage allocation for the disk group, in gigabytes (GB).
     */
    @JvmName("nwvhadkgoqwitrnv")
    public suspend fun storageSizeGb(`value`: Output) {
        this.storageSizeGb = value
    }

    /**
     * @param value (Output)
     * Operating system version of the image.
     */
    @JvmName("euerfdujvlyaoilp")
    public suspend fun systemVersion(`value`: Output) {
        this.systemVersion = value
    }

    /**
     * @param value Represents a time zone from the
     * [IANA Time Zone Database](https://www.iana.org/time-zones).
     * Structure is documented below.
     */
    @JvmName("cmuiewrhjphugcdu")
    public suspend fun timeZone(`value`: Output) {
        this.timeZone = value
    }

    /**
     * @param value OCI Cluster name.
     */
    @JvmName("psodbfbywupostqb")
    public suspend fun clusterName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clusterName = mapped
    }

    /**
     * @param value (Output)
     * Compartment ID of cluster.
     */
    @JvmName("luitgafqprqhntnv")
    public suspend fun compartmentId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.compartmentId = mapped
    }

    /**
     * @param value Number of enabled CPU cores.
     */
    @JvmName("upoeehsxhqbspete")
    public suspend fun cpuCoreCount(`value`: Int) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.cpuCoreCount = mapped
    }

    /**
     * @param value The data disk group size to be allocated in TBs.
     */
    @JvmName("xoxedhmnndtuwwwi")
    public suspend fun dataStorageSizeTb(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataStorageSizeTb = mapped
    }

    /**
     * @param value Local storage per VM
     */
    @JvmName("sohtyuemqctdvpsf")
    public suspend fun dbNodeStorageSizeGb(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dbNodeStorageSizeGb = mapped
    }

    /**
     * @param value OCID of database servers.
     */
    @JvmName("ywvhtdhjxxjgedfw")
    public suspend fun dbServerOcids(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dbServerOcids = mapped
    }

    /**
     * @param values OCID of database servers.
     */
    @JvmName("qvewxvnbrebposeh")
    public suspend fun dbServerOcids(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dbServerOcids = mapped
    }

    /**
     * @param value Data collection options for diagnostics.
     * Structure is documented below.
     */
    @JvmName("qdopvoocfnxpvtgp")
    public suspend fun diagnosticsDataCollectionOptions(`value`: CloudVmClusterPropertiesDiagnosticsDataCollectionOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.diagnosticsDataCollectionOptions = mapped
    }

    /**
     * @param argument Data collection options for diagnostics.
     * Structure is documented below.
     */
    @JvmName("smqycqednavdkqor")
    public suspend fun diagnosticsDataCollectionOptions(argument: suspend CloudVmClusterPropertiesDiagnosticsDataCollectionOptionsArgsBuilder.() -> Unit) {
        val toBeMapped =
            CloudVmClusterPropertiesDiagnosticsDataCollectionOptionsArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.diagnosticsDataCollectionOptions = mapped
    }

    /**
     * @param value The type of redundancy.
     * Possible values:
     * DISK_REDUNDANCY_UNSPECIFIED
     * HIGH
     * NORMAL
     */
    @JvmName("dvvyihyjminlsoxu")
    public suspend fun diskRedundancy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.diskRedundancy = mapped
    }

    /**
     * @param value (Output)
     * DNS listener IP.
     */
    @JvmName("vgwlsdsoodkinjsu")
    public suspend fun dnsListenerIp(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dnsListenerIp = mapped
    }

    /**
     * @param value (Output)
     * Parent DNS domain where SCAN DNS and hosts names are qualified.
     * ex: ocispdelegated.ocisp10jvnet.oraclevcn.com
     */
    @JvmName("kgyulmqaidkljytq")
    public suspend fun domain(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.domain = mapped
    }

    /**
     * @param value Grid Infrastructure Version.
     */
    @JvmName("ydialbkeqskdronx")
    public suspend fun giVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.giVersion = mapped
    }

    /**
     * @param value (Output)
     * host name without domain.
     * format: "-" with some suffix.
     * ex: sp2-yi0xq where "sp2" is the hostname_prefix.
     */
    @JvmName("tgihowjjwcuixfpn")
    public suspend fun hostname(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hostname = mapped
    }

    /**
     * @param value Prefix for VM cluster host names.
     */
    @JvmName("tnxtuohqosmpyjgf")
    public suspend fun hostnamePrefix(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hostnamePrefix = mapped
    }

    /**
     * @param value License type of VM Cluster.
     * Possible values:
     * LICENSE_TYPE_UNSPECIFIED
     * LICENSE_INCLUDED
     * BRING_YOUR_OWN_LICENSE
     */
    @JvmName("udorlbapufdhopup")
    public suspend fun licenseType(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.licenseType = mapped
    }

    /**
     * @param value Use local backup.
     */
    @JvmName("igqygaesmbnccdmt")
    public suspend fun localBackupEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.localBackupEnabled = mapped
    }

    /**
     * @param value Memory allocated in GBs.
     */
    @JvmName("kqitbkiktrqlcyol")
    public suspend fun memorySizeGb(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.memorySizeGb = mapped
    }

    /**
     * @param value Number of database servers.
     */
    @JvmName("wfhnvwjwthaindhr")
    public suspend fun nodeCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodeCount = mapped
    }

    /**
     * @param value (Output)
     * Deep link to the OCI console to view this resource.
     */
    @JvmName("tktlxohpjveaowsq")
    public suspend fun ociUrl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ociUrl = mapped
    }

    /**
     * @param value (Output)
     * Oracle Cloud Infrastructure ID of VM Cluster.
     */
    @JvmName("nklupculwhkqcgdr")
    public suspend fun ocid(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ocid = mapped
    }

    /**
     * @param value OCPU count per VM. Minimum is 0.1.
     */
    @JvmName("dtxamniphrghmtee")
    public suspend fun ocpuCount(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ocpuCount = mapped
    }

    /**
     * @param value (Output)
     * SCAN DNS name.
     * ex: sp2-yi0xq-scan.ocispdelegated.ocisp10jvnet.oraclevcn.com
     */
    @JvmName("ahbdywkxgjnbouem")
    public suspend fun scanDns(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scanDns = mapped
    }

    /**
     * @param value (Output)
     * OCID of scan DNS record.
     */
    @JvmName("wqxxknchixjnwuby")
    public suspend fun scanDnsRecordId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scanDnsRecordId = mapped
    }

    /**
     * @param value (Output)
     * OCIDs of scan IPs.
     */
    @JvmName("kwvbrmgbqcokqtvv")
    public suspend fun scanIpIds(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scanIpIds = mapped
    }

    /**
     * @param values (Output)
     * OCIDs of scan IPs.
     */
    @JvmName("hvilrwtembffcvpe")
    public suspend fun scanIpIds(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scanIpIds = mapped
    }

    /**
     * @param value (Output)
     * SCAN listener port - TCP
     */
    @JvmName("jtrnqnjaveqnfjhi")
    public suspend fun scanListenerPortTcp(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scanListenerPortTcp = mapped
    }

    /**
     * @param value (Output)
     * SCAN listener port - TLS
     */
    @JvmName("cfkpxsekfkiuacoh")
    public suspend fun scanListenerPortTcpSsl(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scanListenerPortTcpSsl = mapped
    }

    /**
     * @param value (Output)
     * Shape of VM Cluster.
     */
    @JvmName("twodtblviowahwcb")
    public suspend fun shape(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.shape = mapped
    }

    /**
     * @param value Use exadata sparse snapshots.
     */
    @JvmName("gmtcgyrhlbpsaoci")
    public suspend fun sparseDiskgroupEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sparseDiskgroupEnabled = mapped
    }

    /**
     * @param value SSH public keys to be stored with cluster.
     */
    @JvmName("daayhumdhunrpotl")
    public suspend fun sshPublicKeys(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sshPublicKeys = mapped
    }

    /**
     * @param values SSH public keys to be stored with cluster.
     */
    @JvmName("cvkogbsywefuhyxf")
    public suspend fun sshPublicKeys(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sshPublicKeys = mapped
    }

    /**
     * @param value (Output)
     * State of the cluster.
     * Possible values:
     * STATE_UNSPECIFIED
     * PROVISIONING
     * AVAILABLE
     * UPDATING
     * TERMINATING
     * TERMINATED
     * FAILED
     * MAINTENANCE_IN_PROGRESS
     */
    @JvmName("pjshwkfjkjjbauxo")
    public suspend fun state(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.state = mapped
    }

    /**
     * @param value (Output)
     * The storage allocation for the disk group, in gigabytes (GB).
     */
    @JvmName("dwosrktjwrnmeskb")
    public suspend fun storageSizeGb(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageSizeGb = mapped
    }

    /**
     * @param value (Output)
     * Operating system version of the image.
     */
    @JvmName("yketbxubnjbijrji")
    public suspend fun systemVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.systemVersion = mapped
    }

    /**
     * @param value Represents a time zone from the
     * [IANA Time Zone Database](https://www.iana.org/time-zones).
     * Structure is documented below.
     */
    @JvmName("ygjmhvkmtyfolrwm")
    public suspend fun timeZone(`value`: CloudVmClusterPropertiesTimeZoneArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timeZone = mapped
    }

    /**
     * @param argument Represents a time zone from the
     * [IANA Time Zone Database](https://www.iana.org/time-zones).
     * Structure is documented below.
     */
    @JvmName("pxgyuujoybkqfqim")
    public suspend fun timeZone(argument: suspend CloudVmClusterPropertiesTimeZoneArgsBuilder.() -> Unit) {
        val toBeMapped = CloudVmClusterPropertiesTimeZoneArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.timeZone = mapped
    }

    internal fun build(): CloudVmClusterPropertiesArgs = CloudVmClusterPropertiesArgs(
        clusterName = clusterName,
        compartmentId = compartmentId,
        cpuCoreCount = cpuCoreCount ?: throw PulumiNullFieldException("cpuCoreCount"),
        dataStorageSizeTb = dataStorageSizeTb,
        dbNodeStorageSizeGb = dbNodeStorageSizeGb,
        dbServerOcids = dbServerOcids,
        diagnosticsDataCollectionOptions = diagnosticsDataCollectionOptions,
        diskRedundancy = diskRedundancy,
        dnsListenerIp = dnsListenerIp,
        domain = domain,
        giVersion = giVersion,
        hostname = hostname,
        hostnamePrefix = hostnamePrefix,
        licenseType = licenseType ?: throw PulumiNullFieldException("licenseType"),
        localBackupEnabled = localBackupEnabled,
        memorySizeGb = memorySizeGb,
        nodeCount = nodeCount,
        ociUrl = ociUrl,
        ocid = ocid,
        ocpuCount = ocpuCount,
        scanDns = scanDns,
        scanDnsRecordId = scanDnsRecordId,
        scanIpIds = scanIpIds,
        scanListenerPortTcp = scanListenerPortTcp,
        scanListenerPortTcpSsl = scanListenerPortTcpSsl,
        shape = shape,
        sparseDiskgroupEnabled = sparseDiskgroupEnabled,
        sshPublicKeys = sshPublicKeys,
        state = state,
        storageSizeGb = storageSizeGb,
        systemVersion = systemVersion,
        timeZone = timeZone,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy