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

com.pulumi.aws.ec2.kotlin.inputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs.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.57.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.ec2.kotlin.inputs

import com.pulumi.aws.ec2.inputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs.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.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property acceleratorCount Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum limits.
 * @property acceleratorManufacturers List of accelerator manufacturer names. Default is any manufacturer.
 * @property acceleratorNames List of accelerator names. Default is any acclerator.
 * @property acceleratorTotalMemoryMib Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.
 * @property acceleratorTypes The accelerator types that must be on the instance type. Default is any accelerator type.
 * @property allowedInstanceTypes The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards,represented by an asterisk (\*). The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types. Default is any instance type.
 * If you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`.
 * @property bareMetal Indicate whether bare metal instace types should be `included`, `excluded`, or `required`. Default is `excluded`.
 * @property baselineEbsBandwidthMbps Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.
 * @property burstablePerformance Indicates whether burstable performance T instance types are `included`, `excluded`, or `required`. Default is `excluded`.
 * @property cpuManufacturers The CPU manufacturers to include. Default is any manufacturer.
 * > **NOTE:** Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
 * @property excludedInstanceTypes The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (\*). The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.
 * If you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`.
 * @property instanceGenerations Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Valid values are `current` and `previous`. Default is `current` and `previous` generation instance types.
 * @property localStorage Indicate whether instance types with local storage volumes are `included`, `excluded`, or `required`. Default is `included`.
 * @property localStorageTypes List of local storage type names. Valid values are `hdd` and `ssd`. Default any storage type.
 * @property maxSpotPriceAsPercentageOfOptimalOnDemandPrice The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Conflicts with `spot_max_price_percentage_over_lowest_price`
 * @property memoryGibPerVcpu Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.
 * @property memoryMib The minimum and maximum amount of memory per vCPU, in GiB. Default is no minimum or maximum limits.
 * @property networkBandwidthGbps The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is No minimum or maximum.
 * @property networkInterfaceCount Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.
 * @property onDemandMaxPricePercentageOverLowestPrice The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.
 * If you set `target_capacity_unit_type` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.
 * @property requireHibernateSupport Indicate whether instance types must support On-Demand Instance Hibernation, either `true` or `false`. Default is `false`.
 * @property spotMaxPricePercentageOverLowestPrice The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100. Conflicts with `max_spot_price_as_percentage_of_optimal_on_demand_price`
 * If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
 * @property totalLocalStorageGb Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.
 * @property vcpuCount Block describing the minimum and maximum number of vCPUs. Default is no maximum.
 */
public data class FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs(
    public val acceleratorCount: Output? = null,
    public val acceleratorManufacturers: Output>? = null,
    public val acceleratorNames: Output>? = null,
    public val acceleratorTotalMemoryMib: Output? =
        null,
    public val acceleratorTypes: Output>? = null,
    public val allowedInstanceTypes: Output>? = null,
    public val bareMetal: Output? = null,
    public val baselineEbsBandwidthMbps: Output? =
        null,
    public val burstablePerformance: Output? = null,
    public val cpuManufacturers: Output>? = null,
    public val excludedInstanceTypes: Output>? = null,
    public val instanceGenerations: Output>? = null,
    public val localStorage: Output? = null,
    public val localStorageTypes: Output>? = null,
    public val maxSpotPriceAsPercentageOfOptimalOnDemandPrice: Output? = null,
    public val memoryGibPerVcpu: Output? = null,
    public val memoryMib: Output,
    public val networkBandwidthGbps: Output? = null,
    public val networkInterfaceCount: Output? =
        null,
    public val onDemandMaxPricePercentageOverLowestPrice: Output? = null,
    public val requireHibernateSupport: Output? = null,
    public val spotMaxPricePercentageOverLowestPrice: Output? = null,
    public val totalLocalStorageGb: Output? = null,
    public val vcpuCount: Output,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.ec2.inputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs =
        com.pulumi.aws.ec2.inputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs.builder()
            .acceleratorCount(acceleratorCount?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .acceleratorManufacturers(
                acceleratorManufacturers?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .acceleratorNames(acceleratorNames?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .acceleratorTotalMemoryMib(
                acceleratorTotalMemoryMib?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .acceleratorTypes(acceleratorTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .allowedInstanceTypes(allowedInstanceTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .bareMetal(bareMetal?.applyValue({ args0 -> args0 }))
            .baselineEbsBandwidthMbps(
                baselineEbsBandwidthMbps?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .burstablePerformance(burstablePerformance?.applyValue({ args0 -> args0 }))
            .cpuManufacturers(cpuManufacturers?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .excludedInstanceTypes(excludedInstanceTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .instanceGenerations(instanceGenerations?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .localStorage(localStorage?.applyValue({ args0 -> args0 }))
            .localStorageTypes(localStorageTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .maxSpotPriceAsPercentageOfOptimalOnDemandPrice(
                maxSpotPriceAsPercentageOfOptimalOnDemandPrice?.applyValue({ args0 ->
                    args0
                }),
            )
            .memoryGibPerVcpu(memoryGibPerVcpu?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .memoryMib(memoryMib.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .networkBandwidthGbps(
                networkBandwidthGbps?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .networkInterfaceCount(
                networkInterfaceCount?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .onDemandMaxPricePercentageOverLowestPrice(
                onDemandMaxPricePercentageOverLowestPrice?.applyValue({ args0 ->
                    args0
                }),
            )
            .requireHibernateSupport(requireHibernateSupport?.applyValue({ args0 -> args0 }))
            .spotMaxPricePercentageOverLowestPrice(
                spotMaxPricePercentageOverLowestPrice?.applyValue({ args0 ->
                    args0
                }),
            )
            .totalLocalStorageGb(
                totalLocalStorageGb?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .vcpuCount(vcpuCount.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs].
 */
@PulumiTagMarker
public class FleetLaunchTemplateConfigOverrideInstanceRequirementsArgsBuilder internal constructor() {
    private var acceleratorCount:
        Output? = null

    private var acceleratorManufacturers: Output>? = null

    private var acceleratorNames: Output>? = null

    private var acceleratorTotalMemoryMib:
        Output? =
        null

    private var acceleratorTypes: Output>? = null

    private var allowedInstanceTypes: Output>? = null

    private var bareMetal: Output? = null

    private var baselineEbsBandwidthMbps:
        Output? =
        null

    private var burstablePerformance: Output? = null

    private var cpuManufacturers: Output>? = null

    private var excludedInstanceTypes: Output>? = null

    private var instanceGenerations: Output>? = null

    private var localStorage: Output? = null

    private var localStorageTypes: Output>? = null

    private var maxSpotPriceAsPercentageOfOptimalOnDemandPrice: Output? = null

    private var memoryGibPerVcpu:
        Output? = null

    private var memoryMib: Output? =
        null

    private var networkBandwidthGbps:
        Output? = null

    private var networkInterfaceCount:
        Output? = null

    private var onDemandMaxPricePercentageOverLowestPrice: Output? = null

    private var requireHibernateSupport: Output? = null

    private var spotMaxPricePercentageOverLowestPrice: Output? = null

    private var totalLocalStorageGb:
        Output? = null

    private var vcpuCount: Output? =
        null

    /**
     * @param value Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum limits.
     */
    @JvmName("cdknqdeomhbcxjdd")
    public suspend fun acceleratorCount(`value`: Output) {
        this.acceleratorCount = value
    }

    /**
     * @param value List of accelerator manufacturer names. Default is any manufacturer.
     */
    @JvmName("ftwhcjlvbekrlmwf")
    public suspend fun acceleratorManufacturers(`value`: Output>) {
        this.acceleratorManufacturers = value
    }

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

    /**
     * @param values List of accelerator manufacturer names. Default is any manufacturer.
     */
    @JvmName("ixjityfaoigdgyvq")
    public suspend fun acceleratorManufacturers(values: List>) {
        this.acceleratorManufacturers = Output.all(values)
    }

    /**
     * @param value List of accelerator names. Default is any acclerator.
     */
    @JvmName("qalstscxgmgatuog")
    public suspend fun acceleratorNames(`value`: Output>) {
        this.acceleratorNames = value
    }

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

    /**
     * @param values List of accelerator names. Default is any acclerator.
     */
    @JvmName("kpqjcsfwsxdeisxr")
    public suspend fun acceleratorNames(values: List>) {
        this.acceleratorNames = Output.all(values)
    }

    /**
     * @param value Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.
     */
    @JvmName("ayodkmgmkvibhgmd")
    public suspend fun acceleratorTotalMemoryMib(`value`: Output) {
        this.acceleratorTotalMemoryMib = value
    }

    /**
     * @param value The accelerator types that must be on the instance type. Default is any accelerator type.
     */
    @JvmName("cbskgmiukxfllejo")
    public suspend fun acceleratorTypes(`value`: Output>) {
        this.acceleratorTypes = value
    }

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

    /**
     * @param values The accelerator types that must be on the instance type. Default is any accelerator type.
     */
    @JvmName("nkvsgawoapvyoeql")
    public suspend fun acceleratorTypes(values: List>) {
        this.acceleratorTypes = Output.all(values)
    }

    /**
     * @param value The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards,represented by an asterisk (\*). The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types. Default is any instance type.
     * If you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`.
     */
    @JvmName("jbdsnuuudksmmlun")
    public suspend fun allowedInstanceTypes(`value`: Output>) {
        this.allowedInstanceTypes = value
    }

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

    /**
     * @param values The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards,represented by an asterisk (\*). The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types. Default is any instance type.
     * If you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`.
     */
    @JvmName("rktglsgpfbouftmf")
    public suspend fun allowedInstanceTypes(values: List>) {
        this.allowedInstanceTypes = Output.all(values)
    }

    /**
     * @param value Indicate whether bare metal instace types should be `included`, `excluded`, or `required`. Default is `excluded`.
     */
    @JvmName("sjcrfnwrxogdudcw")
    public suspend fun bareMetal(`value`: Output) {
        this.bareMetal = value
    }

    /**
     * @param value Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.
     */
    @JvmName("cnlvceppfmqitnjt")
    public suspend fun baselineEbsBandwidthMbps(`value`: Output) {
        this.baselineEbsBandwidthMbps = value
    }

    /**
     * @param value Indicates whether burstable performance T instance types are `included`, `excluded`, or `required`. Default is `excluded`.
     */
    @JvmName("hvcsgiwhhdptkckd")
    public suspend fun burstablePerformance(`value`: Output) {
        this.burstablePerformance = value
    }

    /**
     * @param value The CPU manufacturers to include. Default is any manufacturer.
     * > **NOTE:** Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
     */
    @JvmName("nsvwgknueyxmwjvu")
    public suspend fun cpuManufacturers(`value`: Output>) {
        this.cpuManufacturers = value
    }

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

    /**
     * @param values The CPU manufacturers to include. Default is any manufacturer.
     * > **NOTE:** Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
     */
    @JvmName("vcwkciptjkdsuraj")
    public suspend fun cpuManufacturers(values: List>) {
        this.cpuManufacturers = Output.all(values)
    }

    /**
     * @param value The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (\*). The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.
     * If you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`.
     */
    @JvmName("jiyafcbprffbhrej")
    public suspend fun excludedInstanceTypes(`value`: Output>) {
        this.excludedInstanceTypes = value
    }

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

    /**
     * @param values The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (\*). The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.
     * If you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`.
     */
    @JvmName("tqnbwutgfrdpklry")
    public suspend fun excludedInstanceTypes(values: List>) {
        this.excludedInstanceTypes = Output.all(values)
    }

    /**
     * @param value Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Valid values are `current` and `previous`. Default is `current` and `previous` generation instance types.
     */
    @JvmName("arowupvtcolfargi")
    public suspend fun instanceGenerations(`value`: Output>) {
        this.instanceGenerations = value
    }

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

    /**
     * @param values Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Valid values are `current` and `previous`. Default is `current` and `previous` generation instance types.
     */
    @JvmName("gkedbqilapckomem")
    public suspend fun instanceGenerations(values: List>) {
        this.instanceGenerations = Output.all(values)
    }

    /**
     * @param value Indicate whether instance types with local storage volumes are `included`, `excluded`, or `required`. Default is `included`.
     */
    @JvmName("xtwlrfywcpxbwoeu")
    public suspend fun localStorage(`value`: Output) {
        this.localStorage = value
    }

    /**
     * @param value List of local storage type names. Valid values are `hdd` and `ssd`. Default any storage type.
     */
    @JvmName("kanhxepfxhckxhqm")
    public suspend fun localStorageTypes(`value`: Output>) {
        this.localStorageTypes = value
    }

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

    /**
     * @param values List of local storage type names. Valid values are `hdd` and `ssd`. Default any storage type.
     */
    @JvmName("lsrqrlefpnyywiuo")
    public suspend fun localStorageTypes(values: List>) {
        this.localStorageTypes = Output.all(values)
    }

    /**
     * @param value The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Conflicts with `spot_max_price_percentage_over_lowest_price`
     */
    @JvmName("qqoeodxthqdtoxwh")
    public suspend fun maxSpotPriceAsPercentageOfOptimalOnDemandPrice(`value`: Output) {
        this.maxSpotPriceAsPercentageOfOptimalOnDemandPrice = value
    }

    /**
     * @param value Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.
     */
    @JvmName("tlqflsinpmsyxogj")
    public suspend fun memoryGibPerVcpu(`value`: Output) {
        this.memoryGibPerVcpu = value
    }

    /**
     * @param value The minimum and maximum amount of memory per vCPU, in GiB. Default is no minimum or maximum limits.
     */
    @JvmName("ammdbednmqswkypa")
    public suspend fun memoryMib(`value`: Output) {
        this.memoryMib = value
    }

    /**
     * @param value The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is No minimum or maximum.
     */
    @JvmName("luklevuomybemlid")
    public suspend fun networkBandwidthGbps(`value`: Output) {
        this.networkBandwidthGbps = value
    }

    /**
     * @param value Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.
     */
    @JvmName("cuvfehpavwkfgsmj")
    public suspend fun networkInterfaceCount(`value`: Output) {
        this.networkInterfaceCount = value
    }

    /**
     * @param value The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.
     * If you set `target_capacity_unit_type` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.
     */
    @JvmName("ivdumwvbjwhtebpo")
    public suspend fun onDemandMaxPricePercentageOverLowestPrice(`value`: Output) {
        this.onDemandMaxPricePercentageOverLowestPrice = value
    }

    /**
     * @param value Indicate whether instance types must support On-Demand Instance Hibernation, either `true` or `false`. Default is `false`.
     */
    @JvmName("ywoirsatusknkieo")
    public suspend fun requireHibernateSupport(`value`: Output) {
        this.requireHibernateSupport = value
    }

    /**
     * @param value The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100. Conflicts with `max_spot_price_as_percentage_of_optimal_on_demand_price`
     * If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
     */
    @JvmName("ocumrxwnheaoiaqc")
    public suspend fun spotMaxPricePercentageOverLowestPrice(`value`: Output) {
        this.spotMaxPricePercentageOverLowestPrice = value
    }

    /**
     * @param value Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.
     */
    @JvmName("jwvnpjmtktxpiyrl")
    public suspend fun totalLocalStorageGb(`value`: Output) {
        this.totalLocalStorageGb = value
    }

    /**
     * @param value Block describing the minimum and maximum number of vCPUs. Default is no maximum.
     */
    @JvmName("ruajxegiivnuajum")
    public suspend fun vcpuCount(`value`: Output) {
        this.vcpuCount = value
    }

    /**
     * @param value Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum limits.
     */
    @JvmName("awfwgclueaiwuwrd")
    public suspend fun acceleratorCount(`value`: FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.acceleratorCount = mapped
    }

    /**
     * @param argument Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum limits.
     */
    @JvmName("qxgyaprrngtoyvqw")
    public suspend fun acceleratorCount(argument: suspend FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgsBuilder.() -> Unit) {
        val toBeMapped =
            FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.acceleratorCount = mapped
    }

    /**
     * @param value List of accelerator manufacturer names. Default is any manufacturer.
     */
    @JvmName("jxwlhmtnkjtbkipu")
    public suspend fun acceleratorManufacturers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.acceleratorManufacturers = mapped
    }

    /**
     * @param values List of accelerator manufacturer names. Default is any manufacturer.
     */
    @JvmName("ptkkacprikysnwnx")
    public suspend fun acceleratorManufacturers(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.acceleratorManufacturers = mapped
    }

    /**
     * @param value List of accelerator names. Default is any acclerator.
     */
    @JvmName("jlkcruhhimptfebl")
    public suspend fun acceleratorNames(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.acceleratorNames = mapped
    }

    /**
     * @param values List of accelerator names. Default is any acclerator.
     */
    @JvmName("sscrnpymmodjilxv")
    public suspend fun acceleratorNames(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.acceleratorNames = mapped
    }

    /**
     * @param value Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.
     */
    @JvmName("oojxovoahypytbtt")
    public suspend fun acceleratorTotalMemoryMib(`value`: FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.acceleratorTotalMemoryMib = mapped
    }

    /**
     * @param argument Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.
     */
    @JvmName("lilujbcimqknqiae")
    public suspend fun acceleratorTotalMemoryMib(argument: suspend FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgsBuilder.() -> Unit) {
        val toBeMapped =
            FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.acceleratorTotalMemoryMib = mapped
    }

    /**
     * @param value The accelerator types that must be on the instance type. Default is any accelerator type.
     */
    @JvmName("qnkfnlxsjpuhhldd")
    public suspend fun acceleratorTypes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.acceleratorTypes = mapped
    }

    /**
     * @param values The accelerator types that must be on the instance type. Default is any accelerator type.
     */
    @JvmName("uoxnkpgryvvsydtu")
    public suspend fun acceleratorTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.acceleratorTypes = mapped
    }

    /**
     * @param value The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards,represented by an asterisk (\*). The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types. Default is any instance type.
     * If you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`.
     */
    @JvmName("kpeepjaxwkyglfsc")
    public suspend fun allowedInstanceTypes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedInstanceTypes = mapped
    }

    /**
     * @param values The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards,represented by an asterisk (\*). The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types. Default is any instance type.
     * If you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`.
     */
    @JvmName("untkrhbynqydrpvp")
    public suspend fun allowedInstanceTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedInstanceTypes = mapped
    }

    /**
     * @param value Indicate whether bare metal instace types should be `included`, `excluded`, or `required`. Default is `excluded`.
     */
    @JvmName("krsfjxiwprxkkvyd")
    public suspend fun bareMetal(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bareMetal = mapped
    }

    /**
     * @param value Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.
     */
    @JvmName("umuvmmbqfassklge")
    public suspend fun baselineEbsBandwidthMbps(`value`: FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.baselineEbsBandwidthMbps = mapped
    }

    /**
     * @param argument Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.
     */
    @JvmName("yekyaskkquxjbjwg")
    public suspend fun baselineEbsBandwidthMbps(argument: suspend FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgsBuilder.() -> Unit) {
        val toBeMapped =
            FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.baselineEbsBandwidthMbps = mapped
    }

    /**
     * @param value Indicates whether burstable performance T instance types are `included`, `excluded`, or `required`. Default is `excluded`.
     */
    @JvmName("ggjmchmlypidesci")
    public suspend fun burstablePerformance(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.burstablePerformance = mapped
    }

    /**
     * @param value The CPU manufacturers to include. Default is any manufacturer.
     * > **NOTE:** Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
     */
    @JvmName("lclltjewxrxnnsxa")
    public suspend fun cpuManufacturers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cpuManufacturers = mapped
    }

    /**
     * @param values The CPU manufacturers to include. Default is any manufacturer.
     * > **NOTE:** Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
     */
    @JvmName("fvhhrtgiloyqioua")
    public suspend fun cpuManufacturers(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.cpuManufacturers = mapped
    }

    /**
     * @param value The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (\*). The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.
     * If you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`.
     */
    @JvmName("vllfqfrjbjluquup")
    public suspend fun excludedInstanceTypes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludedInstanceTypes = mapped
    }

    /**
     * @param values The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (\*). The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.
     * If you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`.
     */
    @JvmName("wtpvdtokldrpltfa")
    public suspend fun excludedInstanceTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludedInstanceTypes = mapped
    }

    /**
     * @param value Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Valid values are `current` and `previous`. Default is `current` and `previous` generation instance types.
     */
    @JvmName("mdwllwiadosregag")
    public suspend fun instanceGenerations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceGenerations = mapped
    }

    /**
     * @param values Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Valid values are `current` and `previous`. Default is `current` and `previous` generation instance types.
     */
    @JvmName("yyhrhevqdfjulilf")
    public suspend fun instanceGenerations(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.instanceGenerations = mapped
    }

    /**
     * @param value Indicate whether instance types with local storage volumes are `included`, `excluded`, or `required`. Default is `included`.
     */
    @JvmName("bklsehqljpgymoxb")
    public suspend fun localStorage(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.localStorage = mapped
    }

    /**
     * @param value List of local storage type names. Valid values are `hdd` and `ssd`. Default any storage type.
     */
    @JvmName("ujtopxgjbgecatok")
    public suspend fun localStorageTypes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.localStorageTypes = mapped
    }

    /**
     * @param values List of local storage type names. Valid values are `hdd` and `ssd`. Default any storage type.
     */
    @JvmName("ssudyqfntudxpdig")
    public suspend fun localStorageTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.localStorageTypes = mapped
    }

    /**
     * @param value The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Conflicts with `spot_max_price_percentage_over_lowest_price`
     */
    @JvmName("gidjaekrcsybjqlf")
    public suspend fun maxSpotPriceAsPercentageOfOptimalOnDemandPrice(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxSpotPriceAsPercentageOfOptimalOnDemandPrice = mapped
    }

    /**
     * @param value Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.
     */
    @JvmName("lpclpfmybmxarvfm")
    public suspend fun memoryGibPerVcpu(`value`: FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.memoryGibPerVcpu = mapped
    }

    /**
     * @param argument Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.
     */
    @JvmName("xvjcbvvarutdpxhf")
    public suspend fun memoryGibPerVcpu(argument: suspend FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgsBuilder.() -> Unit) {
        val toBeMapped =
            FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.memoryGibPerVcpu = mapped
    }

    /**
     * @param value The minimum and maximum amount of memory per vCPU, in GiB. Default is no minimum or maximum limits.
     */
    @JvmName("fstwcsymnyhduyiw")
    public suspend fun memoryMib(`value`: FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.memoryMib = mapped
    }

    /**
     * @param argument The minimum and maximum amount of memory per vCPU, in GiB. Default is no minimum or maximum limits.
     */
    @JvmName("oetctelxtlhqollv")
    public suspend fun memoryMib(argument: suspend FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgsBuilder.() -> Unit) {
        val toBeMapped =
            FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.memoryMib = mapped
    }

    /**
     * @param value The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is No minimum or maximum.
     */
    @JvmName("kvhagakwiaajsokg")
    public suspend fun networkBandwidthGbps(`value`: FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkBandwidthGbps = mapped
    }

    /**
     * @param argument The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is No minimum or maximum.
     */
    @JvmName("fvywbmdbytxpunqs")
    public suspend fun networkBandwidthGbps(argument: suspend FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgsBuilder.() -> Unit) {
        val toBeMapped =
            FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.networkBandwidthGbps = mapped
    }

    /**
     * @param value Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.
     */
    @JvmName("ymvistsqbybrjabl")
    public suspend fun networkInterfaceCount(`value`: FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkInterfaceCount = mapped
    }

    /**
     * @param argument Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.
     */
    @JvmName("qjicymqgliguvaug")
    public suspend fun networkInterfaceCount(argument: suspend FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgsBuilder.() -> Unit) {
        val toBeMapped =
            FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.networkInterfaceCount = mapped
    }

    /**
     * @param value The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.
     * If you set `target_capacity_unit_type` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.
     */
    @JvmName("ftamliorbbyripet")
    public suspend fun onDemandMaxPricePercentageOverLowestPrice(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.onDemandMaxPricePercentageOverLowestPrice = mapped
    }

    /**
     * @param value Indicate whether instance types must support On-Demand Instance Hibernation, either `true` or `false`. Default is `false`.
     */
    @JvmName("udcnyywdskjcfnen")
    public suspend fun requireHibernateSupport(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requireHibernateSupport = mapped
    }

    /**
     * @param value The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100. Conflicts with `max_spot_price_as_percentage_of_optimal_on_demand_price`
     * If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
     */
    @JvmName("klupedobnjdscfvh")
    public suspend fun spotMaxPricePercentageOverLowestPrice(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.spotMaxPricePercentageOverLowestPrice = mapped
    }

    /**
     * @param value Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.
     */
    @JvmName("qrqlgqjropguotrv")
    public suspend fun totalLocalStorageGb(`value`: FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.totalLocalStorageGb = mapped
    }

    /**
     * @param argument Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.
     */
    @JvmName("rcvfnmvctsbbkepw")
    public suspend fun totalLocalStorageGb(argument: suspend FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgsBuilder.() -> Unit) {
        val toBeMapped =
            FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.totalLocalStorageGb = mapped
    }

    /**
     * @param value Block describing the minimum and maximum number of vCPUs. Default is no maximum.
     */
    @JvmName("scatplsemifytyow")
    public suspend fun vcpuCount(`value`: FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.vcpuCount = mapped
    }

    /**
     * @param argument Block describing the minimum and maximum number of vCPUs. Default is no maximum.
     */
    @JvmName("jaentvnjxlwaawfu")
    public suspend fun vcpuCount(argument: suspend FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgsBuilder.() -> Unit) {
        val toBeMapped =
            FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.vcpuCount = mapped
    }

    internal fun build(): FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs =
        FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs(
            acceleratorCount = acceleratorCount,
            acceleratorManufacturers = acceleratorManufacturers,
            acceleratorNames = acceleratorNames,
            acceleratorTotalMemoryMib = acceleratorTotalMemoryMib,
            acceleratorTypes = acceleratorTypes,
            allowedInstanceTypes = allowedInstanceTypes,
            bareMetal = bareMetal,
            baselineEbsBandwidthMbps = baselineEbsBandwidthMbps,
            burstablePerformance = burstablePerformance,
            cpuManufacturers = cpuManufacturers,
            excludedInstanceTypes = excludedInstanceTypes,
            instanceGenerations = instanceGenerations,
            localStorage = localStorage,
            localStorageTypes = localStorageTypes,
            maxSpotPriceAsPercentageOfOptimalOnDemandPrice = maxSpotPriceAsPercentageOfOptimalOnDemandPrice,
            memoryGibPerVcpu = memoryGibPerVcpu,
            memoryMib = memoryMib ?: throw PulumiNullFieldException("memoryMib"),
            networkBandwidthGbps = networkBandwidthGbps,
            networkInterfaceCount = networkInterfaceCount,
            onDemandMaxPricePercentageOverLowestPrice = onDemandMaxPricePercentageOverLowestPrice,
            requireHibernateSupport = requireHibernateSupport,
            spotMaxPricePercentageOverLowestPrice = spotMaxPricePercentageOverLowestPrice,
            totalLocalStorageGb = totalLocalStorageGb,
            vcpuCount = vcpuCount ?: throw PulumiNullFieldException("vcpuCount"),
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy