Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@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