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

com.pulumi.awsnative.efs.kotlin.AccessPointArgs.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.efs.kotlin

import com.pulumi.awsnative.efs.AccessPointArgs.builder
import com.pulumi.awsnative.efs.kotlin.inputs.AccessPointPosixUserArgs
import com.pulumi.awsnative.efs.kotlin.inputs.AccessPointPosixUserArgsBuilder
import com.pulumi.awsnative.efs.kotlin.inputs.AccessPointRootDirectoryArgs
import com.pulumi.awsnative.efs.kotlin.inputs.AccessPointRootDirectoryArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * The ``AWS::EFS::AccessPoint`` resource creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in its own directory and below. To learn more, see [Mounting a file system using EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html).
 *  This operation requires permissions for the ``elasticfilesystem:CreateAccessPoint`` action.
 * @property accessPointTags An array of key-value pairs to apply to this resource.
 *  For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).
 * @property clientToken The opaque string specified in the request to ensure idempotent creation.
 * @property fileSystemId The ID of the EFS file system that the access point applies to. Accepts only the ID format for input when specifying a file system, for example ``fs-0123456789abcedf2``.
 * @property posixUser The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point that is used for all file operations by NFS clients using the access point.
 * @property rootDirectory The directory on the EFS file system that the access point exposes as the root directory to NFS clients using the access point.
 */
public data class AccessPointArgs(
    public val accessPointTags: Output>? = null,
    public val clientToken: Output? = null,
    public val fileSystemId: Output? = null,
    public val posixUser: Output? = null,
    public val rootDirectory: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.efs.AccessPointArgs =
        com.pulumi.awsnative.efs.AccessPointArgs.builder()
            .accessPointTags(
                accessPointTags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .clientToken(clientToken?.applyValue({ args0 -> args0 }))
            .fileSystemId(fileSystemId?.applyValue({ args0 -> args0 }))
            .posixUser(posixUser?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .rootDirectory(rootDirectory?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [AccessPointArgs].
 */
@PulumiTagMarker
public class AccessPointArgsBuilder internal constructor() {
    private var accessPointTags: Output>? = null

    private var clientToken: Output? = null

    private var fileSystemId: Output? = null

    private var posixUser: Output? = null

    private var rootDirectory: Output? = null

    /**
     * @param value An array of key-value pairs to apply to this resource.
     *  For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).
     */
    @JvmName("quddtgdbccsibecu")
    public suspend fun accessPointTags(`value`: Output>) {
        this.accessPointTags = value
    }

    @JvmName("jfubppqpuonpnott")
    public suspend fun accessPointTags(vararg values: Output) {
        this.accessPointTags = Output.all(values.asList())
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     *  For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).
     */
    @JvmName("fdpllnjceoxqswsp")
    public suspend fun accessPointTags(values: List>) {
        this.accessPointTags = Output.all(values)
    }

    /**
     * @param value The opaque string specified in the request to ensure idempotent creation.
     */
    @JvmName("edhoesnbelcvpybq")
    public suspend fun clientToken(`value`: Output) {
        this.clientToken = value
    }

    /**
     * @param value The ID of the EFS file system that the access point applies to. Accepts only the ID format for input when specifying a file system, for example ``fs-0123456789abcedf2``.
     */
    @JvmName("npaasrtgiqbcgsjw")
    public suspend fun fileSystemId(`value`: Output) {
        this.fileSystemId = value
    }

    /**
     * @param value The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point that is used for all file operations by NFS clients using the access point.
     */
    @JvmName("dxffyoassdiugjuu")
    public suspend fun posixUser(`value`: Output) {
        this.posixUser = value
    }

    /**
     * @param value The directory on the EFS file system that the access point exposes as the root directory to NFS clients using the access point.
     */
    @JvmName("pndohubyntgrkfnl")
    public suspend fun rootDirectory(`value`: Output) {
        this.rootDirectory = value
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     *  For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).
     */
    @JvmName("iddnjmjcpfqstmhd")
    public suspend fun accessPointTags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.accessPointTags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     *  For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).
     */
    @JvmName("jubaomdqicrmndlw")
    public suspend fun accessPointTags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.accessPointTags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     *  For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).
     */
    @JvmName("rkuajothoxndtguo")
    public suspend fun accessPointTags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.accessPointTags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     *  For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).
     */
    @JvmName("xioaayuabcupoysj")
    public suspend fun accessPointTags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.accessPointTags = mapped
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     *  For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).
     */
    @JvmName("oehgyoeckxgslxme")
    public suspend fun accessPointTags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.accessPointTags = mapped
    }

    /**
     * @param value The opaque string specified in the request to ensure idempotent creation.
     */
    @JvmName("nljipisjgktdluya")
    public suspend fun clientToken(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientToken = mapped
    }

    /**
     * @param value The ID of the EFS file system that the access point applies to. Accepts only the ID format for input when specifying a file system, for example ``fs-0123456789abcedf2``.
     */
    @JvmName("fomyrsbfieravndm")
    public suspend fun fileSystemId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fileSystemId = mapped
    }

    /**
     * @param value The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point that is used for all file operations by NFS clients using the access point.
     */
    @JvmName("rpgyklqbceqtrvyw")
    public suspend fun posixUser(`value`: AccessPointPosixUserArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.posixUser = mapped
    }

    /**
     * @param argument The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point that is used for all file operations by NFS clients using the access point.
     */
    @JvmName("lgnrqcqlbqiwxcvk")
    public suspend fun posixUser(argument: suspend AccessPointPosixUserArgsBuilder.() -> Unit) {
        val toBeMapped = AccessPointPosixUserArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.posixUser = mapped
    }

    /**
     * @param value The directory on the EFS file system that the access point exposes as the root directory to NFS clients using the access point.
     */
    @JvmName("lybbpdfuofuipfih")
    public suspend fun rootDirectory(`value`: AccessPointRootDirectoryArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rootDirectory = mapped
    }

    /**
     * @param argument The directory on the EFS file system that the access point exposes as the root directory to NFS clients using the access point.
     */
    @JvmName("hndrcgicvjibojcb")
    public suspend fun rootDirectory(argument: suspend AccessPointRootDirectoryArgsBuilder.() -> Unit) {
        val toBeMapped = AccessPointRootDirectoryArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.rootDirectory = mapped
    }

    internal fun build(): AccessPointArgs = AccessPointArgs(
        accessPointTags = accessPointTags,
        clientToken = clientToken,
        fileSystemId = fileSystemId,
        posixUser = posixUser,
        rootDirectory = rootDirectory,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy