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

com.pulumi.aws.ecs.kotlin.inputs.TaskDefinitionVolumeEfsVolumeConfigurationArgs.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.ecs.kotlin.inputs

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

/**
 *
 * @property authorizationConfig Configuration block for authorization for the Amazon EFS file system. Detailed below.
 * @property fileSystemId ID of the EFS File System.
 * @property rootDirectory Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using `authorization_config`.
 * @property transitEncryption Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used.
 * @property transitEncryptionPort Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses.
 */
public data class TaskDefinitionVolumeEfsVolumeConfigurationArgs(
    public val authorizationConfig: Output? = null,
    public val fileSystemId: Output,
    public val rootDirectory: Output? = null,
    public val transitEncryption: Output? = null,
    public val transitEncryptionPort: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeEfsVolumeConfigurationArgs =
        com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeEfsVolumeConfigurationArgs.builder()
            .authorizationConfig(
                authorizationConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .fileSystemId(fileSystemId.applyValue({ args0 -> args0 }))
            .rootDirectory(rootDirectory?.applyValue({ args0 -> args0 }))
            .transitEncryption(transitEncryption?.applyValue({ args0 -> args0 }))
            .transitEncryptionPort(transitEncryptionPort?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [TaskDefinitionVolumeEfsVolumeConfigurationArgs].
 */
@PulumiTagMarker
public class TaskDefinitionVolumeEfsVolumeConfigurationArgsBuilder internal constructor() {
    private var authorizationConfig:
        Output? = null

    private var fileSystemId: Output? = null

    private var rootDirectory: Output? = null

    private var transitEncryption: Output? = null

    private var transitEncryptionPort: Output? = null

    /**
     * @param value Configuration block for authorization for the Amazon EFS file system. Detailed below.
     */
    @JvmName("qitjgymkaskixvns")
    public suspend fun authorizationConfig(`value`: Output) {
        this.authorizationConfig = value
    }

    /**
     * @param value ID of the EFS File System.
     */
    @JvmName("wshtwjunsnmixmie")
    public suspend fun fileSystemId(`value`: Output) {
        this.fileSystemId = value
    }

    /**
     * @param value Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using `authorization_config`.
     */
    @JvmName("blhxdebhqcnejeth")
    public suspend fun rootDirectory(`value`: Output) {
        this.rootDirectory = value
    }

    /**
     * @param value Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used.
     */
    @JvmName("ubtqbdfmfpglvurh")
    public suspend fun transitEncryption(`value`: Output) {
        this.transitEncryption = value
    }

    /**
     * @param value Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses.
     */
    @JvmName("cpqdskkrtesudcbn")
    public suspend fun transitEncryptionPort(`value`: Output) {
        this.transitEncryptionPort = value
    }

    /**
     * @param value Configuration block for authorization for the Amazon EFS file system. Detailed below.
     */
    @JvmName("ceovkuidlioylhai")
    public suspend fun authorizationConfig(`value`: TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authorizationConfig = mapped
    }

    /**
     * @param argument Configuration block for authorization for the Amazon EFS file system. Detailed below.
     */
    @JvmName("efedrnjdvksgidfc")
    public suspend fun authorizationConfig(argument: suspend TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgsBuilder.() -> Unit) {
        val toBeMapped =
            TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.authorizationConfig = mapped
    }

    /**
     * @param value ID of the EFS File System.
     */
    @JvmName("celrancjbmfmkxcn")
    public suspend fun fileSystemId(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.fileSystemId = mapped
    }

    /**
     * @param value Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using `authorization_config`.
     */
    @JvmName("hxbukufimrxsbojs")
    public suspend fun rootDirectory(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rootDirectory = mapped
    }

    /**
     * @param value Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used.
     */
    @JvmName("wayvhbpitbwknxka")
    public suspend fun transitEncryption(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.transitEncryption = mapped
    }

    /**
     * @param value Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses.
     */
    @JvmName("vghxcxmbydlrgony")
    public suspend fun transitEncryptionPort(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.transitEncryptionPort = mapped
    }

    internal fun build(): TaskDefinitionVolumeEfsVolumeConfigurationArgs =
        TaskDefinitionVolumeEfsVolumeConfigurationArgs(
            authorizationConfig = authorizationConfig,
            fileSystemId = fileSystemId ?: throw PulumiNullFieldException("fileSystemId"),
            rootDirectory = rootDirectory,
            transitEncryption = transitEncryption,
            transitEncryptionPort = transitEncryptionPort,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy