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

com.pulumi.awsnative.ecs.kotlin.inputs.ServiceVolumeConfigurationArgs.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: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.ecs.kotlin.inputs

import com.pulumi.awsnative.ecs.inputs.ServiceVolumeConfigurationArgs.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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume.
 * @property managedEbsVolume The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are created.
 * @property name The name of the volume. This value must match the volume name from the ``Volume`` object in the task definition.
 */
public data class ServiceVolumeConfigurationArgs(
    public val managedEbsVolume: Output? = null,
    public val name: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.ecs.inputs.ServiceVolumeConfigurationArgs =
        com.pulumi.awsnative.ecs.inputs.ServiceVolumeConfigurationArgs.builder()
            .managedEbsVolume(managedEbsVolume?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .name(name.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ServiceVolumeConfigurationArgs].
 */
@PulumiTagMarker
public class ServiceVolumeConfigurationArgsBuilder internal constructor() {
    private var managedEbsVolume: Output? = null

    private var name: Output? = null

    /**
     * @param value The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are created.
     */
    @JvmName("gmatffoodxjgjbnj")
    public suspend fun managedEbsVolume(`value`: Output) {
        this.managedEbsVolume = value
    }

    /**
     * @param value The name of the volume. This value must match the volume name from the ``Volume`` object in the task definition.
     */
    @JvmName("xqlbkqksxchaxxdp")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are created.
     */
    @JvmName("wbwmvisdqkhcqysn")
    public suspend fun managedEbsVolume(`value`: ServiceManagedEbsVolumeConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.managedEbsVolume = mapped
    }

    /**
     * @param argument The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are created.
     */
    @JvmName("wfbftamouvcxaggx")
    public suspend fun managedEbsVolume(argument: suspend ServiceManagedEbsVolumeConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = ServiceManagedEbsVolumeConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.managedEbsVolume = mapped
    }

    /**
     * @param value The name of the volume. This value must match the volume name from the ``Volume`` object in the task definition.
     */
    @JvmName("mmdurcoywqepkmbv")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    internal fun build(): ServiceVolumeConfigurationArgs = ServiceVolumeConfigurationArgs(
        managedEbsVolume = managedEbsVolume,
        name = name ?: throw PulumiNullFieldException("name"),
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy