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

com.pulumi.awsnative.datasync.kotlin.LocationHdfsArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.datasync.kotlin

import com.pulumi.awsnative.datasync.LocationHdfsArgs.builder
import com.pulumi.awsnative.datasync.kotlin.enums.LocationHdfsAuthenticationType
import com.pulumi.awsnative.datasync.kotlin.inputs.LocationHdfsNameNodeArgs
import com.pulumi.awsnative.datasync.kotlin.inputs.LocationHdfsNameNodeArgsBuilder
import com.pulumi.awsnative.datasync.kotlin.inputs.LocationHdfsQopConfigurationArgs
import com.pulumi.awsnative.datasync.kotlin.inputs.LocationHdfsQopConfigurationArgsBuilder
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.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource schema for AWS::DataSync::LocationHDFS.
 * @property agentArns ARN(s) of the agent(s) to use for an HDFS location.
 * @property authenticationType The authentication mode used to determine identity of user.
 * @property blockSize Size of chunks (blocks) in bytes that the data is divided into when stored in the HDFS cluster.
 * @property kerberosKeytab The Base64 string representation of the Keytab file.
 * @property kerberosKrb5Conf The string representation of the Krb5Conf file, or the presigned URL to access the Krb5.conf file within an S3 bucket.
 * @property kerberosPrincipal The unique identity, or principal, to which Kerberos can assign tickets.
 * @property kmsKeyProviderUri The identifier for the Key Management Server where the encryption keys that encrypt data inside HDFS clusters are stored.
 * @property nameNodes An array of Name Node(s) of the HDFS location.
 * @property qopConfiguration The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY` . If you set `RpcProtection` or `DataTransferProtection` , the other parameter assumes the same value.
 * @property replicationFactor Number of copies of each block that exists inside the HDFS cluster.
 * @property simpleUser The user name that has read and write permissions on the specified HDFS cluster.
 * @property subdirectory The subdirectory in HDFS that is used to read data from the HDFS source location or write data to the HDFS destination.
 * @property tags An array of key-value pairs to apply to this resource.
 */
public data class LocationHdfsArgs(
    public val agentArns: Output>? = null,
    public val authenticationType: Output? = null,
    public val blockSize: Output? = null,
    public val kerberosKeytab: Output? = null,
    public val kerberosKrb5Conf: Output? = null,
    public val kerberosPrincipal: Output? = null,
    public val kmsKeyProviderUri: Output? = null,
    public val nameNodes: Output>? = null,
    public val qopConfiguration: Output? = null,
    public val replicationFactor: Output? = null,
    public val simpleUser: Output? = null,
    public val subdirectory: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.datasync.LocationHdfsArgs =
        com.pulumi.awsnative.datasync.LocationHdfsArgs.builder()
            .agentArns(agentArns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .authenticationType(
                authenticationType?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .blockSize(blockSize?.applyValue({ args0 -> args0 }))
            .kerberosKeytab(kerberosKeytab?.applyValue({ args0 -> args0 }))
            .kerberosKrb5Conf(kerberosKrb5Conf?.applyValue({ args0 -> args0 }))
            .kerberosPrincipal(kerberosPrincipal?.applyValue({ args0 -> args0 }))
            .kmsKeyProviderUri(kmsKeyProviderUri?.applyValue({ args0 -> args0 }))
            .nameNodes(
                nameNodes?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .qopConfiguration(qopConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .replicationFactor(replicationFactor?.applyValue({ args0 -> args0 }))
            .simpleUser(simpleUser?.applyValue({ args0 -> args0 }))
            .subdirectory(subdirectory?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

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

    private var authenticationType: Output? = null

    private var blockSize: Output? = null

    private var kerberosKeytab: Output? = null

    private var kerberosKrb5Conf: Output? = null

    private var kerberosPrincipal: Output? = null

    private var kmsKeyProviderUri: Output? = null

    private var nameNodes: Output>? = null

    private var qopConfiguration: Output? = null

    private var replicationFactor: Output? = null

    private var simpleUser: Output? = null

    private var subdirectory: Output? = null

    private var tags: Output>? = null

    /**
     * @param value ARN(s) of the agent(s) to use for an HDFS location.
     */
    @JvmName("dldfjnoscwvenico")
    public suspend fun agentArns(`value`: Output>) {
        this.agentArns = value
    }

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

    /**
     * @param values ARN(s) of the agent(s) to use for an HDFS location.
     */
    @JvmName("lybculenijmqgefh")
    public suspend fun agentArns(values: List>) {
        this.agentArns = Output.all(values)
    }

    /**
     * @param value The authentication mode used to determine identity of user.
     */
    @JvmName("nrtcwexobvpmsxqy")
    public suspend fun authenticationType(`value`: Output) {
        this.authenticationType = value
    }

    /**
     * @param value Size of chunks (blocks) in bytes that the data is divided into when stored in the HDFS cluster.
     */
    @JvmName("smkppclhhgkgilji")
    public suspend fun blockSize(`value`: Output) {
        this.blockSize = value
    }

    /**
     * @param value The Base64 string representation of the Keytab file.
     */
    @JvmName("bjthdunlnlapberd")
    public suspend fun kerberosKeytab(`value`: Output) {
        this.kerberosKeytab = value
    }

    /**
     * @param value The string representation of the Krb5Conf file, or the presigned URL to access the Krb5.conf file within an S3 bucket.
     */
    @JvmName("drvktnueyxptcolm")
    public suspend fun kerberosKrb5Conf(`value`: Output) {
        this.kerberosKrb5Conf = value
    }

    /**
     * @param value The unique identity, or principal, to which Kerberos can assign tickets.
     */
    @JvmName("iqwijstudhisoudk")
    public suspend fun kerberosPrincipal(`value`: Output) {
        this.kerberosPrincipal = value
    }

    /**
     * @param value The identifier for the Key Management Server where the encryption keys that encrypt data inside HDFS clusters are stored.
     */
    @JvmName("mfprglxkmwxmiptd")
    public suspend fun kmsKeyProviderUri(`value`: Output) {
        this.kmsKeyProviderUri = value
    }

    /**
     * @param value An array of Name Node(s) of the HDFS location.
     */
    @JvmName("cvfssotyqqxgxxko")
    public suspend fun nameNodes(`value`: Output>) {
        this.nameNodes = value
    }

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

    /**
     * @param values An array of Name Node(s) of the HDFS location.
     */
    @JvmName("tjfyvqqgvyfqoaak")
    public suspend fun nameNodes(values: List>) {
        this.nameNodes = Output.all(values)
    }

    /**
     * @param value The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY` . If you set `RpcProtection` or `DataTransferProtection` , the other parameter assumes the same value.
     */
    @JvmName("pbsovkoveyhirmxi")
    public suspend fun qopConfiguration(`value`: Output) {
        this.qopConfiguration = value
    }

    /**
     * @param value Number of copies of each block that exists inside the HDFS cluster.
     */
    @JvmName("kujbrntyukqiehmr")
    public suspend fun replicationFactor(`value`: Output) {
        this.replicationFactor = value
    }

    /**
     * @param value The user name that has read and write permissions on the specified HDFS cluster.
     */
    @JvmName("yjlihjoxqiujsaia")
    public suspend fun simpleUser(`value`: Output) {
        this.simpleUser = value
    }

    /**
     * @param value The subdirectory in HDFS that is used to read data from the HDFS source location or write data to the HDFS destination.
     */
    @JvmName("pxhlstoawpklharw")
    public suspend fun subdirectory(`value`: Output) {
        this.subdirectory = value
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("troqftyrbnnfqkek")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("qfaqdliyrrnmphwh")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value ARN(s) of the agent(s) to use for an HDFS location.
     */
    @JvmName("jvmcmrfpoeepomtt")
    public suspend fun agentArns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.agentArns = mapped
    }

    /**
     * @param values ARN(s) of the agent(s) to use for an HDFS location.
     */
    @JvmName("mhfreuxrqjxtnqhj")
    public suspend fun agentArns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.agentArns = mapped
    }

    /**
     * @param value The authentication mode used to determine identity of user.
     */
    @JvmName("hrcmdgioqsufbois")
    public suspend fun authenticationType(`value`: LocationHdfsAuthenticationType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Size of chunks (blocks) in bytes that the data is divided into when stored in the HDFS cluster.
     */
    @JvmName("timdgncrtqlbqyvs")
    public suspend fun blockSize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.blockSize = mapped
    }

    /**
     * @param value The Base64 string representation of the Keytab file.
     */
    @JvmName("cqbnfdegvhasovkw")
    public suspend fun kerberosKeytab(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberosKeytab = mapped
    }

    /**
     * @param value The string representation of the Krb5Conf file, or the presigned URL to access the Krb5.conf file within an S3 bucket.
     */
    @JvmName("fsiybufnceiwacaj")
    public suspend fun kerberosKrb5Conf(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberosKrb5Conf = mapped
    }

    /**
     * @param value The unique identity, or principal, to which Kerberos can assign tickets.
     */
    @JvmName("uywnjmqfgnbpniln")
    public suspend fun kerberosPrincipal(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberosPrincipal = mapped
    }

    /**
     * @param value The identifier for the Key Management Server where the encryption keys that encrypt data inside HDFS clusters are stored.
     */
    @JvmName("teosjyoewnevwunf")
    public suspend fun kmsKeyProviderUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyProviderUri = mapped
    }

    /**
     * @param value An array of Name Node(s) of the HDFS location.
     */
    @JvmName("peehgupvtikmkecg")
    public suspend fun nameNodes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nameNodes = mapped
    }

    /**
     * @param argument An array of Name Node(s) of the HDFS location.
     */
    @JvmName("vewcvkixxrffnhjp")
    public suspend fun nameNodes(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            LocationHdfsNameNodeArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.nameNodes = mapped
    }

    /**
     * @param argument An array of Name Node(s) of the HDFS location.
     */
    @JvmName("cnrooyghekedrdbq")
    public suspend fun nameNodes(vararg argument: suspend LocationHdfsNameNodeArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            LocationHdfsNameNodeArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.nameNodes = mapped
    }

    /**
     * @param argument An array of Name Node(s) of the HDFS location.
     */
    @JvmName("noklggjlifprgssb")
    public suspend fun nameNodes(argument: suspend LocationHdfsNameNodeArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(LocationHdfsNameNodeArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.nameNodes = mapped
    }

    /**
     * @param values An array of Name Node(s) of the HDFS location.
     */
    @JvmName("nntoqyxefbdeoaoj")
    public suspend fun nameNodes(vararg values: LocationHdfsNameNodeArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.nameNodes = mapped
    }

    /**
     * @param value The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY` . If you set `RpcProtection` or `DataTransferProtection` , the other parameter assumes the same value.
     */
    @JvmName("edlyeftegghsxytw")
    public suspend fun qopConfiguration(`value`: LocationHdfsQopConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.qopConfiguration = mapped
    }

    /**
     * @param argument The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY` . If you set `RpcProtection` or `DataTransferProtection` , the other parameter assumes the same value.
     */
    @JvmName("byasikqecgnsbwoi")
    public suspend fun qopConfiguration(argument: suspend LocationHdfsQopConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = LocationHdfsQopConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.qopConfiguration = mapped
    }

    /**
     * @param value Number of copies of each block that exists inside the HDFS cluster.
     */
    @JvmName("sdbqxrwvpkootgac")
    public suspend fun replicationFactor(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.replicationFactor = mapped
    }

    /**
     * @param value The user name that has read and write permissions on the specified HDFS cluster.
     */
    @JvmName("xbkenmllalijojac")
    public suspend fun simpleUser(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.simpleUser = mapped
    }

    /**
     * @param value The subdirectory in HDFS that is used to read data from the HDFS source location or write data to the HDFS destination.
     */
    @JvmName("ntgaxbskaumibunx")
    public suspend fun subdirectory(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subdirectory = mapped
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("ptxvbqwljqcvfmdy")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("snpjaugtjwxakxpg")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("dqnylnqbmpfdsveo")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("gsngfttbxqcwywxa")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("biuflyalqgtpngeq")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): LocationHdfsArgs = LocationHdfsArgs(
        agentArns = agentArns,
        authenticationType = authenticationType,
        blockSize = blockSize,
        kerberosKeytab = kerberosKeytab,
        kerberosKrb5Conf = kerberosKrb5Conf,
        kerberosPrincipal = kerberosPrincipal,
        kmsKeyProviderUri = kmsKeyProviderUri,
        nameNodes = nameNodes,
        qopConfiguration = qopConfiguration,
        replicationFactor = replicationFactor,
        simpleUser = simpleUser,
        subdirectory = subdirectory,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy