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

com.pulumi.awsnative.ec2.kotlin.inputs.LaunchTemplateCpuOptionsArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.ec2.kotlin.inputs

import com.pulumi.awsnative.ec2.inputs.LaunchTemplateCpuOptionsArgs.builder
import com.pulumi.awsnative.ec2.kotlin.enums.LaunchTemplateCpuOptionsAmdSevSnp
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Int
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Specifies the CPU options for an instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *User Guide*.
 *   ``CpuOptions`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
 * @property amdSevSnp Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. For more information, see [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html).
 * @property coreCount The number of CPU cores for the instance.
 * @property threadsPerCore The number of threads per CPU core. To disable multithreading for the instance, specify a value of ``1``. Otherwise, specify the default value of ``2``.
 */
public data class LaunchTemplateCpuOptionsArgs(
    public val amdSevSnp: Output? = null,
    public val coreCount: Output? = null,
    public val threadsPerCore: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.ec2.inputs.LaunchTemplateCpuOptionsArgs =
        com.pulumi.awsnative.ec2.inputs.LaunchTemplateCpuOptionsArgs.builder()
            .amdSevSnp(amdSevSnp?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .coreCount(coreCount?.applyValue({ args0 -> args0 }))
            .threadsPerCore(threadsPerCore?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [LaunchTemplateCpuOptionsArgs].
 */
@PulumiTagMarker
public class LaunchTemplateCpuOptionsArgsBuilder internal constructor() {
    private var amdSevSnp: Output? = null

    private var coreCount: Output? = null

    private var threadsPerCore: Output? = null

    /**
     * @param value Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. For more information, see [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html).
     */
    @JvmName("tkijdmnodgxywkem")
    public suspend fun amdSevSnp(`value`: Output) {
        this.amdSevSnp = value
    }

    /**
     * @param value The number of CPU cores for the instance.
     */
    @JvmName("shlbgdoteuacvxwp")
    public suspend fun coreCount(`value`: Output) {
        this.coreCount = value
    }

    /**
     * @param value The number of threads per CPU core. To disable multithreading for the instance, specify a value of ``1``. Otherwise, specify the default value of ``2``.
     */
    @JvmName("qumepqkrbgrxyhnt")
    public suspend fun threadsPerCore(`value`: Output) {
        this.threadsPerCore = value
    }

    /**
     * @param value Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. For more information, see [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html).
     */
    @JvmName("ryyqkimfnblpwpyk")
    public suspend fun amdSevSnp(`value`: LaunchTemplateCpuOptionsAmdSevSnp?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.amdSevSnp = mapped
    }

    /**
     * @param value The number of CPU cores for the instance.
     */
    @JvmName("takdgfgaqosbyvqa")
    public suspend fun coreCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.coreCount = mapped
    }

    /**
     * @param value The number of threads per CPU core. To disable multithreading for the instance, specify a value of ``1``. Otherwise, specify the default value of ``2``.
     */
    @JvmName("pjocukmyctetstkh")
    public suspend fun threadsPerCore(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.threadsPerCore = mapped
    }

    internal fun build(): LaunchTemplateCpuOptionsArgs = LaunchTemplateCpuOptionsArgs(
        amdSevSnp = amdSevSnp,
        coreCount = coreCount,
        threadsPerCore = threadsPerCore,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy