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

com.pulumi.aws.ec2.kotlin.inputs.FleetLaunchTemplateConfigOverrideArgs.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.FleetLaunchTemplateConfigOverrideArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Double
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property availabilityZone Availability Zone in which to launch the instances.
 * @property instanceRequirements Override the instance type in the Launch Template with instance types that satisfy the requirements.
 * @property instanceType Instance type.
 * @property maxPrice Maximum price per unit hour that you are willing to pay for a Spot Instance.
 * @property priority Priority for the launch template override. If `on_demand_options` `allocation_strategy` is set to `prioritized`, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity. The highest priority is launched first. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. Valid values are whole numbers starting at 0.
 * @property subnetId ID of the subnet in which to launch the instances.
 * @property weightedCapacity Number of units provided by the specified instance type.
 */
public data class FleetLaunchTemplateConfigOverrideArgs(
    public val availabilityZone: Output? = null,
    public val instanceRequirements: Output? = null,
    public val instanceType: Output? = null,
    public val maxPrice: Output? = null,
    public val priority: Output? = null,
    public val subnetId: Output? = null,
    public val weightedCapacity: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.ec2.inputs.FleetLaunchTemplateConfigOverrideArgs =
        com.pulumi.aws.ec2.inputs.FleetLaunchTemplateConfigOverrideArgs.builder()
            .availabilityZone(availabilityZone?.applyValue({ args0 -> args0 }))
            .instanceRequirements(
                instanceRequirements?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .instanceType(instanceType?.applyValue({ args0 -> args0 }))
            .maxPrice(maxPrice?.applyValue({ args0 -> args0 }))
            .priority(priority?.applyValue({ args0 -> args0 }))
            .subnetId(subnetId?.applyValue({ args0 -> args0 }))
            .weightedCapacity(weightedCapacity?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [FleetLaunchTemplateConfigOverrideArgs].
 */
@PulumiTagMarker
public class FleetLaunchTemplateConfigOverrideArgsBuilder internal constructor() {
    private var availabilityZone: Output? = null

    private var instanceRequirements:
        Output? = null

    private var instanceType: Output? = null

    private var maxPrice: Output? = null

    private var priority: Output? = null

    private var subnetId: Output? = null

    private var weightedCapacity: Output? = null

    /**
     * @param value Availability Zone in which to launch the instances.
     */
    @JvmName("wvahrepcncnadbsk")
    public suspend fun availabilityZone(`value`: Output) {
        this.availabilityZone = value
    }

    /**
     * @param value Override the instance type in the Launch Template with instance types that satisfy the requirements.
     */
    @JvmName("hxsoqjgsmuwtqbvq")
    public suspend fun instanceRequirements(`value`: Output) {
        this.instanceRequirements = value
    }

    /**
     * @param value Instance type.
     */
    @JvmName("qylsnuyrgnucasxp")
    public suspend fun instanceType(`value`: Output) {
        this.instanceType = value
    }

    /**
     * @param value Maximum price per unit hour that you are willing to pay for a Spot Instance.
     */
    @JvmName("peywbncdtjkgdgsr")
    public suspend fun maxPrice(`value`: Output) {
        this.maxPrice = value
    }

    /**
     * @param value Priority for the launch template override. If `on_demand_options` `allocation_strategy` is set to `prioritized`, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity. The highest priority is launched first. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. Valid values are whole numbers starting at 0.
     */
    @JvmName("pngummypuxttxhdt")
    public suspend fun priority(`value`: Output) {
        this.priority = value
    }

    /**
     * @param value ID of the subnet in which to launch the instances.
     */
    @JvmName("cyuokmftyguxqiks")
    public suspend fun subnetId(`value`: Output) {
        this.subnetId = value
    }

    /**
     * @param value Number of units provided by the specified instance type.
     */
    @JvmName("lbxqtqyofgisxtxb")
    public suspend fun weightedCapacity(`value`: Output) {
        this.weightedCapacity = value
    }

    /**
     * @param value Availability Zone in which to launch the instances.
     */
    @JvmName("yimmnisrmapgircj")
    public suspend fun availabilityZone(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.availabilityZone = mapped
    }

    /**
     * @param value Override the instance type in the Launch Template with instance types that satisfy the requirements.
     */
    @JvmName("mgksdaskhavcwgwm")
    public suspend fun instanceRequirements(`value`: FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceRequirements = mapped
    }

    /**
     * @param argument Override the instance type in the Launch Template with instance types that satisfy the requirements.
     */
    @JvmName("ieiyfrqhixrvnafo")
    public suspend fun instanceRequirements(argument: suspend FleetLaunchTemplateConfigOverrideInstanceRequirementsArgsBuilder.() -> Unit) {
        val toBeMapped =
            FleetLaunchTemplateConfigOverrideInstanceRequirementsArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.instanceRequirements = mapped
    }

    /**
     * @param value Instance type.
     */
    @JvmName("umecsljogukhoymx")
    public suspend fun instanceType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceType = mapped
    }

    /**
     * @param value Maximum price per unit hour that you are willing to pay for a Spot Instance.
     */
    @JvmName("cbcfjgmummeyielo")
    public suspend fun maxPrice(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxPrice = mapped
    }

    /**
     * @param value Priority for the launch template override. If `on_demand_options` `allocation_strategy` is set to `prioritized`, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity. The highest priority is launched first. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. Valid values are whole numbers starting at 0.
     */
    @JvmName("mmfxmgwgjwjpxauh")
    public suspend fun priority(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.priority = mapped
    }

    /**
     * @param value ID of the subnet in which to launch the instances.
     */
    @JvmName("ttjyccxeigpbfmjw")
    public suspend fun subnetId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnetId = mapped
    }

    /**
     * @param value Number of units provided by the specified instance type.
     */
    @JvmName("iqisenttjukwfaqs")
    public suspend fun weightedCapacity(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.weightedCapacity = mapped
    }

    internal fun build(): FleetLaunchTemplateConfigOverrideArgs =
        FleetLaunchTemplateConfigOverrideArgs(
            availabilityZone = availabilityZone,
            instanceRequirements = instanceRequirements,
            instanceType = instanceType,
            maxPrice = maxPrice,
            priority = priority,
            subnetId = subnetId,
            weightedCapacity = weightedCapacity,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy