Please wait. This can take some minutes ...
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.
com.pulumi.aws.batch.kotlin.inputs.ComputeEnvironmentComputeResourcesArgs.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.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.aws.batch.kotlin.inputs
import com.pulumi.aws.batch.inputs.ComputeEnvironmentComputeResourcesArgs.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.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
*
* @property allocationStrategy The allocation strategy to use for the compute resource in case not enough instances of the best fitting instance type can be allocated. For valid values, refer to the [AWS documentation](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-allocationStrategy). Defaults to `BEST_FIT`. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
* @property bidPercentage Integer of maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your bid percentage is 20% (`20`), then the Spot price must be below 20% of the current On-Demand price for that EC2 instance. If you leave this field empty, the default value is 100% of the On-Demand price. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
* @property desiredVcpus The desired number of EC2 vCPUS in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
* @property ec2Configurations Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2. This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.
* @property ec2KeyPair The EC2 key pair that is used for instances launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
* @property imageId The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. (Deprecated, use `ec2_configuration` `image_id_override` instead)
* @property instanceRole The Amazon ECS instance role applied to Amazon EC2 instances in a compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
* @property instanceTypes A list of instance types that may be launched. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
* @property launchTemplate The launch template to use for your compute resources. See details below. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
* @property maxVcpus The maximum number of EC2 vCPUs that an environment can reach.
* @property minVcpus The minimum number of EC2 vCPUs that an environment should maintain. For `EC2` or `SPOT` compute environments, if the parameter is not explicitly defined, a `0` default value will be set. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
* @property placementGroup The Amazon EC2 placement group to associate with your compute resources.
* @property securityGroupIds A list of EC2 security group that are associated with instances launched in the compute environment. This parameter is required for Fargate compute environments.
* @property spotIamFleetRole The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This parameter is required for SPOT compute environments. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
* @property subnets A list of VPC subnets into which the compute resources are launched.
* @property tags Key-value pair tags to be applied to resources that are launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
* @property type The type of compute environment. Valid items are `EC2`, `SPOT`, `FARGATE` or `FARGATE_SPOT`.
*/
public data class ComputeEnvironmentComputeResourcesArgs(
public val allocationStrategy: Output? = null,
public val bidPercentage: Output? = null,
public val desiredVcpus: Output? = null,
public val ec2Configurations: Output>? = null,
public val ec2KeyPair: Output? = null,
public val imageId: Output? = null,
public val instanceRole: Output? = null,
public val instanceTypes: Output>? = null,
public val launchTemplate: Output? = null,
public val maxVcpus: Output,
public val minVcpus: Output? = null,
public val placementGroup: Output? = null,
public val securityGroupIds: Output>? = null,
public val spotIamFleetRole: Output? = null,
public val subnets: Output>,
public val tags: Output>? = null,
public val type: Output,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.aws.batch.inputs.ComputeEnvironmentComputeResourcesArgs =
com.pulumi.aws.batch.inputs.ComputeEnvironmentComputeResourcesArgs.builder()
.allocationStrategy(allocationStrategy?.applyValue({ args0 -> args0 }))
.bidPercentage(bidPercentage?.applyValue({ args0 -> args0 }))
.desiredVcpus(desiredVcpus?.applyValue({ args0 -> args0 }))
.ec2Configurations(
ec2Configurations?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.ec2KeyPair(ec2KeyPair?.applyValue({ args0 -> args0 }))
.imageId(imageId?.applyValue({ args0 -> args0 }))
.instanceRole(instanceRole?.applyValue({ args0 -> args0 }))
.instanceTypes(instanceTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.launchTemplate(launchTemplate?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.maxVcpus(maxVcpus.applyValue({ args0 -> args0 }))
.minVcpus(minVcpus?.applyValue({ args0 -> args0 }))
.placementGroup(placementGroup?.applyValue({ args0 -> args0 }))
.securityGroupIds(securityGroupIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.spotIamFleetRole(spotIamFleetRole?.applyValue({ args0 -> args0 }))
.subnets(subnets.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
.type(type.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [ComputeEnvironmentComputeResourcesArgs].
*/
@PulumiTagMarker
public class ComputeEnvironmentComputeResourcesArgsBuilder internal constructor() {
private var allocationStrategy: Output? = null
private var bidPercentage: Output? = null
private var desiredVcpus: Output? = null
private var ec2Configurations:
Output>? = null
private var ec2KeyPair: Output? = null
private var imageId: Output? = null
private var instanceRole: Output? = null
private var instanceTypes: Output>? = null
private var launchTemplate: Output? = null
private var maxVcpus: Output? = null
private var minVcpus: Output? = null
private var placementGroup: Output? = null
private var securityGroupIds: Output>? = null
private var spotIamFleetRole: Output? = null
private var subnets: Output>? = null
private var tags: Output>? = null
private var type: Output? = null
/**
* @param value The allocation strategy to use for the compute resource in case not enough instances of the best fitting instance type can be allocated. For valid values, refer to the [AWS documentation](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-allocationStrategy). Defaults to `BEST_FIT`. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("tdhokjwryppehuxv")
public suspend fun allocationStrategy(`value`: Output) {
this.allocationStrategy = value
}
/**
* @param value Integer of maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your bid percentage is 20% (`20`), then the Spot price must be below 20% of the current On-Demand price for that EC2 instance. If you leave this field empty, the default value is 100% of the On-Demand price. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("cpfnbebualodrbxd")
public suspend fun bidPercentage(`value`: Output) {
this.bidPercentage = value
}
/**
* @param value The desired number of EC2 vCPUS in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("ivoclhqyqaelarua")
public suspend fun desiredVcpus(`value`: Output) {
this.desiredVcpus = value
}
/**
* @param value Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2. This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.
*/
@JvmName("ddgxqeprdfhxfilg")
public suspend fun ec2Configurations(`value`: Output>) {
this.ec2Configurations = value
}
@JvmName("ttsiujdjmffddpap")
public suspend fun ec2Configurations(vararg values: Output) {
this.ec2Configurations = Output.all(values.asList())
}
/**
* @param values Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2. This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.
*/
@JvmName("elkdyfirwirnjnre")
public suspend fun ec2Configurations(values: List>) {
this.ec2Configurations = Output.all(values)
}
/**
* @param value The EC2 key pair that is used for instances launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("ajhbitcvuoefdldu")
public suspend fun ec2KeyPair(`value`: Output) {
this.ec2KeyPair = value
}
/**
* @param value The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. (Deprecated, use `ec2_configuration` `image_id_override` instead)
*/
@JvmName("unrardtvyqrofvle")
public suspend fun imageId(`value`: Output) {
this.imageId = value
}
/**
* @param value The Amazon ECS instance role applied to Amazon EC2 instances in a compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("bbgyvhlhngtgrtcv")
public suspend fun instanceRole(`value`: Output) {
this.instanceRole = value
}
/**
* @param value A list of instance types that may be launched. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("xbyaphdcdkmlkegp")
public suspend fun instanceTypes(`value`: Output>) {
this.instanceTypes = value
}
@JvmName("fiuhcehxrkukdnur")
public suspend fun instanceTypes(vararg values: Output) {
this.instanceTypes = Output.all(values.asList())
}
/**
* @param values A list of instance types that may be launched. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("dubhoscqqmgsnysa")
public suspend fun instanceTypes(values: List>) {
this.instanceTypes = Output.all(values)
}
/**
* @param value The launch template to use for your compute resources. See details below. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("qkwbsusbybtkjlcc")
public suspend fun launchTemplate(`value`: Output) {
this.launchTemplate = value
}
/**
* @param value The maximum number of EC2 vCPUs that an environment can reach.
*/
@JvmName("oxspmahdhpcmbsyg")
public suspend fun maxVcpus(`value`: Output) {
this.maxVcpus = value
}
/**
* @param value The minimum number of EC2 vCPUs that an environment should maintain. For `EC2` or `SPOT` compute environments, if the parameter is not explicitly defined, a `0` default value will be set. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("nyerxnkqsjaqhojj")
public suspend fun minVcpus(`value`: Output) {
this.minVcpus = value
}
/**
* @param value The Amazon EC2 placement group to associate with your compute resources.
*/
@JvmName("tfkcnvjjnlpmswht")
public suspend fun placementGroup(`value`: Output) {
this.placementGroup = value
}
/**
* @param value A list of EC2 security group that are associated with instances launched in the compute environment. This parameter is required for Fargate compute environments.
*/
@JvmName("lsikillnxossvvrm")
public suspend fun securityGroupIds(`value`: Output>) {
this.securityGroupIds = value
}
@JvmName("ujiorahjvwfwfnph")
public suspend fun securityGroupIds(vararg values: Output) {
this.securityGroupIds = Output.all(values.asList())
}
/**
* @param values A list of EC2 security group that are associated with instances launched in the compute environment. This parameter is required for Fargate compute environments.
*/
@JvmName("vvpjnvjrurlpknrl")
public suspend fun securityGroupIds(values: List>) {
this.securityGroupIds = Output.all(values)
}
/**
* @param value The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This parameter is required for SPOT compute environments. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("jkeuynabgoxraelo")
public suspend fun spotIamFleetRole(`value`: Output) {
this.spotIamFleetRole = value
}
/**
* @param value A list of VPC subnets into which the compute resources are launched.
*/
@JvmName("gwjylmiwmeqlrybg")
public suspend fun subnets(`value`: Output>) {
this.subnets = value
}
@JvmName("ywyosrciprikmbqt")
public suspend fun subnets(vararg values: Output) {
this.subnets = Output.all(values.asList())
}
/**
* @param values A list of VPC subnets into which the compute resources are launched.
*/
@JvmName("yyixiogmvmepwbui")
public suspend fun subnets(values: List>) {
this.subnets = Output.all(values)
}
/**
* @param value Key-value pair tags to be applied to resources that are launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("xmscctsfannuasio")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
/**
* @param value The type of compute environment. Valid items are `EC2`, `SPOT`, `FARGATE` or `FARGATE_SPOT`.
*/
@JvmName("rfwlvaktiljmkbaj")
public suspend fun type(`value`: Output) {
this.type = value
}
/**
* @param value The allocation strategy to use for the compute resource in case not enough instances of the best fitting instance type can be allocated. For valid values, refer to the [AWS documentation](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-allocationStrategy). Defaults to `BEST_FIT`. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("qysxstatrqhhytmc")
public suspend fun allocationStrategy(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.allocationStrategy = mapped
}
/**
* @param value Integer of maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your bid percentage is 20% (`20`), then the Spot price must be below 20% of the current On-Demand price for that EC2 instance. If you leave this field empty, the default value is 100% of the On-Demand price. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("nmgopxeysyaiiyis")
public suspend fun bidPercentage(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.bidPercentage = mapped
}
/**
* @param value The desired number of EC2 vCPUS in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("wqmgamdvuppfdnak")
public suspend fun desiredVcpus(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.desiredVcpus = mapped
}
/**
* @param value Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2. This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.
*/
@JvmName("atkdvwlxsymaeolj")
public suspend fun ec2Configurations(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.ec2Configurations = mapped
}
/**
* @param argument Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2. This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.
*/
@JvmName("nlcdqpnuxphwocim")
public suspend fun ec2Configurations(argument: List Unit>) {
val toBeMapped = argument.toList().map {
ComputeEnvironmentComputeResourcesEc2ConfigurationArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.ec2Configurations = mapped
}
/**
* @param argument Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2. This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.
*/
@JvmName("ossebktgnegqpphd")
public suspend fun ec2Configurations(vararg argument: suspend ComputeEnvironmentComputeResourcesEc2ConfigurationArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
ComputeEnvironmentComputeResourcesEc2ConfigurationArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.ec2Configurations = mapped
}
/**
* @param argument Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2. This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.
*/
@JvmName("ihwboocfcauibrlu")
public suspend fun ec2Configurations(argument: suspend ComputeEnvironmentComputeResourcesEc2ConfigurationArgsBuilder.() -> Unit) {
val toBeMapped =
listOf(
ComputeEnvironmentComputeResourcesEc2ConfigurationArgsBuilder().applySuspend {
argument()
}.build(),
)
val mapped = of(toBeMapped)
this.ec2Configurations = mapped
}
/**
* @param values Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2. This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.
*/
@JvmName("bhshtwdyluwvxjhj")
public suspend fun ec2Configurations(vararg values: ComputeEnvironmentComputeResourcesEc2ConfigurationArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.ec2Configurations = mapped
}
/**
* @param value The EC2 key pair that is used for instances launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("acepedrtrfagxymm")
public suspend fun ec2KeyPair(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.ec2KeyPair = mapped
}
/**
* @param value The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. (Deprecated, use `ec2_configuration` `image_id_override` instead)
*/
@JvmName("kigaadlyeoitxmnb")
public suspend fun imageId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.imageId = mapped
}
/**
* @param value The Amazon ECS instance role applied to Amazon EC2 instances in a compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("oxkmqcjrqltnaopv")
public suspend fun instanceRole(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.instanceRole = mapped
}
/**
* @param value A list of instance types that may be launched. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("uyoyrdtvhowxfvli")
public suspend fun instanceTypes(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.instanceTypes = mapped
}
/**
* @param values A list of instance types that may be launched. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("mnxcycnxpeyegjvj")
public suspend fun instanceTypes(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.instanceTypes = mapped
}
/**
* @param value The launch template to use for your compute resources. See details below. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("flqanxbqyheuwasx")
public suspend fun launchTemplate(`value`: ComputeEnvironmentComputeResourcesLaunchTemplateArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.launchTemplate = mapped
}
/**
* @param argument The launch template to use for your compute resources. See details below. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("dldmlotxqsrtovsb")
public suspend fun launchTemplate(argument: suspend ComputeEnvironmentComputeResourcesLaunchTemplateArgsBuilder.() -> Unit) {
val toBeMapped = ComputeEnvironmentComputeResourcesLaunchTemplateArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.launchTemplate = mapped
}
/**
* @param value The maximum number of EC2 vCPUs that an environment can reach.
*/
@JvmName("vphnerfeajktvxqh")
public suspend fun maxVcpus(`value`: Int) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.maxVcpus = mapped
}
/**
* @param value The minimum number of EC2 vCPUs that an environment should maintain. For `EC2` or `SPOT` compute environments, if the parameter is not explicitly defined, a `0` default value will be set. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("wgjirkeyognfptbn")
public suspend fun minVcpus(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.minVcpus = mapped
}
/**
* @param value The Amazon EC2 placement group to associate with your compute resources.
*/
@JvmName("hbcmxiwdcecavpkw")
public suspend fun placementGroup(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.placementGroup = mapped
}
/**
* @param value A list of EC2 security group that are associated with instances launched in the compute environment. This parameter is required for Fargate compute environments.
*/
@JvmName("rvbljqftkcpuqvlr")
public suspend fun securityGroupIds(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.securityGroupIds = mapped
}
/**
* @param values A list of EC2 security group that are associated with instances launched in the compute environment. This parameter is required for Fargate compute environments.
*/
@JvmName("dxanvrtdswbkuvkf")
public suspend fun securityGroupIds(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.securityGroupIds = mapped
}
/**
* @param value The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This parameter is required for SPOT compute environments. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("pybfsdpxcyssuvwn")
public suspend fun spotIamFleetRole(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.spotIamFleetRole = mapped
}
/**
* @param value A list of VPC subnets into which the compute resources are launched.
*/
@JvmName("dbcfcmhfhmqxxlqo")
public suspend fun subnets(`value`: List) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.subnets = mapped
}
/**
* @param values A list of VPC subnets into which the compute resources are launched.
*/
@JvmName("aaufxqcrtyphmrhx")
public suspend fun subnets(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.subnets = mapped
}
/**
* @param value Key-value pair tags to be applied to resources that are launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("qdcqjpwbxhuudwgn")
public suspend fun tags(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param values Key-value pair tags to be applied to resources that are launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.
*/
@JvmName("ghcugrmrhfssmnmp")
public fun tags(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param value The type of compute environment. Valid items are `EC2`, `SPOT`, `FARGATE` or `FARGATE_SPOT`.
*/
@JvmName("ayfgrakwywccybny")
public suspend fun type(`value`: String) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.type = mapped
}
internal fun build(): ComputeEnvironmentComputeResourcesArgs =
ComputeEnvironmentComputeResourcesArgs(
allocationStrategy = allocationStrategy,
bidPercentage = bidPercentage,
desiredVcpus = desiredVcpus,
ec2Configurations = ec2Configurations,
ec2KeyPair = ec2KeyPair,
imageId = imageId,
instanceRole = instanceRole,
instanceTypes = instanceTypes,
launchTemplate = launchTemplate,
maxVcpus = maxVcpus ?: throw PulumiNullFieldException("maxVcpus"),
minVcpus = minVcpus,
placementGroup = placementGroup,
securityGroupIds = securityGroupIds,
spotIamFleetRole = spotIamFleetRole,
subnets = subnets ?: throw PulumiNullFieldException("subnets"),
tags = tags,
type = type ?: throw PulumiNullFieldException("type"),
)
}