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

com.pulumi.awsnative.ec2.kotlin.HostArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.ec2.kotlin

import com.pulumi.awsnative.ec2.HostArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Resource Type definition for AWS::EC2::Host
 * @property assetId The ID of the Outpost hardware asset.
 * @property autoPlacement Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.
 * @property availabilityZone The Availability Zone in which to allocate the Dedicated Host.
 * @property hostMaintenance Automatically allocates a new dedicated host and moves your instances on to it if a degradation is detected on your current host.
 * @property hostRecovery Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.
 * @property instanceFamily Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family.
 * @property instanceType Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.
 * @property outpostArn The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate the Dedicated Host.
 */
public data class HostArgs(
    public val assetId: Output? = null,
    public val autoPlacement: Output? = null,
    public val availabilityZone: Output? = null,
    public val hostMaintenance: Output? = null,
    public val hostRecovery: Output? = null,
    public val instanceFamily: Output? = null,
    public val instanceType: Output? = null,
    public val outpostArn: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.ec2.HostArgs =
        com.pulumi.awsnative.ec2.HostArgs.builder()
            .assetId(assetId?.applyValue({ args0 -> args0 }))
            .autoPlacement(autoPlacement?.applyValue({ args0 -> args0 }))
            .availabilityZone(availabilityZone?.applyValue({ args0 -> args0 }))
            .hostMaintenance(hostMaintenance?.applyValue({ args0 -> args0 }))
            .hostRecovery(hostRecovery?.applyValue({ args0 -> args0 }))
            .instanceFamily(instanceFamily?.applyValue({ args0 -> args0 }))
            .instanceType(instanceType?.applyValue({ args0 -> args0 }))
            .outpostArn(outpostArn?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [HostArgs].
 */
@PulumiTagMarker
public class HostArgsBuilder internal constructor() {
    private var assetId: Output? = null

    private var autoPlacement: Output? = null

    private var availabilityZone: Output? = null

    private var hostMaintenance: Output? = null

    private var hostRecovery: Output? = null

    private var instanceFamily: Output? = null

    private var instanceType: Output? = null

    private var outpostArn: Output? = null

    /**
     * @param value The ID of the Outpost hardware asset.
     */
    @JvmName("ehiioqjuebfpnkai")
    public suspend fun assetId(`value`: Output) {
        this.assetId = value
    }

    /**
     * @param value Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.
     */
    @JvmName("gcdjwguprmpfxmos")
    public suspend fun autoPlacement(`value`: Output) {
        this.autoPlacement = value
    }

    /**
     * @param value The Availability Zone in which to allocate the Dedicated Host.
     */
    @JvmName("bcpyhpamwfbujgak")
    public suspend fun availabilityZone(`value`: Output) {
        this.availabilityZone = value
    }

    /**
     * @param value Automatically allocates a new dedicated host and moves your instances on to it if a degradation is detected on your current host.
     */
    @JvmName("tlmgmaksmrwxypmv")
    public suspend fun hostMaintenance(`value`: Output) {
        this.hostMaintenance = value
    }

    /**
     * @param value Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.
     */
    @JvmName("ajkgdvqriustexix")
    public suspend fun hostRecovery(`value`: Output) {
        this.hostRecovery = value
    }

    /**
     * @param value Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family.
     */
    @JvmName("kgljgccstknlagwo")
    public suspend fun instanceFamily(`value`: Output) {
        this.instanceFamily = value
    }

    /**
     * @param value Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.
     */
    @JvmName("uobiqepngimoerts")
    public suspend fun instanceType(`value`: Output) {
        this.instanceType = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate the Dedicated Host.
     */
    @JvmName("oxlyqswkmjsiqvkv")
    public suspend fun outpostArn(`value`: Output) {
        this.outpostArn = value
    }

    /**
     * @param value The ID of the Outpost hardware asset.
     */
    @JvmName("wwlpadlhxqhuwgvj")
    public suspend fun assetId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetId = mapped
    }

    /**
     * @param value Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.
     */
    @JvmName("kudpuofreoasaksm")
    public suspend fun autoPlacement(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoPlacement = mapped
    }

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

    /**
     * @param value Automatically allocates a new dedicated host and moves your instances on to it if a degradation is detected on your current host.
     */
    @JvmName("ahpkhhfuvhriuqmx")
    public suspend fun hostMaintenance(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hostMaintenance = mapped
    }

    /**
     * @param value Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.
     */
    @JvmName("qsxtapecleitwrha")
    public suspend fun hostRecovery(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hostRecovery = mapped
    }

    /**
     * @param value Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family.
     */
    @JvmName("vfnlqawuoymxhqxp")
    public suspend fun instanceFamily(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceFamily = mapped
    }

    /**
     * @param value Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.
     */
    @JvmName("upssqtjaxodkijiw")
    public suspend fun instanceType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceType = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate the Dedicated Host.
     */
    @JvmName("mplxqjiavcfvnedu")
    public suspend fun outpostArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outpostArn = mapped
    }

    internal fun build(): HostArgs = HostArgs(
        assetId = assetId,
        autoPlacement = autoPlacement,
        availabilityZone = availabilityZone,
        hostMaintenance = hostMaintenance,
        hostRecovery = hostRecovery,
        instanceFamily = instanceFamily,
        instanceType = instanceType,
        outpostArn = outpostArn,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy