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

com.pulumi.awsnative.batch.kotlin.inputs.JobDefinitionEfsVolumeConfigurationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.batch.kotlin.inputs

import com.pulumi.awsnative.batch.inputs.JobDefinitionEfsVolumeConfigurationArgs.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 The authorization configuration details for the Amazon EFS file system.
 * @property fileSystemId The Amazon EFS file system ID to use.
 * @property rootDirectory The 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 is used instead. Specifying `/` has the same effect as omitting this parameter. The maximum length is 4,096 characters.
 * > If an EFS access point is specified in the `authorizationConfig` , the root directory parameter must either be omitted or set to `/` , which enforces the path set on the Amazon EFS access point.
 * @property transitEncryption Determines whether 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. If this parameter is omitted, the default value of `DISABLED` is used. For more information, see [Encrypting data in transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide* .
 * @property transitEncryptionPort The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses. The value must be between 0 and 65,535. For more information, see [EFS mount helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide* .
 */
public data class JobDefinitionEfsVolumeConfigurationArgs(
    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.awsnative.batch.inputs.JobDefinitionEfsVolumeConfigurationArgs =
        com.pulumi.awsnative.batch.inputs.JobDefinitionEfsVolumeConfigurationArgs.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 [JobDefinitionEfsVolumeConfigurationArgs].
 */
@PulumiTagMarker
public class JobDefinitionEfsVolumeConfigurationArgsBuilder 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 The authorization configuration details for the Amazon EFS file system.
     */
    @JvmName("nxdchshogffkshbv")
    public suspend fun authorizationConfig(`value`: Output) {
        this.authorizationConfig = value
    }

    /**
     * @param value The Amazon EFS file system ID to use.
     */
    @JvmName("jeumdpdhfhsutbro")
    public suspend fun fileSystemId(`value`: Output) {
        this.fileSystemId = value
    }

    /**
     * @param value The 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 is used instead. Specifying `/` has the same effect as omitting this parameter. The maximum length is 4,096 characters.
     * > If an EFS access point is specified in the `authorizationConfig` , the root directory parameter must either be omitted or set to `/` , which enforces the path set on the Amazon EFS access point.
     */
    @JvmName("ixkqhnibpramctvw")
    public suspend fun rootDirectory(`value`: Output) {
        this.rootDirectory = value
    }

    /**
     * @param value Determines whether 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. If this parameter is omitted, the default value of `DISABLED` is used. For more information, see [Encrypting data in transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide* .
     */
    @JvmName("gfgafsflpkxqthyn")
    public suspend fun transitEncryption(`value`: Output) {
        this.transitEncryption = value
    }

    /**
     * @param value The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses. The value must be between 0 and 65,535. For more information, see [EFS mount helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide* .
     */
    @JvmName("bkyfpkwsfenxcuha")
    public suspend fun transitEncryptionPort(`value`: Output) {
        this.transitEncryptionPort = value
    }

    /**
     * @param value The authorization configuration details for the Amazon EFS file system.
     */
    @JvmName("eyenmmfqcrjdlfid")
    public suspend fun authorizationConfig(`value`: JobDefinitionAuthorizationConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authorizationConfig = mapped
    }

    /**
     * @param argument The authorization configuration details for the Amazon EFS file system.
     */
    @JvmName("lisieqkehqovbfsf")
    public suspend fun authorizationConfig(argument: suspend JobDefinitionAuthorizationConfigArgsBuilder.() -> Unit) {
        val toBeMapped = JobDefinitionAuthorizationConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.authorizationConfig = mapped
    }

    /**
     * @param value The Amazon EFS file system ID to use.
     */
    @JvmName("pibfoyfkfitlpubf")
    public suspend fun fileSystemId(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.fileSystemId = mapped
    }

    /**
     * @param value The 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 is used instead. Specifying `/` has the same effect as omitting this parameter. The maximum length is 4,096 characters.
     * > If an EFS access point is specified in the `authorizationConfig` , the root directory parameter must either be omitted or set to `/` , which enforces the path set on the Amazon EFS access point.
     */
    @JvmName("qlnjqhrmbqeccawd")
    public suspend fun rootDirectory(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rootDirectory = mapped
    }

    /**
     * @param value Determines whether 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. If this parameter is omitted, the default value of `DISABLED` is used. For more information, see [Encrypting data in transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide* .
     */
    @JvmName("ejwtbhmgopjemrwt")
    public suspend fun transitEncryption(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.transitEncryption = mapped
    }

    /**
     * @param value The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses. The value must be between 0 and 65,535. For more information, see [EFS mount helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide* .
     */
    @JvmName("kaxidvdkfgurphne")
    public suspend fun transitEncryptionPort(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.transitEncryptionPort = mapped
    }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy